diff options
Diffstat (limited to 'gui')
-rw-r--r-- | gui/Key.cpp | 34 | ||||
-rw-r--r-- | gui/Key.h | 17 | ||||
-rw-r--r-- | gui/KeysDialog.cpp | 11 | ||||
-rw-r--r-- | gui/ListWidget.cpp | 19 | ||||
-rw-r--r-- | gui/PopUpWidget.cpp | 15 | ||||
-rw-r--r-- | gui/TabWidget.cpp | 32 | ||||
-rw-r--r-- | gui/TabWidget.h | 29 | ||||
-rw-r--r-- | gui/about.cpp | 28 | ||||
-rw-r--r-- | gui/console.cpp | 38 | ||||
-rw-r--r-- | gui/credits.h | 4 | ||||
-rw-r--r-- | gui/dialog.cpp | 3 | ||||
-rw-r--r-- | gui/editable.cpp | 19 | ||||
-rw-r--r-- | gui/launcher.cpp | 25 | ||||
-rw-r--r-- | gui/massadd.cpp | 5 | ||||
-rw-r--r-- | gui/message.cpp | 5 | ||||
-rw-r--r-- | gui/newgui.cpp | 3 | ||||
-rw-r--r-- | gui/options.cpp | 14 | ||||
-rw-r--r-- | gui/theme-config.cpp | 39 | ||||
-rw-r--r-- | gui/theme.h | 2 | ||||
-rw-r--r-- | gui/themes/classic080.ini | 154 | ||||
-rw-r--r-- | gui/themes/modern.ini | 67 |
21 files changed, 290 insertions, 273 deletions
diff --git a/gui/Key.cpp b/gui/Key.cpp index 3d6fe9f05b..92c703ef09 100644 --- a/gui/Key.cpp +++ b/gui/Key.cpp @@ -32,34 +32,40 @@ Key::Key() : _ascii(0), _keycode(0), _flags(0) { } +Key::Key(int ascii) : +_ascii(ascii), _keycode(ascii), _flags(0) { +} + Key::Key(int ascii, int keycode, int flags) : _ascii(ascii), _keycode(keycode), _flags(flags) { } -int Key::ascii() { - return _ascii; +void Key::setKey(int ascii) { + _ascii = ascii; + _keycode = ascii; } -int Key::keycode() { - return _keycode; +void Key::setKey(int ascii, int keycode) { + _ascii = ascii; + _keycode = keycode; } -int Key::flags() { - return _flags; +void Key::setKey(int ascii, int keycode, int flags) { + _ascii = ascii; + _keycode = keycode; + _flags = flags; } - -void Key::setAscii(int ascii) { - _ascii = ascii; - _keycode = ascii; // default +int Key::ascii() { + return _ascii; } -void Key::setKeycode(int keycode) { - _keycode = keycode; +int Key::keycode() { + return _keycode; } -void Key::setFlags(int flags) { - _flags = flags; +int Key::flags() { + return _flags; } } // namespace GUI @@ -32,13 +32,22 @@ namespace GUI { +// TODO/FIXME: Make use of Common::KeyState from common/keyboard.h, +// or even better, just completely replace this by it. +// To be able to do that, though, the code using GUI::Key would need to +// be adopted -- right now it uses SDL keycodes, and uses SDL_PushEvent +// to generated fake events. + class Key { public: - Key(int ascii, int keycode = 0, int flags = 0); + Key(int ascii); + Key(int ascii, int keycode, int flags = 0); Key(); - void setAscii(int ascii); - void setKeycode(int keycode); - void setFlags(int flags); + + void setKey(int ascii); + void setKey(int ascii, int keycode); + void setKey(int ascii, int keycode, int flags); + int ascii(); int keycode(); int flags(); diff --git a/gui/KeysDialog.cpp b/gui/KeysDialog.cpp index 6093af684d..33d09e4e69 100644 --- a/gui/KeysDialog.cpp +++ b/gui/KeysDialog.cpp @@ -77,8 +77,8 @@ void KeysDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) { uint16 key = Actions::Instance()->getMapping(_actionsList->getSelected()); #ifdef __SYMBIAN32__ // ScummVM mappings for F1-F9 are different from SDL so remap back to sdl - if (key >= 315 && key <= 323) - key = key - 315 + SDLK_F1; + if (key >= Common::ASCII_F1 && key <= Common::ASCII_F9) + key = key - Common::ASCII_F1 + SDLK_F1; #endif if (key != 0) sprintf(selection, "Associated key : %s", SDL_GetKeyName((SDLKey)key)); @@ -92,16 +92,15 @@ void KeysDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) { case kMapCmd: if (_actionsList->getSelected() < 0) { _actionTitle->setLabel("Please select an action"); - } - else { + } else { char selection[100]; _actionSelected = _actionsList->getSelected(); uint16 key = Actions::Instance()->getMapping(_actionSelected); #ifdef __SYMBIAN32__ // ScummVM mappings for F1-F9 are different from SDL so remap back to sdl - if (key >= 315 && key <= 323) - key = key - 315 + SDLK_F1; + if (key >= Common::ASCII_F1 && key <= Common::ASCII_F9) + key = key - Common::ASCII_F1 + SDLK_F1; #endif if (key != 0) sprintf(selection, "Associated key : %s", SDL_GetKeyName((SDLKey)key)); diff --git a/gui/ListWidget.cpp b/gui/ListWidget.cpp index 9d7494115b..271cbccd94 100644 --- a/gui/ListWidget.cpp +++ b/gui/ListWidget.cpp @@ -24,6 +24,7 @@ #include "common/stdafx.h" #include "common/system.h" +#include "common/events.h" #include "gui/ListWidget.h" #include "gui/ScrollBarWidget.h" #include "gui/dialog.h" @@ -231,39 +232,39 @@ bool ListWidget::handleKeyDown(uint16 ascii, int keycode, int modifiers) { // not editmode switch (keycode) { - case '\n': // enter/return - case '\r': + case Common::KEYCODE_RETURN: + case Common::KEYCODE_KP_ENTER: if (_selectedItem >= 0) { // override continuous enter keydown - if (_editable && (_currentKeyDown != '\n' && _currentKeyDown != '\r')) { + if (_editable && (_currentKeyDown != Common::KEYCODE_RETURN && _currentKeyDown != Common::KEYCODE_KP_ENTER)) { dirty = true; startEditMode(); } else sendCommand(kListItemActivatedCmd, _selectedItem); } break; - case 256+17: // up arrow + case Common::KEYCODE_UP: if (_selectedItem > 0) _selectedItem--; break; - case 256+18: // down arrow + case Common::KEYCODE_DOWN: if (_selectedItem < (int)_list.size() - 1) _selectedItem++; break; - case 256+24: // pageup + case Common::KEYCODE_PAGEUP: _selectedItem -= _entriesPerPage - 1; if (_selectedItem < 0) _selectedItem = 0; break; - case 256+25: // pagedown + case Common::KEYCODE_PAGEDOWN: _selectedItem += _entriesPerPage - 1; if (_selectedItem >= (int)_list.size() ) _selectedItem = _list.size() - 1; break; - case 256+22: // home + case Common::KEYCODE_HOME: _selectedItem = 0; break; - case 256+23: // end + case Common::KEYCODE_END: _selectedItem = _list.size() - 1; break; default: diff --git a/gui/PopUpWidget.cpp b/gui/PopUpWidget.cpp index 1bdce8a24e..d40a01c981 100644 --- a/gui/PopUpWidget.cpp +++ b/gui/PopUpWidget.cpp @@ -24,6 +24,7 @@ #include "common/stdafx.h" #include "common/system.h" +#include "common/events.h" #include "gui/dialog.h" #include "gui/eval.h" #include "gui/newgui.h" @@ -210,7 +211,7 @@ void PopUpDialog::handleMouseMoved(int x, int y, int button) { } void PopUpDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) { - if (keycode == 27) { // escape + if (keycode == Common::KEYCODE_ESCAPE) { // Don't change the previous selection setResult(-1); close(); @@ -221,21 +222,21 @@ void PopUpDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) { return; switch (keycode) { - case '\n': // enter/return - case '\r': + case Common::KEYCODE_RETURN: + case Common::KEYCODE_KP_ENTER: setResult(_selection); close(); break; - case 256+17: // up arrow + case Common::KEYCODE_UP: moveUp(); break; - case 256+18: // down arrow + case Common::KEYCODE_DOWN: moveDown(); break; - case 256+22: // home + case Common::KEYCODE_HOME: setSelection(0); break; - case 256+23: // end + case Common::KEYCODE_END: setSelection(_popUpBoss->_entries.size()-1); break; } diff --git a/gui/TabWidget.cpp b/gui/TabWidget.cpp index 8159147c83..38ea6229ec 100644 --- a/gui/TabWidget.cpp +++ b/gui/TabWidget.cpp @@ -114,6 +114,38 @@ int TabWidget::addTab(const String &title) { return _activeTab; } +void TabWidget::removeTab(int tabID) { + assert(0 <= tabID && tabID < (int)_tabs.size()); + + // Deactive the tab if it's currently the active one + if (tabID == _activeTab) { + _tabs[tabID].firstWidget = _firstWidget; + releaseFocus(); + _firstWidget = 0; + } + + // Dispose the widgets in that tab and then the tab itself + delete _tabs[tabID].firstWidget; + _tabs.remove_at(tabID); + + // Adjust _firstVisibleTab if necessary + if (_firstVisibleTab >= (int)_tabs.size()) { + _firstVisibleTab = MAX(0, (int)_tabs.size() - 1); + } + + // The active tab was removed, so select a new active one (if any remains) + if (tabID == _activeTab) { + _activeTab = -1; + if (tabID >= (int)_tabs.size()) + tabID = _tabs.size() - 1; + if (tabID >= 0) + setActiveTab(tabID); + } + + // Finally trigger a redraw + _boss->draw(); +} + void TabWidget::setActiveTab(int tabID) { assert(0 <= tabID && tabID < (int)_tabs.size()); if (_activeTab != tabID) { diff --git a/gui/TabWidget.h b/gui/TabWidget.h index bb836e0999..928f7916b6 100644 --- a/gui/TabWidget.h +++ b/gui/TabWidget.h @@ -62,18 +62,25 @@ public: void init(); - virtual int16 getChildY() const; - - // Problem: how to add items to a tab? - // First off, widget should allow non-dialog bosses, (i.e. also other widgets) - // Could add a common base class for Widgets and Dialogs. - // Then you add tabs using the following method, which returns a unique ID + /** + * Add a new tab with the given title. Returns a unique ID which can be used + * to identify the tab (to remove it / activate it etc.). + */ int addTab(const String &title); - // Maybe we need to remove tabs again? Hm - //void removeTab(int tabID); + /** + * Remove the tab with the given tab ID. Disposes all child widgets of that tab. + * TODO: This code is *unfinished*. In particular, it changes the + * tabIDs, so that they are not unique anymore! This is bad. + * If we need to, we could fix this by changing the tab IDs from being an index + * into the _tabs array to a real "unique" ID, which gets stored in the Tab struct. + * It won't be difficult to implement this, but since currently no code seems to make + * use of the feature... + */ + void removeTab(int tabID); - /** Set the active tab by specifying a valid tab ID. + /** + * Set the active tab by specifying a valid tab ID. * setActiveTab changes the value of _firstWidget. This means new * Widgets are always added to the active tab. */ @@ -88,6 +95,10 @@ public: virtual void draw(); protected: + // We overload getChildY to make sure child widgets are positioned correctly. + // Essentially this compensates for the space taken up by the tab title header. + virtual int16 getChildY() const; + virtual void drawWidget(bool hilite); virtual Widget *findWidget(int x, int y); diff --git a/gui/about.cpp b/gui/about.cpp index 2098d91aae..31381cadd5 100644 --- a/gui/about.cpp +++ b/gui/about.cpp @@ -55,13 +55,24 @@ enum { // // TODO: Add different font sizes (for bigger headlines) // TODO: Allow color change in the middle of a line... + +static const char *copyright_text[] = { +"\\C""", +"\\C""Copyright (C) 2002-2007 The ScummVM project", +"\\C""http://www.scummvm.org", +"\\C""", +"\\C""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 binary.", +"\\C""", +}; + static const char *gpl_text[] = { +"\\C""", "\\C""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.", "\\C""", "\\C""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.", "\\C""", "\\C""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.", -"\\C""" +"\\C""", }; #include "gui/credits.h" @@ -107,11 +118,8 @@ AboutDialog::AboutDialog() date += ')'; _lines.push_back(date); - - addLine(""); - addLine("\\C""Copyright (C) 2002-2006 The ScummVM project"); - addLine("\\C""http://www.scummvm.org"); - addLine(""); + for (i = 0; i < ARRAYSIZE(copyright_text); i++) + addLine(copyright_text[i]); addLine("\\C\\c1""Features compiled in:"); Common::String features("\\C"); @@ -136,16 +144,14 @@ AboutDialog::AboutDialog() //addLine(""); } + for (i = 0; i < ARRAYSIZE(gpl_text); i++) + addLine(gpl_text[i]); + _lines.push_back(""); for (i = 0; i < ARRAYSIZE(credits); i++) addLine(credits[i]); - _lines.push_back(""); - - for (i = 0; i < ARRAYSIZE(gpl_text); i++) - addLine(gpl_text[i]); - // Center the dialog _x = (screenW - _w) / 2; _y = (screenH - _h) / 2; diff --git a/gui/console.cpp b/gui/console.cpp index 9186c7b405..b7c257d3ce 100644 --- a/gui/console.cpp +++ b/gui/console.cpp @@ -265,8 +265,8 @@ void ConsoleDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) { return; switch (keycode) { - case '\n': // enter/return - case '\r': { + case Common::KEYCODE_RETURN: + case Common::KEYCODE_KP_ENTER: { if (_caretVisible) drawCaret(true); @@ -307,10 +307,10 @@ void ConsoleDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) { slideUpAndClose(); break; } - case 27: // escape + case Common::KEYCODE_ESCAPE: slideUpAndClose(); break; - case 8: // backspace + case Common::KEYCODE_BACKSPACE: if (_caretVisible) drawCaret(true); @@ -321,7 +321,7 @@ void ConsoleDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) { scrollToCurrent(); drawLine(pos2line(_currentPos)); break; - case 9: // tab + case Common::KEYCODE_TAB: { if (_completionCallbackProc) { int len = _currentPos - _promptStartPos; @@ -346,11 +346,11 @@ void ConsoleDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) { } break; } - case 127: + case Common::KEYCODE_DELETE: killChar(); drawLine(pos2line(_currentPos)); break; - case 256 + 24: // pageup + case Common::KEYCODE_PAGEUP: if (modifiers == Common::KBD_SHIFT) { _scrollLine -= _linesPerPage - 1; if (_scrollLine < _firstLineInBuffer + _linesPerPage - 1) @@ -359,7 +359,7 @@ void ConsoleDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) { draw(); } break; - case 256 + 25: // pagedown + case Common::KEYCODE_PAGEDOWN: if (modifiers == Common::KBD_SHIFT) { _scrollLine += _linesPerPage - 1; if (_scrollLine > _promptEndPos / kCharsPerLine) { @@ -371,7 +371,7 @@ void ConsoleDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) { draw(); } break; - case 256 + 22: // home + case Common::KEYCODE_HOME: if (modifiers == Common::KBD_SHIFT) { _scrollLine = _firstLineInBuffer + _linesPerPage - 1; updateScrollBuffer(); @@ -380,7 +380,7 @@ void ConsoleDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) { } draw(); break; - case 256 + 23: // end + case Common::KEYCODE_END: if (modifiers == Common::KBD_SHIFT) { _scrollLine = _promptEndPos / kCharsPerLine; if (_scrollLine < _linesPerPage - 1) @@ -391,18 +391,18 @@ void ConsoleDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) { } draw(); break; - case 273: // cursor up + case Common::KEYCODE_UP: historyScroll(+1); break; - case 274: // cursor down + case Common::KEYCODE_DOWN: historyScroll(-1); break; - case 275: // cursor right + case Common::KEYCODE_RIGHT: if (_currentPos < _promptEndPos) _currentPos++; drawLine(pos2line(_currentPos)); break; - case 276: // cursor left + case Common::KEYCODE_LEFT: if (_currentPos > _promptStartPos) _currentPos--; drawLine(pos2line(_currentPos)); @@ -446,25 +446,25 @@ void ConsoleDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data void ConsoleDialog::specialKeys(int keycode) { switch (keycode) { - case 'a': + case Common::KEYCODE_a: _currentPos = _promptStartPos; draw(); break; - case 'd': + case Common::KEYCODE_d: if (_currentPos < _promptEndPos) { killChar(); draw(); } break; - case 'e': + case Common::KEYCODE_e: _currentPos = _promptEndPos; draw(); break; - case 'k': + case Common::KEYCODE_k: killLine(); draw(); break; - case 'w': + case Common::KEYCODE_w: killLastWord(); draw(); break; diff --git a/gui/credits.h b/gui/credits.h index 3fb6396b78..5babeb1faa 100644 --- a/gui/credits.h +++ b/gui/credits.h @@ -274,6 +274,8 @@ static const char *credits[] = { "\\C\\c2""MI1 VGA floppy patches", "\\C\\c0""Nicolas Noble", "\\C\\c2""Config file and ALSA support", +"\\C\\c0""Tim Phillips", +"\\C\\c2""Initial MI1 CD music support", "\\C\\c0""Quietust", "\\C\\c2""Sound support for Amiga SCUMM V2/V3 games, MM NES support", "\\C\\c0""Andreas R\366ver", @@ -284,8 +286,6 @@ static const char *credits[] = { "\\C\\c2""Final MI1 CD music support, initial Ogg Vorbis support", "\\C\\c0""Andr\351 Souza", "\\C\\c2""SDL-based OpenGL renderer", -"\\C\\c0""Tim Phillips", -"\\C\\c2""Initial MI1 CD music support", "\\C\\c0""Robin Watts", "\\C\\c2""ARM assembly routines for the Windows CE port", "\\C\\c0""", diff --git a/gui/dialog.cpp b/gui/dialog.cpp index 3bcf770ff3..1afd18ec52 100644 --- a/gui/dialog.cpp +++ b/gui/dialog.cpp @@ -23,6 +23,7 @@ */ #include "common/stdafx.h" +#include "common/events.h" #include "gui/newgui.h" #include "gui/dialog.h" @@ -233,7 +234,7 @@ void Dialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) { } // ESC closes all dialogs by default - if (keycode == 27) { + if (keycode == Common::KEYCODE_ESCAPE) { setResult(-1); close(); } diff --git a/gui/editable.cpp b/gui/editable.cpp index 6199ea67fa..a8638b8b48 100644 --- a/gui/editable.cpp +++ b/gui/editable.cpp @@ -23,6 +23,7 @@ */ #include "common/stdafx.h" +#include "common/events.h" #include "gui/editable.h" #include "gui/newgui.h" @@ -94,17 +95,17 @@ bool EditableWidget::handleKeyDown(uint16 ascii, int keycode, int modifiers) { drawCaret(true); switch (keycode) { - case '\n': // enter/return - case '\r': + case Common::KEYCODE_RETURN: + case Common::KEYCODE_KP_ENTER: // confirm edit and exit editmode endEditMode(); dirty = true; break; - case 27: // escape + case Common::KEYCODE_ESCAPE: abortEditMode(); dirty = true; break; - case 8: // backspace + case Common::KEYCODE_BACKSPACE: if (_caretPos > 0) { _caretPos--; _editString.deleteChar(_caretPos); @@ -112,32 +113,32 @@ bool EditableWidget::handleKeyDown(uint16 ascii, int keycode, int modifiers) { } forcecaret = true; break; - case 127: // delete + case Common::KEYCODE_DELETE: if (_caretPos < (int)_editString.size()) { _editString.deleteChar(_caretPos); dirty = true; } forcecaret = true; break; - case 256 + 20: // left arrow + case Common::KEYCODE_LEFT: if (_caretPos > 0) { dirty = setCaretPos(_caretPos - 1); } forcecaret = true; dirty = true; break; - case 256 + 19: // right arrow + case Common::KEYCODE_RIGHT: if (_caretPos < (int)_editString.size()) { dirty = setCaretPos(_caretPos + 1); } forcecaret = true; dirty = true; break; - case 256 + 22: // home + case Common::KEYCODE_HOME: dirty = setCaretPos(0); forcecaret = true; break; - case 256 + 23: // end + case Common::KEYCODE_END: dirty = setCaretPos(_editString.size()); forcecaret = true; break; diff --git a/gui/launcher.cpp b/gui/launcher.cpp index 4a92de1101..995a0cf78a 100644 --- a/gui/launcher.cpp +++ b/gui/launcher.cpp @@ -218,15 +218,9 @@ EditGameDialog::EditGameDialog(const String &domain, const String &desc) // // 5) The volume tab // - int volControlPos = g_gui.evaluator()->getVar("volumeControlsInAudio", true); + tab->addTab("Volume"); - if (!volControlPos) { - tab->addTab("Volume"); - - _globalVolumeOverride = new CheckboxWidget(tab, "gameoptions_volumeCheckbox", "Override global volume settings", kCmdGlobalVolumeOverride, 0); - } else { - _globalVolumeOverride = NULL; - } + _globalVolumeOverride = new CheckboxWidget(tab, "gameoptions_volumeCheckbox", "Override global volume settings", kCmdGlobalVolumeOverride, 0); addVolumeControls(tab, "gameoptions_"); @@ -288,7 +282,7 @@ void EditGameDialog::open() { OptionsDialog::open(); int sel, i; - bool e, f; + bool e; // En-/disable dialog items depending on whether overrides are active or not. @@ -302,17 +296,12 @@ void EditGameDialog::open() { ConfMan.hasKey("output_rate", _domain) || ConfMan.hasKey("subtitles", _domain) || ConfMan.hasKey("talkspeed", _domain); + _globalAudioOverride->setState(e); - f = ConfMan.hasKey("music_volume", _domain) || + e = ConfMan.hasKey("music_volume", _domain) || ConfMan.hasKey("sfx_volume", _domain) || ConfMan.hasKey("speech_volume", _domain); - - if (_globalVolumeOverride) { - _globalAudioOverride->setState(e); - _globalVolumeOverride->setState(f); - } else { - _globalAudioOverride->setState(e || f); - } + _globalVolumeOverride->setState(e); e = ConfMan.hasKey("soundfont", _domain) || ConfMan.hasKey("multi_midi", _domain) || @@ -599,6 +588,8 @@ void LauncherDialog::updateListing() { if (g.contains("description")) description = g.description(); } + if (description.empty()) + description = "Unknown (target " + iter->_key + ", gameid " + gameid + ")"; if (!gameid.empty() && !description.empty()) { // Insert the game into the launcher list diff --git a/gui/massadd.cpp b/gui/massadd.cpp index c12e60ea8b..987a92efb5 100644 --- a/gui/massadd.cpp +++ b/gui/massadd.cpp @@ -27,6 +27,7 @@ #include "engines/engine.h" #include "base/game.h" #include "base/plugins.h" +#include "common/events.h" #include "gui/launcher.h" // For addGameToConf() #include "gui/massadd.h" @@ -85,10 +86,10 @@ MassAddDialog::MassAddDialog(const FilesystemNode &startDir) _gameProgressText = new StaticTextWidget(this, "massadddialog_gameprogress", "... progress ..."); - _okButton = new ButtonWidget(this, "massadddialog_ok", "OK", kOkCmd, '\n'); + _okButton = new ButtonWidget(this, "massadddialog_ok", "OK", kOkCmd, Common::ASCII_RETURN); _okButton->setEnabled(false); - new ButtonWidget(this, "massadddialog_cancel", "Cancel", kCancelCmd, '\27'); + new ButtonWidget(this, "massadddialog_cancel", "Cancel", kCancelCmd, Common::ASCII_ESCAPE); } diff --git a/gui/message.cpp b/gui/message.cpp index 114d4f38c5..958d8e3dc8 100644 --- a/gui/message.cpp +++ b/gui/message.cpp @@ -23,6 +23,7 @@ */ #include "common/stdafx.h" +#include "common/events.h" #include "common/str.h" #include "common/system.h" #include "gui/message.h" @@ -96,10 +97,10 @@ MessageDialog::MessageDialog(const Common::String &message, const char *defaultB } if (defaultButton) - addButton(this, okButtonPos, _h - buttonHeight - 8, defaultButton, kOkCmd, '\n'); // Confirm dialog + addButton(this, okButtonPos, _h - buttonHeight - 8, defaultButton, kOkCmd, Common::ASCII_RETURN); // Confirm dialog if (altButton) - addButton(this, cancelButtonPos, _h - buttonHeight - 8, altButton, kCancelCmd, '\27'); // Cancel dialog + addButton(this, cancelButtonPos, _h - buttonHeight - 8, altButton, kCancelCmd, Common::ASCII_ESCAPE); // Cancel dialog } void MessageDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) { diff --git a/gui/newgui.cpp b/gui/newgui.cpp index eefb3e2f64..ad1933863a 100644 --- a/gui/newgui.cpp +++ b/gui/newgui.cpp @@ -139,7 +139,8 @@ bool NewGui::loadNewTheme(const Common::String &style) { delete _theme; _theme = 0; - if (style.compareToIgnoreCase("classic (builtin)") == 0) { + if (style.compareToIgnoreCase("classic (builtin)") == 0 || + style.compareToIgnoreCase("classic") == 0) { _theme = new ThemeClassic(_system, style); } else { if (Theme::themeConfigUseable(style, "", &styleType, &cfg)) { diff --git a/gui/options.cpp b/gui/options.cpp index 76bec036ad..6d588b6b44 100644 --- a/gui/options.cpp +++ b/gui/options.cpp @@ -239,7 +239,7 @@ void OptionsDialog::open() { int speed; int sliderMaxValue = _subSpeedSlider->getMaxValue(); - _subMode = getSubtitleMode(ConfMan.getBool("subtitles", _domain), ConfMan.getBool("speech_mute")); + _subMode = getSubtitleMode(ConfMan.getBool("subtitles", _domain), ConfMan.getBool("speech_mute", _domain)); _subToggleButton->setLabel(_subModeDesc[_subMode]); // Engines that reuse the subtitle speed widget set their own max value. @@ -676,18 +676,10 @@ GlobalOptionsDialog::GlobalOptionsDialog() // tab->addTab("Audio"); addAudioControls(tab, "globaloptions_"); - - int volControlPos = g_gui.evaluator()->getVar("volumeControlsInAudio", true); - - if (volControlPos) - addVolumeControls(tab, "globaloptions_"); - addSubtitleControls(tab, "globaloptions_"); - if (!volControlPos) { - tab->addTab("Volume"); - addVolumeControls(tab, "globaloptions_"); - } + tab->addTab("Volume"); + addVolumeControls(tab, "globaloptions_"); // TODO: cd drive setting diff --git a/gui/theme-config.cpp b/gui/theme-config.cpp index 55a9ca9600..c12ca009da 100644 --- a/gui/theme-config.cpp +++ b/gui/theme-config.cpp @@ -193,9 +193,12 @@ const char *Theme::_defaultConfigINI = "# audio tab\n" "opYoffset=vBorder\n" "useWithPrefix=audioControls globaloptions_\n" -"useWithPrefix=volumeControls globaloptions_\n" "useWithPrefix=subtitleControls globaloptions_\n" "\n" +"# volume tab\n" +"opYoffset=vBorder\n" +"useWithPrefix=volumeControls globaloptions_\n" +"\n" "# MIDI tab\n" "opYoffset=vBorder\n" "useWithPrefix=midiControls globaloptions_\n" @@ -274,9 +277,14 @@ const char *Theme::_defaultConfigINI = "gameoptions_audioCheckbox=gox opYoffset (kFontHeight + 10 + 180) buttonHeight\n" "opYoffset=(opYoffset + buttonHeight)\n" "useWithPrefix=audioControls gameoptions_\n" -"useWithPrefix=volumeControls gameoptions_\n" "useWithPrefix=subtitleControls gameoptions_\n" "\n" +"# volume tab\n" +"opYoffset=vBorder\n" +"gameoptions_volumeCheckbox=gox opYoffset (kFontHeight + 10 + 190) buttonHeight\n" +"opYoffset=(opYoffset + buttonHeight)\n" +"useWithPrefix=volumeControls gameoptions_\n" +"\n" "# midi tab\n" "opYoffset=vBorder\n" "gameoptions_midiCheckbox=gox opYoffset (kFontHeight + 10 + 174) buttonHeight\n" @@ -480,7 +488,6 @@ const char *Theme::_defaultConfigINI = "def_insetH=(h - 13 - insetY)\n" "def_launcherVersionX=50\n" "def_launcherVersionY=5\n" -"def_volumeControlsInAudio=false\n" "def_midiControlsSpacing=2\n" "def_gameOptionsOverrideVPad=10\n" "def_aboutXOff=3\n" @@ -488,32 +495,6 @@ const char *Theme::_defaultConfigINI = "def_aboutOuterBorder=10\n" "\n" "use=XxY\n" -"\n" -"# Override audio tab\n" -"set_parent=gameoptions\n" -"vBorder=5\n" -"\n" -"# audio tab\n" -"opYoffset=vBorder\n" -"useWithPrefix=audioControls globaloptions_\n" -"useWithPrefix=subtitleControls globaloptions_\n" -"\n" -"# volume tab\n" -"opYoffset=vBorder\n" -"useWithPrefix=volumeControls globaloptions_\n" -"\n" -"# audio tab\n" -"opYoffset=vBorder\n" -"gameoptions_audioCheckbox=gox opYoffset (kFontHeight + 10 + 180) buttonHeight\n" -"opYoffset=(opYoffset + buttonHeight + 6)\n" -"useWithPrefix=audioControls gameoptions_\n" -"useWithPrefix=subtitleControls gameoptions_\n" -"\n" -"# volume tab\n" -"opYoffset=vBorder\n" -"gameoptions_volumeCheckbox=gox opYoffset (kFontHeight + 10 + 190) buttonHeight\n" -"opYoffset=(opYoffset + buttonHeight + 6)\n" -"useWithPrefix=volumeControls gameoptions_\n" ""; using Common::String; diff --git a/gui/theme.h b/gui/theme.h index e64b65645c..b3286d3d48 100644 --- a/gui/theme.h +++ b/gui/theme.h @@ -35,7 +35,7 @@ #include "graphics/surface.h" #include "graphics/fontman.h" -#define THEME_VERSION 21 +#define THEME_VERSION 22 namespace GUI { diff --git a/gui/themes/classic080.ini b/gui/themes/classic080.ini index bb1db62979..481d00c27a 100644 --- a/gui/themes/classic080.ini +++ b/gui/themes/classic080.ini @@ -1,7 +1,7 @@ # $URL$ # $Id$ [theme] -version=19 +version=22 type=classic name=Classic (ScummVM 0.8.0) @@ -16,53 +16,6 @@ textcolorhi=0 255 0 font="builtin" blending=true -# Define our classic greenish theme here -[320xY] -def_widgetSize=kNormalWidgetSize -def_buttonWidth=kButtonWidth -def_buttonHeight=kButtonHeight -def_sliderWidth=kSliderWidth -def_sliderHeight=kSliderHeight -def_kLineHeight=12 -def_kFontHeight=10 -def_insetX=10 -def_insetY=10 -def_insetW=(w - 2 * 10) -def_insetH=(h - 30) -def_gameOptionsLabelWidth=60 -def_tabPopupsLabelW=100 -def_aboutXOff=3 -def_aboutYOff=2 -def_aboutOuterBorder=10 -def_scummmainHOffset=8 -def_scummmainVSpace=5 -def_scummmainVAddOff=2 -def_scummmainButtonWidth=90 -def_scummmainButtonHeight=16 -def_scummhelpX=5 -def_scummhelpW=(w - 2 * 5) -def_midiControlsSpacing=1 -def_vcAudioTabIndent=0 -def_vcAudioTabSpacing=2 -use=XxY - -TabWidget.tabWidth=0 -TabWidget.tabHeight=16 -TabWidget.titleVPad=2 -# Scumm Saveload dialog -scummsaveload=8 8 (w - 2 * 8) (h - 16) -set_parent=scummsaveload -scummsaveload_title=10 2 (parent.w - 2 * 10) kLineHeight -scummsaveload_list=10 18 prev.w (parent.h - 17 - buttonHeight - 8 - self.y) -scummsaveload_thumbnail=(parent.w - (kThumbnailWidth + 22)) 18 -scummsaveload_cancel=(parent.w - 2 * (buttonWidth + 10)) (parent.h - buttonHeight - 8) buttonWidth buttonHeight -scummsaveload_choose=(prev.x2 + 10) prev.y prev.w prev.h -scummsaveload_extinfo.visible=false - -# MM NES resolution -[256x240] -useAsIs=320xY - [XxY] def_widgetSize=kBigWidgetSize def_buttonWidth=kBigButtonWidth @@ -159,9 +112,12 @@ useWithPrefix=graphicsControls globaloptions_ # audio tab opYoffset=vBorder useWithPrefix=audioControls globaloptions_ -useWithPrefix=volumeControls globaloptions_ useWithPrefix=subtitleControls globaloptions_ +# volume tab +opYoffset=vBorder +useWithPrefix=volumeControls globaloptions_ + # MIDI tab opYoffset=vBorder useWithPrefix=midiControls globaloptions_ @@ -185,6 +141,8 @@ yoffset=vBorder glOff=((buttonHeight - kLineHeight) / 2 + 2) globaloptions_themebutton2=10 yoffset buttonWidth buttonHeight globaloptions_curtheme=(prev.x2 + 20) (yoffset + glOff) (parent.w - (prev.w + 20) - 10) kLineHeight +yoffset=(yoffset + buttonHeight + 12) +globaloptions_autosaveperiod=10 yoffset (parent.w - 10 - 25) (kLineHeight + 2) globaloptions_cancel=(parent.w - 2 * (buttonWidth + 10)) (parent.h - buttonHeight - 8) buttonWidth buttonHeight globaloptions_ok=(prev.x2 + 10) prev.y prev.w prev.h @@ -238,9 +196,14 @@ opYoffset=vBorder gameoptions_audioCheckbox=gox opYoffset (kFontHeight + 10 + 180) buttonHeight opYoffset=(opYoffset + buttonHeight) useWithPrefix=audioControls gameoptions_ -useWithPrefix=volumeControls gameoptions_ useWithPrefix=subtitleControls gameoptions_ +# volume tab +opYoffset=vBorder +gameoptions_volumeCheckbox=gox opYoffset (kFontHeight + 10 + 190) buttonHeight +opYoffset=(opYoffset + buttonHeight) +useWithPrefix=volumeControls gameoptions_ + # midi tab opYoffset=vBorder gameoptions_midiCheckbox=gox opYoffset (kFontHeight + 10 + 174) buttonHeight @@ -260,6 +223,17 @@ keysdialog_list=10 10 (prev.x - 20) (parent.h - kLineHeight * 4 - self.y) keysdialog_action=prev.x (parent.h - kLineHeight * 3) (parent.w - self.x * 2) kLineHeight keysdialog_mapping=prev.x (prev.y + kLineHeight) prev.w prev.h +### mass add dialog +massadddialog=10 20 300 174 +set_parent=massadddialog +massadddialog_caption=10 (10 + 1 * kLineHeight) (parent.w - 2*10) kLineHeight +massadddialog_caption.align=kTextAlignCenter +massadddialog_dirprogress=10 (10 + 3 * kLineHeight) prev.w prev.h +massadddialog_dirprogress.align=kTextAlignCenter +massadddialog_gameprogress=10 (10 + 4 * kLineHeight) prev.w prev.h +massadddialog_gameprogress.align=kTextAlignCenter +massadddialog_ok=((parent.w - (buttonWidth * 2)) / 2) (parent.h - buttonHeight - 8) buttonWidth buttonHeight +massadddialog_cancel=(prev.x2 + 10) prev.y prev.w prev.h ##### SCUMM dialogs @@ -341,6 +315,8 @@ aux=10 auw=(parent.w - 2 * 10) auMidiPopup=(aux - 5) (opYoffset - 1) (auw + 5) (kLineHeight + 2) opYoffset=(opYoffset + buttonHeight + 4) +auSampleRatePopup=(aux - 5) (opYoffset - 1) (auw + 5) (kLineHeight + 2) +opYoffset=(opYoffset + buttonHeight + 4) [volumeControls] vctextw=(95 + vcAudioTabIndent) @@ -365,7 +341,8 @@ opYoffset=(opYoffset + sliderHeight + vcAudioTabSpacing) [midiControls] mcx=10 mcFontButton=mcx opYoffset buttonWidth buttonHeight -mcFontPath=(prev.x2 + 20) (opYoffset + 3) (parent.w - (buttonWidth + 20) - 15) kLineHeight +mcFontPath=(prev.x2 + 20) (opYoffset + 3) (parent.w - (buttonWidth + 20) - mcx - kLineHeight - 20) kLineHeight +mcFontClearButton=(prev.x2 + 10) (opYoffset + 3) kLineHeight kLineHeight opYoffset=(opYoffset + buttonHeight + 2 * midiControlsSpacing) mcMixedCheckbox=mcx opYoffset (kFontHeight + 10 + 135) buttonHeight opYoffset=(opYoffset + buttonHeight + midiControlsSpacing) @@ -419,6 +396,53 @@ smW=(scummmainButtonWidth + 2 * scummmainHOffset) smH=(smY + scummmainVSpace) scummmain=((w - smW) / 2) ((h - smH) / 2) smW smH +# Define our classic greenish theme here +[320xY] +def_widgetSize=kNormalWidgetSize +def_buttonWidth=kButtonWidth +def_buttonHeight=kButtonHeight +def_sliderWidth=kSliderWidth +def_sliderHeight=kSliderHeight +def_kLineHeight=12 +def_kFontHeight=10 +def_insetX=10 +def_insetY=10 +def_insetW=(w - 2 * 10) +def_insetH=(h - 30) +def_gameOptionsLabelWidth=60 +def_tabPopupsLabelW=100 +def_aboutXOff=3 +def_aboutYOff=2 +def_aboutOuterBorder=10 +def_scummmainHOffset=8 +def_scummmainVSpace=5 +def_scummmainVAddOff=2 +def_scummmainButtonWidth=90 +def_scummmainButtonHeight=16 +def_scummhelpX=5 +def_scummhelpW=(w - 2 * 5) +def_midiControlsSpacing=1 +def_vcAudioTabIndent=0 +def_vcAudioTabSpacing=2 +use=XxY + +TabWidget.tabWidth=0 +TabWidget.tabHeight=16 +TabWidget.titleVPad=2 +# Scumm Saveload dialog +scummsaveload=8 8 (w - 2 * 8) (h - 16) +set_parent=scummsaveload +scummsaveload_title=10 2 (parent.w - 2 * 10) kLineHeight +scummsaveload_list=10 18 prev.w (parent.h - 17 - buttonHeight - 8 - self.y) +scummsaveload_thumbnail=(parent.w - (kThumbnailWidth + 22)) 18 +scummsaveload_cancel=(parent.w - 2 * (buttonWidth + 10)) (parent.h - buttonHeight - 8) buttonWidth buttonHeight +scummsaveload_choose=(prev.x2 + 10) prev.y prev.w prev.h +scummsaveload_extinfo.visible=false + +# MM NES resolution +[256x240] +useAsIs=320xY + # PSP GUI [480x272] def_buttonWidth=100 @@ -429,7 +453,6 @@ def_insetW=(w - 2 * insetX) def_insetH=(h - 13 - insetY) def_launcherVersionX=50 def_launcherVersionY=5 -def_volumeControlsInAudio=false def_midiControlsSpacing=2 def_gameOptionsOverrideVPad=10 def_aboutXOff=3 @@ -437,30 +460,3 @@ def_aboutYOff=2 def_aboutOuterBorder=10 use=XxY - -# Override audio tab -set_parent=gameoptions -vBorder=5 - -# audio tab -opYoffset=vBorder -useWithPrefix=audioControls globaloptions_ -useWithPrefix=subtitleControls globaloptions_ - -# volume tab -opYoffset=vBorder -useWithPrefix=volumeControls globaloptions_ - -# audio tab -opYoffset=vBorder -gameoptions_audioCheckbox=gox opYoffset (kFontHeight + 10 + 180) buttonHeight -opYoffset=(opYoffset + buttonHeight + 6) -useWithPrefix=audioControls gameoptions_ -useWithPrefix=subtitleControls gameoptions_ - -# volume tab -opYoffset=vBorder -gameoptions_volumeCheckbox=gox opYoffset (kFontHeight + 10 + 190) buttonHeight -opYoffset=(opYoffset + buttonHeight + 6) -useWithPrefix=volumeControls gameoptions_ - diff --git a/gui/themes/modern.ini b/gui/themes/modern.ini index c5c8d8c46c..25fd8da01d 100644 --- a/gui/themes/modern.ini +++ b/gui/themes/modern.ini @@ -1,7 +1,7 @@ # $URL$ # $Id$ [theme] -version=21 +version=22 type=modern name=Modern Style @@ -223,7 +223,7 @@ Console.leftPadding=7 Console.rightPadding=5 Console.topPadding=5 Console.bottomPadding=5 -TabWidget.tabWidth=85 +TabWidget.tabWidth=75 TabWidget.tabHeight=27 TabWidget.titleVPad=8 TabWidget.navButtonRightPad=3 @@ -236,15 +236,7 @@ opHeight=insetH useWithPrefix=chooser defaultChooser_ ##### browser -browser=insetX insetY insetW insetH -set_parent=browser -browser_headline=10 5 (parent.w - 2 * 10) kLineHeight -browser_headline.align=kTextAlignCenter -browser_path=10 (prev.y2 + 5) prev.w prev.h -browser_list=10 prev.y2 prev.w (parent.h - 3 * kLineHeight - buttonHeight - 14) -browser_up=10 (parent.h - buttonHeight - 8) buttonWidth buttonHeight -browser_cancel=(parent.w - 2 * (buttonWidth + 10)) (parent.h - buttonHeight - 8) buttonWidth buttonHeight -browser_choose=(prev.x2 + 10) prev.y prev.w prev.h +use=browser ##### launcher launcher_version=launcherVersionX launcherVersionY 247 kLineHeight @@ -278,9 +270,12 @@ useWithPrefix=graphicsControls globaloptions_ # audio tab opYoffset=vBorder useWithPrefix=audioControls globaloptions_ -useWithPrefix=volumeControls globaloptions_ useWithPrefix=subtitleControls globaloptions_ +# volume tab +opYoffset=vBorder +useWithPrefix=volumeControls globaloptions_ + # MIDI tab opYoffset=vBorder useWithPrefix=midiControls globaloptions_ @@ -359,9 +354,14 @@ opYoffset=vBorder gameoptions_audioCheckbox=gox opYoffset (kFontHeight + 10 + 180) buttonHeight opYoffset=(opYoffset + buttonHeight + 6) useWithPrefix=audioControls gameoptions_ -useWithPrefix=volumeControls gameoptions_ useWithPrefix=subtitleControls gameoptions_ +# volume tab +opYoffset=vBorder +gameoptions_volumeCheckbox=gox opYoffset (kFontHeight + 10 + 180) buttonHeight +opYoffset=(opYoffset + buttonHeight + 6) +useWithPrefix=volumeControls gameoptions_ + # midi tab opYoffset=vBorder gameoptions_midiCheckbox=gox opYoffset (kFontHeight + 10 + 174) buttonHeight @@ -460,6 +460,17 @@ chooser_list=10 (6 + kLineHeight + 2) prev.w (opHeight - self.y - buttonHeight - chooser_cancel=(chooserW - 2 * (buttonWidth + 10)) (opHeight - buttonHeight - 8) buttonWidth buttonHeight chooser_ok=(prev.x2 + 10) prev.y prev.w prev.h +[browser] +browser=insetX insetY insetW insetH +set_parent=browser +browser_headline=10 5 (parent.w - 2 * 10) kLineHeight +browser_headline.align=kTextAlignCenter +browser_path=10 (prev.y2 + 5) prev.w prev.h +browser_list=10 prev.y2 prev.w (parent.h - 3 * kLineHeight - buttonHeight - 14) +browser_up=10 (parent.h - buttonHeight - 8) buttonWidth buttonHeight +browser_cancel=(parent.w - 2 * (buttonWidth + 10)) (parent.h - buttonHeight - 8) buttonWidth buttonHeight +browser_choose=(prev.x2 + 10) prev.y prev.w prev.h + [graphicsControls] gcx=(opXoffset + 10) gcw=(parent.w - gcx - 25) @@ -566,7 +577,6 @@ use=extra pix_checkbox_empty="checkbox_empty320.bmp" pix_checkbox_checked="checkbox_checked320.bmp" pix_cursor_image="cursor320.bmp" -def_volumeControlsInAudio=false # NES resoltuion [256x240] @@ -582,7 +592,6 @@ def_insetW=(w - buttonWidth - 17 * 2 - insetX) def_insetH=(h - 13 - insetY) def_launcherVersionX=50 def_launcherVersionY=5 -def_volumeControlsInAudio=false def_midiControlsSpacing=2 def_gameOptionsOverrideVPad=10 def_aboutXOff=3 @@ -603,28 +612,6 @@ launcher_logo.visible=true # Override extras inactive_dialog_shading=kShadingNone -# Override audio tab -set_parent=gameoptions -vBorder=10 - -# audio tab -opYoffset=vBorder -useWithPrefix=audioControls globaloptions_ -useWithPrefix=subtitleControls globaloptions_ - -# volume tab -opYoffset=vBorder -useWithPrefix=volumeControls globaloptions_ - -# audio tab -opYoffset=vBorder -gameoptions_audioCheckbox=gox opYoffset (kFontHeight + 10 + 180) buttonHeight -opYoffset=(opYoffset + buttonHeight + 6) -useWithPrefix=audioControls gameoptions_ -useWithPrefix=subtitleControls gameoptions_ - -# volume tab -opYoffset=vBorder -gameoptions_volumeCheckbox=gox opYoffset (kFontHeight + 10 + 180) buttonHeight -opYoffset=(opYoffset + buttonHeight + 6) -useWithPrefix=volumeControls gameoptions_ +# Override browser +def_buttonWidth=90 +use=browser |