diff options
Diffstat (limited to 'lib/glwidgets.cc')
-rw-r--r-- | lib/glwidgets.cc | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/glwidgets.cc b/lib/glwidgets.cc index b381092..56b8e2f 100644 --- a/lib/glwidgets.cc +++ b/lib/glwidgets.cc @@ -3,8 +3,38 @@ #include "glfont.h" #include "glwidgets.h" +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifndef _ +#define _(x) x +#endif + mogltk::widget::widget() { } +mogltk::widget::widget(widget * _father, int _x, int _y, int _sx, int _sy) throw (GeneralException) : + x(_x), y(_y), sx(_sx), sy(_sy), father(_father) { + if (!father) + throw GeneralException(_("No father. Only root can be adam.")); + + next = father->child; + prev = 0; + father->child = this; + child = 0; + root = father->root; +} + mogltk::widget::~widget() { + while(child) + delete child; + + if (prev) + prev->next = next; + else if (father) + father->child = next; + + if (next) + next->prev = prev; } |