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-12 17:27:00 +0000
committerStijn Buys <ingar@osirion.org>2008-10-12 17:27:00 +0000
commit574bf11742c40203a4433c0b69264014b10b5a96 (patch)
tree5fdaa40d22c38e5d8cce47d43a1a892008322598 /src/ui/window.cc
parentb417df720584c101f3799874a0c836a543a8d0a8 (diff)
container widget
Diffstat (limited to 'src/ui/window.cc')
-rw-r--r--src/ui/window.cc51
1 files changed, 16 insertions, 35 deletions
diff --git a/src/ui/window.cc b/src/ui/window.cc
index 4a60056..e79262f 100644
--- a/src/ui/window.cc
+++ b/src/ui/window.cc
@@ -10,19 +10,24 @@
namespace ui
{
-Window::Window(Window *parent) : Widget(static_cast<Widget *>(parent))
+Window::Window(Widget *parent) : Widget(parent)
{
set_label("window");
set_border(true);
-
- if (parent) {
- parent->add_window(this);
- }
+ set_background(true);
+
+ set_focus();
}
Window::~Window()
{
- window_children.clear();
+}
+
+void Window::show() {
+ resize();
+ Widget::show();
+ raise();
+ set_focus();
}
void Window::set_previous(Window *previous)
@@ -40,36 +45,12 @@ void Window::draw_border()
if (!border())
return;
- paint::color(palette()->foreground());
- paint::border(global_location(), size());
-}
-
-Window::Windows::iterator Window::find_window(Window *window)
-{
- Windows::iterator it;
- for (it = window_children.begin(); it != window_children.end(); it++) {
- if ((*it) == window)
- return it;
- }
-
- return it;
-}
-
-void Window::add_window(Window *window)
-{
- Windows::iterator it = find_window(window);
- if (it == window_children.end()) {
- window_children.push_back(window);
- }
-}
-
-void Window::remove_window(Window *window)
-{
- Windows::iterator it = find_window(window);
- if (it != window_children.end()) {
- remove_child(*it);
- window_children.erase(it);
+ if(focus()) {
+ paint::color(palette()->foreground());
+ } else {
+ paint::color(palette()->border());
}
+ paint::border(global_location(), size());
}
}