core: Move debug children list's button into header

This commit is contained in:
Nathan Adams 2023-06-02 15:05:40 +02:00
parent 9f384df27b
commit c9d0a08863
1 changed files with 12 additions and 19 deletions

View File

@ -2,7 +2,8 @@ use crate::context::UpdateContext;
use crate::debug_ui::handle::DisplayObjectHandle; use crate::debug_ui::handle::DisplayObjectHandle;
use crate::debug_ui::Message; use crate::debug_ui::Message;
use crate::display_object::{DisplayObject, TDisplayObject, TDisplayObjectContainer}; use crate::display_object::{DisplayObject, TDisplayObject, TDisplayObjectContainer};
use egui::{Checkbox, CollapsingHeader, ComboBox, Grid, Id, Ui, Widget, Window}; use egui::collapsing_header::CollapsingState;
use egui::{Checkbox, ComboBox, Grid, Id, Ui, Widget, Window};
use std::borrow::Cow; use std::borrow::Cow;
use swf::{BlendMode, ColorTransform, Fixed8}; use swf::{BlendMode, ColorTransform, Fixed8};
@ -256,27 +257,19 @@ impl DisplayObjectWindow {
object: DisplayObject<'gc>, object: DisplayObject<'gc>,
messages: &mut Vec<Message>, messages: &mut Vec<Message>,
) { ) {
let response = CollapsingHeader::new(summary_name(object)) if let Some(ctr) = object.as_container() {
.id_source(ui.id().with(object.as_ptr())) CollapsingState::load_with_default_open(ui.ctx(), ui.id().with(object.as_ptr()), false)
.show(ui, |ui| { .show_header(ui, |ui| {
let button_response = ui.button("Track"); self.display_object_button(ui, context, messages, object);
if button_response.hovered() { })
self.hovered_debug_rect = Some(DisplayObjectHandle::new(context, object)); .body(|ui| {
}
if button_response.clicked() {
messages.push(Message::TrackDisplayObject(DisplayObjectHandle::new(
context, object,
)));
}
if let Some(ctr) = object.as_container() {
for child in ctr.iter_render_list() { for child in ctr.iter_render_list() {
self.show_display_tree(ui, context, child, messages); self.show_display_tree(ui, context, child, messages);
} }
} });
}); } else {
if response.header_response.hovered() { self.display_object_button(ui, context, messages, object);
self.hovered_debug_rect = Some(DisplayObjectHandle::new(context, object)); }
};
} }
fn display_object_button<'gc>( fn display_object_button<'gc>(