From bc50666e86d5739ccde633eb630cc75b3e0fcb71 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Tue, 7 Oct 2008 20:35:52 +0000 Subject: libui updates --- src/ui/widget.cc | 50 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 42 insertions(+), 8 deletions(-) (limited to 'src/ui/widget.cc') diff --git a/src/ui/widget.cc b/src/ui/widget.cc index 506d1e7..11d7427 100644 --- a/src/ui/widget.cc +++ b/src/ui/widget.cc @@ -13,18 +13,20 @@ namespace ui { Widget::Widget(Widget *parent) { - widget_parent = parent; widget_visible = true; widget_border = true; widget_background = false; + widget_palette = 0; widget_label.assign("widget"); - if (widget_parent) { - parent->add_child(this); - widget_palette = parent->widget_palette; + if (!parent) { + widget_parent = root(); } else { - widget_palette = 0; + widget_parent = parent; } + + if (widget_parent) + widget_parent->add_child(this); } Widget::~Widget() @@ -52,6 +54,14 @@ void Widget::print(size_t indent) con_print << aux::pad_left(marker, indent*2) << label() << std::endl; } +Palette const *Widget::palette() const { + if (widget_palette) { + return widget_palette; + } else { + return parent()->palette(); + } +} + void Widget::show() { widget_visible = true; @@ -135,6 +145,30 @@ void Widget::remove_child(Widget *child) } } +void Widget::raise() +{ + if (!parent()) + return; + + Children::iterator it = find_child(this); + if (it != parent()->children().end()) { + parent()->children().erase(it); + parent()->children().push_front(this); + } +} + +void Widget::lower() +{ + if (!parent()) + return; + + Children::iterator it = find_child(this); + if (it != parent()->children().end()) { + parent()->children().erase(it); + parent()->children().push_back(this); + } +} + void Widget::event_resize() { resize(); @@ -215,13 +249,13 @@ bool Widget::has_focus() const return (root()->focus() == this); } -void Widget::event_mousecursor(float x, float y) +void Widget::mousemove(float x, float y) {} -void Widget::event_keypress(unsigned int key, unsigned int modifier) +void Widget::keypress(unsigned int key, unsigned int modifier) {} -void Widget::event_keyrelease(unsigned int key, unsigned int modifier) +void Widget::keyrelease(unsigned int key, unsigned int modifier) {} } -- cgit v1.2.3