Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-10-06 18:22:32 +0000
committerStijn Buys <ingar@osirion.org>2008-10-06 18:22:32 +0000
commita14d80f83aebe75241bf63b4f3ffca3a5d952577 (patch)
treefea36faedd17a0aa620f6d7e781a352327d6065d /src/ui/widget.cc
parent343b0b4298e2d084d5544d3d40a8b7dcb586ce8e (diff)
libui updates, support menu .ini files
Diffstat (limited to 'src/ui/widget.cc')
-rw-r--r--src/ui/widget.cc27
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());
}
}