diff options
Diffstat (limited to 'src/gui/widgets/window.cpp')
-rw-r--r-- | src/gui/widgets/window.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/gui/widgets/window.cpp b/src/gui/widgets/window.cpp index 7de09994..87051686 100644 --- a/src/gui/widgets/window.cpp +++ b/src/gui/widgets/window.cpp @@ -687,6 +687,19 @@ Layout &Window::getLayout() return *mLayout; } +void Window::clearLayout() +{ + clear(); // This removes widgets from the container + + while (!mWidgets.empty()) + delete mWidgets.front(); + + if (!mLayout) + delete mLayout; + mLayout = new Layout; + +} + LayoutCell &Window::place(int x, int y, gcn::Widget *wg, int w, int h) { add(wg); @@ -707,6 +720,17 @@ void Window::reflowLayout(int w, int h) setContentSize(w, h); } +void Window::redraw() +{ + if (mLayout) + { + const gcn::Rectangle area = getChildrenArea(); + int w = area.width; + int h = area.height; + mLayout->reflow(w, h); + } +} + void Window::center() { setLocationRelativeTo(getParent()); |