MCPcopy Index your code
hub / github.com/encounter/objdiff / display_node

Function display_node

objdiff-gui/src/views/config.rs:400–441  ·  view source on GitHub ↗
(
    ui: &mut egui::Ui,
    selected_obj: &mut Option<usize>,
    units: &[ObjectConfig],
    node: &ProjectObjectNode,
    appearance: &Appearance,
    node_open: NodeOpen,
)

Source from the content-addressed store, hash-verified

398}
399
400fn display_node(
401 ui: &mut egui::Ui,
402 selected_obj: &mut Option<usize>,
403 units: &[ObjectConfig],
404 node: &ProjectObjectNode,
405 appearance: &Appearance,
406 node_open: NodeOpen,
407) {
408 match node {
409 ProjectObjectNode::Unit(name, idx) => {
410 display_unit(ui, selected_obj, name, units, *idx, appearance);
411 }
412 ProjectObjectNode::Dir(name, children) => {
413 let contains_obj = selected_obj.map(|idx| contains_node(node, idx));
414 let open = match node_open {
415 NodeOpen::Default => None,
416 NodeOpen::Open => Some(true),
417 NodeOpen::Close => Some(false),
418 NodeOpen::Object => contains_obj,
419 };
420 let color = if contains_obj == Some(true) {
421 appearance.replace_color
422 } else {
423 appearance.text_color
424 };
425 CollapsingHeader::new(
426 RichText::new(name)
427 .font(FontId {
428 size: appearance.ui_font.size,
429 family: appearance.code_font.family.clone(),
430 })
431 .color(color),
432 )
433 .open(open)
434 .show(ui, |ui| {
435 for node in children {
436 display_node(ui, selected_obj, units, node, appearance, node_open);
437 }
438 });
439 }
440 }
441}
442
443fn contains_node(node: &ProjectObjectNode, selected_obj: usize) -> bool {
444 match node {

Callers 1

config_uiFunction · 0.85

Calls 2

display_unitFunction · 0.85
contains_nodeFunction · 0.85

Tested by

no test coverage detected