From 187bec7873f9ce95ba6450d51948668bf296b383 Mon Sep 17 00:00:00 2001 From: stephena Date: Fri, 2 Jan 2009 01:50:03 +0000 Subject: [PATCH] Added right mouse button context menu to the ROM launcher. For now, it has three entries: 1) Override properties - temporarily override ROM properties, so that (for example) the left diff switch can be set to 'A' even if its property says to use 'B'. 2) Filter ROM listing - still TODO. 3) Reload ROM listing - functionality was already present with Ctrl-r; this just adds a UI element for it. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1592 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba --- stella/Todo.txt | 8 +- stella/src/gui/BrowserDialog.cxx | 3 +- stella/src/gui/GameInfoDialog.cxx | 8 +- stella/src/gui/GameInfoDialog.hxx | 9 +- stella/src/gui/GlobalPropsDialog.cxx | 240 +++++++++++++++++++++++++++ stella/src/gui/GlobalPropsDialog.hxx | 62 +++++++ stella/src/gui/LauncherDialog.cxx | 56 ++++++- stella/src/gui/LauncherDialog.hxx | 20 ++- stella/src/gui/ListWidget.hxx | 3 +- stella/src/gui/module.mk | 1 + 10 files changed, 389 insertions(+), 21 deletions(-) create mode 100644 stella/src/gui/GlobalPropsDialog.cxx create mode 100644 stella/src/gui/GlobalPropsDialog.hxx diff --git a/stella/Todo.txt b/stella/Todo.txt index ab505d0e1..124f9a159 100644 --- a/stella/Todo.txt +++ b/stella/Todo.txt @@ -25,11 +25,11 @@ X * Make UI 'font-sensitive' and remove all hardcoded dimensions for * Add option to automatically save snapshots in 1X mode (useful for RomInfoWidget) - * A way to override (possibly temporarily) all properties for a ROM, and +X * A way to override (possibly temporarily) all properties for a ROM, and use global ones instead. Tied to the current developer commandline options, but presented in a GUI (started from ROM launcher). - * Add infrastructure to show all info gathered from a ROM (similar to what +X * Add infrastructure to show all info gathered from a ROM (similar to what is currently displayed on the commandline). Add a UI part for this, so users aren't forced to use the commandline to see it. @@ -52,12 +52,10 @@ X * Make UI 'font-sensitive' and remove all hardcoded dimensions for X (4) Reload current listing (possibly tied to a RMB context menu). - (5) Add commandline argument to toggle launcher use. - * Research lockups in Stay Frosty ROM. Test out sample state file in AtariAge email. - * Fix issue with paddle support in Activision Bridge ROM. + * Fix issue with paddle support in Activision Casino ROM. * More support for copy and paste. diff --git a/stella/src/gui/BrowserDialog.cxx b/stella/src/gui/BrowserDialog.cxx index 565d0417f..2a0e0ad13 100644 --- a/stella/src/gui/BrowserDialog.cxx +++ b/stella/src/gui/BrowserDialog.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: BrowserDialog.cxx,v 1.33 2009-01-01 18:13:38 stephena Exp $ +// $Id: BrowserDialog.cxx,v 1.34 2009-01-02 01:50:03 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -35,7 +35,6 @@ * - to select the data dir for a game * - to select the place where save games are stored * - others??? - * TODO - make this dialog font sensitive */ // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/stella/src/gui/GameInfoDialog.cxx b/stella/src/gui/GameInfoDialog.cxx index 8af32ace1..99c9e36dd 100644 --- a/stella/src/gui/GameInfoDialog.cxx +++ b/stella/src/gui/GameInfoDialog.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: GameInfoDialog.cxx,v 1.61 2009-01-01 18:13:38 stephena Exp $ +// $Id: GameInfoDialog.cxx,v 1.62 2009-01-02 01:50:03 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -52,6 +52,12 @@ GameInfoDialog::GameInfoDialog( WidgetArray wid; StringMap items, ports, ctrls; + //////////////////////////////////////////////////////////////////// + // Some of the following items are also present in GlobalPropsDialog + // If any changes are ever made here, GlobalPropsDialog should also + // be updated accordingly + //////////////////////////////////////////////////////////////////// + // The tab widget xpos = 2; ypos = vBorder; myTab = new TabWidget(this, font, xpos, ypos, _w - 2*xpos, diff --git a/stella/src/gui/GameInfoDialog.hxx b/stella/src/gui/GameInfoDialog.hxx index 4659787b3..d74fa0bc6 100644 --- a/stella/src/gui/GameInfoDialog.hxx +++ b/stella/src/gui/GameInfoDialog.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: GameInfoDialog.hxx,v 1.35 2009-01-01 18:13:38 stephena Exp $ +// $Id: GameInfoDialog.hxx,v 1.36 2009-01-02 01:50:03 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -34,6 +34,7 @@ class SliderWidget; #include "Dialog.hxx" #include "Command.hxx" #include "Props.hxx" +#include "StringList.hxx" class GameInfoDialog : public Dialog, public CommandSender { @@ -94,13 +95,13 @@ class GameInfoDialog : public Dialog, public CommandSender kPPBlendChanged = 'PBch' }; - /** Game properties for currently loaded ROM */ + // Game properties for currently loaded ROM Properties myGameProperties; - /** Indicates that we've got a valid properties entry */ + // Indicates that we've got a valid properties entry bool myPropertiesLoaded; - /** Indicates that the default properties have been loaded */ + // Indicates that the default properties have been loaded bool myDefaultsSelected; }; diff --git a/stella/src/gui/GlobalPropsDialog.cxx b/stella/src/gui/GlobalPropsDialog.cxx new file mode 100644 index 000000000..b9e96d790 --- /dev/null +++ b/stella/src/gui/GlobalPropsDialog.cxx @@ -0,0 +1,240 @@ +//============================================================================ +// +// SSSS tt lll lll +// SS SS tt ll ll +// SS tttttt eeee ll ll aaaa +// SSSS tt ee ee ll ll aa +// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator" +// SS SS tt ee ll ll aa aa +// SSSS ttt eeeee llll llll aaaaa +// +// Copyright (c) 1995-2009 by Bradford W. Mott and the Stella team +// +// See the file "license" for information on usage and redistribution of +// this file, and for a DISCLAIMER OF ALL WARRANTIES. +// +// $Id: GlobalPropsDialog.cxx,v 1.1 2009-01-02 01:50:03 stephena Exp $ +// +// Based on code from ScummVM - Scumm Interpreter +// Copyright (C) 2002-2004 The ScummVM project +//============================================================================ + +#include "bspf.hxx" + +#include "Control.hxx" +#include "Dialog.hxx" +#include "OSystem.hxx" +#include "PopUpWidget.hxx" +#include "Settings.hxx" +#include "StringList.hxx" +#include "Widget.hxx" + +#include "GlobalPropsDialog.hxx" + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +GlobalPropsDialog:: + GlobalPropsDialog(GuiObject* boss, const GUI::Font& font, Settings& settings, + int x, int y, int w, int h) + : Dialog(&boss->instance(), &boss->parent(), x, y, w, h), + mySettings(settings) +{ + const int lineHeight = font.getLineHeight(), + fontHeight = font.getFontHeight(), + buttonWidth = font.getStringWidth("Defaults") + 20, + buttonHeight = font.getLineHeight() + 4; + int xpos, ypos; + int lwidth = font.getStringWidth("Right Difficulty: "), + pwidth = font.getStringWidth("SB (128-256k SUPERbanking)"); + WidgetArray wid; + StringMap items; + + xpos = 10; ypos = 10; + + //////////////////////////////////////////////////////////////////// + // The following items are also present in GameInfoDialog + // If any changes are ever made here, GameInfoDialog should also + // be updated accordingly + //////////////////////////////////////////////////////////////////// + + // Bankswitch type + new StaticTextWidget(this, font, xpos, ypos+1, lwidth, fontHeight, + "Bankswitch type:", kTextAlignLeft); + items.clear(); + items.push_back("Default", "DEFAULT"); + items.push_back("Auto-detect", "AUTO-DETECT"); + items.push_back("0840 (8K ECONObanking)", "0840" ); + items.push_back("2K (2K Atari)", "2K" ); + items.push_back("3E (32K Tigervision)", "3E" ); + items.push_back("3F (512K Tigervision)", "3F" ); + items.push_back("4A50 (64K 4A50 + ram)", "4A50" ); + items.push_back("4K (4K Atari)", "4K" ); + items.push_back("AR (Supercharger)", "AR" ); + items.push_back("CV (Commavid extra ram)", "CV" ); + items.push_back("DPC (Pitfall II)", "DPC" ); + items.push_back("E0 (8K Parker Bros)", "E0" ); + items.push_back("E7 (16K M-network)", "E7" ); + items.push_back("F4 (32K Atari)", "F4" ); + items.push_back("F4SC (32K Atari + ram)", "F4SC" ); + items.push_back("F6 (16K Atari)", "F6" ); + items.push_back("F6SC (16K Atari + ram)", "F6SC" ); + items.push_back("F8 (8K Atari)", "F8" ); + items.push_back("F8SC (8K Atari + ram)", "F8SC" ); + items.push_back("FASC (CBS RAM Plus)", "FASC" ); + items.push_back("FE (8K Decathlon)", "FE" ); + items.push_back("MB (Dynacom Megaboy)", "MB" ); + items.push_back("MC (C. Wilkson Megacart)", "MC" ); + items.push_back("SB (128-256k SUPERbanking)", "SB" ); + items.push_back("UA (8K UA Ltd.)", "UA" ); + items.push_back("X07 (64K AtariAge)", "X07" ); + myBSType = new PopUpWidget(this, font, xpos+lwidth, ypos, + pwidth, lineHeight, items, "", 0, 0); + wid.push_back(myBSType); + ypos += lineHeight + 10; + + // Left difficulty + pwidth = font.getStringWidth("Default"); + new StaticTextWidget(this, font, xpos, ypos+1, lwidth, fontHeight, + "Left Difficulty:", kTextAlignLeft); + items.clear(); + items.push_back("Default", "DEFAULT"); + items.push_back("B", "B"); + items.push_back("A", "A"); + myLeftDiff = new PopUpWidget(this, font, xpos+lwidth, ypos, + pwidth, lineHeight, items, "", 0, 0); + wid.push_back(myLeftDiff); + ypos += lineHeight + 5; + + // Right difficulty + new StaticTextWidget(this, font, xpos, ypos+1, lwidth, fontHeight, + "Right Difficulty:", kTextAlignLeft); + // ... use same items as above + myRightDiff = new PopUpWidget(this, font, xpos+lwidth, ypos, + pwidth, lineHeight, items, "", 0, 0); + wid.push_back(myRightDiff); + ypos += lineHeight + 5; + + // TV type + new StaticTextWidget(this, font, xpos, ypos+1, lwidth, fontHeight, + "TV Type:", kTextAlignLeft); + items.clear(); + items.push_back("Default", "DEFAULT"); + items.push_back("Color", "COLOR"); + items.push_back("B & W", "BLACKANDWHITE"); + myTVType = new PopUpWidget(this, font, xpos+lwidth, ypos, + pwidth, lineHeight, items, "", 0, 0); + wid.push_back(myTVType); + ypos += lineHeight + 5; + + xpos = 30; ypos += 10; + + // Start with Select held down + myHoldSelect = new CheckboxWidget(this, font, xpos, ypos, + "Hold Select down"); + wid.push_back(myHoldSelect); + ypos += lineHeight + 4; + + // Start with Reset held down + myHoldReset = new CheckboxWidget(this, font, xpos, ypos, + "Hold Reset down"); + wid.push_back(myHoldReset); + ypos += lineHeight + 4; + + // Start with joy button 0 held down + myHoldButton0 = new CheckboxWidget(this, font, xpos, ypos, + "Hold Button 0 down"); + wid.push_back(myHoldButton0); + + // Add message concerning usage + lwidth = font.getStringWidth("(*) These changes are not saved"); + new StaticTextWidget(this, font, 10, _h - 2*buttonHeight - 10, lwidth, fontHeight, + "(*) These changes are not saved", kTextAlignLeft); + + // Add Defaults, OK and Cancel buttons + ButtonWidget* b; + b = new ButtonWidget(this, font, 10, _h - buttonHeight - 10, + buttonWidth, buttonHeight, "Defaults", kDefaultsCmd); + wid.push_back(b); + addOKCancelBGroup(wid, font); + + addToFocusList(wid); +} + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +GlobalPropsDialog::~GlobalPropsDialog() +{ +} + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void GlobalPropsDialog::loadConfig() +{ + myBSType->setSelected(mySettings.getString("bs"), "DEFAULT"); + myLeftDiff->setSelected(mySettings.getString("ld"), "DEFAULT"); + myRightDiff->setSelected(mySettings.getString("rd"), "DEFAULT"); + myTVType->setSelected(mySettings.getString("tv"), "DEFAULT"); + + myHoldSelect->setState(mySettings.getBool("holdselect")); + myHoldReset->setState(mySettings.getBool("holdreset")); + myHoldButton0->setState(mySettings.getBool("holdbutton0")); +} + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void GlobalPropsDialog::saveConfig() +{ + string s; + + s = myBSType->getSelectedTag(); + if(s == "DEFAULT") s = ""; + mySettings.setString("bs", s); + + s = myLeftDiff->getSelectedTag(); + if(s == "DEFAULT") s = ""; + mySettings.setString("ld", s); + + s = myRightDiff->getSelectedTag(); + if(s == "DEFAULT") s = ""; + mySettings.setString("rd", s); + + s = myTVType->getSelectedTag(); + if(s == "DEFAULT") s = ""; + mySettings.setString("tv", s); + + mySettings.setBool("holdselect", myHoldSelect->getState()); + mySettings.setBool("holdreset", myHoldReset->getState()); + mySettings.setBool("holdbutton0", myHoldButton0->getState()); +} + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void GlobalPropsDialog::setDefaults() +{ + myBSType->setSelected("DEFAULT", ""); + myLeftDiff->setSelected("DEFAULT", ""); + myRightDiff->setSelected("DEFAULT", ""); + myTVType->setSelected("DEFAULT", ""); + + myHoldSelect->setState(false); + myHoldReset->setState(false); + myHoldButton0->setState(false); + + _dirty = true; +} + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void GlobalPropsDialog::handleCommand(CommandSender* sender, int cmd, + int data, int id) +{ + switch(cmd) + { + case kOKCmd: + saveConfig(); + close(); + break; + + case kDefaultsCmd: + setDefaults(); + break; + + default: + Dialog::handleCommand(sender, cmd, data, 0); + break; + } +} diff --git a/stella/src/gui/GlobalPropsDialog.hxx b/stella/src/gui/GlobalPropsDialog.hxx new file mode 100644 index 000000000..2d255f058 --- /dev/null +++ b/stella/src/gui/GlobalPropsDialog.hxx @@ -0,0 +1,62 @@ +//============================================================================ +// +// SSSS tt lll lll +// SS SS tt ll ll +// SS tttttt eeee ll ll aaaa +// SSSS tt ee ee ll ll aa +// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator" +// SS SS tt ee ll ll aa aa +// SSSS ttt eeeee llll llll aaaaa +// +// Copyright (c) 1995-2009 by Bradford W. Mott and the Stella team +// +// See the file "license" for information on usage and redistribution of +// this file, and for a DISCLAIMER OF ALL WARRANTIES. +// +// $Id: GlobalPropsDialog.hxx,v 1.1 2009-01-02 01:50:03 stephena Exp $ +// +// Based on code from ScummVM - Scumm Interpreter +// Copyright (C) 2002-2004 The ScummVM project +//============================================================================ + +#ifndef GLOBAL_PROPS_DIALOG_HXX +#define GLOBAL_PROPS_DIALOG_HXX + +class CommandSender; +class DialogContainer; +class CheckboxWidget; +class PopUpWidget; + +#include "OSystem.hxx" +#include "Dialog.hxx" +#include "Settings.hxx" +#include "bspf.hxx" + +class GlobalPropsDialog : public Dialog +{ + public: + GlobalPropsDialog(GuiObject* boss, const GUI::Font& font, Settings& settings, + int x, int y, int w, int h); + ~GlobalPropsDialog(); + + private: + void loadConfig(); + void saveConfig(); + void setDefaults(); + + virtual void handleCommand(CommandSender* sender, int cmd, int data, int id); + + private: + PopUpWidget* myBSType; + PopUpWidget* myLeftDiff; + PopUpWidget* myRightDiff; + PopUpWidget* myTVType; + + CheckboxWidget* myHoldSelect; + CheckboxWidget* myHoldReset; + CheckboxWidget* myHoldButton0; + + Settings& mySettings; +}; + +#endif diff --git a/stella/src/gui/LauncherDialog.cxx b/stella/src/gui/LauncherDialog.cxx index 5174f8b00..6cb67d09d 100644 --- a/stella/src/gui/LauncherDialog.cxx +++ b/stella/src/gui/LauncherDialog.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: LauncherDialog.cxx,v 1.93 2009-01-01 18:13:38 stephena Exp $ +// $Id: LauncherDialog.cxx,v 1.94 2009-01-02 01:50:03 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -24,12 +24,14 @@ #include "bspf.hxx" #include "BrowserDialog.hxx" +#include "ContextMenu.hxx" #include "DialogContainer.hxx" #include "Dialog.hxx" #include "FSNode.hxx" #include "GameList.hxx" #include "MD5.hxx" #include "OptionsDialog.hxx" +#include "GlobalPropsDialog.hxx" #include "OSystem.hxx" #include "Props.hxx" #include "PropsSet.hxx" @@ -52,6 +54,8 @@ LauncherDialog::LauncherDialog(OSystem* osystem, DialogContainer* parent, myList(NULL), myGameList(NULL), myRomInfoWidget(NULL), + myMenu(NULL), + myGlobalProps(NULL), mySelectedItem(0) { const GUI::Font& font = instance().launcherFont(); @@ -158,6 +162,19 @@ LauncherDialog::LauncherDialog(OSystem* osystem, DialogContainer* parent, myGameList = new GameList(); addToFocusList(wid); + + // Create context menu for ROM list options + StringMap l; + l.push_back("Override properties", "override"); + l.push_back("Filter listing", "filter"); + l.push_back("Reload listing", "reload"); + myMenu = new ContextMenu(this, font, l); + + // Create global props dialog, which is uses to to temporarily overrride + // ROM properties + myGlobalProps = + new GlobalPropsDialog(this, osystem->font(), osystem->settings(), + 0, 0, 440, 270); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -165,6 +182,7 @@ LauncherDialog::~LauncherDialog() { delete myOptions; delete myGameList; + delete myMenu; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -319,6 +337,25 @@ void LauncherDialog::loadRomInfo() myRomInfoWidget->clearProperties(); } +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void LauncherDialog::handleContextMenu() +{ + const string& cmd = myMenu->getSelectedTag(); + + if(cmd == "override") + { + parent().addDialog(myGlobalProps); + } + else if(cmd == "filter") + { + cerr << "TODO: add dialog for this\n"; + } + else if(cmd == "reload") + { + updateListing(); + } +} + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void LauncherDialog::handleKeyDown(int ascii, int keycode, int modifiers) { @@ -330,6 +367,19 @@ void LauncherDialog::handleKeyDown(int ascii, int keycode, int modifiers) Dialog::handleKeyDown(ascii, keycode, modifiers); } +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void LauncherDialog::handleMouseDown(int x, int y, int button, int clickCount) +{ + // Grab right mouse button for context menu, send left to base class + if(button == 2) + { + // Add menu at current x,y mouse location + myMenu->show(x + getAbsX(), y + getAbsY()); + } + else + Dialog::handleMouseDown(x, y, button, clickCount); +} + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void LauncherDialog::handleCommand(CommandSender* sender, int cmd, int data, int id) @@ -402,6 +452,10 @@ void LauncherDialog::handleCommand(CommandSender* sender, int cmd, updateListing(); break; + case kCMenuItemSelectedCmd: + handleContextMenu(); + break; + default: Dialog::handleCommand(sender, cmd, data, 0); } diff --git a/stella/src/gui/LauncherDialog.hxx b/stella/src/gui/LauncherDialog.hxx index 26a2fc282..f9df7a902 100644 --- a/stella/src/gui/LauncherDialog.hxx +++ b/stella/src/gui/LauncherDialog.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: LauncherDialog.hxx,v 1.38 2009-01-01 18:13:38 stephena Exp $ +// $Id: LauncherDialog.hxx,v 1.39 2009-01-02 01:50:03 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -26,9 +26,11 @@ class ButtonWidget; class CommandSender; +class ContextMenu; class DialogContainer; class GameList; class OptionsDialog; +class GlobalPropsDialog; class OSystem; class Properties; class RomInfoWidget; @@ -62,12 +64,19 @@ class LauncherDialog : public Dialog protected: virtual void handleKeyDown(int ascii, int keycode, int modifiers); + virtual void handleMouseDown(int x, int y, int button, int clickCount); virtual void handleCommand(CommandSender* sender, int cmd, int data, int id); void loadConfig(); void updateListing(); - protected: + private: + void enableButtons(bool enable); + void loadDirListing(); + void loadRomInfo(); + void handleContextMenu(); + + private: ButtonWidget* myStartButton; ButtonWidget* myPrevDirButton; ButtonWidget* myOptionsButton; @@ -82,12 +91,9 @@ class LauncherDialog : public Dialog OptionsDialog* myOptions; RomInfoWidget* myRomInfoWidget; - private: - void enableButtons(bool enable); - void loadDirListing(); - void loadRomInfo(); + ContextMenu* myMenu; + GlobalPropsDialog* myGlobalProps; - private: int mySelectedItem; int myRomInfoSize; FilesystemNode myCurrentNode; diff --git a/stella/src/gui/ListWidget.hxx b/stella/src/gui/ListWidget.hxx index 35e290774..4e4a0f2b5 100644 --- a/stella/src/gui/ListWidget.hxx +++ b/stella/src/gui/ListWidget.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: ListWidget.hxx,v 1.22 2009-01-01 18:13:38 stephena Exp $ +// $Id: ListWidget.hxx,v 1.23 2009-01-02 01:50:03 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -36,6 +36,7 @@ enum { kListItemDoubleClickedCmd = 'LIdb', // double click on item - 'data' will be item index kListItemActivatedCmd = 'LIac', // item activated by return/enter - 'data' will be item index kListItemDataChangedCmd = 'LIch', // item data changed - 'data' will be item index + kListItemRClickedCmd = 'LIrc', // right click on item - 'data' will be item index kListSelectionChangedCmd = 'Lsch', // selection changed - 'data' will be item index kListScrolledCmd = 'Lscl' // list scrolled - 'data' will be current position }; diff --git a/stella/src/gui/module.mk b/stella/src/gui/module.mk index d2d0421c9..e3bb3be1d 100644 --- a/stella/src/gui/module.mk +++ b/stella/src/gui/module.mk @@ -16,6 +16,7 @@ MODULE_OBJS := \ src/gui/Font.o \ src/gui/GameInfoDialog.o \ src/gui/GameList.o \ + src/gui/GlobalPropsDialog.o \ src/gui/HelpDialog.o \ src/gui/InputDialog.o \ src/gui/InputTextDialog.o \