Added Game Info Dialog. It basically lists all the relevant information

in the stella.pro file for the particular game.

Added Help Dialog, which gives a description of the most commonly
used non-remappable commands.  This still has to be adapted for OSX
shortcuts.

Finished the Sound Dialog.  Still TODO is remove the requirement for
restarting Stella before sound can be disabled.

All that's left now are the Miscellaneous and Event Remapping Dialogs.
The later will be the hardest, but it will also work a lot better than
in previous versions of Stella.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@386 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2005-03-27 03:07:34 +00:00
parent f3dec28824
commit b5fb1d277d
12 changed files with 507 additions and 32 deletions

View File

@ -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: makefile,v 1.67 2005-03-26 19:26:47 stephena Exp $
## $Id: makefile,v 1.68 2005-03-27 03:07:33 stephena Exp $
##============================================================================
##============================================================================
@ -147,7 +147,8 @@ win32-gl:
M6502_OBJS = D6502.o Device.o M6502.o M6502Low.o M6502Hi.o NullDev.o System.o
GUI_OBJS = StellaFont.o Menu.o Widget.o PopUpWidget.o Dialog.o \
OptionsDialog.o VideoDialog.o AudioDialog.o
OptionsDialog.o VideoDialog.o AudioDialog.o \
GameInfoDialog.o HelpDialog.o
CORE_OBJS = Booster.o Cart.o Cart2K.o Cart3F.o Cart4K.o CartAR.o CartDPC.o \
CartE0.o CartE7.o CartF4.o CartF4SC.o CartF6.o CartF6SC.o \
@ -378,3 +379,9 @@ VideoDialog.o: $(GUI)/VideoDialog.cxx $(GUI)/VideoDialog.hxx
AudioDialog.o: $(GUI)/AudioDialog.cxx $(GUI)/AudioDialog.hxx
$(CXX) -c $(FLAGS) $(OPTIONS) $(LDFLAGS) $(GUI)/AudioDialog.cxx
GameInfoDialog.o: $(GUI)/GameInfoDialog.cxx $(GUI)/GameInfoDialog.hxx
$(CXX) -c $(FLAGS) $(OPTIONS) $(LDFLAGS) $(GUI)/GameInfoDialog.cxx
HelpDialog.o: $(GUI)/HelpDialog.cxx $(GUI)/HelpDialog.hxx
$(CXX) -c $(FLAGS) $(OPTIONS) $(LDFLAGS) $(GUI)/HelpDialog.cxx

View File

@ -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: Console.cxx,v 1.44 2005-03-26 19:26:47 stephena Exp $
// $Id: Console.cxx,v 1.45 2005-03-27 03:07:33 stephena Exp $
//============================================================================
#include <assert.h>
@ -187,6 +187,7 @@ Console::Console(const uInt8* image, uInt32 size, OSystem* osystem)
// Initialize the menuing system with updated values from the framebuffer
myOSystem->menu().initialize();
myOSystem->menu().setGameProfile(myProperties);
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -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: AudioDialog.cxx,v 1.1 2005-03-26 19:26:47 stephena Exp $
// $Id: AudioDialog.cxx,v 1.2 2005-03-27 03:07:34 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -85,10 +85,10 @@ AudioDialog::AudioDialog(OSystem* osystem, uInt16 x, uInt16 y, uInt16 w, uInt16
// Add Defaults, OK and Cancel buttons
addButton( 10, _h - 24, "Defaults", kDefaultsCmd, 0);
#ifndef MAC_OSX
addButton(_w - 2 * (kButtonWidth + 10), _h - 24, "OK", kOKCmd, 0);
addButton(_w - 2 * (kButtonWidth + 7), _h - 24, "OK", kOKCmd, 0);
addButton(_w - (kButtonWidth + 10), _h - 24, "Cancel", kCloseCmd, 0);
#else
addButton(_w - 2 * (kButtonWidth + 10), _h - 24, "Cancel", kCloseCmd, 0);
addButton(_w - 2 * (kButtonWidth + 7), _h - 24, "Cancel", kCloseCmd, 0);
addButton(_w - (kButtonWidth + 10), _h - 24, "OK", kOKCmd, 0);
#endif

