(svn r10723) -Codechange: dynamically sized (width) main toolbars and status bar for when the window becomes less than 640 pixels in width.

This commit is contained in:
rubidium
2007-07-29 15:48:43 +00:00
parent 9e918b7980
commit 39a2f2f4a8
2 changed files with 172 additions and 59 deletions

View File

@@ -21,6 +21,7 @@
#include "texteff.hpp"
#include "blitter/factory.hpp"
#include "video/video_driver.hpp"
#include "window.h"
byte _dirkeys; ///< 1 = left, 2 = up, 4 = right, 8 = down
bool _fullscreen;
@@ -1147,11 +1148,28 @@ void SetAnimatedMouseCursor(const AnimCursor *table)
SwitchAnimatedCursor();
}
bool ChangeResInGame(int w, int h)
bool ChangeResInGame(int width, int height)
{
return
(_screen.width == w && _screen.height == h) ||
_video_driver->ChangeResolution(w, h);
bool ret = (_screen.width == width && _screen.height == height) || _video_driver->ChangeResolution(width, height);
int new_width = min(_screen.width, 640);
Window *w = FindWindowById(WC_MAIN_TOOLBAR, 0);
if (w != NULL && new_width != w->width) {
ResizeWindow(w, new_width - w->width, 0);
Window *w2 = FindWindowById(WC_STATUS_BAR, 0);
if (w2 != NULL) ResizeWindow(w2, max(new_width, 320) - w2->width, 0);
WindowEvent e;
e.event = WE_RESIZE;
e.we.sizing.size.x = w->width;
e.we.sizing.size.y = w->height;
e.we.sizing.diff.x = new_width - w->width;
e.we.sizing.diff.y = 0;
w->wndproc(w, &e);
}
return ret;
}
void ToggleFullScreen(bool fs)