aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/menus.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/xeen/menus.h')
-rw-r--r--engines/xeen/menus.h25
1 files changed, 19 insertions, 6 deletions
diff --git a/engines/xeen/menus.h b/engines/xeen/menus.h
index 774c7cfcb9..07a7bb7e8d 100644
--- a/engines/xeen/menus.h
+++ b/engines/xeen/menus.h
@@ -45,14 +45,17 @@ public:
class Dialog {
private:
- Common::Array<DialogButton> _buttons;
Common::Stack< Common::Array<DialogButton> > _savedButtons;
protected:
XeenEngine *_vm;
+ Common::Array<DialogButton> _buttons;
+ char _key;
virtual void doScroll(bool drawFlag, bool doFade) = 0;
+
+ void checkEvents();
public:
- Dialog(XeenEngine *vm): _vm(vm) {}
+ Dialog(XeenEngine *vm): _vm(vm), _key('\0') {}
void saveButtons();
@@ -63,17 +66,23 @@ public:
void addButton(const Common::Rect &bounds, char c, SpriteResource *sprites, bool d);
};
-class OptionsMenu: public Dialog {
+class SettingsBaseDialog : public Dialog {
+protected:
+ virtual void showContents(SpriteResource &title1, bool mode);
+public:
+ SettingsBaseDialog(XeenEngine *vm) : Dialog(vm) {}
+};
+class OptionsMenu : public SettingsBaseDialog {
private:
void execute();
protected:
- OptionsMenu(XeenEngine *vm) : Dialog(vm) {}
+ OptionsMenu(XeenEngine *vm) : SettingsBaseDialog(vm) {}
protected:
virtual void startup(Common::String &title1, Common::String &title2);
virtual void setBackground() {}
- virtual void showTitles1(const Common::String &title);
+ virtual void showTitles1(SpriteResource &sprites);
virtual void showTitles2();
@@ -103,6 +112,8 @@ public:
};
class WorldOptionsMenu : public DarkSideOptionsMenu {
+private:
+ int _bgFrame;
protected:
virtual void startup(Common::String &title1, Common::String &title2);
@@ -113,8 +124,10 @@ protected:
virtual void setupButtons(SpriteResource *buttons);
virtual void openWindow();
+
+ virtual void showContents(SpriteResource &title1, bool mode);
public:
- WorldOptionsMenu(XeenEngine *vm) : DarkSideOptionsMenu(vm) {}
+ WorldOptionsMenu(XeenEngine *vm) : DarkSideOptionsMenu(vm), _bgFrame(0) {}
};
} // End of namespace Xeen