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-07 20:35:52 +0000
committerStijn Buys <ingar@osirion.org>2008-10-07 20:35:52 +0000
commitbc50666e86d5739ccde633eb630cc75b3e0fcb71 (patch)
treeafad7eb043d6773a7b2a426f4d7b1f600301b5cd /src/ui/widget.cc
parentf54bd48a884e4e3c95818f042a4b2418a6e070a4 (diff)
libui updates
Diffstat (limited to 'src/ui/widget.cc')
-rw-r--r--src/ui/widget.cc50
1 files changed, 42 insertions, 8 deletions
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)
{}
}