Implemented BrowserDialog functionality. That means we can now browse

for the correct ROM folder, and the folders contents will be shown in the
listview.

Still TODO is modify GameList so that it contains all relevant info for
a ROM.  Then, the listview will contain the actual names of the ROMS
(as specified in stella.pro) instead of their on-disk filenames.  And at
that point, we can actually start a game directly from that listview.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@417 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2005-05-10 19:20:45 +00:00
parent 011588bbb1
commit 781f8b8d2e
35 changed files with 382 additions and 168 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.76 2005-05-09 18:58:17 stephena Exp $
## $Id: makefile,v 1.77 2005-05-10 19:20:38 stephena Exp $
##============================================================================
##============================================================================
@ -159,7 +159,7 @@ GUI_OBJS = StellaFont.o Menu.o Launcher.o \
Widget.o PopUpWidget.o ScrollBarWidget.o ListWidget.o \
Dialog.o DialogContainer.o OptionsDialog.o VideoDialog.o AudioDialog.o \
EventMappingDialog.o GameInfoDialog.o HelpDialog.o \
LauncherDialog.o BrowserDialog.o
LauncherDialog.o BrowserDialog.o GameList.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 \
@ -426,3 +426,6 @@ LauncherDialog.o: $(GUI)/LauncherDialog.cxx $(GUI)/LauncherDialog.hxx
BrowserDialog.o: $(GUI)/BrowserDialog.cxx $(GUI)/BrowserDialog.hxx
$(CXX) -c $(FLAGS) $(OPTIONS) $(LDFLAGS) $(GUI)/BrowserDialog.cxx
GameList.o: $(GUI)/GameList.cxx $(GUI)/GameList.hxx
$(CXX) -c $(FLAGS) $(OPTIONS) $(LDFLAGS) $(GUI)/GameList.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: FSNode.cxx,v 1.1 2005-05-09 18:58:18 stephena Exp $
// $Id: FSNode.cxx,v 1.2 2005-05-10 19:20:40 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -64,13 +64,11 @@ FilesystemNode::FilesystemNode(const FilesystemNode &node)
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#ifdef MACOSX
FilesystemNode::FilesystemNode(const string& p)
{
_realNode = getNodeForPath(p);
_refCount = new int(1);
}
#endif
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FilesystemNode::~FilesystemNode()

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: FSNode.hxx,v 1.1 2005-05-09 18:58:18 stephena Exp $
// $Id: FSNode.hxx,v 1.2 2005-05-10 19:20:40 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -161,9 +161,7 @@ class FilesystemNode : public AbstractFilesystemNode
public:
FilesystemNode();
FilesystemNode(const FilesystemNode& node);
#ifdef MACOSX
FilesystemNode(const string& path);
#endif
~FilesystemNode();
FilesystemNode &operator =(const FilesystemNode &node);
@ -195,7 +193,6 @@ class FilesystemNode : public AbstractFilesystemNode
*/
static AbstractFilesystemNode* getRoot();
#ifdef MACOSX
/*
* Construct a node based on a path; the path is in the same format as it
* would be for calls to fopen().
@ -203,7 +200,6 @@ class FilesystemNode : public AbstractFilesystemNode
* I.e. getNodeForPath(oldNode.path()) should create a new node identical to oldNode.
*/
static AbstractFilesystemNode* getNodeForPath(const string& path);
#endif
};
#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: FrameBuffer.hxx,v 1.30 2005-05-08 17:38:23 stephena Exp $
// $Id: FrameBuffer.hxx,v 1.31 2005-05-10 19:20:40 stephena Exp $
//============================================================================
#ifndef FRAMEBUFFER_HXX
@ -41,7 +41,7 @@ class OSystem;
All GUI elements (ala ScummVM) are drawn here as well.
@author Stephen Anthony
@version $Id: FrameBuffer.hxx,v 1.30 2005-05-08 17:38:23 stephena Exp $
@version $Id: FrameBuffer.hxx,v 1.31 2005-05-10 19:20:40 stephena Exp $
*/
class FrameBuffer
{
@ -135,7 +135,7 @@ class FrameBuffer
*/
void refresh(bool now = false)
{
//cerr << "refresh() " << myNumRedraws++ << endl;
// cerr << "refresh() " << myNumRedraws++ << endl;
theRedrawEntireFrameIndicator = true;
myMenuRedraws = 2;
if(now) drawMediaSource();

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: Settings.cxx,v 1.38 2005-05-06 18:38:59 stephena Exp $
// $Id: Settings.cxx,v 1.39 2005-05-10 19:20:41 stephena Exp $
//============================================================================
#include <cassert>
@ -59,6 +59,7 @@ Settings::Settings(OSystem* osystem)
set("ssdir", ".");
set("ssname", "romname");
set("sssingle", "false");
set("romdir", "");
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

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.3 2005-04-28 19:28:33 stephena Exp $
// $Id: AudioDialog.cxx,v 1.4 2005-05-10 19:20:42 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -41,8 +41,9 @@ enum {
};
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AudioDialog::AudioDialog(OSystem* osystem, uInt16 x, uInt16 y, uInt16 w, uInt16 h)
: Dialog(osystem, x, y, w, h)
AudioDialog::AudioDialog(OSystem* osystem, DialogContainer* parent,
uInt16 x, uInt16 y, uInt16 w, uInt16 h)
: Dialog(osystem, parent, x, y, w, h)
{
int yoff = 10,
xoff = 30,

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.hxx,v 1.1 2005-03-26 19:26:47 stephena Exp $
// $Id: AudioDialog.hxx,v 1.2 2005-05-10 19:20:43 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -24,6 +24,7 @@
class CommandSender;
class Dialog;
class DialogContainer;
class PopUpWidget;
class SliderWidget;
class StaticTextWidget;
@ -35,7 +36,8 @@ class CheckboxWidget;
class AudioDialog : public Dialog
{
public:
AudioDialog(OSystem* osystem, uInt16 x, uInt16 y, uInt16 w, uInt16 h);
AudioDialog(OSystem* osystem, DialogContainer* parent,
uInt16 x, uInt16 y, uInt16 w, uInt16 h);
~AudioDialog();
protected:

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: BrowserDialog.cxx,v 1.1 2005-05-06 18:39:00 stephena Exp $
// $Id: BrowserDialog.cxx,v 1.2 2005-05-10 19:20:43 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -23,31 +23,125 @@
#include "Widget.hxx"
#include "ListWidget.hxx"
#include "Dialog.hxx"
#include "FSNode.hxx"
#include "GuiUtils.hxx"
#include "Event.hxx"
#include "EventHandler.hxx"
#include "BrowserDialog.hxx"
#include "bspf.hxx"
enum {
kChooseCmd = 'CHOS',
kGoUpCmd = 'GOUP'
};
/* We want to use this as a general directory selector at some point... possible uses
* - to select the data dir for a game
* - to select the place where save games are stored
* - others???
*/
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BrowserDialog::BrowserDialog(OSystem* osystem, uInt16 x, uInt16 y,
uInt16 w, uInt16 h)
: Dialog(osystem, x, y, w, h)
BrowserDialog::BrowserDialog(OSystem* osystem, DialogContainer* parent,
const string& title, const string& startpath,
uInt16 x, uInt16 y, uInt16 w, uInt16 h)
: Dialog(osystem, parent, x, y, w, h),
_fileList(NULL),
_currentPath(NULL),
_startPath(startpath)
{
// Headline - TODO: should be customizable during creation time
new StaticTextWidget(this, 10, 8, _w - 2 * 10, kLineHeight, title, kTextAlignCenter);
// Current path - TODO: handle long paths ?
_currentPath = new StaticTextWidget(this, 10, 20, _w - 2 * 10, kLineHeight,
"DUMMY", kTextAlignLeft);
// Add file list
_fileList = new ListWidget(this, 10, 34, _w - 2 * 10, _h - 34 - 24 - 10);
_fileList->setNumberingMode(kListNumberingOff);
_fileList->setEditable(false);
// Buttons
addButton(10, _h - 24, "Go up", kGoUpCmd, 0);
addButton(_w - 2 * (kButtonWidth + 10), _h - 24, "Cancel", kCloseCmd, 0);
addButton(_w - (kButtonWidth+10), _h - 24, "Choose", kChooseCmd, 0);
// If no node has been set, or the last used one is now invalid,
// go back to the root/default dir.
if (_startPath != "")
_choice = FilesystemNode(_startPath);
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BrowserDialog::~BrowserDialog()
void BrowserDialog::loadConfig()
{
}
// If no node has been set, or the last used one is now invalid,
// go back to the root/default dir.
if (_choice.isValid())
_node = _choice;
else if (!_node.isValid())
_node = FilesystemNode();
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void BrowserDialog::handleKeyDown(uInt16 ascii, Int32 keycode, Int32 modifiers)
{
// Alway refresh file list
updateListing();
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void BrowserDialog::handleCommand(CommandSender* sender, uInt32 cmd, uInt32 data)
{
switch (cmd)
{
case kChooseCmd:
{
// If nothing is selected in the list widget, choose the current dir.
// Else, choose the dir that is selected.
Int32 selection = _fileList->getSelected();
if (selection >= 0)
_choice = _nodeContent[selection];
else
_choice = _node;
setResult(1);
close();
break;
}
case kGoUpCmd:
_node = _node.getParent();
updateListing();
break;
case kListItemActivatedCmd:
case kListItemDoubleClickedCmd:
_node = _nodeContent[data];
updateListing();
break;
default:
Dialog::handleCommand(sender, cmd, data);
break;
}
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void BrowserDialog::updateListing()
{
// Update the path display
_currentPath->setLabel(_node.path());
// Read in the data from the file system
_nodeContent = _node.listDir();
_nodeContent.sort();
// Populate the ListWidget
StringList list;
Int32 size = _nodeContent.size();
for (Int32 i = 0; i < size; i++)
list.push_back(_nodeContent[i].displayName());
_fileList->setList(list);
_fileList->scrollTo(0);
// Finally, redraw
draw();
}

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: BrowserDialog.hxx,v 1.1 2005-05-06 18:39:00 stephena Exp $
// $Id: BrowserDialog.hxx,v 1.2 2005-05-10 19:20:43 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -22,6 +22,7 @@
#ifndef BROWSER_DIALOG_HXX
#define BROWSER_DIALOG_HXX
class DialogContainer;
class CommandSender;
class ButtonWidget;
class StaticTextWidget;
@ -29,28 +30,30 @@ class ListWidget;
#include "Dialog.hxx"
#include "OSystem.hxx"
#include "FSNode.hxx"
#include "bspf.hxx"
class BrowserDialog : public Dialog
{
public:
BrowserDialog(OSystem* osystem, uInt16 x, uInt16 y, uInt16 w, uInt16 h);
~BrowserDialog();
virtual void handleKeyDown(uInt16 ascii, Int32 keycode, Int32 modifiers);
protected:
private:
enum {
kStartMapCmd = 'map ',
kEraseCmd = 'eras',
kStopMapCmd = 'smap'
};
BrowserDialog(OSystem* osystem, DialogContainer* parent,
const string& title, const string& startpath,
uInt16 x, uInt16 y, uInt16 w, uInt16 h);
virtual void loadConfig();
virtual void handleCommand(CommandSender* sender, uInt32 cmd, uInt32 data);
private:
const FilesystemNode& getResult() { return _choice; }
protected:
ListWidget* _fileList;
StaticTextWidget* _currentPath;
FilesystemNode _node;
FSList _nodeContent;
FilesystemNode _choice;
string _startPath;
void updateListing();
};
#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: Dialog.cxx,v 1.11 2005-04-24 20:36:36 stephena Exp $
// $Id: Dialog.cxx,v 1.12 2005-05-10 19:20:43 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -36,8 +36,9 @@
* ...
*/
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Dialog::Dialog(OSystem* instance, uInt16 x, uInt16 y, uInt16 w, uInt16 h)
: GuiObject(instance, x, y, w, h),
Dialog::Dialog(OSystem* instance, DialogContainer* parent,
uInt16 x, uInt16 y, uInt16 w, uInt16 h)
: GuiObject(instance, parent, x, y, w, h),
_mouseWidget(0),
_focusedWidget(0),
_dragWidget(0),
@ -99,7 +100,7 @@ void Dialog::close()
}
releaseFocus();
instance()->menu().removeDialog();
parent()->removeDialog();
_openCount = 0;
}

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: Dialog.hxx,v 1.9 2005-05-04 19:04:46 stephena Exp $
// $Id: Dialog.hxx,v 1.10 2005-05-10 19:20:43 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -35,14 +35,15 @@ class DialogContainer;
This is the base class for all dialog boxes.
@author Stephen Anthony
@version $Id: Dialog.hxx,v 1.9 2005-05-04 19:04:46 stephena Exp $
@version $Id: Dialog.hxx,v 1.10 2005-05-10 19:20:43 stephena Exp $
*/
class Dialog : public GuiObject
{
friend class DialogContainer;
public:
Dialog(OSystem* instance, uInt16 x, uInt16 y, uInt16 w, uInt16 h);
Dialog(OSystem* instance, DialogContainer* parent,
uInt16 x, uInt16 y, uInt16 w, uInt16 h);
virtual ~Dialog();

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: EventMappingDialog.cxx,v 1.7 2005-05-06 22:50:15 stephena Exp $
// $Id: EventMappingDialog.cxx,v 1.8 2005-05-10 19:20:43 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -31,9 +31,9 @@
#include "bspf.hxx"
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventMappingDialog::EventMappingDialog(OSystem* osystem, uInt16 x, uInt16 y,
uInt16 w, uInt16 h)
: Dialog(osystem, x, y, w, h),
EventMappingDialog::EventMappingDialog(OSystem* osystem, DialogContainer* parent,
uInt16 x, uInt16 y, uInt16 w, uInt16 h)
: Dialog(osystem, parent, x, y, w, h),
myActionSelected(-1),
myRemapStatus(false)
{

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: EventMappingDialog.hxx,v 1.4 2005-04-06 23:47:08 stephena Exp $
// $Id: EventMappingDialog.hxx,v 1.5 2005-05-10 19:20:43 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -22,6 +22,7 @@
#ifndef EVENT_MAPPING_DIALOG_HXX
#define EVENT_MAPPING_DIALOG_HXX
class DialogContainer;
class CommandSender;
class ButtonWidget;
class StaticTextWidget;
@ -33,7 +34,8 @@ class ListWidget;
class EventMappingDialog : public Dialog
{
public:
EventMappingDialog(OSystem* osystem, uInt16 x, uInt16 y, uInt16 w, uInt16 h);
EventMappingDialog(OSystem* osystem, DialogContainer* parent,
uInt16 x, uInt16 y, uInt16 w, uInt16 h);
~EventMappingDialog();
virtual void handleKeyDown(uInt16 ascii, Int32 keycode, Int32 modifiers);

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: GameInfoDialog.cxx,v 1.3 2005-05-02 22:18:13 stephena Exp $
// $Id: GameInfoDialog.cxx,v 1.4 2005-05-10 19:20:43 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -29,8 +29,9 @@
#include "bspf.hxx"
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GameInfoDialog::GameInfoDialog(OSystem* osystem, uInt16 x, uInt16 y, uInt16 w, uInt16 h)
: Dialog(osystem, x, y, w, h),
GameInfoDialog::GameInfoDialog(OSystem* osystem, DialogContainer* parent,
uInt16 x, uInt16 y, uInt16 w, uInt16 h)
: Dialog(osystem, parent, x, y, w, h),
myPage(1),
myNumPages(2),
myGameProperties(NULL)

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: GameInfoDialog.hxx,v 1.2 2005-05-02 19:36:05 stephena Exp $
// $Id: GameInfoDialog.hxx,v 1.3 2005-05-10 19:20:43 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -22,6 +22,7 @@
#ifndef GAME_INFO_DIALOG_HXX
#define GAME_INFO_DIALOG_HXX
class DialogContainer;
class CommandSender;
class ButtonWidget;
class StaticTextWidget;
@ -39,7 +40,8 @@ class StaticTextWidget;
class GameInfoDialog : public Dialog
{
public:
GameInfoDialog(OSystem* osystem, uInt16 x, uInt16 y, uInt16 w, uInt16 h);
GameInfoDialog(OSystem* osystem, DialogContainer* parent,
uInt16 x, uInt16 y, uInt16 w, uInt16 h);
~GameInfoDialog();
void setGameProfile(Properties& props) { myGameProperties = &props; }

View File

@ -0,0 +1,41 @@
//============================================================================
//
// 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: GameList.cxx,v 1.1 2005-05-10 19:20:43 stephena Exp $
//
// Copyright (C) 2005 by Stephen Anthony
// @author Stephen Anthony
//============================================================================
#include "GameList.hxx"
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GameList::GameList()
{
cerr << "GameList::GameList()\n";
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GameList::~GameList()
{
cerr << "GameList::~GameList()\n";
myArray.clear();
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void GameList::sortByName()
{
cerr << "GameList::sortByName()\n";
}

View File

@ -0,0 +1,53 @@
//============================================================================
//
// 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: GameList.hxx,v 1.1 2005-05-10 19:20:43 stephena Exp $
//
// Based on code from KStella - Stella frontend
// Copyright (C) 2003-2005 Stephen Anthony
//============================================================================
#ifndef GAME_LIST_HXX
#define GAME_LIST_HXX
#include "Array.hxx"
#include "bspf.hxx"
/**
Holds the list of game info for the ROM launcher.
*/
class GameList
{
struct Entry {
string _rom;
string _md5;
string _name;
string _note;
};
typedef Array<Entry> GameArray;
public:
GameList();
~GameList();
void sortByName();
GameArray& getList() { return myArray; }
private:
GameArray myArray;
};
#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: GuiObject.hxx,v 1.4 2005-03-14 04:08:15 stephena Exp $
// $Id: GuiObject.hxx,v 1.5 2005-05-10 19:20:43 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -23,6 +23,7 @@
#define GUI_OBJECT_HXX
class OSystem;
class DialogContainer;
class Widget;
class Menu;
@ -33,7 +34,7 @@ class Menu;
This is the base class for all GUI objects/widgets.
@author Stephen Anthony
@version $Id: GuiObject.hxx,v 1.4 2005-03-14 04:08:15 stephena Exp $
@version $Id: GuiObject.hxx,v 1.5 2005-05-10 19:20:43 stephena Exp $
*/
class GuiObject : public CommandReceiver
{
@ -41,8 +42,9 @@ class GuiObject : public CommandReceiver
friend class Menu;
public:
GuiObject(OSystem* osystem, int x, int y, int w, int h)
GuiObject(OSystem* osystem, DialogContainer* parent, int x, int y, int w, int h)
: myOSystem(osystem),
myParent(parent),
_x(x),
_y(y),
_w(w),
@ -50,6 +52,7 @@ class GuiObject : public CommandReceiver
_firstWidget(0) { }
OSystem* instance() { return myOSystem; }
DialogContainer* parent() { return myParent; }
virtual Int16 getAbsX() const { return _x; }
virtual Int16 getAbsY() const { return _y; }
@ -62,7 +65,8 @@ class GuiObject : public CommandReceiver
virtual void draw() = 0;
protected:
OSystem* myOSystem;
OSystem* myOSystem;
DialogContainer* myParent;
Int16 _x, _y;
uInt16 _w, _h;

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: HelpDialog.cxx,v 1.3 2005-05-02 22:18:14 stephena Exp $
// $Id: HelpDialog.cxx,v 1.4 2005-05-10 19:20:43 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -28,8 +28,9 @@
#include "bspf.hxx"
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HelpDialog::HelpDialog(OSystem* osystem, uInt16 x, uInt16 y, uInt16 w, uInt16 h)
: Dialog(osystem, x, y, w, h),
HelpDialog::HelpDialog(OSystem* osystem, DialogContainer* parent,
uInt16 x, uInt16 y, uInt16 w, uInt16 h)
: Dialog(osystem, parent, x, y, w, h),
myPage(1),
myNumPages(4)
{

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: HelpDialog.hxx,v 1.1 2005-03-27 03:07:34 stephena Exp $
// $Id: HelpDialog.hxx,v 1.2 2005-05-10 19:20:43 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -22,6 +22,7 @@
#ifndef HELP_DIALOG_HXX
#define HELP_DIALOG_HXX
class DialogContainer;
class CommandSender;
class ButtonWidget;
class StaticTextWidget;
@ -39,7 +40,8 @@ class StaticTextWidget;
class HelpDialog : public Dialog
{
public:
HelpDialog(OSystem* osystem, uInt16 x, uInt16 y, uInt16 w, uInt16 h);
HelpDialog(OSystem* osystem, DialogContainer* parent,
uInt16 x, uInt16 y, uInt16 w, uInt16 h);
~HelpDialog();
protected:

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: Launcher.cxx,v 1.3 2005-05-09 18:58:19 stephena Exp $
// $Id: Launcher.cxx,v 1.4 2005-05-10 19:20:43 stephena Exp $
//============================================================================
#include "OSystem.hxx"
@ -39,7 +39,8 @@ void Launcher::initialize()
// We only create one instance of this dialog, since each time we do so,
// the ROM listing is read from disk. This can be very expensive.
if(myBaseDialog == NULL)
myBaseDialog = new LauncherDialog(myOSystem, 0, 0, kLauncherWidth, kLauncherHeight);
myBaseDialog = new LauncherDialog(myOSystem, this,
0, 0, kLauncherWidth, kLauncherHeight);
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -13,20 +13,20 @@
// 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.5 2005-05-10 01:12:59 stephena Exp $
// $Id: LauncherDialog.cxx,v 1.6 2005-05-10 19:20:44 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
//============================================================================
#include "OSystem.hxx"
#include "Settings.hxx"
#include "FSNode.hxx"
#include "Widget.hxx"
#include "ListWidget.hxx"
#include "Dialog.hxx"
#include "DialogContainer.hxx"
#include "GuiUtils.hxx"
#include "Event.hxx"
#include "EventHandler.hxx"
#include "BrowserDialog.hxx"
#include "LauncherDialog.hxx"
@ -48,11 +48,12 @@ enum {
};
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LauncherDialog::LauncherDialog(OSystem* osystem, uInt16 x, uInt16 y,
uInt16 w, uInt16 h)
: Dialog(osystem, x, y, w, h),
LauncherDialog::LauncherDialog(OSystem* osystem, DialogContainer* parent,
uInt16 x, uInt16 y, uInt16 w, uInt16 h)
: Dialog(osystem, parent, x, y, w, h),
myList(NULL),
myBrowser(NULL)
myBrowser(NULL),
myGameList(NULL)
{
// Show game name
new StaticTextWidget(this, 10, 8, _w - 20, kLineHeight,
@ -100,17 +101,22 @@ LauncherDialog::LauncherDialog(OSystem* osystem, uInt16 x, uInt16 y,
}
}
*/
// En-/Disable the buttons depending on the list selection
updateButtons();
// Create file browser dialog
//FIXME myBrowser = new BrowserDialog("Select directory with game data");
string romdir = instance()->settings().getString("romdir");
myBrowser = new BrowserDialog(osystem, parent, "Select ROM directory", romdir,
20, 20, _w - 40, _h - 40);
// Create a game list, which contains all the information about a ROM that
// the launcher needs
myGameList = new GameList();
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LauncherDialog::~LauncherDialog()
{
delete myBrowser;
delete myGameList;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@ -125,6 +131,9 @@ void LauncherDialog::loadConfig()
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void LauncherDialog::close()
{
// Save romdir specified by the browser
FilesystemNode dir(myBrowser->getResult());
instance()->settings().setString("romdir", dir.path());
/*
// Save last selection
const int sel = _list->getSelected();
@ -139,7 +148,7 @@ void LauncherDialog::close()
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void LauncherDialog::updateListing()
void LauncherDialog::updateListing(bool full_reload)
{
cerr << "LauncherDialog::updateListing()\n";
@ -147,19 +156,18 @@ cerr << "LauncherDialog::updateListing()\n";
// If so, we do a full reload from disk (takes quite some time).
// Otherwise, we can use the cache file (which is much faster).
// FIXME - actually implement the following code
/*
if(... ROM_DIR_CHANGED ...)
bool ROM_DIR_CHANGED = true;
if(ROM_DIR_CHANGED)
loadListFromDisk();
else if( ... CACHE_FILE_EXISTS)
loadListFromCache();
// else if( ... CACHE_FILE_EXISTS)
// loadListFromCache();
else // we have no other choice
loadListFromDisk();
*/
StringList l;
FilesystemNode t;
FilesystemNode dir(t);//"/local/emulators/atari/roms"); // FIXME
FilesystemNode dir(myBrowser->getResult());
FSList files = dir.listDir(FilesystemNode::kListAll);
files.sort();
@ -199,14 +207,6 @@ cerr << "LauncherDialog::updateListing()\n";
}
*/
myList->setList(l);
updateButtons();
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void LauncherDialog::reloadListing()
{
// FIXME - add bulk of KStella code here wrt loading from disk
cerr << "LauncherDialog::reloadListing()\n";
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@ -331,7 +331,6 @@ void LauncherDialog::handleCommand(CommandSender* sender, uInt32 cmd, uInt32 dat
if(myList->getSelected() >= 0)
{
string item = myList->getSelectedString();
cerr << "Game selected: " << item << endl;
instance()->createConsole(item);
close();
}
@ -339,16 +338,15 @@ void LauncherDialog::handleCommand(CommandSender* sender, uInt32 cmd, uInt32 dat
}
case kLocationCmd:
cerr << "kLocationCmd from LauncherDialog\n";
// instance()->launcher().addDialog(myLocationDialog);
parent()->addDialog(myBrowser);
break;
case kReloadCmd:
reloadListing();
updateListing(true); // force a reload from disk
break;
case kListSelectionChangedCmd:
cerr << "change note\n";
// cerr << "change note\n";
break;
case kQuitCmd:
@ -362,13 +360,11 @@ void LauncherDialog::handleCommand(CommandSender* sender, uInt32 cmd, uInt32 dat
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void LauncherDialog::updateButtons()
void LauncherDialog::loadListFromDisk()
{
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void LauncherDialog::loadListFromCache()
{
/*
bool enable = (myList->getSelected() >= 0);
if (enable != _startButton->isEnabled()) {
_startButton->setEnabled(enable);
_startButton->draw();
}
*/
}

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: LauncherDialog.hxx,v 1.2 2005-05-10 01:12:59 stephena Exp $
// $Id: LauncherDialog.hxx,v 1.3 2005-05-10 19:20:44 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -22,12 +22,14 @@
#ifndef LAUNCHER_DIALOG_HXX
#define LAUNCHER_DIALOG_HXX
class DialogContainer;
class CommandSender;
class ButtonWidget;
class StaticTextWidget;
class ListWidget;
class BrowserDialog;
#include "GameList.hxx"
#include "Dialog.hxx"
#include "Launcher.hxx"
#include "OSystem.hxx"
@ -36,15 +38,14 @@ class BrowserDialog;
class LauncherDialog : public Dialog
{
public:
LauncherDialog(OSystem* osystem, uInt16 x, uInt16 y, uInt16 w, uInt16 h);
LauncherDialog(OSystem* osystem, DialogContainer* parent,
uInt16 x, uInt16 y, uInt16 w, uInt16 h);
~LauncherDialog();
virtual void handleCommand(CommandSender* sender, uInt32 cmd, uInt32 data);
protected:
void updateListing();
void reloadListing();
void updateButtons();
void updateListing(bool full_reload = false);
void close();
virtual void addGame();
@ -56,6 +57,11 @@ class LauncherDialog : public Dialog
ListWidget* myList;
BrowserDialog* myBrowser;
StaticTextWidget* myNote;
GameList* myGameList;
private:
void loadListFromDisk();
void loadListFromCache();
};
#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: ListWidget.cxx,v 1.5 2005-05-04 19:04:46 stephena Exp $
// $Id: ListWidget.cxx,v 1.6 2005-05-10 19:20:44 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -165,9 +165,9 @@ void ListWidget::handleMouseDown(Int32 x, Int32 y, Int32 button, Int32 clickCoun
drawCaret(true);
}
sendCommand(kListSelectionChangedCmd, _selectedItem);
_boss->instance()->frameBuffer().refresh();
}
draw();
_boss->instance()->frameBuffer().refresh();
}
}
@ -184,7 +184,6 @@ void ListWidget::handleMouseUp(Int32 x, Int32 y, Int32 button, Int32 clickCount)
void ListWidget::handleMouseWheel(Int32 x, Int32 y, Int32 direction)
{
_scrollBar->handleMouseWheel(x, y, direction);
_boss->instance()->frameBuffer().refresh();
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@ -336,6 +335,8 @@ bool ListWidget::handleKeyDown(uInt16 ascii, Int32 keycode, Int32 modifiers)
sendCommand(kListSelectionChangedCmd, _selectedItem);
// also draw scrollbar
_scrollBar->draw();
_boss->instance()->frameBuffer().refresh();
}
return handled;

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: ListWidget.hxx,v 1.1 2005-04-04 02:19:22 stephena Exp $
// $Id: ListWidget.hxx,v 1.2 2005-05-10 19:20:44 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -64,8 +64,8 @@ class ListWidget : public Widget, public CommandSender
virtual void handleMouseDown(Int32 x, Int32 y, Int32 button, Int32 clickCount);
virtual void handleMouseUp(Int32 x, Int32 y, Int32 button, Int32 clickCount);
virtual void handleMouseWheel(Int32 x, Int32 y, Int32 direction);
virtual void handleMouseEntered(Int32 button) { _scrollBar->handleMouseLeft(button); }
virtual void handleMouseLeft(Int32 button) { _scrollBar->handleMouseLeft(button); }
virtual void handleMouseEntered(Int32 button) {};
virtual void handleMouseLeft(Int32 button) {};
virtual bool handleKeyDown(uInt16 ascii, Int32 keycode, Int32 modifiers);
virtual bool handleKeyUp(uInt16 ascii, Int32 keycode, Int32 modifiers);
virtual void handleCommand(CommandSender* sender, uInt32 cmd, uInt32 data);

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: Menu.cxx,v 1.8 2005-05-04 21:32:25 stephena Exp $
// $Id: Menu.cxx,v 1.9 2005-05-10 19:20:44 stephena Exp $
//============================================================================
#include "Dialog.hxx"
@ -38,7 +38,7 @@ Menu::~Menu()
void Menu::initialize()
{
delete myBaseDialog;
myBaseDialog = new OptionsDialog(myOSystem);
myBaseDialog = new OptionsDialog(myOSystem, this);
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -13,15 +13,15 @@
// 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.13 2005-05-01 18:57:21 stephena Exp $
// $Id: OptionsDialog.cxx,v 1.14 2005-05-10 19:20:44 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
//============================================================================
#include "OSystem.hxx"
#include "Menu.hxx"
#include "Dialog.hxx"
#include "DialogContainer.hxx"
#include "Widget.hxx"
#include "Control.hxx"
#include "VideoDialog.hxx"
@ -53,13 +53,14 @@ enum {
new ButtonWidget(this, xoffset, yoffset, kBigButtonWidth, 18, label, cmd, hotkey); yoffset += kRowHeight
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionsDialog::OptionsDialog(OSystem* osystem)
OptionsDialog::OptionsDialog(OSystem* osystem, DialogContainer* parent)
// FIXME - we have to initialize the video system at least once *before*
// creating a new console. For now, just use predefined values.
// Eventually, this subsystem will have to take into account screen size changes
: Dialog(osystem, (osystem->frameBuffer().baseWidth() - kMainMenuWidth) / 2,
(osystem->frameBuffer().baseHeight() - kMainMenuHeight)/2,
kMainMenuWidth, kMainMenuHeight),
: Dialog(osystem, parent,
(osystem->frameBuffer().baseWidth() - kMainMenuWidth) / 2,
(osystem->frameBuffer().baseHeight() - kMainMenuHeight)/2,
kMainMenuWidth, kMainMenuHeight),
myVideoDialog(NULL)
{
int yoffset = 7;
@ -85,27 +86,27 @@ OptionsDialog::OptionsDialog(OSystem* osystem)
// Now create all the dialogs attached to each menu button
w = 230; h = 130;
checkBounds(fbWidth, fbHeight, &x, &y, &w, &h);
myVideoDialog = new VideoDialog(myOSystem, x, y, w, h);
myVideoDialog = new VideoDialog(myOSystem, parent, x, y, w, h);
w = 200; h = 100;
checkBounds(fbWidth, fbHeight, &x, &y, &w, &h);
myAudioDialog = new AudioDialog(myOSystem, x, y, w, h);
myAudioDialog = new AudioDialog(myOSystem, parent, x, y, w, h);
w = 280; h = 170;
checkBounds(fbWidth, fbHeight, &x, &y, &w, &h);
myEventMappingDialog = new EventMappingDialog(myOSystem, x, y, w, h);
myEventMappingDialog = new EventMappingDialog(myOSystem, parent, x, y, w, h);
// w = 250; h = 150;
// checkBounds(fbWidth, fbHeight, &x, &y, &w, &h);
// myMiscDialog = new MiscDialog(myOSystem, x, y, w, h);
// myMiscDialog = new MiscDialog(myOSystem, parent, x, y, w, h);
w = 255; h = 150;
checkBounds(fbWidth, fbHeight, &x, &y, &w, &h);
myGameInfoDialog = new GameInfoDialog(myOSystem, x, y, w, h);
myGameInfoDialog = new GameInfoDialog(myOSystem, parent, x, y, w, h);
w = 255; h = 150;
checkBounds(fbWidth, fbHeight, &x, &y, &w, &h);
myHelpDialog = new HelpDialog(myOSystem, x, y, w, h);
myHelpDialog = new HelpDialog(myOSystem, parent, x, y, w, h);
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@ -135,28 +136,28 @@ void OptionsDialog::handleCommand(CommandSender* sender, uInt32 cmd, uInt32 data
switch(cmd)
{
case kVidCmd:
instance()->menu().addDialog(myVideoDialog);
parent()->addDialog(myVideoDialog);
break;
case kAudCmd:
instance()->menu().addDialog(myAudioDialog);
parent()->addDialog(myAudioDialog);
break;
case kEMapCmd:
instance()->menu().addDialog(myEventMappingDialog);
parent()->addDialog(myEventMappingDialog);
break;
case kMiscCmd:
// instance()->menu().addDialog(myMiscDialog);
// parent()->addDialog(myMiscDialog);
cerr << "push MiscDialog to top of stack\n";
break;
case kInfoCmd:
instance()->menu().addDialog(myGameInfoDialog);
parent()->addDialog(myGameInfoDialog);
break;
case kHelpCmd:
instance()->menu().addDialog(myHelpDialog);
parent()->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.4 2005-03-28 00:04:54 stephena Exp $
// $Id: OptionsDialog.hxx,v 1.5 2005-05-10 19:20:44 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -25,6 +25,7 @@
class Properties;
class CommandSender;
class Dialog;
class DialogContainer;
class VideoDialog;
class AudioDialog;
class EventMappingDialog;
@ -38,7 +39,7 @@ class HelpDialog;
class OptionsDialog : public Dialog
{
public:
OptionsDialog(OSystem* osystem);
OptionsDialog(OSystem* osystem, DialogContainer* parent);
~OptionsDialog();
virtual void handleCommand(CommandSender* sender, uInt32 cmd, uInt32 data);

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: PopUpWidget.cxx,v 1.4 2005-04-04 02:19:22 stephena Exp $
// $Id: PopUpWidget.cxx,v 1.5 2005-05-10 19:20:44 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -44,7 +44,7 @@ static uInt32 up_down_arrows[8] = {
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PopUpDialog::PopUpDialog(PopUpWidget* boss, Int32 clickX, Int32 clickY)
: Dialog(boss->instance(), 0, 0, 16, 16),
: Dialog(boss->instance(), boss->parent(), 0, 0, 16, 16),
_popUpBoss(boss)
{
// Copy the selection index

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: ScrollBarWidget.cxx,v 1.2 2005-04-24 20:36:36 stephena Exp $
// $Id: ScrollBarWidget.cxx,v 1.3 2005-05-10 19:20:44 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -118,8 +118,6 @@ void ScrollBarWidget::handleMouseDown(Int32 x, Int32 y, Int32 button,
// Make sure that _currentPos is still inside the bounds
checkBounds(old_pos);
_boss->instance()->frameBuffer().refresh();
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@ -127,7 +125,6 @@ void ScrollBarWidget::handleMouseUp(Int32 x, Int32 y, Int32 button,
Int32 clickCount)
{
_draggingPart = kNoPart;
_boss->instance()->frameBuffer().refresh();
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@ -145,7 +142,6 @@ void ScrollBarWidget::handleMouseWheel(Int32 x, Int32 y, Int32 direction)
// Make sure that _currentPos is still inside the bounds
checkBounds(old_pos);
_boss->instance()->frameBuffer().refresh();
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@ -186,9 +182,13 @@ void ScrollBarWidget::handleMouseMoved(Int32 x, Int32 y, Int32 button)
_part = kSliderPart;
if (old_part != _part)
{
draw();
// Refresh the FB, since the selected part has changed
_boss->instance()->frameBuffer().refresh();
}
}
_boss->instance()->frameBuffer().refresh();
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@ -222,7 +222,7 @@ void ScrollBarWidget::checkBounds(Int32 old_pos)
if (old_pos != _currentPos)
{
recalc();
recalc(); // This takes care of the required refresh
draw();
sendCommand(kSetPositionCmd, _currentPos);
}
@ -247,6 +247,8 @@ void ScrollBarWidget::recalc()
_sliderHeight = _h - 2 * UP_DOWN_BOX_HEIGHT;
_sliderPos = UP_DOWN_BOX_HEIGHT;
}
_boss->instance()->frameBuffer().refresh();
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

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.9 2005-05-05 00:10:49 stephena Exp $
// $Id: VideoDialog.cxx,v 1.10 2005-05-10 19:20:44 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -40,8 +40,9 @@ enum {
};
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VideoDialog::VideoDialog(OSystem* osystem, uInt16 x, uInt16 y, uInt16 w, uInt16 h)
: Dialog(osystem, x, y, w, h)
VideoDialog::VideoDialog(OSystem* osystem, DialogContainer* parent,
uInt16 x, uInt16 y, uInt16 w, uInt16 h)
: Dialog(osystem, parent, x, y, w, h)
{
int yoff = 10,
xoff = 2,

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.hxx,v 1.3 2005-03-26 19:26:48 stephena Exp $
// $Id: VideoDialog.hxx,v 1.4 2005-05-10 19:20:44 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -24,6 +24,7 @@
class CommandSender;
class Dialog;
class DialogContainer;
class PopUpWidget;
class SliderWidget;
class StaticTextWidget;
@ -35,7 +36,8 @@ class CheckboxWidget;
class VideoDialog : public Dialog
{
public:
VideoDialog(OSystem* osystem, uInt16 x, uInt16 y, uInt16 w, uInt16 h);
VideoDialog(OSystem* osystem, DialogContainer* parent,
uInt16 x, uInt16 y, uInt16 w, uInt16 h);
~VideoDialog();
protected:

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: Widget.cxx,v 1.7 2005-04-04 02:19:22 stephena Exp $
// $Id: Widget.cxx,v 1.8 2005-05-10 19:20:44 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -31,7 +31,7 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Widget::Widget(GuiObject* boss, Int32 x, Int32 y, Int32 w, Int32 h)
: GuiObject(boss->instance(), x, y, w, h),
: GuiObject(boss->instance(), boss->parent(), x, y, w, h),
_type(0),
_boss(boss),
_id(0),

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: FSNodePOSIX.cxx,v 1.1 2005-05-09 18:58:19 stephena Exp $
// $Id: FSNodePOSIX.cxx,v 1.2 2005-05-10 19:20:44 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -78,12 +78,10 @@ AbstractFilesystemNode* FilesystemNode::getRoot()
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#ifdef MACOSX
AbstractFilesystemNode* FilesystemNode::getNodeForPath(const string& path)
{
return new POSIXFilesystemNode(path);
}
#endif
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
POSIXFilesystemNode::POSIXFilesystemNode()

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: SettingsUNIX.cxx,v 1.11 2005-05-02 19:36:05 stephena Exp $
// $Id: SettingsUNIX.cxx,v 1.12 2005-05-10 19:20:45 stephena Exp $
//============================================================================
#include <cstdlib>
@ -48,8 +48,7 @@ SettingsUNIX::SettingsUNIX(OSystem* osystem)
string systemConfigFile = "/etc/stellarc";
myOSystem->setConfigFiles(userConfigFile, systemConfigFile);
// This argument is only valid for Linux/UNIX, and will eventually
// be removed
// This argument is only valid for Linux/UNIX, and will eventually be removed
set("accurate", "false");
}