added tooltips to DeveloperDialog

This commit is contained in:
thrust26 2020-11-20 20:12:30 +01:00
parent 654ca21817
commit 2eccae50a0
1 changed files with 35 additions and 1 deletions

View File

@ -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