mirror of https://github.com/stella-emu/stella.git
added tooltips to DeveloperDialog
This commit is contained in:
parent
654ca21817
commit
2eccae50a0
|
@ -115,10 +115,11 @@ void DeveloperDialog::addEmulationTab(const GUI::Font& font)
|
||||||
"Console info overlay");
|
"Console info overlay");
|
||||||
wid.push_back(myFrameStatsWidget);
|
wid.push_back(myFrameStatsWidget);
|
||||||
|
|
||||||
|
|
||||||
myDetectedInfoWidget = new CheckboxWidget(myTab, font,
|
myDetectedInfoWidget = new CheckboxWidget(myTab, font,
|
||||||
myFrameStatsWidget->getRight() + fontWidth * 2.5, ypos + 1,
|
myFrameStatsWidget->getRight() + fontWidth * 2.5, ypos + 1,
|
||||||
"Detected settings info");
|
"Detected settings info");
|
||||||
|
myDetectedInfoWidget->setToolTip("Display detected controllers, bankswitching\n"
|
||||||
|
"and TV types at ROM start.");
|
||||||
wid.push_back(myDetectedInfoWidget);
|
wid.push_back(myDetectedInfoWidget);
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
|
@ -131,6 +132,8 @@ void DeveloperDialog::addEmulationTab(const GUI::Font& font)
|
||||||
|
|
||||||
myConsoleWidget = new PopUpWidget(myTab, font, HBORDER + INDENT * 1, ypos, pwidth, lineHeight, items,
|
myConsoleWidget = new PopUpWidget(myTab, font, HBORDER + INDENT * 1, ypos, pwidth, lineHeight, items,
|
||||||
"Console ", lwidth, kConsole);
|
"Console ", lwidth, kConsole);
|
||||||
|
myConsoleWidget->setToolTip("Emulate Color/B&W/Pause key and zero\n"
|
||||||
|
"page RAM initialization differenly.");
|
||||||
wid.push_back(myConsoleWidget);
|
wid.push_back(myConsoleWidget);
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
|
@ -141,6 +144,8 @@ void DeveloperDialog::addEmulationTab(const GUI::Font& font)
|
||||||
|
|
||||||
myRandomBankWidget = new CheckboxWidget(myTab, font, HBORDER + INDENT * 2, ypos + 1,
|
myRandomBankWidget = new CheckboxWidget(myTab, font, HBORDER + INDENT * 2, ypos + 1,
|
||||||
"Random startup bank");
|
"Random startup bank");
|
||||||
|
myRandomBankWidget->setToolTip("Randomize the startup bank for\n"
|
||||||
|
"most classic bankswitching types.");
|
||||||
wid.push_back(myRandomBankWidget);
|
wid.push_back(myRandomBankWidget);
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
|
@ -168,17 +173,23 @@ void DeveloperDialog::addEmulationTab(const GUI::Font& font)
|
||||||
// How to handle undriven TIA pins
|
// How to handle undriven TIA pins
|
||||||
myUndrivenPinsWidget = new CheckboxWidget(myTab, font, HBORDER + INDENT * 1, ypos + 1,
|
myUndrivenPinsWidget = new CheckboxWidget(myTab, font, HBORDER + INDENT * 1, ypos + 1,
|
||||||
"Drive unused TIA pins randomly on a read/peek");
|
"Drive unused TIA pins randomly on a read/peek");
|
||||||
|
myUndrivenPinsWidget->setToolTip("Read TIA pins random instead of last databus values.\n"
|
||||||
|
"Helps detecting missing '#' for immediate loads.");
|
||||||
wid.push_back(myUndrivenPinsWidget);
|
wid.push_back(myUndrivenPinsWidget);
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
#ifdef DEBUGGER_SUPPORT
|
#ifdef DEBUGGER_SUPPORT
|
||||||
myRWPortBreakWidget = new CheckboxWidget(myTab, font, HBORDER + INDENT * 1, ypos + 1,
|
myRWPortBreakWidget = new CheckboxWidget(myTab, font, HBORDER + INDENT * 1, ypos + 1,
|
||||||
"Break on reads from write ports");
|
"Break on reads from write ports");
|
||||||
|
myRWPortBreakWidget->setToolTip("Cause reads from write ports to interrupt\n"
|
||||||
|
"emulation and enter debugger.");
|
||||||
wid.push_back(myRWPortBreakWidget);
|
wid.push_back(myRWPortBreakWidget);
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
myWRPortBreakWidget = new CheckboxWidget(myTab, font, HBORDER + INDENT * 1, ypos + 1,
|
myWRPortBreakWidget = new CheckboxWidget(myTab, font, HBORDER + INDENT * 1, ypos + 1,
|
||||||
"Break on writes to read ports");
|
"Break on writes to read ports");
|
||||||
|
myWRPortBreakWidget->setToolTip("Cause writes to read ports to interrupt\n"
|
||||||
|
"emulation and enter debugger.");
|
||||||
wid.push_back(myWRPortBreakWidget);
|
wid.push_back(myWRPortBreakWidget);
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
#endif
|
#endif
|
||||||
|
@ -186,12 +197,16 @@ void DeveloperDialog::addEmulationTab(const GUI::Font& font)
|
||||||
// Thumb ARM emulation exception
|
// Thumb ARM emulation exception
|
||||||
myThumbExceptionWidget = new CheckboxWidget(myTab, font, HBORDER + INDENT * 1, ypos + 1,
|
myThumbExceptionWidget = new CheckboxWidget(myTab, font, HBORDER + INDENT * 1, ypos + 1,
|
||||||
"Fatal ARM emulation error throws exception");
|
"Fatal ARM emulation error throws exception");
|
||||||
|
myThumbExceptionWidget->setToolTip("Cause Thumb ARM emulation to throw exceptions\n"
|
||||||
|
"on fatal errors and enter the debugger.");
|
||||||
wid.push_back(myThumbExceptionWidget);
|
wid.push_back(myThumbExceptionWidget);
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
// AtariVox/SaveKey EEPROM access
|
// AtariVox/SaveKey EEPROM access
|
||||||
myEEPROMAccessWidget = new CheckboxWidget(myTab, font, HBORDER + INDENT * 1, ypos + 1,
|
myEEPROMAccessWidget = new CheckboxWidget(myTab, font, HBORDER + INDENT * 1, ypos + 1,
|
||||||
"Display AtariVox/SaveKey EEPROM R/W access");
|
"Display AtariVox/SaveKey EEPROM R/W access");
|
||||||
|
myEEPROMAccessWidget->setToolTip("Cause message display when AtariVox/\n"
|
||||||
|
"SaveKey EEPROM is read or written.");
|
||||||
wid.push_back(myEEPROMAccessWidget);
|
wid.push_back(myEEPROMAccessWidget);
|
||||||
|
|
||||||
// Add items for tab 0
|
// Add items for tab 0
|
||||||
|
@ -239,11 +254,15 @@ void DeveloperDialog::addTiaTab(const GUI::Font& font)
|
||||||
VarList::push_back(items, "Custom", "custom");
|
VarList::push_back(items, "Custom", "custom");
|
||||||
myTIATypeWidget = new PopUpWidget(myTab, font, HBORDER + INDENT, ypos - 1,
|
myTIATypeWidget = new PopUpWidget(myTab, font, HBORDER + INDENT, ypos - 1,
|
||||||
pwidth, lineHeight, items, "Chip type ", 0, kTIAType);
|
pwidth, lineHeight, items, "Chip type ", 0, kTIAType);
|
||||||
|
myTIATypeWidget->setToolTip("Select which TIA chip type to emulate.\n"
|
||||||
|
"Some types cause defined glitches.");
|
||||||
wid.push_back(myTIATypeWidget);
|
wid.push_back(myTIATypeWidget);
|
||||||
ypos += lineHeight + VGAP * 1;
|
ypos += lineHeight + VGAP * 1;
|
||||||
|
|
||||||
myInvPhaseLabel = new StaticTextWidget(myTab, font, HBORDER + INDENT * 2, ypos + 1,
|
myInvPhaseLabel = new StaticTextWidget(myTab, font, HBORDER + INDENT * 2, ypos + 1,
|
||||||
"Inverted HMOVE clock phase for");
|
"Inverted HMOVE clock phase for");
|
||||||
|
myInvPhaseLabel->setToolTip("Objects react different to too\n"
|
||||||
|
"early HM" + ELLIPSIS + " after HMOVE changes.");
|
||||||
wid.push_back(myInvPhaseLabel);
|
wid.push_back(myInvPhaseLabel);
|
||||||
ypos += lineHeight + VGAP * 1;
|
ypos += lineHeight + VGAP * 1;
|
||||||
|
|
||||||
|
@ -262,6 +281,7 @@ void DeveloperDialog::addTiaTab(const GUI::Font& font)
|
||||||
|
|
||||||
myPlayfieldLabel = new StaticTextWidget(myTab, font, HBORDER + INDENT * 2, ypos + 1,
|
myPlayfieldLabel = new StaticTextWidget(myTab, font, HBORDER + INDENT * 2, ypos + 1,
|
||||||
"Delayed playfield");
|
"Delayed playfield");
|
||||||
|
myPlayfieldLabel->setToolTip("Playfield reacts one color clock slower to updates.");
|
||||||
wid.push_back(myPlayfieldLabel);
|
wid.push_back(myPlayfieldLabel);
|
||||||
ypos += lineHeight + VGAP * 1;
|
ypos += lineHeight + VGAP * 1;
|
||||||
|
|
||||||
|
@ -275,6 +295,7 @@ void DeveloperDialog::addTiaTab(const GUI::Font& font)
|
||||||
|
|
||||||
myBackgroundLabel = new StaticTextWidget(myTab, font, HBORDER + INDENT * 2, ypos + 1,
|
myBackgroundLabel = new StaticTextWidget(myTab, font, HBORDER + INDENT * 2, ypos + 1,
|
||||||
"Delayed background");
|
"Delayed background");
|
||||||
|
myBackgroundLabel->setToolTip("Background color reacts one color clock slower to updates.");
|
||||||
wid.push_back(myBackgroundLabel);
|
wid.push_back(myBackgroundLabel);
|
||||||
ypos += lineHeight + VGAP * 1;
|
ypos += lineHeight + VGAP * 1;
|
||||||
|
|
||||||
|
@ -285,6 +306,7 @@ void DeveloperDialog::addTiaTab(const GUI::Font& font)
|
||||||
ostringstream ss;
|
ostringstream ss;
|
||||||
ss << "Delayed VDEL" << ELLIPSIS << " swap for";
|
ss << "Delayed VDEL" << ELLIPSIS << " swap for";
|
||||||
mySwapLabel = new StaticTextWidget(myTab, font, HBORDER + INDENT * 2, ypos + 1, ss.str());
|
mySwapLabel = new StaticTextWidget(myTab, font, HBORDER + INDENT * 2, ypos + 1, ss.str());
|
||||||
|
mySwapLabel->setToolTip("VDELed objects react one color clock slower to updates.");
|
||||||
wid.push_back(mySwapLabel);
|
wid.push_back(mySwapLabel);
|
||||||
ypos += lineHeight + VGAP * 1;
|
ypos += lineHeight + VGAP * 1;
|
||||||
|
|
||||||
|
@ -332,12 +354,14 @@ void DeveloperDialog::addVideoTab(const GUI::Font& font)
|
||||||
// TV jitter effect
|
// TV jitter effect
|
||||||
myTVJitterWidget = new CheckboxWidget(myTab, font, HBORDER + INDENT * 1, ypos + 1,
|
myTVJitterWidget = new CheckboxWidget(myTab, font, HBORDER + INDENT * 1, ypos + 1,
|
||||||
"Jitter/roll effect", kTVJitter);
|
"Jitter/roll effect", kTVJitter);
|
||||||
|
myTVJitterWidget->setToolTip("Enable to emulate TV loss of sync.");
|
||||||
wid.push_back(myTVJitterWidget);
|
wid.push_back(myTVJitterWidget);
|
||||||
myTVJitterRecWidget = new SliderWidget(myTab, font,
|
myTVJitterRecWidget = new SliderWidget(myTab, font,
|
||||||
myTVJitterWidget->getRight() + fontWidth * 3, ypos - 1,
|
myTVJitterWidget->getRight() + fontWidth * 3, ypos - 1,
|
||||||
"Recovery ", 0, kTVJitterChanged);
|
"Recovery ", 0, kTVJitterChanged);
|
||||||
myTVJitterRecWidget->setMinValue(1); myTVJitterRecWidget->setMaxValue(20);
|
myTVJitterRecWidget->setMinValue(1); myTVJitterRecWidget->setMaxValue(20);
|
||||||
myTVJitterRecWidget->setTickmarkIntervals(5);
|
myTVJitterRecWidget->setTickmarkIntervals(5);
|
||||||
|
myTVJitterRecWidget->setToolTip("Define speed of sync revovery.");
|
||||||
wid.push_back(myTVJitterRecWidget);
|
wid.push_back(myTVJitterRecWidget);
|
||||||
myTVJitterRecLabelWidget = new StaticTextWidget(myTab, font,
|
myTVJitterRecLabelWidget = new StaticTextWidget(myTab, font,
|
||||||
myTVJitterRecWidget->getRight() + 4,
|
myTVJitterRecWidget->getRight() + 4,
|
||||||
|
@ -347,6 +371,8 @@ void DeveloperDialog::addVideoTab(const GUI::Font& font)
|
||||||
|
|
||||||
myColorLossWidget = new CheckboxWidget(myTab, font, HBORDER + INDENT * 1, ypos + 1,
|
myColorLossWidget = new CheckboxWidget(myTab, font, HBORDER + INDENT * 1, ypos + 1,
|
||||||
"PAL color-loss");
|
"PAL color-loss");
|
||||||
|
myColorLossWidget->setToolTip("PAL games with odd scanline count\n"
|
||||||
|
"will be displayed without color.");
|
||||||
wid.push_back(myColorLossWidget);
|
wid.push_back(myColorLossWidget);
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
|
@ -485,6 +511,7 @@ void DeveloperDialog::addTimeMachineTab(const GUI::Font& font)
|
||||||
#endif
|
#endif
|
||||||
myStateSizeWidget->setStepValue(20);
|
myStateSizeWidget->setStepValue(20);
|
||||||
myStateSizeWidget->setTickmarkIntervals(5);
|
myStateSizeWidget->setTickmarkIntervals(5);
|
||||||
|
myStateSizeWidget->setToolTip("Define the total Time Machine buffer size.");
|
||||||
wid.push_back(myStateSizeWidget);
|
wid.push_back(myStateSizeWidget);
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
|
@ -498,6 +525,9 @@ void DeveloperDialog::addTimeMachineTab(const GUI::Font& font)
|
||||||
#endif
|
#endif
|
||||||
myUncompressedWidget->setStepValue(20);
|
myUncompressedWidget->setStepValue(20);
|
||||||
myUncompressedWidget->setTickmarkIntervals(5);
|
myUncompressedWidget->setTickmarkIntervals(5);
|
||||||
|
myUncompressedWidget->setToolTip("Define the number of completely kept states.\n"
|
||||||
|
"States beyond this number will be slowly removed\n"
|
||||||
|
"to fit the requested horizon into the buffer.");
|
||||||
wid.push_back(myUncompressedWidget);
|
wid.push_back(myUncompressedWidget);
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
|
@ -507,6 +537,7 @@ void DeveloperDialog::addTimeMachineTab(const GUI::Font& font)
|
||||||
int pwidth = font.getStringWidth("10 seconds");
|
int pwidth = font.getStringWidth("10 seconds");
|
||||||
myStateIntervalWidget = new PopUpWidget(myTab, font, xpos, ypos, pwidth,
|
myStateIntervalWidget = new PopUpWidget(myTab, font, xpos, ypos, pwidth,
|
||||||
lineHeight, items, "Interval ", 0, kIntervalChanged);
|
lineHeight, items, "Interval ", 0, kIntervalChanged);
|
||||||
|
myStateIntervalWidget->setToolTip("Define the interval between each saved state.");
|
||||||
wid.push_back(myStateIntervalWidget);
|
wid.push_back(myStateIntervalWidget);
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
|
@ -515,6 +546,8 @@ void DeveloperDialog::addTimeMachineTab(const GUI::Font& font)
|
||||||
VarList::push_back(items, HORIZONS[i], HOR_SETTINGS[i]);
|
VarList::push_back(items, HORIZONS[i], HOR_SETTINGS[i]);
|
||||||
myStateHorizonWidget = new PopUpWidget(myTab, font, xpos, ypos, pwidth,
|
myStateHorizonWidget = new PopUpWidget(myTab, font, xpos, ypos, pwidth,
|
||||||
lineHeight, items, "Horizon ~ ", 0, kHorizonChanged);
|
lineHeight, items, "Horizon ~ ", 0, kHorizonChanged);
|
||||||
|
myStateHorizonWidget->setToolTip("Define how far the Time Machine\n"
|
||||||
|
"will allow moving back in time.");
|
||||||
wid.push_back(myStateHorizonWidget);
|
wid.push_back(myStateHorizonWidget);
|
||||||
|
|
||||||
// Add message concerning usage
|
// Add message concerning usage
|
||||||
|
@ -598,6 +631,7 @@ void DeveloperDialog::addDebuggerTab(const GUI::Font& font)
|
||||||
|
|
||||||
myGhostReadsTrapWidget = new CheckboxWidget(myTab, font, HBORDER, ypos + 1,
|
myGhostReadsTrapWidget = new CheckboxWidget(myTab, font, HBORDER, ypos + 1,
|
||||||
"Trap on 'ghost' reads");
|
"Trap on 'ghost' reads");
|
||||||
|
myGhostReadsTrapWidget->setToolTip("Traps will consider CPU 'ghost' reads too.");
|
||||||
wid.push_back(myGhostReadsTrapWidget);
|
wid.push_back(myGhostReadsTrapWidget);
|
||||||
|
|
||||||
// Add message concerning usage
|
// Add message concerning usage
|
||||||
|
|
Loading…
Reference in New Issue