View File

@ -0,0 +1,149 @@
//============================================================================
//
// 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-2005 by Bradford W. Mott
//
// 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.1 2005-03-27 03:07:34 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
//============================================================================
#include "OSystem.hxx"
#include "Props.hxx"
#include "Widget.hxx"
#include "Dialog.hxx"
#include "GameInfoDialog.hxx"
#include "GuiUtils.hxx"
#include "bspf.hxx"
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GameInfoDialog::GameInfoDialog(OSystem* osystem, uInt16 x, uInt16 y, uInt16 w, uInt16 h)
: Dialog(osystem, x, y, w, h),
myPage(1),
myNumPages(2)
{
// Add Previous, Next and Close buttons
myPrevButton = addButton(10, h - 24, "Previous", kPrevCmd, 'P');
myNextButton = addButton((kButtonWidth + 15), h - 24,
"Next", kNextCmd, 'N');
addButton(w - (kButtonWidth + 10), h - 24, "Close", kCloseCmd, 'C');
myPrevButton->clearFlags(WIDGET_ENABLED);
myTitle = new StaticTextWidget(this, 0, 5, w, 16, "", kTextAlignCenter);
for(uInt8 i = 0; i < LINES_PER_PAGE; i++)
{
myKey[i] = new StaticTextWidget(this, 10, 18 + (10 * i), 80, 16, "", kTextAlignLeft);
myDesc[i] = new StaticTextWidget(this, 90, 18 + (10 * i), 210, 16, "", kTextAlignLeft);
}
displayInfo();
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GameInfoDialog::~GameInfoDialog()
{
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void GameInfoDialog::updateStrings(uInt8 page, uInt8 lines,
string& title, string*& key, string* &dsc)
{
key = new string[lines];
dsc = new string[lines];
uInt8 i = 0;
switch(page)
{
case 1:
title = "Common game properties";
ADD_BIND("Name:", myGameProperties.get("Cartridge.Name"));
ADD_LINE;
ADD_BIND("Manufacturer:", myGameProperties.get("Cartridge.Manufacturer"));
ADD_BIND("Model:", myGameProperties.get("Cartridge.ModelNo"));
ADD_BIND("Rarity:", myGameProperties.get("Cartridge.Rarity"));
ADD_BIND("Note:", myGameProperties.get("Cartridge.Note"));
ADD_BIND("Type:", myGameProperties.get("Cartridge.Type"));
ADD_LINE;
ADD_BIND("MD5sum:", myGameProperties.get("Cartridge.MD5"));
break;
case 2:
title = "Other game properties";
ADD_BIND("TV Type:", myGameProperties.get("Console.TelevisionType"));
ADD_BIND("Left Controller:", myGameProperties.get("Controller.Left"));
ADD_BIND("Right Controller:", myGameProperties.get("Controller.Left"));
ADD_BIND("Format:", myGameProperties.get("Display.Format"));
ADD_BIND("XStart:", myGameProperties.get("Display.XStart"));
ADD_BIND("Width:", myGameProperties.get("Display.Width"));
ADD_BIND("YStart:", myGameProperties.get("Display.YStart"));
ADD_BIND("Height:", myGameProperties.get("Display.Height"));
ADD_BIND("CPU Type:", myGameProperties.get("Emulation.CPU"));
ADD_BIND("Use HMoveBlanks:", myGameProperties.get("Emulation.HmoveBlanks"));
break;
}
while(i < lines)
ADD_LINE;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void GameInfoDialog::displayInfo()
{
string titleStr, *keyStr, *dscStr;
updateStrings(myPage, LINES_PER_PAGE, titleStr, keyStr, dscStr);
myTitle->setLabel(titleStr);
for(uInt8 i = 0; i < LINES_PER_PAGE; i++)
{
myKey[i]->setLabel(keyStr[i]);
myDesc[i]->setLabel(dscStr[i]);
}
delete[] keyStr;
delete[] dscStr;
instance()->frameBuffer().refresh();
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void GameInfoDialog::handleCommand(CommandSender* sender, uInt32 cmd, uInt32 data)
{
switch(cmd)
{
case kNextCmd:
myPage++;
if(myPage >= myNumPages)
myNextButton->clearFlags(WIDGET_ENABLED);
if(myPage >= 2)
myPrevButton->setFlags(WIDGET_ENABLED);
displayInfo();
break;
case kPrevCmd:
myPage--;
if(myPage <= myNumPages)
myNextButton->setFlags(WIDGET_ENABLED);
if(myPage <= 1)
myPrevButton->clearFlags(WIDGET_ENABLED);
displayInfo();
break;
default:
Dialog::handleCommand(sender, cmd, data);
}
}

View File

@ -0,0 +1,69 @@
//============================================================================
//
// 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-2005 by Bradford W. Mott
//
// 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.1 2005-03-27 03:07:34 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
//============================================================================
#ifndef GAME_INFO_DIALOG_HXX
#define GAME_INFO_DIALOG_HXX
class CommandSender;
class ButtonWidget;
class StaticTextWidget;
#define ADD_BIND(k,d) do { key[i] = k; dsc[i] = d; i++; } while(0)
#define ADD_TEXT(d) ADD_BIND("",d)
#define ADD_LINE ADD_BIND("","")
#define LINES_PER_PAGE 10
#include "OSystem.hxx"
#include "Props.hxx"
#include "bspf.hxx"
class GameInfoDialog : public Dialog
{
public:
GameInfoDialog(OSystem* osystem, uInt16 x, uInt16 y, uInt16 w, uInt16 h);
~GameInfoDialog();
void setGameProfile(Properties& props) { myGameProperties = props; }
protected:
ButtonWidget* myNextButton;
ButtonWidget* myPrevButton;
StaticTextWidget* myTitle;
StaticTextWidget* myKey[LINES_PER_PAGE];
StaticTextWidget* myDesc[LINES_PER_PAGE];
uInt8 myPage;
uInt8 myNumPages;
private:
virtual void handleCommand(CommandSender* sender, uInt32 cmd, uInt32 data);
virtual void updateStrings(uInt8 page, uInt8 lines,
string& title, string*& key, string* &dsc);
void displayInfo();
void loadConfig() { displayInfo(); }
private:
Properties myGameProperties;
};
#endif

View File

@ -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: GuiUtils.hxx,v 1.4 2005-03-26 19:26:47 stephena Exp $
// $Id: GuiUtils.hxx,v 1.5 2005-03-27 03:07:34 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -29,7 +29,7 @@
Probably not very neat, but at least it works ...
@author Stephen Anthony
@version $Id: GuiUtils.hxx,v 1.4 2005-03-26 19:26:47 stephena Exp $
@version $Id: GuiUtils.hxx,v 1.5 2005-03-27 03:07:34 stephena Exp $
*/
#define kLineHeight 12
@ -45,9 +45,11 @@ enum OverlayColor {
// The commands generated by various widgets
enum {
kOKCmd = 'ok ',
kCloseCmd = 'clos',
kDefaultsCmd,
kOKCmd = 'OK ',
kCloseCmd = 'CLOS',
kNextCmd = 'NEXT',
kPrevCmd = 'PREV',
kDefaultsCmd = 'DEFA',
kRendererChanged,
kAspectRatioChanged,
kFrameRateChanged,

View File

@ -0,0 +1,169 @@
//============================================================================
//
// 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-2005 by Bradford W. Mott
//
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: HelpDialog.cxx,v 1.1 2005-03-27 03:07:34 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
//============================================================================
#include "OSystem.hxx"
#include "Widget.hxx"
#include "Dialog.hxx"
#include "HelpDialog.hxx"
#include "GuiUtils.hxx"
#include "bspf.hxx"
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HelpDialog::HelpDialog(OSystem* osystem, uInt16 x, uInt16 y, uInt16 w, uInt16 h)
: Dialog(osystem, x, y, w, h),
myPage(1),
myNumPages(4)
{
// Add Previous, Next and Close buttons
myPrevButton = addButton(10, h - 24, "Previous", kPrevCmd, 'P');
myNextButton = addButton((kButtonWidth + 15), h - 24,
"Next", kNextCmd, 'N');
addButton(w - (kButtonWidth + 10), h - 24, "Close", kCloseCmd, 'C');
myPrevButton->clearFlags(WIDGET_ENABLED);
myTitle = new StaticTextWidget(this, 0, 5, w, 16, "", kTextAlignCenter);
for(uInt8 i = 0; i < LINES_PER_PAGE; i++)
{
myKey[i] = new StaticTextWidget(this, 10, 18 + (10 * i), 80, 16, "", kTextAlignLeft);
myDesc[i] = new StaticTextWidget(this, 90, 18 + (10 * i), 210, 16, "", kTextAlignLeft);
}
displayInfo();
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HelpDialog::~HelpDialog()
{
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void HelpDialog::updateStrings(uInt8 page, uInt8 lines,
string& title, string*& key, string* &dsc)
{
key = new string[lines];
dsc = new string[lines];
uInt8 i = 0;
switch(page) // FIXME - change for OSX
{
case 1:
title = "Common commands:";
ADD_BIND("Ctrl Q", "Quit emulation");
ADD_BIND("Escape", "Exit current game");
ADD_BIND("Tab", "Enter/exit configuration menu");
ADD_LINE;
ADD_BIND("Alt =", "Increase window size");
ADD_BIND("Alt -", "Decrease window size");
ADD_BIND("Alt Enter", "Toggle fullscreen/windowed mode");
ADD_LINE;
ADD_BIND("Alt ]", "Increase volume by 2%");
ADD_BIND("Alt [", "Decrease volume by 2%");
break;
case 2:
title = "Special commands:";
ADD_BIND("Ctrl g", "Grab mouse (keep in window)");
ADD_BIND("Ctrl f", "Switch between NTSC and PAL");
ADD_BIND("Ctrl s", "Save (or merge) game properties");
ADD_LINE;
ADD_BIND("Ctrl 0", "Mouse emulates paddle 0");
ADD_BIND("Ctrl 1", "Mouse emulates paddle 1");
ADD_BIND("Ctrl 2", "Mouse emulates paddle 2");
ADD_BIND("Ctrl 3", "Mouse emulates paddle 3");
break;
case 3:
title = "Developer commands:";
ADD_BIND("Alt PageUp", "Increase Display.YStart");
ADD_BIND("Alt PageDown", "Decrease Display.YStart");
ADD_BIND("Ctrl PageUp", "Increase Display.Height");
ADD_BIND("Ctrl PageDown", "Decrease Display.Height");
ADD_BIND("Alt End", "Increase Display.XStart");
ADD_BIND("Alt Home", "Decrease Display.XStart");
ADD_BIND("Ctrl End", "Increase Display.Width");
ADD_BIND("Ctrl Home", "Decrease Display.Width");
break;
case 4:
title = "All other commands:";
ADD_LINE;
ADD_BIND("Remapped Events", "");
ADD_TEXT("Most other commands can be");
ADD_TEXT("remapped. Please consult the");
ADD_TEXT("'Event Remapping' section");
ADD_TEXT("for more information.");
break;
}
while(i < lines)
ADD_LINE;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void HelpDialog::displayInfo()
{
string titleStr, *keyStr, *dscStr;
updateStrings(myPage, LINES_PER_PAGE, titleStr, keyStr, dscStr);
myTitle->setLabel(titleStr);
for(uInt8 i = 0; i < LINES_PER_PAGE; i++)
{
myKey[i]->setLabel(keyStr[i]);
myDesc[i]->setLabel(dscStr[i]);
}
delete[] keyStr;
delete[] dscStr;
instance()->frameBuffer().refresh();
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void HelpDialog::handleCommand(CommandSender* sender, uInt32 cmd, uInt32 data)
{
switch(cmd)
{
case kNextCmd:
myPage++;
if(myPage >= myNumPages)
myNextButton->clearFlags(WIDGET_ENABLED);
if(myPage >= 2)
myPrevButton->setFlags(WIDGET_ENABLED);
displayInfo();
break;
case kPrevCmd:
myPage--;
if(myPage <= myNumPages)
myNextButton->setFlags(WIDGET_ENABLED);
if(myPage <= 1)
myPrevButton->clearFlags(WIDGET_ENABLED);
displayInfo();
break;
default:
Dialog::handleCommand(sender, cmd, data);
}
}

View File

@ -0,0 +1,64 @@
//============================================================================
//
// 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-2005 by Bradford W. Mott
//
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: HelpDialog.hxx,v 1.1 2005-03-27 03:07:34 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
//============================================================================
#ifndef HELP_DIALOG_HXX
#define HELP_DIALOG_HXX
class CommandSender;
class ButtonWidget;
class StaticTextWidget;
#define ADD_BIND(k,d) do { key[i] = k; dsc[i] = d; i++; } while(0)
#define ADD_TEXT(d) ADD_BIND("",d)
#define ADD_LINE ADD_BIND("","")
#define LINES_PER_PAGE 10
#include "OSystem.hxx"
#include "Props.hxx"
#include "bspf.hxx"
class HelpDialog : public Dialog
{
public:
HelpDialog(OSystem* osystem, uInt16 x, uInt16 y, uInt16 w, uInt16 h);
~HelpDialog();
protected:
ButtonWidget* myNextButton;
ButtonWidget* myPrevButton;
StaticTextWidget* myTitle;
StaticTextWidget* myKey[LINES_PER_PAGE];
StaticTextWidget* myDesc[LINES_PER_PAGE];
uInt8 myPage;
uInt8 myNumPages;
private:
virtual void handleCommand(CommandSender* sender, uInt32 cmd, uInt32 data);
virtual void updateStrings(uInt8 page, uInt8 lines,
string& title, string*& key, string* &dsc);
void displayInfo();
void loadConfig() { displayInfo(); }
};
#endif

View File

@ -13,20 +13,21 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: Menu.hxx,v 1.4 2005-03-14 04:08:15 stephena Exp $
// $Id: Menu.hxx,v 1.5 2005-03-27 03:07:34 stephena Exp $
//============================================================================
#ifndef MENU_HXX
#define MENU_HXX
class Dialog;
class Properties;
class OSystem;
class OptionsDialog;
#include <SDL.h>
#include "Stack.hxx"
#include "EventHandler.hxx"
#include "Dialog.hxx"
#include "OptionsDialog.hxx"
#include "bspf.hxx"
typedef FixedStack<Dialog *> DialogStack;
@ -38,7 +39,7 @@ typedef FixedStack<Dialog *> DialogStack;
a stack, and handles their events.
@author Stephen Anthony
@version $Id: Menu.hxx,v 1.4 2005-03-14 04:08:15 stephena Exp $
@version $Id: Menu.hxx,v 1.5 2005-03-27 03:07:34 stephena Exp $
*/
class Menu
{
@ -110,6 +111,13 @@ class Menu
*/
void reStack();
/**
Adds the specified game info to the appropriate menu item
@param props The properties of the current game
*/
void setGameProfile(Properties& props) { myOptionsDialog->setGameProfile(props); }
private:
OSystem* myOSystem;
OptionsDialog* myOptionsDialog;

View File

@ -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: OptionsDialog.cxx,v 1.6 2005-03-26 19:26:47 stephena Exp $
// $Id: OptionsDialog.cxx,v 1.7 2005-03-27 03:07:34 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -26,6 +26,8 @@
#include "Control.hxx"
#include "VideoDialog.hxx"
#include "AudioDialog.hxx"
#include "GameInfoDialog.hxx"
#include "HelpDialog.hxx"
#include "OptionsDialog.hxx"
#include "bspf.hxx"
@ -83,9 +85,14 @@ OptionsDialog::OptionsDialog(OSystem* osystem)
/*
myEventMappingDialog = new EventMappingDialog(myOSystem);
myMiscDialog = new MiscDialog(myOSystem);
myGameInfoDialog = new GameInfoDialog(myOSystem);
myHelpDialog = new HelpDialog(myOSystem);
*/
w = 255; h = 150;
checkBounds(fbWidth, fbHeight, &x, &y, &w, &h);
myGameInfoDialog = new GameInfoDialog(myOSystem, x, y, w, h);
w = 255; h = 150;
checkBounds(fbWidth, fbHeight, &x, &y, &w, &h);
myHelpDialog = new HelpDialog(myOSystem, x, y, w, h);
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@ -93,12 +100,10 @@ OptionsDialog::~OptionsDialog()
{
delete myVideoDialog;
delete myAudioDialog;
/* FIXME
delete myEventMappingDialog;
delete myMiscDialog;
// delete myEventMappingDialog;
// delete myMiscDialog;
delete myGameInfoDialog;
delete myHelpDialog;
*/
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@ -135,13 +140,11 @@ cerr << "push MiscDialog to top of stack\n";
break;
case kInfoCmd:
// instance()->menu().addDialog(myGameInfoDialog);
cerr << "push GameInfoDialog to top of stack\n";
instance()->menu().addDialog(myGameInfoDialog);
break;
case kHelpCmd:
// instance()->menu().addDialog(myHelpDialog);
cerr << "push HelpDialog to top of stack\n";
instance()->menu().addDialog(myHelpDialog);
break;
default:

View File

@ -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: OptionsDialog.hxx,v 1.2 2005-03-26 19:26:47 stephena Exp $
// $Id: OptionsDialog.hxx,v 1.3 2005-03-27 03:07:34 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -22,16 +22,17 @@
#ifndef OPTIONS_DIALOG_HXX
#define OPTIONS_DIALOG_HXX
class Properties;
class CommandSender;
class Dialog;
class VideoDialog;
class AudioDialog;
class EventMappingDialog;
class MiscDialog;
class GameInfoDialog;
class HelpDialog;
#include "OSystem.hxx"
#include "GameInfoDialog.hxx"
#include "bspf.hxx"
class OptionsDialog : public Dialog
@ -42,6 +43,8 @@ class OptionsDialog : public Dialog
virtual void handleCommand(CommandSender* sender, uInt32 cmd, uInt32 data);
void setGameProfile(Properties& props) { myGameInfoDialog->setGameProfile(props); }
protected:
VideoDialog* myVideoDialog;
AudioDialog* myAudioDialog;

View File

@ -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: VideoDialog.cxx,v 1.4 2005-03-26 19:26:48 stephena Exp $
// $Id: VideoDialog.cxx,v 1.5 2005-03-27 03:07:34 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -131,10 +131,10 @@ VideoDialog::VideoDialog(OSystem* osystem, uInt16 x, uInt16 y, uInt16 w, uInt16
// Add Defaults, OK and Cancel buttons
addButton( 10, _h - 24, "Defaults", kDefaultsCmd, 0);
#ifndef MAC_OSX
addButton(_w - 2 * (kButtonWidth + 10), _h - 24, "OK", kOKCmd, 0);
addButton(_w - 2 * (kButtonWidth + 7), _h - 24, "OK", kOKCmd, 0);
addButton(_w - (kButtonWidth + 10), _h - 24, "Cancel", kCloseCmd, 0);
#else
addButton(_w - 2 * (kButtonWidth + 10), _h - 24, "Cancel", kCloseCmd, 0);
addButton(_w - 2 * (kButtonWidth + 7), _h - 24, "Cancel", kCloseCmd, 0);
addButton(_w - (kButtonWidth + 10), _h - 24, "OK", kOKCmd, 0);
#endif