diff options
author | Thorbjørn Lindeijer <thorbjorn@lindeijer.nl> | 2012-01-21 12:30:36 +0100 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2012-01-30 19:53:07 +0300 |
commit | 8292b80eac900ec5dd75d184063b7b35934e800a (patch) | |
tree | 3ce68afff38d75d0cb1cdb89260f2b49f232e86a /src/gui/gui.cpp | |
parent | 502a0a0163e702af7334979a2eabfc4826a94091 (diff) | |
download | mv-8292b80eac900ec5dd75d184063b7b35934e800a.tar.gz mv-8292b80eac900ec5dd75d184063b7b35934e800a.tar.bz2 mv-8292b80eac900ec5dd75d184063b7b35934e800a.tar.xz mv-8292b80eac900ec5dd75d184063b7b35934e800a.zip |
Allow resizing of the game in windowed mode
Window positions are semi-smartly corrected as a result of the resize.
Not supported when using OpenGL on Windows for now.
Reviewed-by: Yohann Ferreira
Conflicts:
src/client.cpp
src/client.h
src/game.cpp
src/gui/gui.cpp
src/gui/widgets/window.cpp
Diffstat (limited to 'src/gui/gui.cpp')
-rw-r--r-- | src/gui/gui.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 3d79f0cdf..e441111a9 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -99,8 +99,7 @@ Gui::Gui(Graphics *graphics): // Initialize top GUI widget WindowContainer *guiTop = new WindowContainer; guiTop->setFocusable(true); - guiTop->setDimension(gcn::Rectangle(0, 0, - graphics->mWidth, graphics->mHeight)); + guiTop->setSize(graphics->mWidth, graphics->mHeight); guiTop->setOpaque(false); Window::setWindowContainer(guiTop); setTop(guiTop); @@ -287,6 +286,17 @@ void Gui::draw() mGraphics->popClipArea(); } +void Gui::videoResized() +{ + WindowContainer *top = static_cast<WindowContainer*>(getTop()); + + int oldWidth = top->getWidth(); + int oldHeight = top->getHeight(); + + top->setSize(mainGraphics->mWidth, mainGraphics->mHeight); + top->adjustAfterResize(oldWidth, oldHeight); +} + void Gui::setUseCustomCursor(bool customCursor) { if (customCursor != mCustomCursor) |