From 76bfcf834d73a9578164842ed5ab8e1eff2814e8 Mon Sep 17 00:00:00 2001 From: athrxx Date: Wed, 16 Nov 2011 19:16:19 +0100 Subject: KYRA: (EOB) - some refactoring --- engines/kyra/gui.h | 159 +++-------------------------------------------------- 1 file changed, 9 insertions(+), 150 deletions(-) (limited to 'engines/kyra/gui.h') diff --git a/engines/kyra/gui.h b/engines/kyra/gui.h index 597f088c0d..efca845482 100644 --- a/engines/kyra/gui.h +++ b/engines/kyra/gui.h @@ -93,118 +93,24 @@ struct Button { uint16 arg; }; -struct MenuItem { - bool enabled; - - const char *itemString; - uint16 itemId; - - int16 x, y; - uint16 width, height; - - uint8 textColor, highlightColor; - - int16 titleX; - - uint8 color1, color2; - uint8 bkgdColor; - - Button::Callback callback; - - int16 saveSlot; - - const char *labelString; - uint16 labelId; - int16 labelX, labelY; - - uint16 keyCode; -}; - -struct Menu { - int16 x, y; - uint16 width, height; - - uint8 bkgdColor; - uint8 color1, color2; - - const char *menuNameString; - uint16 menuNameId; - - uint8 textColor; - int16 titleX, titleY; - - uint8 highlightedItem; - - uint8 numberOfItems; - - int16 scrollUpButtonX, scrollUpButtonY; - int16 scrollDownButtonX, scrollDownButtonY; - - MenuItem item[7]; -}; - class Screen; class TextDisplayer; -class GUI_v1 { +class GUI { public: - GUI_v1(KyraEngine_v1 *vm); - virtual ~GUI_v1() {} + GUI(KyraEngine_v1 *vm); + virtual ~GUI(); // button specific - virtual Button *addButtonToList(Button *list, Button *newButton); - virtual void processButton(Button *button) = 0; virtual int processButtonList(Button *buttonList, uint16 inputFlags, int8 mouseWheel) = 0; - virtual int redrawShadedButtonCallback(Button *button); - virtual int redrawButtonCallback(Button *button); - - // menu specific - virtual void initMenuLayout(Menu &menu); - void initMenu(Menu &menu); - - void processHighlights(Menu &menu); - // utilities for thumbnail creation virtual void createScreenThumbnail(Graphics::Surface &dst) = 0; protected: KyraEngine_v1 *_vm; Screen *_screen; - TextDisplayer *_text; - - Button *_menuButtonList; - bool _displayMenu; - bool _displaySubMenu; - bool _cancelSubMenu; - - virtual void printMenuText(const char *str, int x, int y, uint8 c0, uint8 c1, uint8 c2); - virtual int getMenuCenterStringX(const char *str, int x1, int x2); - - Button::Callback _redrawShadedButtonFunctor; - Button::Callback _redrawButtonFunctor; - - virtual Button *getButtonListData() = 0; - virtual Button *getScrollUpButton() = 0; - virtual Button *getScrollDownButton() = 0; - - virtual Button::Callback getScrollUpButtonHandler() const = 0; - virtual Button::Callback getScrollDownButtonHandler() const = 0; - - virtual uint8 defaultColor1() const = 0; - virtual uint8 defaultColor2() const = 0; - - virtual const char *getMenuTitle(const Menu &menu) = 0; - virtual const char *getMenuItemTitle(const MenuItem &menuItem) = 0; - virtual const char *getMenuItemLabel(const MenuItem &menuItem) = 0; - - void updateAllMenuButtons(); - void updateMenuButton(Button *button); - virtual void updateButton(Button *button); - - void redrawText(const Menu &menu); - void redrawHighlight(const Menu &menu); // The engine expects a list of contiguous savegame indices. // Since ScummVM's savegame indices aren't, we re-index them. @@ -212,65 +118,18 @@ protected: Common::Array _saveSlots; void updateSaveList(bool excludeQuickSaves = false); int getNextSavegameSlot(); + void updateSavegameList(); virtual void sortSaveSlots(); uint32 _lastScreenUpdate; - Common::KeyState _keyPressed; - void checkTextfieldInput(); -}; - -class Movie; + char **_savegameList; + int _savegameListSize; + bool _savegameListUpdateNeeded; -class MainMenu { -public: - MainMenu(KyraEngine_v1 *vm); - virtual ~MainMenu() {} - - struct Animation { - Animation() : anim(0), startFrame(0), endFrame(0), delay(0) {} - - Movie *anim; - int startFrame; - int endFrame; - int delay; - }; - - struct StaticData { - const char *strings[5]; - - uint8 menuTable[7]; - uint8 colorTable[4]; - - Screen::FontId font; - uint8 altColor; - }; - - void init(StaticData data, Animation anim); - int handle(int dim); -private: - KyraEngine_v1 *_vm; - Screen *_screen; - OSystem *_system; - - StaticData _static; - struct AnimIntern { - int curFrame; - int direction; - }; - Animation _anim; - AnimIntern _animIntern; - - uint32 _nextUpdate; - - void updateAnimation(); - void draw(int select); - void drawBox(int x, int y, int w, int h, int fill); - bool getInput(); - - void printString(const char *string, int x, int y, int col1, int col2, int flags, ...) GCC_PRINTF(2, 8); + Common::KeyState _keyPressed; }; -} // end of namesapce Kyra +} // End of namespace Kyra #endif -- cgit v1.2.3