diff options
author | Paul Gilbert | 2015-01-01 11:10:26 -1000 |
---|---|---|
committer | Paul Gilbert | 2015-01-01 11:10:26 -1000 |
commit | fe48af7de5207cdc8a3e2ad769f6722b345b2877 (patch) | |
tree | e1217f2ae6fc589a2b66c69a7bfdae1ab740b5bc /engines/xeen/dialogs.cpp | |
parent | 64ccc21cefefa585fe9227f453b5e370e6a62b8b (diff) | |
download | scummvm-rg350-fe48af7de5207cdc8a3e2ad769f6722b345b2877.tar.gz scummvm-rg350-fe48af7de5207cdc8a3e2ad769f6722b345b2877.tar.bz2 scummvm-rg350-fe48af7de5207cdc8a3e2ad769f6722b345b2877.zip |
XEEN: Split up menus file into dialogs and dialogs_options
Diffstat (limited to 'engines/xeen/dialogs.cpp')
-rw-r--r-- | engines/xeen/dialogs.cpp | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/engines/xeen/dialogs.cpp b/engines/xeen/dialogs.cpp new file mode 100644 index 0000000000..1342353b9a --- /dev/null +++ b/engines/xeen/dialogs.cpp @@ -0,0 +1,83 @@ +/* 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. + * + */ + +#include "common/scummsys.h" +#include "xeen/dialogs.h" + +namespace Xeen { + +/** + * Saves the current list of buttons + */ +void Dialog::saveButtons() { + _savedButtons.push(_buttons); +} + +/* + * Clears the current list of defined buttons + */ +void Dialog::clearButtons() { + _buttons.clear(); +} + +void Dialog::restoreButtons() { + _buttons = _savedButtons.pop(); +} + +void Dialog::addButton(const Common::Rect &bounds, char c, SpriteResource *sprites, bool draw = true) { + _buttons.push_back(DialogButton(bounds, c, sprites, draw)); +} + +void Dialog::checkEvents() { + EventsManager &events = *_vm->_events; + events.pollEventsAndWait(); + + if (events._leftButton) { + // Check whether any button is selected + events.debounceMouse(); + Common::Point pt = events._mousePos; + + for (uint i = 0; i < _buttons.size(); ++i) { + if (_buttons[i]._bounds.contains(pt)) { + _key = _buttons[i]._c; + return; + } + } + } else if (events.isKeyPending()) { + Common::KeyState keyState; + events.getKey(keyState); + if (keyState.ascii >= 32 && keyState.ascii <= 127) { + _key = keyState.ascii; + return; + } + } +} + +/*------------------------------------------------------------------------*/ + +void SettingsBaseDialog::showContents(SpriteResource &title1, bool waitFlag) { + checkEvents(); +} + +/*------------------------------------------------------------------------*/ + +} // End of namespace Xeen |