28
29
#include "Widget.hxx"
29
30
#include "CommandDialog.hxx"
32
#define addCDButton(label, cmd) \
33
new ButtonWidget(this, font, xoffset, yoffset, buttonWidth, buttonHeight, label, cmd); xoffset += buttonWidth + 6
31
35
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
32
36
CommandDialog::CommandDialog(OSystem* osystem, DialogContainer* parent)
33
37
: Dialog(osystem, parent, 0, 0, 16, 16),
36
const GUI::Font& font = osystem->font();
41
lwidth = buttonWidth + 5;
40
const GUI::Font& font = instance().font();
41
const int buttonWidth = font.getStringWidth("Right Diff B") + 20,
42
buttonHeight = font.getLineHeight() + 6,
43
rowHeight = font.getLineHeight() + 10;
43
45
// Set real dimensions
44
_w = 4 * (lwidth) + 5;
45
_h = 4 * (buttonHeight+3) + 7;
46
_w = 3 * (buttonWidth + 5) + 20;
47
_h = 6 * rowHeight + 15;
50
b = new ButtonWidget(this, font, xoffset, yoffset, buttonWidth, buttonHeight,
51
"Select", kSelectCmd);
54
b = new ButtonWidget(this, font, xoffset, yoffset, buttonWidth, buttonHeight,
58
b = new ButtonWidget(this, font, xoffset, yoffset, buttonWidth, buttonHeight,
59
"Color TV", kColorCmd);
62
b = new ButtonWidget(this, font, xoffset, yoffset, buttonWidth, buttonHeight,
66
xoffset = 5; yoffset += buttonHeight + 3;
68
b = new ButtonWidget(this, font, xoffset, yoffset, buttonWidth, buttonHeight,
69
"Left Diff A", kLeftDiffACmd);
72
b = new ButtonWidget(this, font, xoffset, yoffset, buttonWidth, buttonHeight,
73
"Left Diff B", kLeftDiffBCmd);
76
b = new ButtonWidget(this, font, xoffset, yoffset, buttonWidth, buttonHeight,
77
"Right Diff A", kRightDiffACmd);
80
b = new ButtonWidget(this, font, xoffset, yoffset, buttonWidth, buttonHeight,
81
"Right Diff B", kRightDiffBCmd);
84
xoffset = 5; yoffset += buttonHeight + 3;
86
b = new ButtonWidget(this, font, xoffset, yoffset, buttonWidth, buttonHeight,
87
"Save State", kSaveStateCmd);
90
b = new ButtonWidget(this, font, xoffset, yoffset, buttonWidth, buttonHeight,
91
"State Slot", kStateSlotCmd);
94
b = new ButtonWidget(this, font, xoffset, yoffset, buttonWidth, buttonHeight,
95
"Load State", kLoadStateCmd);
98
b = new ButtonWidget(this, font, xoffset, yoffset, buttonWidth, buttonHeight,
99
"Snapshot", kSnapshotCmd);
102
xoffset = 5; yoffset += buttonHeight + 3;
104
b = new ButtonWidget(this, font, xoffset, yoffset, buttonWidth, buttonHeight,
105
"NTSC/PAL", kFormatCmd);
108
b = new ButtonWidget(this, font, xoffset, yoffset, buttonWidth, buttonHeight,
109
"Palette", kPaletteCmd);
112
b = new ButtonWidget(this, font, xoffset, yoffset, buttonWidth, buttonHeight,
113
"Reload ROM", kReloadRomCmd);
116
b = new ButtonWidget(this, font, xoffset, yoffset, buttonWidth, buttonHeight,
117
"Exit Game", kExitCmd);
53
int xoffset = 10, yoffset = 10;
54
b[0] = addCDButton("Select", kSelectCmd);
55
b[4] = addCDButton("Left Diff A", kLeftDiffACmd);
56
b[8] = addCDButton("Save State", kSaveStateCmd);
59
xoffset = 10; yoffset += buttonHeight + 3;
60
b[1] = addCDButton("Reset", kResetCmd);
61
b[5] = addCDButton("Left Diff B", kLeftDiffBCmd);
62
b[9] = addCDButton("State Slot", kStateSlotCmd);
65
xoffset = 10; yoffset += buttonHeight + 3;
66
b[2] = addCDButton("Color TV", kColorCmd);
67
b[6] = addCDButton("Right Diff A", kRightDiffACmd);
68
b[10] = addCDButton("Load State", kLoadStateCmd);
71
xoffset = 10; yoffset += buttonHeight + 3;
72
b[3] = addCDButton("B/W TV", kBWCmd);
73
b[7] = addCDButton("Right Diff B", kRightDiffBCmd);
74
b[11] = addCDButton("Snapshot", kSnapshotCmd);
77
xoffset = 10; yoffset += buttonHeight + 3;
78
b[12] = addCDButton("NTSC/PAL", kFormatCmd);
79
b[13] = addCDButton("Palette", kPaletteCmd);
80
b[14] = addCDButton("Reload ROM", kReloadRomCmd);
83
xoffset = 10 + buttonWidth + 6; yoffset += buttonHeight + 3;
84
b[15] = addCDButton("Exit Game", kExitCmd);
86
for(uInt8 i = 0; i < 16; ++i)
120
89
addToFocusList(wid);
187
157
case kLoadStateCmd:
188
158
event = Event::LoadState;
192
162
case kSnapshotCmd:
193
instance()->eventHandler().leaveMenuMode();
194
instance()->eventHandler().refreshDisplay(true);
195
instance()->eventHandler().handleEvent(Event::TakeSnapshot, 1);
163
instance().eventHandler().leaveMenuMode();
164
instance().frameBuffer().refresh();
165
instance().eventHandler().handleEvent(Event::TakeSnapshot, 1);
199
instance()->eventHandler().leaveMenuMode();
200
instance()->console().toggleFormat();
169
instance().eventHandler().leaveMenuMode();
170
instance().console().toggleFormat();
203
173
case kPaletteCmd:
204
instance()->eventHandler().leaveMenuMode();
205
instance()->console().togglePalette();
174
instance().eventHandler().leaveMenuMode();
175
instance().console().togglePalette();
208
178
case kReloadRomCmd:
209
instance()->eventHandler().leaveMenuMode();
210
instance()->deleteConsole();
211
instance()->createConsole();
179
instance().eventHandler().leaveMenuMode();
180
instance().deleteConsole();
181
instance().createConsole();
215
instance()->eventHandler().handleEvent(Event::LauncherMode, 1);
185
instance().eventHandler().handleEvent(Event::LauncherMode, 1);