Commit some junk in-case I don't get time to finish this tonight and Fingolfin starts working on it :)
svn-id: r5949
This commit is contained in:
parent
e2cb8112e5
commit
7a0a05a49a
4 changed files with 70 additions and 7 deletions
|
@ -663,9 +663,6 @@ void InfoDialog::setInfoText(const String& message)
|
||||||
new StaticTextWidget(this, 4, 4, _w-8, _h, message, kTextAlignCenter);
|
new StaticTextWidget(this, 4, 4, _w-8, _h, message, kTextAlignCenter);
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark -
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark -
|
#pragma mark -
|
||||||
|
|
||||||
PauseDialog::PauseDialog(NewGui *gui, Scumm *scumm)
|
PauseDialog::PauseDialog(NewGui *gui, Scumm *scumm)
|
||||||
|
@ -673,6 +670,52 @@ PauseDialog::PauseDialog(NewGui *gui, Scumm *scumm)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
|
||||||
|
DebuggerDialog::DebuggerDialog(NewGui *gui, Scumm *scumm, int width, int height)
|
||||||
|
: ScummDialog(gui, scumm, 0, 0, width, height)
|
||||||
|
{
|
||||||
|
draw();
|
||||||
|
}
|
||||||
|
|
||||||
|
void DebuggerDialog::drawDialog()
|
||||||
|
{
|
||||||
|
//int history_len = cmd_history.size();
|
||||||
|
|
||||||
|
// Draw box and border
|
||||||
|
_gui->blendRect(_x, _y, _w, _h, _gui->_bgcolor);
|
||||||
|
/*_gui->line(_x, _y, _x, _h, _gui->_color);
|
||||||
|
_gui->line(_w, _y, _w, _y, _gui->_color);
|
||||||
|
_gui->line(_x, _h, _w, _h, _gui->_shadowcolor);*/
|
||||||
|
|
||||||
|
_gui->addDirtyRect(_x, _y, _w, _h);
|
||||||
|
|
||||||
|
// Draw items
|
||||||
|
// ... history_len - ((_h / kLineHeight) * _page)
|
||||||
|
}
|
||||||
|
|
||||||
|
void DebuggerDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) {
|
||||||
|
if ((ascii == '~') || (keycode == 27)) { // Total abort on tilde or escape
|
||||||
|
close();
|
||||||
|
return;
|
||||||
|
} else if (ascii == '\r' || ascii == '\n') { // Run command on enter/newline
|
||||||
|
// TODO: Add some kind of pop() method to StringList,
|
||||||
|
// so we can remove old obsolete entries and not waste memory
|
||||||
|
cmd_history.push_back(cmd_current);
|
||||||
|
// _scumm.debugger.parseCommand(cmd_current, (void*)this.printCallback);
|
||||||
|
cmd_current.clear();
|
||||||
|
draw();
|
||||||
|
} else if (keycode == 8) { // Backspace
|
||||||
|
cmd_current.deleteLastChar();
|
||||||
|
draw();
|
||||||
|
} else if ((keycode >= 31) && (keycode <= 122)) { // Printable ASCII, add to string
|
||||||
|
cmd_current+=(char)ascii;
|
||||||
|
draw();
|
||||||
|
} else {
|
||||||
|
debug(2, "Unhandled keycode from DebuggerDialog: %d\n", keycode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef _WIN32_WCE
|
#ifdef _WIN32_WCE
|
||||||
|
|
||||||
#pragma mark -
|
#pragma mark -
|
||||||
|
|
|
@ -134,6 +134,17 @@ public:
|
||||||
PauseDialog(NewGui *gui, Scumm *scumm);
|
PauseDialog(NewGui *gui, Scumm *scumm);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class DebuggerDialog : public ScummDialog {
|
||||||
|
protected:
|
||||||
|
ScummVM::StringList cmd_history;
|
||||||
|
String cmd_current;
|
||||||
|
|
||||||
|
public:
|
||||||
|
DebuggerDialog(NewGui *gui, Scumm *scumm, int width, int height);
|
||||||
|
virtual void handleKeyDown(uint16 ascii, int keycode, int modifiers);
|
||||||
|
virtual void drawDialog();
|
||||||
|
};
|
||||||
|
|
||||||
#ifdef _WIN32_WCE
|
#ifdef _WIN32_WCE
|
||||||
|
|
||||||
class KeysDialog : public ScummDialog {
|
class KeysDialog : public ScummDialog {
|
||||||
|
|
|
@ -337,11 +337,13 @@ public:
|
||||||
Dialog *_pauseDialog;
|
Dialog *_pauseDialog;
|
||||||
Dialog *_optionsDialog;
|
Dialog *_optionsDialog;
|
||||||
Dialog *_saveLoadDialog;
|
Dialog *_saveLoadDialog;
|
||||||
|
Dialog *_debuggerDialog;
|
||||||
|
|
||||||
int runDialog(Dialog *dialog);
|
int runDialog(Dialog *dialog);
|
||||||
void pauseDialog();
|
void pauseDialog();
|
||||||
void saveloadDialog();
|
void saveloadDialog();
|
||||||
void optionsDialog();
|
void optionsDialog();
|
||||||
|
void debuggerDialog();
|
||||||
void displayError(const char *message, ...);
|
void displayError(const char *message, ...);
|
||||||
|
|
||||||
// Misc startup/event functions
|
// Misc startup/event functions
|
||||||
|
|
|
@ -988,10 +988,8 @@ int Scumm::runDialog(Dialog *dialog)
|
||||||
|
|
||||||
void Scumm::pauseDialog()
|
void Scumm::pauseDialog()
|
||||||
{
|
{
|
||||||
if (!_pauseDialog) {
|
if (!_pauseDialog)
|
||||||
_pauseDialog = new PauseDialog(_newgui, this);
|
_pauseDialog = new PauseDialog(_newgui, this);
|
||||||
}
|
|
||||||
|
|
||||||
runDialog(_pauseDialog);
|
runDialog(_pauseDialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1002,6 +1000,13 @@ void Scumm::saveloadDialog()
|
||||||
runDialog(_saveLoadDialog);
|
runDialog(_saveLoadDialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Scumm::debuggerDialog()
|
||||||
|
{
|
||||||
|
if (!_debuggerDialog)
|
||||||
|
_debuggerDialog = new DebuggerDialog(_newgui, this, _realWidth, _realHeight / 5);
|
||||||
|
runDialog(_debuggerDialog);
|
||||||
|
}
|
||||||
|
|
||||||
void Scumm::optionsDialog()
|
void Scumm::optionsDialog()
|
||||||
{
|
{
|
||||||
if (!_optionsDialog)
|
if (!_optionsDialog)
|
||||||
|
@ -1130,6 +1135,8 @@ void Scumm::processKbd()
|
||||||
_defaultTalkDelay = 5;
|
_defaultTalkDelay = 5;
|
||||||
|
|
||||||
_vars[VAR_CHARINC] = _defaultTalkDelay / 20;
|
_vars[VAR_CHARINC] = _defaultTalkDelay / 20;
|
||||||
|
} else if (_lastKeyHit == '~') { // Debug console
|
||||||
|
debuggerDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
_mouseButStat = _lastKeyHit;
|
_mouseButStat = _lastKeyHit;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue