diff options
author | Max Horn | 2002-09-19 17:44:41 +0000 |
---|---|---|
committer | Max Horn | 2002-09-19 17:44:41 +0000 |
commit | 859ef578dc6faa881cab115fd0059a88b6a5899a (patch) | |
tree | c79215a60053ab0fe7d2966ddfbf7d5511389708 /scumm/dialogs.h | |
parent | f644bea112becce051fb7faa85d2c1bb47c8eee5 (diff) | |
download | scummvm-rg350-859ef578dc6faa881cab115fd0059a88b6a5899a.tar.gz scummvm-rg350-859ef578dc6faa881cab115fd0059a88b6a5899a.tar.bz2 scummvm-rg350-859ef578dc6faa881cab115fd0059a88b6a5899a.zip |
moved the Scumm specific dialogs to scumm/dialogs.*
svn-id: r4973
Diffstat (limited to 'scumm/dialogs.h')
-rw-r--r-- | scumm/dialogs.h | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/scumm/dialogs.h b/scumm/dialogs.h new file mode 100644 index 0000000000..61260ac6ca --- /dev/null +++ b/scumm/dialogs.h @@ -0,0 +1,137 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2002 The ScummVM project + * + * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Header$ + */ + +#ifndef SCUMM_DIALOGS_H +#define SCUMM_DIALOGS_H + +#include "gui/dialog.h" + +class ListWidget; +class Scumm; + +#define RES_STRING(id) queryResString(id) +#define CUSTOM_STRING(id) queryCustomString(id) + +class ScummDialog : public Dialog { +public: + ScummDialog(NewGui *gui, Scumm *scumm, int x, int y, int w, int h) + : Dialog(gui, x, y, w, h), _scumm(scumm) {} + +protected: + Scumm *_scumm; + + void addResText(int x, int y, int w, int h, int resID); + + // Query a string from the resources + const char *queryResString(int stringno); + + // Query a custom string. This is in a seperate method so that we + // can easily localize the messages in the future if we want to. + const char *queryCustomString(int stringno); +}; + +class SaveLoadDialog : public ScummDialog { +public: + SaveLoadDialog(NewGui *gui, Scumm *scumm); + + virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data); + +protected: + ListWidget *_savegameList; +}; + + +class AboutDialog : public ScummDialog { +public: + AboutDialog(NewGui *gui, Scumm *scumm); +}; + +class SoundDialog; +class KeysDialog; +class MiscDialog; + +class OptionsDialog : public ScummDialog { +protected: + AboutDialog *_aboutDialog; + SoundDialog *_soundDialog; + KeysDialog *_keysDialog; + MiscDialog *_miscDialog; + +public: + OptionsDialog(NewGui *gui, Scumm *scumm); + ~OptionsDialog(); + + virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data); +}; + +class PauseDialog : public ScummDialog { +public: + PauseDialog(NewGui *gui, Scumm *scumm); + + virtual void handleMouseDown(int x, int y, int button, int clickCount) + { close(); } + virtual void handleKeyDown(char key, int modifiers) + { + if (key == 32) + close(); + else + Dialog::handleKeyDown(key, modifiers); + } + + // Enforce no transparency! + virtual void setupScreenBuf() {} + virtual void teardownScreenBuf() {} + +}; + + +class SoundDialog : public ScummDialog { +public: + SoundDialog(NewGui *gui, Scumm *scumm); + + enum { + kMasterVolumeChanged = 'mavc', + kMusicVolumeChanged = 'muvc', + kSfxVolumeChanged = 'sfvc', + kOKCmd = 'ok ', + kCancelCmd = 'cncl', + }; + + virtual void open(); + + virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data); + +protected: + + int _soundVolumeMaster; + int _soundVolumeMusic; + int _soundVolumeSfx; + + SliderWidget *masterVolumeSlider; + SliderWidget *musicVolumeSlider; + SliderWidget *sfxVolumeSlider; + + StaticTextWidget *masterVolumeLabel; + StaticTextWidget *musicVolumeLabel; + StaticTextWidget *sfxVolumeLabel; +}; + + +#endif |