mirror of https://github.com/stella-emu/stella.git
refactor GameInfoDialog UI creation
This commit is contained in:
parent
4442b32d34
commit
0ada061ba7
|
@ -52,44 +52,71 @@ GameInfoDialog::GameInfoDialog(
|
||||||
: Dialog(osystem, parent, font, "Game properties"),
|
: Dialog(osystem, parent, font, "Game properties"),
|
||||||
CommandSender(boss)
|
CommandSender(boss)
|
||||||
{
|
{
|
||||||
const GUI::Font& ifont = instance().frameBuffer().infoFont();
|
|
||||||
const int lineHeight = font.getLineHeight(),
|
|
||||||
fontWidth = font.getMaxCharWidth(),
|
|
||||||
fontHeight = font.getFontHeight(),
|
|
||||||
buttonHeight = font.getLineHeight() + 4,
|
|
||||||
infoLineHeight = ifont.getLineHeight();
|
|
||||||
const int VBORDER = 8;
|
const int VBORDER = 8;
|
||||||
const int HBORDER = 10;
|
const int HBORDER = 10;
|
||||||
const int VGAP = 4;
|
const int VGAP = 4;
|
||||||
|
const GUI::Font& ifont = instance().frameBuffer().infoFont();
|
||||||
|
const int lineHeight = _font.getLineHeight(),
|
||||||
|
fontWidth = _font.getMaxCharWidth(),
|
||||||
|
fontHeight = _font.getFontHeight(),
|
||||||
|
infoLineHeight = ifont.getLineHeight();
|
||||||
|
|
||||||
int xpos, ypos, lwidth, fwidth, pwidth, tabID;
|
|
||||||
WidgetArray wid;
|
WidgetArray wid;
|
||||||
VariantList items, ports, ctrls;
|
|
||||||
StaticTextWidget* t;
|
|
||||||
|
|
||||||
// Set real dimensions
|
// Set real dimensions
|
||||||
setSize(HBORDER * 2 + 53 * fontWidth,
|
setSize(HBORDER * 2 + 53 * fontWidth,
|
||||||
8 * (lineHeight + VGAP) + 1 * (infoLineHeight + VGAP) + VBORDER * 2 + _th +
|
8 * (lineHeight + VGAP) + 1 * (infoLineHeight + VGAP) + VBORDER * 2 + _th +
|
||||||
buttonHeight + fontHeight + ifont.getLineHeight() + 20,
|
buttonHeight(font) + fontHeight + ifont.getLineHeight() + 20,
|
||||||
max_w, max_h);
|
max_w, max_h);
|
||||||
|
|
||||||
// The tab widget
|
// The tab widget
|
||||||
myTab = new TabWidget(this, font, 2, 4 + _th, _w - 2 * 2,
|
myTab = new TabWidget(this, font, 2, 4 + _th, _w - 2 * 2,
|
||||||
_h - (_th + buttonHeight + 20));
|
_h - (_th + buttonHeight(font) + 20));
|
||||||
addTabWidget(myTab);
|
addTabWidget(myTab);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
addEmulationTab();
|
||||||
|
addConsoleTab();
|
||||||
|
addControllersTab();
|
||||||
|
addCartridgeTab();
|
||||||
|
addHighScoresTab();
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Activate the first tab
|
||||||
|
myTab->setActiveTab(0);
|
||||||
|
|
||||||
|
// Add Defaults, OK and Cancel buttons
|
||||||
|
addDefaultsOKCancelBGroup(wid, font);
|
||||||
|
addBGroupToFocusList(wid);
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void GameInfoDialog::addEmulationTab()
|
||||||
|
{
|
||||||
|
const int VBORDER = 8;
|
||||||
|
const int HBORDER = 10;
|
||||||
|
const int VGAP = 4;
|
||||||
|
const GUI::Font& ifont = instance().frameBuffer().infoFont();
|
||||||
|
const int lineHeight = _font.getLineHeight(),
|
||||||
|
fontWidth = _font.getMaxCharWidth(),
|
||||||
|
fontHeight = _font.getFontHeight();
|
||||||
|
|
||||||
|
int ypos, pwidth, tabID;
|
||||||
|
WidgetArray wid;
|
||||||
|
VariantList items;
|
||||||
|
StaticTextWidget* t;
|
||||||
|
|
||||||
// 1) Emulation properties
|
// 1) Emulation properties
|
||||||
tabID = myTab->addTab("Emulation", TabWidget::AUTO_WIDTH);
|
tabID = myTab->addTab("Emulation", TabWidget::AUTO_WIDTH);
|
||||||
|
|
||||||
ypos = VBORDER;
|
ypos = VBORDER;
|
||||||
|
|
||||||
t = new StaticTextWidget(myTab, font, HBORDER, ypos + 1, "Type (*) ");
|
t = new StaticTextWidget(myTab, _font, HBORDER, ypos + 1, "Type (*) ");
|
||||||
pwidth = font.getStringWidth("CM (SpectraVideo CompuMate)");
|
pwidth = _font.getStringWidth("CM (SpectraVideo CompuMate)");
|
||||||
items.clear();
|
items.clear();
|
||||||
for(uInt32 i = 0; i < uInt32(Bankswitch::Type::NumSchemes); ++i)
|
for(uInt32 i = 0; i < uInt32(Bankswitch::Type::NumSchemes); ++i)
|
||||||
VarList::push_back(items, Bankswitch::BSList[i].desc, Bankswitch::BSList[i].name);
|
VarList::push_back(items, Bankswitch::BSList[i].desc, Bankswitch::BSList[i].name);
|
||||||
myBSType = new PopUpWidget(myTab, font, t->getRight() + 8, ypos,
|
myBSType = new PopUpWidget(myTab, _font, t->getRight() + 8, ypos,
|
||||||
pwidth, lineHeight, items, "");
|
pwidth, lineHeight, items, "");
|
||||||
wid.push_back(myBSType);
|
wid.push_back(myBSType);
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
|
@ -99,15 +126,15 @@ GameInfoDialog::GameInfoDialog(
|
||||||
ypos += ifont.getLineHeight() + VGAP;
|
ypos += ifont.getLineHeight() + VGAP;
|
||||||
|
|
||||||
// Start bank
|
// Start bank
|
||||||
myStartBankLabel = new StaticTextWidget(myTab, font, HBORDER, ypos + 1, "Start bank (*) ");
|
myStartBankLabel = new StaticTextWidget(myTab, _font, HBORDER, ypos + 1, "Start bank (*) ");
|
||||||
items.clear();
|
items.clear();
|
||||||
myStartBank = new PopUpWidget(myTab, font, myStartBankLabel->getRight(), ypos,
|
myStartBank = new PopUpWidget(myTab, _font, myStartBankLabel->getRight(), ypos,
|
||||||
font.getStringWidth("AUTO"), lineHeight, items, "", 0, 0);
|
_font.getStringWidth("AUTO"), lineHeight, items, "", 0, 0);
|
||||||
wid.push_back(myStartBank);
|
wid.push_back(myStartBank);
|
||||||
ypos += lineHeight + VGAP * 4;
|
ypos += lineHeight + VGAP * 4;
|
||||||
|
|
||||||
pwidth = font.getStringWidth("Auto-detect");
|
pwidth = _font.getStringWidth("Auto-detect");
|
||||||
t = new StaticTextWidget(myTab, font, HBORDER, ypos + 1, "TV format ");
|
t = new StaticTextWidget(myTab, _font, HBORDER, ypos + 1, "TV format ");
|
||||||
items.clear();
|
items.clear();
|
||||||
VarList::push_back(items, "Auto-detect", "AUTO");
|
VarList::push_back(items, "Auto-detect", "AUTO");
|
||||||
VarList::push_back(items, "NTSC", "NTSC");
|
VarList::push_back(items, "NTSC", "NTSC");
|
||||||
|
@ -116,7 +143,7 @@ GameInfoDialog::GameInfoDialog(
|
||||||
VarList::push_back(items, "NTSC50", "NTSC50");
|
VarList::push_back(items, "NTSC50", "NTSC50");
|
||||||
VarList::push_back(items, "PAL60", "PAL60");
|
VarList::push_back(items, "PAL60", "PAL60");
|
||||||
VarList::push_back(items, "SECAM60", "SECAM60");
|
VarList::push_back(items, "SECAM60", "SECAM60");
|
||||||
myFormat = new PopUpWidget(myTab, font, t->getRight(), ypos,
|
myFormat = new PopUpWidget(myTab, _font, t->getRight(), ypos,
|
||||||
pwidth, lineHeight, items, "", 0, 0);
|
pwidth, lineHeight, items, "", 0, 0);
|
||||||
wid.push_back(myFormat);
|
wid.push_back(myFormat);
|
||||||
|
|
||||||
|
@ -124,11 +151,11 @@ GameInfoDialog::GameInfoDialog(
|
||||||
|
|
||||||
// Phosphor
|
// Phosphor
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
myPhosphor = new CheckboxWidget(myTab, font, HBORDER, ypos + 1, "Phosphor (enabled for all ROMs)", kPhosphorChanged);
|
myPhosphor = new CheckboxWidget(myTab, _font, HBORDER, ypos + 1, "Phosphor (enabled for all ROMs)", kPhosphorChanged);
|
||||||
wid.push_back(myPhosphor);
|
wid.push_back(myPhosphor);
|
||||||
|
|
||||||
ypos += lineHeight + VGAP * 0;
|
ypos += lineHeight + VGAP * 0;
|
||||||
myPPBlend = new SliderWidget(myTab, font,
|
myPPBlend = new SliderWidget(myTab, _font,
|
||||||
HBORDER + 20, ypos,
|
HBORDER + 20, ypos,
|
||||||
"Blend ", 0, kPPBlendChanged, 4 * fontWidth, "%");
|
"Blend ", 0, kPPBlendChanged, 4 * fontWidth, "%");
|
||||||
myPPBlend->setMinValue(0); myPPBlend->setMaxValue(100);
|
myPPBlend->setMinValue(0); myPPBlend->setMaxValue(100);
|
||||||
|
@ -136,8 +163,8 @@ GameInfoDialog::GameInfoDialog(
|
||||||
wid.push_back(myPPBlend);
|
wid.push_back(myPPBlend);
|
||||||
|
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
t = new StaticTextWidget(myTab, font, HBORDER, ypos + 1, "V-Center ");
|
t = new StaticTextWidget(myTab, _font, HBORDER, ypos + 1, "V-Center ");
|
||||||
myVCenter = new SliderWidget(myTab, font, t->getRight() + 2, ypos, "",
|
myVCenter = new SliderWidget(myTab, _font, t->getRight() + 2, ypos, "",
|
||||||
0, kVCenterChanged, 7 * fontWidth, "px", 0, true);
|
0, kVCenterChanged, 7 * fontWidth, "px", 0, true);
|
||||||
|
|
||||||
myVCenter->setMinValue(TIAConstants::minVcenter);
|
myVCenter->setMinValue(TIAConstants::minVcenter);
|
||||||
|
@ -146,7 +173,7 @@ GameInfoDialog::GameInfoDialog(
|
||||||
wid.push_back(myVCenter);
|
wid.push_back(myVCenter);
|
||||||
|
|
||||||
ypos += lineHeight + VGAP * 3;
|
ypos += lineHeight + VGAP * 3;
|
||||||
mySound = new CheckboxWidget(myTab, font, HBORDER, ypos + 1, "Stereo sound");
|
mySound = new CheckboxWidget(myTab, _font, HBORDER, ypos + 1, "Stereo sound");
|
||||||
wid.push_back(mySound);
|
wid.push_back(mySound);
|
||||||
|
|
||||||
// Add message concerning usage
|
// Add message concerning usage
|
||||||
|
@ -157,52 +184,80 @@ GameInfoDialog::GameInfoDialog(
|
||||||
// Add items for tab 0
|
// Add items for tab 0
|
||||||
addToFocusList(wid, myTab, tabID);
|
addToFocusList(wid, myTab, tabID);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void GameInfoDialog::addConsoleTab()
|
||||||
|
{
|
||||||
// 2) Console properties
|
// 2) Console properties
|
||||||
wid.clear();
|
const int VBORDER = 8;
|
||||||
|
const int HBORDER = 10;
|
||||||
|
const int VGAP = 4;
|
||||||
|
const int lineHeight = _font.getLineHeight(),
|
||||||
|
fontHeight = _font.getFontHeight();
|
||||||
|
|
||||||
|
int xpos, ypos, lwidth, tabID;
|
||||||
|
WidgetArray wid;
|
||||||
|
VariantList items;
|
||||||
|
|
||||||
tabID = myTab->addTab(" Console ", TabWidget::AUTO_WIDTH);
|
tabID = myTab->addTab(" Console ", TabWidget::AUTO_WIDTH);
|
||||||
|
|
||||||
xpos = HBORDER; ypos = VBORDER;
|
xpos = HBORDER; ypos = VBORDER;
|
||||||
lwidth = font.getStringWidth(GUI::RIGHT_DIFFICULTY + " ");
|
lwidth = _font.getStringWidth(GUI::RIGHT_DIFFICULTY + " ");
|
||||||
|
|
||||||
new StaticTextWidget(myTab, font, xpos, ypos + 1, "TV type");
|
new StaticTextWidget(myTab, _font, xpos, ypos + 1, "TV type");
|
||||||
myTVTypeGroup = new RadioButtonGroup();
|
myTVTypeGroup = new RadioButtonGroup();
|
||||||
RadioButtonWidget* r = new RadioButtonWidget(myTab, font, xpos + lwidth, ypos + 1,
|
RadioButtonWidget* r = new RadioButtonWidget(myTab, _font, xpos + lwidth, ypos + 1,
|
||||||
"Color", myTVTypeGroup);
|
"Color", myTVTypeGroup);
|
||||||
wid.push_back(r);
|
wid.push_back(r);
|
||||||
ypos += lineHeight;
|
ypos += lineHeight;
|
||||||
r = new RadioButtonWidget(myTab, font, xpos + lwidth, ypos + 1,
|
r = new RadioButtonWidget(myTab, _font, xpos + lwidth, ypos + 1,
|
||||||
"B/W", myTVTypeGroup);
|
"B/W", myTVTypeGroup);
|
||||||
wid.push_back(r);
|
wid.push_back(r);
|
||||||
ypos += lineHeight + VGAP * 2;
|
ypos += lineHeight + VGAP * 2;
|
||||||
|
|
||||||
new StaticTextWidget(myTab, font, xpos, ypos+1, GUI::LEFT_DIFFICULTY);
|
new StaticTextWidget(myTab, _font, xpos, ypos+1, GUI::LEFT_DIFFICULTY);
|
||||||
myLeftDiffGroup = new RadioButtonGroup();
|
myLeftDiffGroup = new RadioButtonGroup();
|
||||||
r = new RadioButtonWidget(myTab, font, xpos + lwidth, ypos + 1,
|
r = new RadioButtonWidget(myTab, _font, xpos + lwidth, ypos + 1,
|
||||||
"A (Expert)", myLeftDiffGroup);
|
"A (Expert)", myLeftDiffGroup);
|
||||||
wid.push_back(r);
|
wid.push_back(r);
|
||||||
ypos += lineHeight;
|
ypos += lineHeight;
|
||||||
r = new RadioButtonWidget(myTab, font, xpos + lwidth, ypos + 1,
|
r = new RadioButtonWidget(myTab, _font, xpos + lwidth, ypos + 1,
|
||||||
"B (Novice)", myLeftDiffGroup);
|
"B (Novice)", myLeftDiffGroup);
|
||||||
wid.push_back(r);
|
wid.push_back(r);
|
||||||
ypos += lineHeight + VGAP * 2;
|
ypos += lineHeight + VGAP * 2;
|
||||||
|
|
||||||
new StaticTextWidget(myTab, font, xpos, ypos+1, GUI::RIGHT_DIFFICULTY);
|
new StaticTextWidget(myTab, _font, xpos, ypos+1, GUI::RIGHT_DIFFICULTY);
|
||||||
myRightDiffGroup = new RadioButtonGroup();
|
myRightDiffGroup = new RadioButtonGroup();
|
||||||
r = new RadioButtonWidget(myTab, font, xpos + lwidth, ypos + 1,
|
r = new RadioButtonWidget(myTab, _font, xpos + lwidth, ypos + 1,
|
||||||
"A (Expert)", myRightDiffGroup);
|
"A (Expert)", myRightDiffGroup);
|
||||||
wid.push_back(r);
|
wid.push_back(r);
|
||||||
ypos += lineHeight;
|
ypos += lineHeight;
|
||||||
r = new RadioButtonWidget(myTab, font, xpos + lwidth, ypos + 1,
|
r = new RadioButtonWidget(myTab, _font, xpos + lwidth, ypos + 1,
|
||||||
"B (Novice)", myRightDiffGroup);
|
"B (Novice)", myRightDiffGroup);
|
||||||
wid.push_back(r);
|
wid.push_back(r);
|
||||||
|
|
||||||
// Add items for tab 1
|
// Add items for tab 1
|
||||||
addToFocusList(wid, myTab, tabID);
|
addToFocusList(wid, myTab, tabID);
|
||||||
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void GameInfoDialog::addControllersTab()
|
||||||
|
{
|
||||||
// 3) Controller properties
|
// 3) Controller properties
|
||||||
wid.clear();
|
const int VBORDER = 8;
|
||||||
|
const int HBORDER = 10;
|
||||||
|
const int VGAP = 4;
|
||||||
|
const GUI::Font& ifont = instance().frameBuffer().infoFont();
|
||||||
|
const int lineHeight = _font.getLineHeight(),
|
||||||
|
fontWidth = _font.getMaxCharWidth(),
|
||||||
|
fontHeight = _font.getFontHeight();
|
||||||
|
|
||||||
|
int xpos, ypos, pwidth, tabID;
|
||||||
|
WidgetArray wid;
|
||||||
|
VariantList items, ports, ctrls;;
|
||||||
|
|
||||||
tabID = myTab->addTab("Controllers", TabWidget::AUTO_WIDTH);
|
tabID = myTab->addTab("Controllers", TabWidget::AUTO_WIDTH);
|
||||||
|
|
||||||
ctrls.clear();
|
ctrls.clear();
|
||||||
|
@ -224,10 +279,10 @@ GameInfoDialog::GameInfoDialog(
|
||||||
VarList::push_back(ctrls, "Lightgun", "LIGHTGUN");
|
VarList::push_back(ctrls, "Lightgun", "LIGHTGUN");
|
||||||
VarList::push_back(ctrls, "MindLink", "MINDLINK");
|
VarList::push_back(ctrls, "MindLink", "MINDLINK");
|
||||||
|
|
||||||
ypos = VBORDER;
|
xpos = HBORDER; ypos = VBORDER;
|
||||||
pwidth = font.getStringWidth("Paddles_IAxis");
|
pwidth = _font.getStringWidth("Paddles_IAxis");
|
||||||
myLeftPortLabel = new StaticTextWidget(myTab, font, HBORDER, ypos+1, "Left port ");
|
myLeftPortLabel = new StaticTextWidget(myTab, _font, HBORDER, ypos+1, "Left port ");
|
||||||
myLeftPort = new PopUpWidget(myTab, font, myLeftPortLabel->getRight(),
|
myLeftPort = new PopUpWidget(myTab, _font, myLeftPortLabel->getRight(),
|
||||||
myLeftPortLabel->getTop()-1,
|
myLeftPortLabel->getTop()-1,
|
||||||
pwidth, lineHeight, ctrls, "", 0, kLeftCChanged);
|
pwidth, lineHeight, ctrls, "", 0, kLeftCChanged);
|
||||||
wid.push_back(myLeftPort);
|
wid.push_back(myLeftPort);
|
||||||
|
@ -237,8 +292,8 @@ GameInfoDialog::GameInfoDialog(
|
||||||
"Sega Genesis detected");
|
"Sega Genesis detected");
|
||||||
ypos += ifont.getLineHeight() + VGAP;
|
ypos += ifont.getLineHeight() + VGAP;
|
||||||
|
|
||||||
myRightPortLabel = new StaticTextWidget(myTab, font, HBORDER, ypos+1, "Right port ");
|
myRightPortLabel = new StaticTextWidget(myTab, _font, HBORDER, ypos+1, "Right port ");
|
||||||
myRightPort = new PopUpWidget(myTab, font, myRightPortLabel->getRight(),
|
myRightPort = new PopUpWidget(myTab, _font, myRightPortLabel->getRight(),
|
||||||
myRightPortLabel->getTop()-1,
|
myRightPortLabel->getTop()-1,
|
||||||
pwidth, lineHeight, ctrls, "", 0, kRightCChanged);
|
pwidth, lineHeight, ctrls, "", 0, kRightCChanged);
|
||||||
wid.push_back(myRightPort);
|
wid.push_back(myRightPort);
|
||||||
|
@ -247,29 +302,32 @@ GameInfoDialog::GameInfoDialog(
|
||||||
"Sega Genesis detected");
|
"Sega Genesis detected");
|
||||||
ypos += ifont.getLineHeight() + VGAP + 4;
|
ypos += ifont.getLineHeight() + VGAP + 4;
|
||||||
|
|
||||||
mySwapPorts = new CheckboxWidget(myTab, font, myLeftPort->getRight() + fontWidth*4,
|
mySwapPorts = new CheckboxWidget(myTab, _font, myLeftPort->getRight() + fontWidth*4,
|
||||||
myLeftPort->getTop()+1, "Swap ports");
|
myLeftPort->getTop()+1, "Swap ports");
|
||||||
wid.push_back(mySwapPorts);
|
wid.push_back(mySwapPorts);
|
||||||
mySwapPaddles = new CheckboxWidget(myTab, font, myRightPort->getRight() + fontWidth*4,
|
mySwapPaddles = new CheckboxWidget(myTab, _font, myRightPort->getRight() + fontWidth*4,
|
||||||
myRightPort->getTop()+1, "Swap paddles");
|
myRightPort->getTop()+1, "Swap paddles");
|
||||||
wid.push_back(mySwapPaddles);
|
wid.push_back(mySwapPaddles);
|
||||||
|
|
||||||
// EEPROM erase button for left/right controller
|
// EEPROM erase button for left/right controller
|
||||||
//ypos += lineHeight + VGAP + 4;
|
//ypos += lineHeight + VGAP + 4;
|
||||||
pwidth = myRightPort->getWidth(); //font.getStringWidth("Erase EEPROM ") + 23;
|
pwidth = myRightPort->getWidth(); //_font.getStringWidth("Erase EEPROM ") + 23;
|
||||||
myEraseEEPROMLabel = new StaticTextWidget(myTab, font, HBORDER, ypos, "AtariVox/SaveKey ");
|
myEraseEEPROMLabel = new StaticTextWidget(myTab, _font, HBORDER, ypos, "AtariVox/SaveKey ");
|
||||||
myEraseEEPROMButton = new ButtonWidget(myTab, font, myEraseEEPROMLabel->getRight(), ypos - 4,
|
myEraseEEPROMButton = new ButtonWidget(myTab, _font, myEraseEEPROMLabel->getRight(), ypos - 4,
|
||||||
pwidth, buttonHeight, "Erase EEPROM", kEEButtonPressed);
|
pwidth, buttonHeight(_font), "Erase EEPROM",
|
||||||
|
kEEButtonPressed);
|
||||||
wid.push_back(myEraseEEPROMButton);
|
wid.push_back(myEraseEEPROMButton);
|
||||||
myEraseEEPROMInfo = new StaticTextWidget(myTab, ifont, myEraseEEPROMButton->getRight() + 4,
|
myEraseEEPROMInfo = new StaticTextWidget(myTab, ifont, myEraseEEPROMButton->getRight() + 4,
|
||||||
myEraseEEPROMLabel->getTop() + 3, "(for this game only)");
|
myEraseEEPROMLabel->getTop() + 3,
|
||||||
|
"(for this game only)");
|
||||||
|
|
||||||
ypos += lineHeight + VGAP * 4;
|
ypos += lineHeight + VGAP * 4;
|
||||||
myMouseControl = new CheckboxWidget(myTab, font, xpos, ypos + 1, "Specific mouse axes", kMCtrlChanged);
|
myMouseControl = new CheckboxWidget(myTab, _font, xpos, ypos + 1, "Specific mouse axes",
|
||||||
|
kMCtrlChanged);
|
||||||
wid.push_back(myMouseControl);
|
wid.push_back(myMouseControl);
|
||||||
|
|
||||||
// Mouse controller specific axis
|
// Mouse controller specific axis
|
||||||
pwidth = font.getStringWidth("MindLink 0");
|
pwidth = _font.getStringWidth("MindLink 0");
|
||||||
items.clear();
|
items.clear();
|
||||||
VarList::push_back(items, "None", static_cast<uInt32>(MouseControl::Type::NoControl));
|
VarList::push_back(items, "None", static_cast<uInt32>(MouseControl::Type::NoControl));
|
||||||
VarList::push_back(items, "Paddle 0", static_cast<uInt32>(MouseControl::Type::Paddle0));
|
VarList::push_back(items, "Paddle 0", static_cast<uInt32>(MouseControl::Type::Paddle0));
|
||||||
|
@ -283,17 +341,17 @@ GameInfoDialog::GameInfoDialog(
|
||||||
|
|
||||||
xpos += 20;
|
xpos += 20;
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
myMouseX = new PopUpWidget(myTab, font, xpos, ypos, pwidth, lineHeight, items,
|
myMouseX = new PopUpWidget(myTab, _font, xpos, ypos, pwidth, lineHeight, items,
|
||||||
"X-Axis is ");
|
"X-Axis is ");
|
||||||
wid.push_back(myMouseX);
|
wid.push_back(myMouseX);
|
||||||
|
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
myMouseY = new PopUpWidget(myTab, font, myMouseX->getLeft(), ypos, pwidth, lineHeight, items,
|
myMouseY = new PopUpWidget(myTab, _font, myMouseX->getLeft(), ypos, pwidth, lineHeight, items,
|
||||||
"Y-Axis is ");
|
"Y-Axis is ");
|
||||||
wid.push_back(myMouseY);
|
wid.push_back(myMouseY);
|
||||||
|
|
||||||
xpos = HBORDER; ypos += lineHeight + VGAP;
|
xpos = HBORDER; ypos += lineHeight + VGAP;
|
||||||
myMouseRange = new SliderWidget(myTab, font, HBORDER, ypos,
|
myMouseRange = new SliderWidget(myTab, _font, HBORDER, ypos,
|
||||||
"Mouse axes range ", 0, 0, fontWidth * 4, "%");
|
"Mouse axes range ", 0, 0, fontWidth * 4, "%");
|
||||||
myMouseRange->setMinValue(1); myMouseRange->setMaxValue(100);
|
myMouseRange->setMinValue(1); myMouseRange->setMaxValue(100);
|
||||||
myMouseRange->setTickmarkIntervals(4);
|
myMouseRange->setTickmarkIntervals(4);
|
||||||
|
@ -301,57 +359,83 @@ GameInfoDialog::GameInfoDialog(
|
||||||
|
|
||||||
// Add items for tab 2
|
// Add items for tab 2
|
||||||
addToFocusList(wid, myTab, tabID);
|
addToFocusList(wid, myTab, tabID);
|
||||||
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void GameInfoDialog::addCartridgeTab()
|
||||||
|
{
|
||||||
// 4) Cartridge properties
|
// 4) Cartridge properties
|
||||||
|
const int VBORDER = 8;
|
||||||
|
const int HBORDER = 10;
|
||||||
|
const int VGAP = 4;
|
||||||
|
const int lineHeight = _font.getLineHeight(),
|
||||||
|
fontHeight = _font.getFontHeight();
|
||||||
|
|
||||||
|
int xpos, ypos, lwidth, fwidth, tabID;
|
||||||
|
WidgetArray wid;
|
||||||
|
VariantList items;
|
||||||
|
|
||||||
wid.clear();
|
wid.clear();
|
||||||
tabID = myTab->addTab("Cartridge", TabWidget::AUTO_WIDTH);
|
tabID = myTab->addTab("Cartridge", TabWidget::AUTO_WIDTH);
|
||||||
|
|
||||||
xpos = HBORDER; ypos = VBORDER;
|
xpos = HBORDER; ypos = VBORDER;
|
||||||
lwidth = font.getStringWidth("Manufacturer ");
|
lwidth = _font.getStringWidth("Manufacturer ");
|
||||||
fwidth = _w - lwidth - HBORDER * 2 - 2;
|
fwidth = _w - lwidth - HBORDER * 2 - 2;
|
||||||
new StaticTextWidget(myTab, font, xpos, ypos + 1, lwidth, fontHeight, "Name");
|
new StaticTextWidget(myTab, _font, xpos, ypos + 1, lwidth, fontHeight, "Name");
|
||||||
myName = new EditTextWidget(myTab, font, xpos + lwidth, ypos - 1,
|
myName = new EditTextWidget(myTab, _font, xpos + lwidth, ypos - 1,
|
||||||
fwidth, lineHeight, "");
|
fwidth, lineHeight, "");
|
||||||
wid.push_back(myName);
|
wid.push_back(myName);
|
||||||
|
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
new StaticTextWidget(myTab, font, xpos, ypos + 1, lwidth, fontHeight, "MD5");
|
new StaticTextWidget(myTab, _font, xpos, ypos + 1, lwidth, fontHeight, "MD5");
|
||||||
myMD5 = new EditTextWidget(myTab, font, xpos + lwidth, ypos - 1,
|
myMD5 = new EditTextWidget(myTab, _font, xpos + lwidth, ypos - 1,
|
||||||
fwidth, lineHeight, "");
|
fwidth, lineHeight, "");
|
||||||
myMD5->setEditable(false);
|
myMD5->setEditable(false);
|
||||||
|
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
new StaticTextWidget(myTab, font, xpos, ypos + 1, lwidth, fontHeight, "Manufacturer");
|
new StaticTextWidget(myTab, _font, xpos, ypos + 1, lwidth, fontHeight, "Manufacturer");
|
||||||
myManufacturer = new EditTextWidget(myTab, font, xpos + lwidth, ypos - 1,
|
myManufacturer = new EditTextWidget(myTab, _font, xpos + lwidth, ypos - 1,
|
||||||
fwidth, lineHeight, "");
|
fwidth, lineHeight, "");
|
||||||
wid.push_back(myManufacturer);
|
wid.push_back(myManufacturer);
|
||||||
|
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
new StaticTextWidget(myTab, font, xpos, ypos + 1, lwidth, fontHeight,
|
new StaticTextWidget(myTab, _font, xpos, ypos + 1, lwidth, fontHeight,
|
||||||
"Model", TextAlign::Left);
|
"Model", TextAlign::Left);
|
||||||
myModelNo = new EditTextWidget(myTab, font, xpos + lwidth, ypos - 1,
|
myModelNo = new EditTextWidget(myTab, _font, xpos + lwidth, ypos - 1,
|
||||||
fwidth, lineHeight, "");
|
fwidth, lineHeight, "");
|
||||||
wid.push_back(myModelNo);
|
wid.push_back(myModelNo);
|
||||||
|
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
new StaticTextWidget(myTab, font, xpos, ypos + 1, lwidth, fontHeight, "Rarity");
|
new StaticTextWidget(myTab, _font, xpos, ypos + 1, lwidth, fontHeight, "Rarity");
|
||||||
myRarity = new EditTextWidget(myTab, font, xpos + lwidth, ypos - 1,
|
myRarity = new EditTextWidget(myTab, _font, xpos + lwidth, ypos - 1,
|
||||||
fwidth, lineHeight, "");
|
fwidth, lineHeight, "");
|
||||||
wid.push_back(myRarity);
|
wid.push_back(myRarity);
|
||||||
|
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
new StaticTextWidget(myTab, font, xpos, ypos + 1, lwidth, fontHeight, "Note");
|
new StaticTextWidget(myTab, _font, xpos, ypos + 1, lwidth, fontHeight, "Note");
|
||||||
myNote = new EditTextWidget(myTab, font, xpos + lwidth, ypos - 1,
|
myNote = new EditTextWidget(myTab, _font, xpos + lwidth, ypos - 1,
|
||||||
fwidth, lineHeight, "");
|
fwidth, lineHeight, "");
|
||||||
wid.push_back(myNote);
|
wid.push_back(myNote);
|
||||||
|
|
||||||
// Add items for tab 3
|
// Add items for tab 3
|
||||||
addToFocusList(wid, myTab, tabID);
|
addToFocusList(wid, myTab, tabID);
|
||||||
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void GameInfoDialog::addHighScoresTab()
|
||||||
|
{
|
||||||
// 4) High Scores properties
|
// 4) High Scores properties
|
||||||
wid.clear();
|
const int VBORDER = 8;
|
||||||
|
const int HBORDER = 10;
|
||||||
|
const int VGAP = 4;
|
||||||
|
const int lineHeight = _font.getLineHeight(),
|
||||||
|
fontHeight = _font.getFontHeight();
|
||||||
|
|
||||||
|
int xpos, ypos, lwidth, fwidth, pwidth, tabID;
|
||||||
|
WidgetArray wid;
|
||||||
|
VariantList items;
|
||||||
|
|
||||||
tabID = myTab->addTab("High Scores", TabWidget::AUTO_WIDTH);
|
tabID = myTab->addTab("High Scores", TabWidget::AUTO_WIDTH);
|
||||||
|
|
||||||
EditableWidget::TextFilter fAddr = [](char c) {
|
EditableWidget::TextFilter fAddr = [](char c) {
|
||||||
|
@ -365,101 +449,101 @@ GameInfoDialog::GameInfoDialog(
|
||||||
};
|
};
|
||||||
|
|
||||||
xpos = HBORDER; ypos = VBORDER;
|
xpos = HBORDER; ypos = VBORDER;
|
||||||
lwidth = font.getStringWidth("Variations ");
|
lwidth = _font.getStringWidth("Variations ");
|
||||||
|
|
||||||
myHighScores = new CheckboxWidget(myTab, font, xpos, ypos + 1, "Enable High Scores", kHiScoresChanged);
|
myHighScores = new CheckboxWidget(myTab, _font, xpos, ypos + 1, "Enable High Scores", kHiScoresChanged);
|
||||||
|
|
||||||
xpos += 20; ypos += lineHeight + VGAP;
|
xpos += 20; ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
items.clear();
|
items.clear();
|
||||||
for (int i = 1; i <= HSM::MAX_PLAYERS; ++i)
|
for (int i = 1; i <= HSM::MAX_PLAYERS; ++i)
|
||||||
VarList::push_back(items, std::to_string(i), std::to_string(i));
|
VarList::push_back(items, std::to_string(i), std::to_string(i));
|
||||||
pwidth = font.getStringWidth("4");
|
pwidth = _font.getStringWidth("4");
|
||||||
|
|
||||||
myPlayersLabel = new StaticTextWidget(myTab, font, xpos, ypos + 1, lwidth, fontHeight, "Players");
|
myPlayersLabel = new StaticTextWidget(myTab, _font, xpos, ypos + 1, lwidth, fontHeight, "Players");
|
||||||
myPlayers = new PopUpWidget(myTab, font, xpos + lwidth, ypos, pwidth, lineHeight, items, "", 0, kHiScoresChanged);
|
myPlayers = new PopUpWidget(myTab, _font, xpos + lwidth, ypos, pwidth, lineHeight, items, "", 0, kHiScoresChanged);
|
||||||
wid.push_back(myPlayers);
|
wid.push_back(myPlayers);
|
||||||
|
|
||||||
int awidth = font.getMaxCharWidth() * HSM::MAX_ADDR_CHARS + 4;
|
int awidth = _font.getMaxCharWidth() * HSM::MAX_ADDR_CHARS + 4;
|
||||||
int vwidth = font.getStringWidth("123") + 4;
|
int vwidth = _font.getStringWidth("123") + 4;
|
||||||
|
|
||||||
myPlayersAddressLabel = new StaticTextWidget(myTab, font, myPlayers->getRight() + 16, ypos + 1, "Address ");
|
myPlayersAddressLabel = new StaticTextWidget(myTab, _font, myPlayers->getRight() + 16, ypos + 1, "Address ");
|
||||||
myPlayersAddress = new EditTextWidget(myTab, font, myPlayersAddressLabel->getRight(), ypos - 1, awidth, lineHeight);
|
myPlayersAddress = new EditTextWidget(myTab, _font, myPlayersAddressLabel->getRight(), ypos - 1, awidth, lineHeight);
|
||||||
myPlayersAddress->setTextFilter(fAddr);
|
myPlayersAddress->setTextFilter(fAddr);
|
||||||
wid.push_back(myPlayersAddress);
|
wid.push_back(myPlayersAddress);
|
||||||
myPlayersAddressVal = new EditTextWidget(myTab, font, myPlayersAddress->getRight() + 2, ypos - 1, vwidth, lineHeight);
|
myPlayersAddressVal = new EditTextWidget(myTab, _font, myPlayersAddress->getRight() + 2, ypos - 1, vwidth, lineHeight);
|
||||||
myPlayersAddressVal->setEditable(false);
|
myPlayersAddressVal->setEditable(false);
|
||||||
|
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
fwidth = font.getStringWidth("255") + 5;
|
fwidth = _font.getStringWidth("255") + 5;
|
||||||
vwidth = font.getStringWidth("123") + 4;
|
vwidth = _font.getStringWidth("123") + 4;
|
||||||
int swidth = font.getStringWidth("abcde") + 4;
|
int swidth = _font.getStringWidth("abcde") + 4;
|
||||||
myVariationsLabel = new StaticTextWidget(myTab, font, xpos, ypos + 1, lwidth, fontHeight, "Variations");
|
myVariationsLabel = new StaticTextWidget(myTab, _font, xpos, ypos + 1, lwidth, fontHeight, "Variations");
|
||||||
myVariations = new EditTextWidget(myTab, font, xpos + lwidth, ypos - 1, fwidth, lineHeight);
|
myVariations = new EditTextWidget(myTab, _font, xpos + lwidth, ypos - 1, fwidth, lineHeight);
|
||||||
myVariations->setTextFilter(fVars);
|
myVariations->setTextFilter(fVars);
|
||||||
wid.push_back(myVariations);
|
wid.push_back(myVariations);
|
||||||
|
|
||||||
myVarAddressLabel = new StaticTextWidget(myTab, font, myPlayersAddressLabel->getLeft(), ypos + 1, "Address ");
|
myVarAddressLabel = new StaticTextWidget(myTab, _font, myPlayersAddressLabel->getLeft(), ypos + 1, "Address ");
|
||||||
myVarAddress = new EditTextWidget(myTab, font, myVarAddressLabel->getRight(), ypos - 1, awidth, lineHeight);
|
myVarAddress = new EditTextWidget(myTab, _font, myVarAddressLabel->getRight(), ypos - 1, awidth, lineHeight);
|
||||||
myVarAddress->setTextFilter(fAddr);
|
myVarAddress->setTextFilter(fAddr);
|
||||||
wid.push_back(myVarAddress);
|
wid.push_back(myVarAddress);
|
||||||
myVarAddressVal = new EditTextWidget(myTab, font, myVarAddress->getRight() + 2, ypos - 1, vwidth, lineHeight);
|
myVarAddressVal = new EditTextWidget(myTab, _font, myVarAddress->getRight() + 2, ypos - 1, vwidth, lineHeight);
|
||||||
myVarAddressVal->setEditable(false);
|
myVarAddressVal->setEditable(false);
|
||||||
|
|
||||||
myVarsBCD = new CheckboxWidget(myTab, font, myVarAddressVal->getRight() + 16, ypos + 1, "BCD", kHiScoresChanged);
|
myVarsBCD = new CheckboxWidget(myTab, _font, myVarAddressVal->getRight() + 16, ypos + 1, "BCD", kHiScoresChanged);
|
||||||
wid.push_back(myVarsBCD);
|
wid.push_back(myVarsBCD);
|
||||||
|
|
||||||
myVarsZeroBased = new CheckboxWidget(myTab, font, myVarsBCD->getRight() + 16, ypos + 1, "0-based", kHiScoresChanged);
|
myVarsZeroBased = new CheckboxWidget(myTab, _font, myVarsBCD->getRight() + 16, ypos + 1, "0-based", kHiScoresChanged);
|
||||||
wid.push_back(myVarsZeroBased);
|
wid.push_back(myVarsZeroBased);
|
||||||
|
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
mySpecialLabel = new StaticTextWidget(myTab, font, xpos, ypos + 1, "Special ");
|
mySpecialLabel = new StaticTextWidget(myTab, _font, xpos, ypos + 1, "Special ");
|
||||||
mySpecialName = new EditTextWidget(myTab, font, mySpecialLabel->getRight(), ypos - 1, swidth, lineHeight);
|
mySpecialName = new EditTextWidget(myTab, _font, mySpecialLabel->getRight(), ypos - 1, swidth, lineHeight);
|
||||||
mySpecialName->setTextFilter(fSpecial);
|
mySpecialName->setTextFilter(fSpecial);
|
||||||
wid.push_back(mySpecialName);
|
wid.push_back(mySpecialName);
|
||||||
|
|
||||||
mySpecialAddressLabel = new StaticTextWidget(myTab, font, myPlayersAddressLabel->getLeft(), ypos + 1, "Address ");
|
mySpecialAddressLabel = new StaticTextWidget(myTab, _font, myPlayersAddressLabel->getLeft(), ypos + 1, "Address ");
|
||||||
mySpecialAddress = new EditTextWidget(myTab, font, mySpecialAddressLabel->getRight(), ypos - 1, awidth, lineHeight);
|
mySpecialAddress = new EditTextWidget(myTab, _font, mySpecialAddressLabel->getRight(), ypos - 1, awidth, lineHeight);
|
||||||
mySpecialAddress->setTextFilter(fAddr);
|
mySpecialAddress->setTextFilter(fAddr);
|
||||||
wid.push_back(mySpecialAddress);
|
wid.push_back(mySpecialAddress);
|
||||||
mySpecialAddressVal = new EditTextWidget(myTab, font, mySpecialAddress->getRight() + 2, ypos - 1, vwidth, lineHeight);
|
mySpecialAddressVal = new EditTextWidget(myTab, _font, mySpecialAddress->getRight() + 2, ypos - 1, vwidth, lineHeight);
|
||||||
mySpecialAddressVal->setEditable(false);
|
mySpecialAddressVal->setEditable(false);
|
||||||
|
|
||||||
mySpecialBCD = new CheckboxWidget(myTab, font, mySpecialAddressVal->getRight() + 16, ypos + 1, "BCD", kHiScoresChanged);
|
mySpecialBCD = new CheckboxWidget(myTab, _font, mySpecialAddressVal->getRight() + 16, ypos + 1, "BCD", kHiScoresChanged);
|
||||||
wid.push_back(mySpecialBCD);
|
wid.push_back(mySpecialBCD);
|
||||||
|
|
||||||
mySpecialZeroBased = new CheckboxWidget(myTab, font, mySpecialBCD->getRight() + 16, ypos + 1, "0-based", kHiScoresChanged);
|
mySpecialZeroBased = new CheckboxWidget(myTab, _font, mySpecialBCD->getRight() + 16, ypos + 1, "0-based", kHiScoresChanged);
|
||||||
wid.push_back(mySpecialZeroBased);
|
wid.push_back(mySpecialZeroBased);
|
||||||
|
|
||||||
//xpos += 20;
|
//xpos += 20;
|
||||||
ypos += lineHeight + VGAP * 2;
|
ypos += lineHeight + VGAP * 2;
|
||||||
|
|
||||||
vwidth = font.getStringWidth("AB") + 4;
|
vwidth = _font.getStringWidth("AB") + 4;
|
||||||
items.clear();
|
items.clear();
|
||||||
for (int i = 1; i <= HSM::MAX_SCORE_DIGITS; ++i)
|
for (int i = 1; i <= HSM::MAX_SCORE_DIGITS; ++i)
|
||||||
VarList::push_back(items, std::to_string(i), std::to_string(i));
|
VarList::push_back(items, std::to_string(i), std::to_string(i));
|
||||||
|
|
||||||
myScoreDigitsLabel = new StaticTextWidget(myTab, font, xpos, ypos + 1, "Score digits ");
|
myScoreDigitsLabel = new StaticTextWidget(myTab, _font, xpos, ypos + 1, "Score digits ");
|
||||||
myScoreDigits = new PopUpWidget(myTab, font, myScoreDigitsLabel->getRight(), ypos, pwidth, lineHeight,
|
myScoreDigits = new PopUpWidget(myTab, _font, myScoreDigitsLabel->getRight(), ypos, pwidth, lineHeight,
|
||||||
items, "", 0, kHiScoresChanged);
|
items, "", 0, kHiScoresChanged);
|
||||||
wid.push_back(myScoreDigits);
|
wid.push_back(myScoreDigits);
|
||||||
|
|
||||||
items.clear();
|
items.clear();
|
||||||
for (int i = 0; i <= HSM::MAX_SCORE_DIGITS - 3; ++i)
|
for (int i = 0; i <= HSM::MAX_SCORE_DIGITS - 3; ++i)
|
||||||
VarList::push_back(items, std::to_string(i), std::to_string(i));
|
VarList::push_back(items, std::to_string(i), std::to_string(i));
|
||||||
pwidth = font.getStringWidth("0");
|
pwidth = _font.getStringWidth("0");
|
||||||
|
|
||||||
myTrailingZeroesLabel = new StaticTextWidget(myTab, font, myScoreDigits->getRight() + 30, ypos + 1, "0-digits ");
|
myTrailingZeroesLabel = new StaticTextWidget(myTab, _font, myScoreDigits->getRight() + 30, ypos + 1, "0-digits ");
|
||||||
myTrailingZeroes = new PopUpWidget(myTab, font, myTrailingZeroesLabel->getRight(), ypos, pwidth, lineHeight,
|
myTrailingZeroes = new PopUpWidget(myTab, _font, myTrailingZeroesLabel->getRight(), ypos, pwidth, lineHeight,
|
||||||
items, "", 0, kHiScoresChanged);
|
items, "", 0, kHiScoresChanged);
|
||||||
wid.push_back(myTrailingZeroes);
|
wid.push_back(myTrailingZeroes);
|
||||||
|
|
||||||
myScoreBCD = new CheckboxWidget(myTab, font, myVarsBCD->getLeft(), ypos + 1, "BCD", kHiScoresChanged);
|
myScoreBCD = new CheckboxWidget(myTab, _font, myVarsBCD->getLeft(), ypos + 1, "BCD", kHiScoresChanged);
|
||||||
wid.push_back(myScoreBCD);
|
wid.push_back(myScoreBCD);
|
||||||
|
|
||||||
myScoreInvert = new CheckboxWidget(myTab, font, myScoreBCD->getRight() + 16, ypos + 1, "Invert");
|
myScoreInvert = new CheckboxWidget(myTab, _font, myScoreBCD->getRight() + 16, ypos + 1, "Invert");
|
||||||
wid.push_back(myScoreInvert);
|
wid.push_back(myScoreInvert);
|
||||||
|
|
||||||
for (uInt32 p = 0; p < HSM::MAX_PLAYERS; ++p)
|
for (uInt32 p = 0; p < HSM::MAX_PLAYERS; ++p)
|
||||||
|
@ -467,37 +551,29 @@ GameInfoDialog::GameInfoDialog(
|
||||||
uInt32 s_xpos = xpos;
|
uInt32 s_xpos = xpos;
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
myScoreAddressesLabel[p] = new StaticTextWidget(myTab, font, s_xpos, ypos + 1,
|
myScoreAddressesLabel[p] = new StaticTextWidget(myTab, _font, s_xpos, ypos + 1,
|
||||||
"P" + to_string(p + 1) + " Addresses ");
|
"P" + to_string(p + 1) + " Addresses ");
|
||||||
s_xpos += myScoreAddressesLabel[p]->getWidth();
|
s_xpos += myScoreAddressesLabel[p]->getWidth();
|
||||||
for (uInt32 a = 0; a < HSM::MAX_SCORE_ADDR; ++a)
|
for (uInt32 a = 0; a < HSM::MAX_SCORE_ADDR; ++a)
|
||||||
{
|
{
|
||||||
myScoreAddress[p][a] = new EditTextWidget(myTab, font, s_xpos, ypos - 1, awidth, lineHeight);
|
myScoreAddress[p][a] = new EditTextWidget(myTab, _font, s_xpos, ypos - 1, awidth, lineHeight);
|
||||||
myScoreAddress[p][a]->setTextFilter(fAddr);
|
myScoreAddress[p][a]->setTextFilter(fAddr);
|
||||||
wid.push_back(myScoreAddress[p][a]);
|
wid.push_back(myScoreAddress[p][a]);
|
||||||
s_xpos += myScoreAddress[p][a]->getWidth() + 2;
|
s_xpos += myScoreAddress[p][a]->getWidth() + 2;
|
||||||
|
|
||||||
myScoreAddressVal[p][a] = new EditTextWidget(myTab, font, myScoreAddress[p][a]->getRight() + 2, ypos - 1, vwidth, lineHeight);
|
myScoreAddressVal[p][a] = new EditTextWidget(myTab, _font, myScoreAddress[p][a]->getRight() + 2, ypos - 1, vwidth, lineHeight);
|
||||||
myScoreAddressVal[p][a]->setEditable(false);
|
myScoreAddressVal[p][a]->setEditable(false);
|
||||||
s_xpos += myScoreAddressVal[p][a]->getWidth() + 16;
|
s_xpos += myScoreAddressVal[p][a]->getWidth() + 16;
|
||||||
}
|
}
|
||||||
myCurrentScore[p] = new StaticTextWidget(myTab, font, s_xpos, ypos + 1, "= 123456");
|
myCurrentScore[p] = new StaticTextWidget(myTab, _font, s_xpos, ypos + 1, "= 123456");
|
||||||
}
|
}
|
||||||
//myCurrentScoreLabel = new StaticTextWidget(myTab, font, myCurrentScore[0]->getLeft(), myScoreBCD->getTop(), "Current");
|
//myCurrentScoreLabel = new StaticTextWidget(myTab, _font, myCurrentScore[0]->getLeft(), myScoreBCD->getTop(), "Current");
|
||||||
|
|
||||||
// Add items for tab 4
|
// Add items for tab 4
|
||||||
addToFocusList(wid, myTab, tabID);
|
addToFocusList(wid, myTab, tabID);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Activate the first tab
|
|
||||||
myTab->setActiveTab(0);
|
|
||||||
|
|
||||||
// Add Defaults, OK and Cancel buttons
|
|
||||||
wid.clear();
|
|
||||||
addDefaultsOKCancelBGroup(wid, font);
|
|
||||||
addBGroupToFocusList(wid);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void GameInfoDialog::loadConfig()
|
void GameInfoDialog::loadConfig()
|
||||||
{
|
{
|
||||||
|
|
|
@ -46,6 +46,12 @@ class GameInfoDialog : public Dialog, public CommandSender
|
||||||
|
|
||||||
void setDefaults() override;
|
void setDefaults() override;
|
||||||
|
|
||||||
|
void addEmulationTab();
|
||||||
|
void addConsoleTab();
|
||||||
|
void addControllersTab();
|
||||||
|
void addCartridgeTab();
|
||||||
|
void addHighScoresTab();
|
||||||
|
|
||||||
// load the properties for the 'Emulation' tab
|
// load the properties for the 'Emulation' tab
|
||||||
void loadEmulationProperties(const Properties& props);
|
void loadEmulationProperties(const Properties& props);
|
||||||
// load the properties for the 'Console' tab
|
// load the properties for the 'Console' tab
|
||||||
|
|
Loading…
Reference in New Issue