+
+const DisplayFuncType Window::get_display_callback() const
+{
+ return callbacks.display;
+}
+
+const KeyboardFuncType Window::get_keyboard_callback() const
+{
+ return callbacks.keyboard;
+}
+
+const MouseButtonFuncType Window::get_mouse_button_callback() const
+{
+ return callbacks.button;
+}
+
+const MouseMotionFuncType Window::get_mouse_motion_callback() const
+{
+ return callbacks.motion;
+}
+
+void Window::add_child(Window *win)
+{
+ children.push_back(win);
+ if(win->parent) {
+ win->parent->remove_child(win);
+ }
+ win->parent = this;
+}
+
+void Window::remove_child(Window *win)
+{
+ std::vector<Window*>::iterator it;
+ it = std::find(children.begin(), children.end(), win);
+ if(it != children.end()) {
+ children.erase(it);
+ win->parent = 0;
+ }
+}
+
+const Window *Window::get_parent() const
+{
+ return parent;
+}
+
+Window *Window::get_parent()
+{
+ return parent;
+}