mirror of https://github.com/stella-emu/stella.git
Added non-edit mode to DataGridWidget.
Some work on TIADebug. Change tracking now works for the color registers. Getting/setting the color registers works (sort of, since the change doesn't seem to be registering in TIA). Some work on TiaWidget. Color registers and scanline count are shown. VSync and VBlank are shown, but can't be changed. Made CheckboxWidget only emit a signal when interactively clicking on the checkbox (changing state programmatically no longer emits the signal). TODO: maybe two signals should be used?? git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@647 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
10298d8ba2
commit
0f4b93acf3
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: TIADebug.cxx,v 1.10 2005-07-09 23:44:07 urchlay Exp $
|
// $Id: TIADebug.cxx,v 1.11 2005-07-14 18:28:35 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include "System.hxx"
|
#include "System.hxx"
|
||||||
|
@ -44,6 +44,12 @@ DebuggerState& TIADebug::getState()
|
||||||
for(int i = 0; i < 0x010; ++i)
|
for(int i = 0; i < 0x010; ++i)
|
||||||
myState.ram.push_back(myTIA->peek(i));
|
myState.ram.push_back(myTIA->peek(i));
|
||||||
|
|
||||||
|
myState.coluRegs.clear();
|
||||||
|
myState.coluRegs.push_back(coluP0());
|
||||||
|
myState.coluRegs.push_back(coluP1());
|
||||||
|
myState.coluRegs.push_back(coluPF());
|
||||||
|
myState.coluRegs.push_back(coluBK());
|
||||||
|
|
||||||
return myState;
|
return myState;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,6 +59,56 @@ void TIADebug::saveOldState()
|
||||||
myOldState.ram.clear();
|
myOldState.ram.clear();
|
||||||
for(int i = 0; i < 0x010; ++i)
|
for(int i = 0; i < 0x010; ++i)
|
||||||
myOldState.ram.push_back(myTIA->peek(i));
|
myOldState.ram.push_back(myTIA->peek(i));
|
||||||
|
|
||||||
|
myOldState.coluRegs.clear();
|
||||||
|
myOldState.coluRegs.push_back(coluP0());
|
||||||
|
myOldState.coluRegs.push_back(coluP1());
|
||||||
|
myOldState.coluRegs.push_back(coluPF());
|
||||||
|
myOldState.coluRegs.push_back(coluBK());
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
uInt8 TIADebug::coluP0(int newVal)
|
||||||
|
{
|
||||||
|
// TIA::myCOLUxx are stored 4 copies to each int,
|
||||||
|
// we need only 1 when fetching, but store all 4
|
||||||
|
if(newVal > -1)
|
||||||
|
myTIA->myCOLUP0 = (((((newVal << 8) | newVal) << 8) | newVal) << 8) | newVal;
|
||||||
|
|
||||||
|
return myTIA->myCOLUP0 & 0xff;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
uInt8 TIADebug::coluP1(int newVal)
|
||||||
|
{
|
||||||
|
// TIA::myCOLUxx are stored 4 copies to each int,
|
||||||
|
// we need only 1 when fetching, but store all 4
|
||||||
|
if(newVal > -1)
|
||||||
|
myTIA->myCOLUP1 = (((((newVal << 8) | newVal) << 8) | newVal) << 8) | newVal;
|
||||||
|
|
||||||
|
return myTIA->myCOLUP1 & 0xff;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
uInt8 TIADebug::coluPF(int newVal)
|
||||||
|
{
|
||||||
|
// TIA::myCOLUxx are stored 4 copies to each int,
|
||||||
|
// we need only 1 when fetching, but store all 4
|
||||||
|
if(newVal > -1)
|
||||||
|
myTIA->myCOLUPF = (((((newVal << 8) | newVal) << 8) | newVal) << 8) | newVal;
|
||||||
|
|
||||||
|
return myTIA->myCOLUPF & 0xff;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
uInt8 TIADebug::coluBK(int newVal)
|
||||||
|
{
|
||||||
|
// TIA::myCOLUxx are stored 4 copies to each int,
|
||||||
|
// we need only 1 when fetching, but store all 4
|
||||||
|
if(newVal > -1)
|
||||||
|
myTIA->myCOLUBK = (((((newVal << 8) | newVal) << 8) | newVal) << 8) | newVal;
|
||||||
|
|
||||||
|
return myTIA->myCOLUBK & 0xff;
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -141,11 +197,10 @@ string TIADebug::state()
|
||||||
// TODO: inverse video for changed regs. Core needs to track this.
|
// TODO: inverse video for changed regs. Core needs to track this.
|
||||||
// TODO: strobes? WSYNC RSYNC RESP0/1 RESM0/1 RESBL HMOVE HMCLR CXCLR
|
// TODO: strobes? WSYNC RSYNC RESP0/1 RESM0/1 RESBL HMOVE HMCLR CXCLR
|
||||||
|
|
||||||
// TIA::myCOLUxx are stored 4 copies to each int, we need only 1
|
uInt8 COLUP0 = coluP0();
|
||||||
uInt8 COLUP0 = myTIA->myCOLUP0 & 0xff;
|
uInt8 COLUP1 = coluP1();
|
||||||
uInt8 COLUP1 = myTIA->myCOLUP1 & 0xff;
|
uInt8 COLUPF = coluPF();
|
||||||
uInt8 COLUPF = myTIA->myCOLUPF & 0xff;
|
uInt8 COLUBK = coluBK();
|
||||||
uInt8 COLUBK = myTIA->myCOLUBK & 0xff;
|
|
||||||
|
|
||||||
// TIA::myPF holds all 3 PFx regs, we shall extract
|
// TIA::myPF holds all 3 PFx regs, we shall extract
|
||||||
int PF = myTIA->myPF;
|
int PF = myTIA->myPF;
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: TIADebug.hxx,v 1.6 2005-07-08 17:22:40 stephena Exp $
|
// $Id: TIADebug.hxx,v 1.7 2005-07-14 18:28:35 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef TIA_DEBUG_HXX
|
#ifndef TIA_DEBUG_HXX
|
||||||
|
@ -29,6 +29,7 @@ class TiaState : public DebuggerState
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
IntArray ram;
|
IntArray ram;
|
||||||
|
IntArray coluRegs;
|
||||||
};
|
};
|
||||||
|
|
||||||
class TIADebug : public DebuggerSystem
|
class TIADebug : public DebuggerSystem
|
||||||
|
@ -42,6 +43,10 @@ class TIADebug : public DebuggerSystem
|
||||||
void saveOldState();
|
void saveOldState();
|
||||||
|
|
||||||
// FIXME - add whole slew of setXXX() methods
|
// FIXME - add whole slew of setXXX() methods
|
||||||
|
uInt8 coluP0(int newVal = -1);
|
||||||
|
uInt8 coluP1(int newVal = -1);
|
||||||
|
uInt8 coluPF(int newVal = -1);
|
||||||
|
uInt8 coluBK(int newVal = -1);
|
||||||
|
|
||||||
int scanlines();
|
int scanlines();
|
||||||
int frameCount();
|
int frameCount();
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: Array.hxx,v 1.6 2005-07-02 18:34:54 stephena Exp $
|
// $Id: Array.hxx,v 1.7 2005-07-14 18:28:36 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -194,5 +194,6 @@ class Array
|
||||||
|
|
||||||
typedef GUI::Array<int> IntArray;
|
typedef GUI::Array<int> IntArray;
|
||||||
typedef GUI::Array<bool> BoolArray;
|
typedef GUI::Array<bool> BoolArray;
|
||||||
|
typedef GUI::Array<uInt8> ByteArray;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: DataGridWidget.cxx,v 1.13 2005-07-07 15:19:04 stephena Exp $
|
// $Id: DataGridWidget.cxx,v 1.14 2005-07-14 18:28:36 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -297,42 +297,63 @@ bool DataGridWidget::handleKeyDown(int ascii, int keycode, int modifiers)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'n': // negate
|
case 'n': // negate
|
||||||
|
if(_editable)
|
||||||
|
{
|
||||||
negateCell();
|
negateCell();
|
||||||
dirty = true;
|
dirty = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'i': // invert
|
case 'i': // invert
|
||||||
case '!':
|
case '!':
|
||||||
|
if(_editable)
|
||||||
|
{
|
||||||
invertCell();
|
invertCell();
|
||||||
dirty = true;
|
dirty = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '-': // decrement
|
case '-': // decrement
|
||||||
|
if(_editable)
|
||||||
|
{
|
||||||
decrementCell();
|
decrementCell();
|
||||||
dirty = true;
|
dirty = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '+': // increment
|
case '+': // increment
|
||||||
case '=':
|
case '=':
|
||||||
|
if(_editable)
|
||||||
|
{
|
||||||
incrementCell();
|
incrementCell();
|
||||||
dirty = true;
|
dirty = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '<': // shift left
|
case '<': // shift left
|
||||||
case ',':
|
case ',':
|
||||||
|
if(_editable)
|
||||||
|
{
|
||||||
lshiftCell();
|
lshiftCell();
|
||||||
dirty = true;
|
dirty = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '>': // shift right
|
case '>': // shift right
|
||||||
case '.':
|
case '.':
|
||||||
|
if(_editable)
|
||||||
|
{
|
||||||
rshiftCell();
|
rshiftCell();
|
||||||
dirty = true;
|
dirty = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'z': // zero
|
case 'z': // zero
|
||||||
|
if(_editable)
|
||||||
|
{
|
||||||
zeroCell();
|
zeroCell();
|
||||||
dirty = true;
|
dirty = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: TiaWidget.cxx,v 1.9 2005-07-12 02:27:07 urchlay Exp $
|
// $Id: TiaWidget.cxx,v 1.10 2005-07-14 18:28:36 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -33,18 +33,18 @@
|
||||||
// ID's for the various widgets
|
// ID's for the various widgets
|
||||||
// We need ID's, since there are more than one of several types of widgets
|
// We need ID's, since there are more than one of several types of widgets
|
||||||
enum {
|
enum {
|
||||||
kRamID,
|
kRamID = 'TWra',
|
||||||
kColorRegsID,
|
kColorRegsID = 'TWcr',
|
||||||
kVSyncID,
|
kVSyncID = 'TWvs',
|
||||||
kVBlankID
|
kVBlankID = 'TWvb'
|
||||||
};
|
};
|
||||||
|
|
||||||
// Color registers
|
// Color registers
|
||||||
enum {
|
enum {
|
||||||
kCOLUP0Addr,
|
kCOLUP0Addr,
|
||||||
kCOLUP1Addr,
|
kCOLUP1Addr,
|
||||||
kCOLUBKAddr,
|
kCOLUPFAddr,
|
||||||
kCOLUPFAddr
|
kCOLUBKAddr
|
||||||
};
|
};
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -60,6 +60,7 @@ TiaWidget::TiaWidget(GuiObject* boss, int x, int y, int w, int h)
|
||||||
|
|
||||||
// Create a 16x1 grid holding byte values with labels
|
// Create a 16x1 grid holding byte values with labels
|
||||||
myRamGrid = new DataGridWidget(boss, xpos+lwidth, ypos, 16, 1, 2, 8, kBASE_16);
|
myRamGrid = new DataGridWidget(boss, xpos+lwidth, ypos, 16, 1, 2, 8, kBASE_16);
|
||||||
|
myRamGrid->setEditable(false);
|
||||||
myRamGrid->setTarget(this);
|
myRamGrid->setTarget(this);
|
||||||
myRamGrid->setID(kRamID);
|
myRamGrid->setID(kRamID);
|
||||||
myActiveWidget = myRamGrid;
|
myActiveWidget = myRamGrid;
|
||||||
|
@ -130,7 +131,7 @@ TiaWidget::TiaWidget(GuiObject* boss, int x, int y, int w, int h)
|
||||||
xpos = 10; ypos += 2* kLineHeight;
|
xpos = 10; ypos += 2* kLineHeight;
|
||||||
for(int row = 0; row < 4; ++row)
|
for(int row = 0; row < 4; ++row)
|
||||||
{
|
{
|
||||||
StaticTextWidget* t = new StaticTextWidget(boss, xpos, ypos + row*kLineHeight + 2,
|
new StaticTextWidget(boss, xpos, ypos + row*kLineHeight + 2,
|
||||||
40, kLineHeight,
|
40, kLineHeight,
|
||||||
regNames[row] + string(":"),
|
regNames[row] + string(":"),
|
||||||
kTextAlignLeft);
|
kTextAlignLeft);
|
||||||
|
@ -168,7 +169,7 @@ void TiaWidget::handleCommand(CommandSender* sender, int cmd, int data, int id)
|
||||||
// It will then send the 'kDGItemDataChangedCmd' signal to change the actual
|
// It will then send the 'kDGItemDataChangedCmd' signal to change the actual
|
||||||
// memory location
|
// memory location
|
||||||
int addr, value;
|
int addr, value;
|
||||||
const char* buf;
|
string buf;
|
||||||
|
|
||||||
Debugger& dbg = instance()->debugger();
|
Debugger& dbg = instance()->debugger();
|
||||||
|
|
||||||
|
@ -177,10 +178,6 @@ void TiaWidget::handleCommand(CommandSender* sender, int cmd, int data, int id)
|
||||||
case kDGItemDataChangedCmd:
|
case kDGItemDataChangedCmd:
|
||||||
switch(id)
|
switch(id)
|
||||||
{
|
{
|
||||||
case kRamID:
|
|
||||||
changeRam();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case kColorRegsID:
|
case kColorRegsID:
|
||||||
changeColorRegs();
|
changeColorRegs();
|
||||||
break;
|
break;
|
||||||
|
@ -201,12 +198,10 @@ void TiaWidget::handleCommand(CommandSender* sender, int cmd, int data, int id)
|
||||||
addr = myRamGrid->getSelectedAddr();
|
addr = myRamGrid->getSelectedAddr();
|
||||||
value = myRamGrid->getSelectedValue();
|
value = myRamGrid->getSelectedValue();
|
||||||
|
|
||||||
buf = instance()->debugger().equates()->getLabel(addr).c_str();
|
myLabel->setEditString(dbg.equates()->getLabel(addr));
|
||||||
if(*buf) myLabel->setEditString(buf);
|
|
||||||
else myLabel->setEditString("");
|
|
||||||
|
|
||||||
myDecValue->setEditString(instance()->debugger().valueToString(value, kBASE_10));
|
myDecValue->setEditString(dbg.valueToString(value, kBASE_10));
|
||||||
myBinValue->setEditString(instance()->debugger().valueToString(value, kBASE_2));
|
myBinValue->setEditString(dbg.valueToString(value, kBASE_2));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -243,7 +238,8 @@ void TiaWidget::fillGrid()
|
||||||
IntArray vlist;
|
IntArray vlist;
|
||||||
BoolArray changed;
|
BoolArray changed;
|
||||||
|
|
||||||
TIADebug& tia = instance()->debugger().tiaDebug();
|
Debugger& dbg = instance()->debugger();
|
||||||
|
TIADebug& tia = dbg.tiaDebug();
|
||||||
TiaState state = (TiaState&) tia.getState();
|
TiaState state = (TiaState&) tia.getState();
|
||||||
TiaState oldstate = (TiaState&) tia.getOldState();
|
TiaState oldstate = (TiaState&) tia.getOldState();
|
||||||
|
|
||||||
|
@ -258,40 +254,43 @@ void TiaWidget::fillGrid()
|
||||||
myRamGrid->setList(alist, vlist, changed);
|
myRamGrid->setList(alist, vlist, changed);
|
||||||
|
|
||||||
// Scanline and VSync/VBlank
|
// Scanline and VSync/VBlank
|
||||||
// FIXME
|
myScanlines->setEditString(dbg.valueToString(tia.scanlines(), kBASE_10));
|
||||||
|
myVSync->setState(tia.vsync());
|
||||||
|
myVBlank->setState(tia.vblank());
|
||||||
|
|
||||||
// Color registers
|
// Color registers
|
||||||
alist.clear(); vlist.clear(); changed.clear();
|
alist.clear(); vlist.clear(); changed.clear();
|
||||||
for(unsigned int i = 0; i < 4; i++)
|
for(unsigned int i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
alist.push_back(i);
|
alist.push_back(i);
|
||||||
vlist.push_back(i);
|
vlist.push_back(state.coluRegs[i]);
|
||||||
changed.push_back(false);
|
changed.push_back(state.coluRegs[i] != oldstate.coluRegs[i]);
|
||||||
}
|
}
|
||||||
myColorRegs->setList(alist, vlist, changed);
|
myColorRegs->setList(alist, vlist, changed);
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
void TiaWidget::changeRam()
|
|
||||||
{
|
|
||||||
int addr = myRamGrid->getSelectedAddr();
|
|
||||||
int value = myRamGrid->getSelectedValue();
|
|
||||||
|
|
||||||
IntArray ram;
|
|
||||||
ram.push_back(addr);
|
|
||||||
ram.push_back(value);
|
|
||||||
|
|
||||||
// instance()->debugger().setRAM(ram);
|
|
||||||
myDecValue->setEditString(instance()->debugger().valueToString(value, kBASE_10));
|
|
||||||
myBinValue->setEditString(instance()->debugger().valueToString(value, kBASE_2));
|
|
||||||
}
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void TiaWidget::changeColorRegs()
|
void TiaWidget::changeColorRegs()
|
||||||
{
|
{
|
||||||
cerr << "TiaWidget::changeColorRegs()\n";
|
|
||||||
int addr = myColorRegs->getSelectedAddr();
|
int addr = myColorRegs->getSelectedAddr();
|
||||||
int value = myColorRegs->getSelectedValue();
|
int value = myColorRegs->getSelectedValue();
|
||||||
|
|
||||||
//FIXME instance()->debugger().writeRAM(addr - kRamStart, value);
|
switch(addr)
|
||||||
|
{
|
||||||
|
case kCOLUP0Addr:
|
||||||
|
instance()->debugger().tiaDebug().coluP0(value);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case kCOLUP1Addr:
|
||||||
|
instance()->debugger().tiaDebug().coluP1(value);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case kCOLUPFAddr:
|
||||||
|
instance()->debugger().tiaDebug().coluPF(value);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case kCOLUBKAddr:
|
||||||
|
instance()->debugger().tiaDebug().coluBK(value);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: TiaWidget.hxx,v 1.4 2005-07-06 19:09:26 stephena Exp $
|
// $Id: TiaWidget.hxx,v 1.5 2005-07-14 18:28:36 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -46,7 +46,6 @@ class TiaWidget : public Widget, public CommandSender
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void fillGrid();
|
void fillGrid();
|
||||||
void changeRam();
|
|
||||||
void changeColorRegs();
|
void changeColorRegs();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: Widget.cxx,v 1.23 2005-07-06 15:09:16 stephena Exp $
|
// $Id: Widget.cxx,v 1.24 2005-07-14 18:28:36 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -246,17 +246,17 @@ void Widget::setNextInChain(Widget* start, Widget* hasFocus)
|
||||||
if(!start)
|
if(!start)
|
||||||
return;
|
return;
|
||||||
// FIXME - get this working
|
// FIXME - get this working
|
||||||
cerr << "--------------------------------\nWidget list:\n";
|
//cerr << "--------------------------------\nWidget list:\n";
|
||||||
Widget* w1 = start;
|
Widget* w1 = start;
|
||||||
while(w1)
|
while(w1)
|
||||||
{
|
{
|
||||||
if(w1->getFlags() & WIDGET_TAB_NAVIGATE)
|
if(w1->getFlags() & WIDGET_TAB_NAVIGATE)
|
||||||
{
|
{
|
||||||
cerr << w1 << endl;
|
// cerr << w1 << endl;
|
||||||
}
|
}
|
||||||
w1 = w1->_next;
|
w1 = w1->_next;
|
||||||
}
|
}
|
||||||
cerr << "\n--------------------------------\n";
|
//cerr << "\n--------------------------------\n";
|
||||||
|
|
||||||
|
|
||||||
// We search the array in circular fashion until the 'end' is reached
|
// We search the array in circular fashion until the 'end' is reached
|
||||||
|
@ -397,7 +397,12 @@ CheckboxWidget::CheckboxWidget(GuiObject *boss, int x, int y, int w, int h,
|
||||||
void CheckboxWidget::handleMouseUp(int x, int y, int button, int clickCount)
|
void CheckboxWidget::handleMouseUp(int x, int y, int button, int clickCount)
|
||||||
{
|
{
|
||||||
if(isEnabled() && x >= 0 && x < _w && y >= 0 && y < _h)
|
if(isEnabled() && x >= 0 && x < _w && y >= 0 && y < _h)
|
||||||
|
{
|
||||||
toggleState();
|
toggleState();
|
||||||
|
|
||||||
|
// We only send a command when the widget has been changed interactively
|
||||||
|
sendCommand(_cmd, _state, _id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -409,7 +414,6 @@ void CheckboxWidget::setState(bool state)
|
||||||
_flags ^= WIDGET_INV_BORDER;
|
_flags ^= WIDGET_INV_BORDER;
|
||||||
draw();
|
draw();
|
||||||
}
|
}
|
||||||
sendCommand(_cmd, _state, _id);
|
|
||||||
|
|
||||||
// Refresh the screen after the checkbox is drawn
|
// Refresh the screen after the checkbox is drawn
|
||||||
// TODO - create dirty rectangle
|
// TODO - create dirty rectangle
|
||||||
|
|
Loading…
Reference in New Issue