added help hotkey in UI mode (F1)

added missing anchors
This commit is contained in:
thrust26 2021-04-17 16:55:40 +02:00
parent 89966a9a2e
commit a91aea1b22
12 changed files with 57 additions and 25 deletions

View File

@ -14,11 +14,13 @@
6.5.2 to 6.5.3 (XXX, 2021) 6.5.2 to 6.5.3 (XXX, 2021)
* Added context-sensitive help (TODO: doc)
* Improved support of multiple monitors with different resolutions. * Improved support of multiple monitors with different resolutions.
* Improved analog input reading (Paddles, Keyboards...). * Improved analog input reading (Paddles, Keyboards...).
* Fixed QuadTari handling for controller types other than Joysticks. * Fixed QuadTari support for controller types other than Joysticks.
* Fixed palette and TV effects saving for Retron77. * Fixed palette and TV effects saving for Retron77.

View File

@ -811,6 +811,7 @@ PhysicalKeyboardHandler::DefaultMenuMapping = {
{Event::UITabNext, KBDK_BACKSPACE}, // back (FRY) {Event::UITabNext, KBDK_BACKSPACE}, // back (FRY)
#else // defining duplicate keys must be avoided! #else // defining duplicate keys must be avoided!
{Event::UIPrevDir, KBDK_BACKSPACE}, {Event::UIPrevDir, KBDK_BACKSPACE},
{Event::UIHelp, KBDK_F1},
#endif #endif
}; };

View File

@ -267,6 +267,7 @@ NLOHMANN_JSON_SERIALIZE_ENUM(Event::Type, {
{Event::UIPrevDir, "UIPrevDir"}, {Event::UIPrevDir, "UIPrevDir"},
{Event::UITabPrev, "UITabPrev"}, {Event::UITabPrev, "UITabPrev"},
{Event::UITabNext, "UITabNext"}, {Event::UITabNext, "UITabNext"},
{Event::UIHelp, "UIHelp"},
{Event::MouseAxisXMove, "MouseAxisXMove"}, {Event::MouseAxisXMove, "MouseAxisXMove"},
{Event::MouseAxisYMove, "MouseAxisYMove"}, {Event::MouseAxisYMove, "MouseAxisYMove"},
{Event::MouseAxisXValue, "MouseAxisXValue"}, {Event::MouseAxisXValue, "MouseAxisXValue"},

View File

@ -168,6 +168,7 @@ class Event
SALeftAxis0Value, SALeftAxis1Value, SARightAxis0Value, SARightAxis1Value, SALeftAxis0Value, SALeftAxis1Value, SARightAxis0Value, SARightAxis1Value,
PaddleFourFire, PaddleFiveFire, PaddleSixFire, PaddleSevenFire, PaddleFourFire, PaddleFiveFire, PaddleSixFire, PaddleSevenFire,
UIHelp,
LastType LastType
}; };

View File

@ -3306,7 +3306,9 @@ EventHandler::MenuActionList EventHandler::ourMenuActionList = { {
{ Event::UIPrevDir, "Parent directory", "" }, { Event::UIPrevDir, "Parent directory", "" },
{ Event::ToggleFullScreen, "Toggle fullscreen", "" }, { Event::ToggleFullScreen, "Toggle fullscreen", "" },
{ Event::Quit, "Quit", "" } { Event::Quit, "Quit", "" },
{ Event::UIHelp, "Help" "" }
} }; } };
// Event groups // Event groups

View File

@ -646,7 +646,7 @@ class EventHandler
REFRESH_SIZE = 0, REFRESH_SIZE = 0,
#endif #endif
EMUL_ACTIONLIST_SIZE = 211 + PNG_SIZE + COMBO_SIZE + REFRESH_SIZE, EMUL_ACTIONLIST_SIZE = 211 + PNG_SIZE + COMBO_SIZE + REFRESH_SIZE,
MENU_ACTIONLIST_SIZE = 18 MENU_ACTIONLIST_SIZE = 19
; ;
// The event(s) assigned to each combination event // The event(s) assigned to each combination event

View File

@ -152,9 +152,13 @@ void Dialog::setHelpAnchor(const string& helpAnchor, bool debugger)
_debuggerHelp = debugger; _debuggerHelp = debugger;
if(_helpWidget == nullptr) if(_helpWidget == nullptr)
{
_helpWidget = new ButtonWidget(this, _font, _w - _font.getMaxCharWidth() * 3.5, 0, _helpWidget = new ButtonWidget(this, _font, _w - _font.getMaxCharWidth() * 3.5, 0,
_font.getMaxCharWidth() * 3.5, buttonHeight(), "?", _font.getMaxCharWidth() * 3.5 + 0.5, buttonHeight(), "?",
kHelpCmd); kHelpCmd);
_helpWidget->setBGColor(kColorTitleBar);
_helpWidget->setTextColor(kColorTitleText);
}
if(hasTitle() && hasHelp()) if(hasTitle() && hasHelp())
_helpWidget->clearFlags(Widget::FLAG_INVISIBLE); _helpWidget->clearFlags(Widget::FLAG_INVISIBLE);
@ -166,10 +170,26 @@ void Dialog::setHelpAnchor(const string& helpAnchor, bool debugger)
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
const string Dialog::getHelpURL() const string Dialog::getHelpURL()
{ {
if(!_helpAnchor.empty())
{
if(_debuggerHelp) if(_debuggerHelp)
return "https://stella-emu.github.io/docs/debugger.html#" + _helpAnchor; return "https://stella-emu.github.io/docs/debugger.html#" + _helpAnchor;
else else
return "https://stella-emu.github.io/docs/index.html#" + _helpAnchor; return "https://stella-emu.github.io/docs/index.html#" + _helpAnchor;
}
return EmptyString;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void Dialog::openHelp()
{
if(hasHelp())
{
if(SDL_OpenURL(getHelpURL().c_str()))
{
cerr << "error opening URL " << getHelpURL() << endl;
}
}
} }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@ -831,6 +851,9 @@ bool Dialog::handleNavEvent(Event::Type e, bool repeated)
return true; return true;
} }
break; break;
case Event::UIHelp:
openHelp();
return true;
default: default:
return false; return false;
@ -880,14 +903,9 @@ void Dialog::handleCommand(CommandSender* sender, int cmd, int data, int id)
break; break;
case kHelpCmd: case kHelpCmd:
if(hasHelp()) openHelp();
{
if(SDL_OpenURL(getHelpURL().c_str()))
{
cerr << "error opening URL " << getHelpURL() << endl;
}
break; break;
}
default: default:
break; break;
} }

View File

@ -98,7 +98,6 @@ class Dialog : public GuiObject
bool hasTitle() { return !_title.empty(); } bool hasTitle() { return !_title.empty(); }
void setHelpAnchor(const string& helpAnchor, bool debugger = false); void setHelpAnchor(const string& helpAnchor, bool debugger = false);
const string getHelpURL();
virtual bool isShading() const { return true; } virtual bool isShading() const { return true; }
@ -201,8 +200,6 @@ class Dialog : public GuiObject
virtual bool repeatEnabled() { return true; } virtual bool repeatEnabled() { return true; }
bool hasHelp() { return !getHelpURL().empty(); }
private: private:
enum { enum {
kHelpCmd = 'DlHp' kHelpCmd = 'DlHp'
@ -212,6 +209,9 @@ class Dialog : public GuiObject
bool handleNavEvent(Event::Type e, bool repeated = false); bool handleNavEvent(Event::Type e, bool repeated = false);
void getTabIdForWidget(Widget* w); void getTabIdForWidget(Widget* w);
bool cycleTab(int direction); bool cycleTab(int direction);
const string getHelpURL();
bool hasHelp() { return !getHelpURL().empty(); }
void openHelp();
protected: protected:
const GUI::Font& _font; const GUI::Font& _font;

View File

@ -84,7 +84,7 @@ HelpDialog::HelpDialog(OSystem& osystem, DialogContainer& parent,
addToFocusList(wid); addToFocusList(wid);
setHelpAnchor(" "); setHelpAnchor("Hotkeys");
} }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -235,8 +235,6 @@ void InputDialog::addDevicePortTab()
// Add items for virtual device ports // Add items for virtual device ports
addToFocusList(wid, myTab, tabID); addToFocusList(wid, myTab, tabID);
setHelpAnchor("Input");
} }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -83,6 +83,8 @@ RomAuditDialog::RomAuditDialog(OSystem& osystem, DialogContainer& parent,
// Add OK and Cancel buttons // Add OK and Cancel buttons
addOKCancelBGroup(wid, font, "Audit", "Close"); addOKCancelBGroup(wid, font, "Audit", "Close");
addBGroupToFocusList(wid); addBGroupToFocusList(wid);
setHelpAnchor("ROMAudit");
} }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -55,9 +55,12 @@ WhatsNewDialog::WhatsNewDialog(OSystem& osystem, DialogContainer& parent,
add(ypos, "fixed paddle button bug for jittering controllers"); add(ypos, "fixed paddle button bug for jittering controllers");
add(ypos, "improved switching between joysticks and paddles"); add(ypos, "improved switching between joysticks and paddles");
add(ypos, "improved memory usage in UI mode"); add(ypos, "improved memory usage in UI mode");
}
add(ypos, "fixed broken Driving Controller support for Stelladaptor/2600-daptor devices"); add(ypos, "fixed broken Driving Controller support for Stelladaptor/2600-daptor devices");
add(ypos, "fixed missing QuadTari option in UI"); add(ypos, "fixed missing QuadTari option in UI");
}
add(ypos, "improved analog input reading");
add(ypos, "fixed QuadTari support for some controller types");
add(ypos, "fixed palette and TV effects saving");
#else #else
if(version < "6.5") if(version < "6.5")
{ {
@ -70,9 +73,13 @@ WhatsNewDialog::WhatsNewDialog(OSystem& osystem, DialogContainer& parent,
add(ypos, "added sound to Time Machine playback"); add(ypos, "added sound to Time Machine playback");
add(ypos, "moved settings, properties etc. to an SQLite database"); add(ypos, "moved settings, properties etc. to an SQLite database");
add(ypos, "fixed paddle button bug for jittering controllers"); add(ypos, "fixed paddle button bug for jittering controllers");
}
add(ypos, "fixed broken Driving Controller support for Stelladaptor/2600-daptor devices"); add(ypos, "fixed broken Driving Controller support for Stelladaptor/2600-daptor devices");
add(ypos, "fixed missing QuadTari option in UI"); add(ypos, "fixed missing QuadTari option in UI");
}
add(ypos, "added context-sensitive help");
add(ypos, "improved analog input reading");
add(ypos, "improved multi-monitor support");
add(ypos, "fixed QuadTari support for some controller types");
add(ypos, ELLIPSIS + " (for a complete list see 'docs/Changes.txt')"); add(ypos, ELLIPSIS + " (for a complete list see 'docs/Changes.txt')");
#endif #endif