diff options
Diffstat (limited to 'src/gui/widgets')
-rw-r--r-- | src/gui/widgets/windowcontainer.cpp | 20 | ||||
-rw-r--r-- | src/gui/widgets/windowcontainer.h | 3 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/gui/widgets/windowcontainer.cpp b/src/gui/widgets/windowcontainer.cpp index cba565cc4..d420e1183 100644 --- a/src/gui/widgets/windowcontainer.cpp +++ b/src/gui/widgets/windowcontainer.cpp @@ -58,6 +58,26 @@ void WindowContainer::adjustAfterResize(const int oldScreenWidth, } } +void WindowContainer::moveWidgetAfter(gcn::Widget *const after, + gcn::Widget *const widget) +{ + WidgetListIterator widgetIter = std::find( + mWidgets.begin(), mWidgets.end(), widget); + + if (widgetIter == mWidgets.end()) + return; + + WidgetListIterator afterIter = std::find( + mWidgets.begin(), mWidgets.end(), after); + + if (afterIter == mWidgets.end()) + return; + + ++ afterIter; + mWidgets.erase(widgetIter); + mWidgets.insert(afterIter, widget); +} + #ifdef USE_PROFILER void WindowContainer::draw(gcn::Graphics* graphics) { diff --git a/src/gui/widgets/windowcontainer.h b/src/gui/widgets/windowcontainer.h index 3645b94b6..c11d1b238 100644 --- a/src/gui/widgets/windowcontainer.h +++ b/src/gui/widgets/windowcontainer.h @@ -53,6 +53,9 @@ class WindowContainer : public Container void adjustAfterResize(const int oldScreenWidth, const int oldScreenHeight); + void moveWidgetAfter(gcn::Widget *const before, + gcn::Widget *const widget); + #ifdef USE_PROFILER void draw(gcn::Graphics* graphics); #endif |