diff options
Diffstat (limited to 'gui/newgui.h')
-rw-r--r-- | gui/newgui.h | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/gui/newgui.h b/gui/newgui.h deleted file mode 100644 index c2ec61dd34..0000000000 --- a/gui/newgui.h +++ /dev/null @@ -1,151 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - */ - -#ifndef NEWGUI_H -#define NEWGUI_H - -#include "common/scummsys.h" -#include "common/singleton.h" -#include "common/stack.h" -#include "common/str.h" -#include "graphics/fontman.h" - -#include "gui/widget.h" - -#include "gui/ThemeEngine.h" - -class OSystem; - -namespace GUI { - -class Dialog; -class Eval; -class ThemeEval; - -#define g_gui (GUI::GuiManager::instance()) - - -// Height of a single text line -#define kLineHeight (g_gui.getFontHeight() + 2) - - - -// Simple dialog stack class -// Anybody nesting dialogs deeper than 4 is mad anyway -typedef Common::FixedStack<Dialog *> DialogStack; - - -/** - * GUI manager singleton. - */ -class GuiManager : public Common::Singleton<GuiManager> { - friend class Dialog; - friend class Common::Singleton<SingletonBaseType>; - GuiManager(); - ~GuiManager(); -public: - - // Main entry for the GUI: this will start an event loop that keeps running - // until no dialogs are active anymore. - void runLoop(); - - bool isActive() const { return ! _dialogStack.empty(); } - - bool loadNewTheme(Common::String file, ThemeEngine::GraphicsMode gfx = ThemeEngine::kGfxDisabled); - ThemeEngine *theme() { return _theme; } - - ThemeEval *xmlEval() { return _theme->getEvaluator(); } - - const Graphics::Font &getFont(ThemeEngine::FontStyle style = ThemeEngine::kFontStyleBold) const { return *(_theme->getFont(style)); } - int getFontHeight(ThemeEngine::FontStyle style = ThemeEngine::kFontStyleBold) const { return _theme->getFontHeight(style); } - int getStringWidth(const Common::String &str, ThemeEngine::FontStyle style = ThemeEngine::kFontStyleBold) const { return _theme->getStringWidth(str, style); } - int getCharWidth(byte c, ThemeEngine::FontStyle style = ThemeEngine::kFontStyleBold) const { return _theme->getCharWidth(c, style); } - - /** - * Tell the GuiManager to check whether the screen resolution has changed. - * If that is the case, the GuiManager will reload/refresh the active theme. - * - * @return true if the a screen change indeed occurred, false otherwise - */ - bool checkScreenChange(); - -protected: - enum RedrawStatus { - kRedrawDisabled = 0, - kRedrawOpenDialog, - kRedrawCloseDialog, - kRedrawTopDialog, - kRedrawFull - }; - - - - OSystem *_system; - - ThemeEngine *_theme; - -// bool _needRedraw; - RedrawStatus _redrawStatus; - int _lastScreenChangeID; - DialogStack _dialogStack; - - bool _stateIsSaved; - - bool _useStdCursor; - - // position and time of last mouse click (used to detect double clicks) - struct { - int16 x, y; // Position of mouse when the click occured - uint32 time; // Time - int count; // How often was it already pressed? - } _lastClick; - - // mouse cursor state - int _cursorAnimateCounter; - int _cursorAnimateTimer; - byte _cursor[2048]; - - bool _themeChange; - - void saveState(); - void restoreState(); - - void openDialog(Dialog *dialog); - void closeTopDialog(); - - void redraw(); - - void loop(); - - void setupCursor(); - void animateCursor(); - - Dialog *getTopDialog() const; - - void screenChange(); -}; - -} // End of namespace GUI - -#endif |