summaryrefslogtreecommitdiff
path: root/src/gui/widgets/window.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/widgets/window.cpp')
-rw-r--r--src/gui/widgets/window.cpp24
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());