MCPcopy Create free account
hub / github.com/TheRedDeveloper/ply-engine / render_debug_layout_elements_list

Method render_debug_layout_elements_list

src/engine.rs:7571–8276  ·  view source on GitHub ↗

Render the debug layout elements tree list. Returns (row_count, selected_element_row_index).

(
        &mut self,
        initial_roots_length: usize,
        highlighted_row: i32,
    )

Source from the content-addressed store, hash-verified

7569
7570 /// Render the debug layout elements tree list. Returns (row_count, selected_element_row_index).
7571 fn render_debug_layout_elements_list(
7572 &mut self,
7573 initial_roots_length: usize,
7574 highlighted_row: i32,
7575 ) -> (i32, i32) {
7576 let row_height = Self::DEBUG_VIEW_ROW_HEIGHT;
7577 let indent_width = Self::DEBUG_VIEW_INDENT_WIDTH;
7578 let mut row_count: i32 = 0;
7579 let mut selected_element_row_index: i32 = 0;
7580 let mut highlighted_element_id: u32 = 0;
7581
7582 let scroll_item_layout = LayoutConfig {
7583 sizing: SizingConfig {
7584 height: SizingAxis {
7585 type_: SizingType::Fixed,
7586 min_max: SizingMinMax { min: row_height, max: row_height },
7587 ..Default::default()
7588 },
7589 ..Default::default()
7590 },
7591 child_gap: 6,
7592 child_alignment: ChildAlignmentConfig { x: AlignX::Left, y: AlignY::CenterY },
7593 ..Default::default()
7594 };
7595
7596 let name_text_config = TextConfig {
7597 color: Self::DEBUG_COLOR_4,
7598 font_size: 16,
7599 wrap_mode: WrapMode::None,
7600 ..Default::default()
7601 };
7602
7603 for root_index in 0..initial_roots_length {
7604 let mut dfs_buffer: Vec<i32> = Vec::new();
7605 let root_layout_index = self.layout_element_tree_roots[root_index].layout_element_index;
7606 dfs_buffer.push(root_layout_index);
7607 let mut visited: Vec<bool> = vec![false; self.layout_elements.len()];
7608
7609 // Separator between roots
7610 if root_index > 0 {
7611 self.debug_open_idi("Ply__DebugView_EmptyRowOuter", root_index as u32, &ElementDeclaration {
7612 layout: LayoutConfig {
7613 sizing: SizingConfig {
7614 width: SizingAxis { type_: SizingType::Grow, ..Default::default() },
7615 ..Default::default()
7616 },
7617 padding: PaddingConfig { left: indent_width / 2, right: 0, top: 0, bottom: 0 },
7618 ..Default::default()
7619 },
7620 ..Default::default()
7621 });
7622 {
7623 self.debug_open_idi("Ply__DebugView_EmptyRow", root_index as u32, &ElementDeclaration {
7624 layout: LayoutConfig {
7625 sizing: SizingConfig {
7626 width: SizingAxis { type_: SizingType::Grow, ..Default::default() },
7627 height: SizingAxis {
7628 type_: SizingType::Fixed,

Callers 1

render_debug_viewMethod · 0.80

Calls 15

hash_stringFunction · 0.85
debug_open_idiMethod · 0.80
close_elementMethod · 0.80
is_emptyMethod · 0.80
element_has_configMethod · 0.80
getMethod · 0.80
element_is_offscreenMethod · 0.80
debug_textMethod · 0.80
debug_openMethod · 0.80
cloneMethod · 0.80
debug_raw_textMethod · 0.80

Tested by

no test coverage detected