Merge pull request #662 from linw789/main

Allow users to hide tree_node label
This commit is contained in:
dbr/Ben 2022-09-02 15:18:53 +10:00 committed by GitHub
commit 0c9341a41c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 12 deletions

View File

@ -389,7 +389,8 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) {
}
if CollapsingHeader::new("Widgets").build(ui) {
if let Some(_t) = ui.tree_node("Tree") {
for i in 0..5 {
let num_child = 4;
for i in 0..num_child {
if let Some(_t) = ui.tree_node(format!("Child {}", i)) {
ui.text("blah blah");
ui.same_line();
@ -398,6 +399,20 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) {
}
}
}
{
let tree_node_stack = ui.tree_node_config("##HideTreeNodeLabel")
.allow_item_overlap(true)
.push();
ui.same_line();
if ui.small_button(format!("Child {} is a button", num_child)) {
println!("TreeNode Button pressed.");
}
if tree_node_stack.is_some() {
ui.text("blah blah")
}
}
}
if let Some(_t) = ui.tree_node("Bullets") {

View File

@ -287,17 +287,16 @@ impl<'a, T: AsRef<str>, L: AsRef<str>> TreeNode<'a, T, L> {
sys::igSetNextItemOpen(self.opened, self.opened_cond as i32);
}
match self.id {
TreeNodeId::Str(id) => {
let (id, label) = match self.label {
Some(label) => self.ui.scratch_txt_two(id, label),
None => {
let v = self.ui.scratch_txt(id);
(v, v)
}
};
sys::igTreeNodeExStrStr(id, self.flags.bits() as i32, fmt_ptr(), label)
}
TreeNodeId::Str(id) => match self.label {
Some(label) => {
let (id, label) = self.ui.scratch_txt_two(id, label);
sys::igTreeNodeExStrStr(id, self.flags.bits() as i32, fmt_ptr(), label)
}
None => {
let id = self.ui.scratch_txt(id);
sys::igTreeNodeExStr(id, self.flags.bits() as i32)
}
},
TreeNodeId::Ptr(id) => sys::igTreeNodeExPtr(
id,
self.flags.bits() as i32,