diff options
author | Stijn Buys <ingar@osirion.org> | 2008-10-06 18:22:32 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-10-06 18:22:32 +0000 |
commit | a14d80f83aebe75241bf63b4f3ffca3a5d952577 (patch) | |
tree | fea36faedd17a0aa620f6d7e781a352327d6065d /src/ui/widget.cc | |
parent | 343b0b4298e2d084d5544d3d40a8b7dcb586ce8e (diff) |
libui updates, support menu .ini files
Diffstat (limited to 'src/ui/widget.cc')
-rw-r--r-- | src/ui/widget.cc | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/src/ui/widget.cc b/src/ui/widget.cc index 94260cb..068d60f 100644 --- a/src/ui/widget.cc +++ b/src/ui/widget.cc @@ -19,8 +19,8 @@ Widget::Widget(Widget *parent) { widget_label.assign("widget"); if (widget_parent) { - widget_palette = parent->widget_palette; parent->add_child(this); + widget_palette = parent->widget_palette; } else { widget_palette = 0; } @@ -28,30 +28,29 @@ Widget::Widget(Widget *parent) { Widget::~Widget() { - if (widget_parent) { - widget_parent->remove_child(this); - } - for (Children::iterator it = widget_children.begin(); it != widget_children.end(); it++) { - (*it)->widget_parent = 0; delete (*it); + (*it) = 0; } - widget_children.clear(); } size_t Widget::list(size_t indent) { + print(indent); size_t n = 1; - std::string marker(""); - con_print << aux::pad_left(marker, indent*2) << label() << " " << (size_t)(this) << std::endl; - for (Children::iterator it = widget_children.begin(); it != widget_children.end(); it++) { n += (*it)->list(indent+1); } return n; } +void Widget::print(size_t indent) +{ + std::string marker(""); + con_print << aux::pad_left(marker, indent*2) << label() << std::endl; +} + void Widget::show() { widget_visible = true; @@ -128,9 +127,9 @@ void Widget::add_child(Widget *child) void Widget::remove_child(Widget *child) { - Children::iterator it = find_child(child); if (it != widget_children.end()) { + delete (*it); widget_children.erase(it); } } @@ -172,8 +171,7 @@ void Widget::draw_background() if (palette()) render::gl::color(palette()->background()); - math::Vector2f v(to_global(location())); - render::primitives::rectangle(v, size()); + render::primitives::rectangle(global_location(), size()); } void Widget::draw_border() @@ -183,8 +181,7 @@ void Widget::draw_border() if (palette()) render::gl::color(palette()->border()); - math::Vector2f v(to_global(location())); - render::primitives::border(v, size()); + render::primitives::border(global_location(), size()); } } |