1
0
Fork 0
forked from wry/wry

tree: move common code out of ToplevelNode trait

This commit is contained in:
Julian Orth 2024-02-21 14:03:33 +01:00
parent 8430278264
commit 1d1d542839
12 changed files with 100 additions and 90 deletions

View file

@ -11,7 +11,7 @@ use {
text::{self, TextTexture},
tree::{
Direction, FindTreeResult, FoundNode, Node, NodeId, NodeVisitor, ToplevelData,
ToplevelNode,
ToplevelNode, ToplevelNodeBase,
},
utils::{errorfmt::ErrorFmt, smallmap::SmallMap},
},
@ -145,17 +145,11 @@ impl Node for PlaceholderNode {
}
}
impl ToplevelNode for PlaceholderNode {
tl_node_impl!();
impl ToplevelNodeBase for PlaceholderNode {
fn tl_data(&self) -> &ToplevelData {
&self.toplevel
}
fn tl_default_focus_child(&self) -> Option<Rc<dyn Node>> {
None
}
fn tl_change_extents_impl(self: Rc<Self>, rect: &Rect) {
self.toplevel.pos.set(*rect);
if let Some(p) = self.toplevel.parent.get() {
@ -171,12 +165,15 @@ impl ToplevelNode for PlaceholderNode {
});
}
fn tl_set_visible(&self, visible: bool) {
self.toplevel.set_visible(self, visible);
fn tl_set_visible_impl(&self, _visible: bool) {
// nothing
}
fn tl_destroy(&self) {
self.toplevel.destroy_node(self);
fn tl_destroy_impl(&self) {
self.destroyed.set(true);
}
fn tl_last_active_child(self: Rc<Self>) -> Rc<dyn ToplevelNode> {
self
}
}