mirror of https://github.com/stella-emu/stella.git
parent
89966a9a2e
commit
a91aea1b22
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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"},
|
||||||
|
|
|
@ -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
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -84,7 +84,7 @@ HelpDialog::HelpDialog(OSystem& osystem, DialogContainer& parent,
|
||||||
|
|
||||||
addToFocusList(wid);
|
addToFocusList(wid);
|
||||||
|
|
||||||
setHelpAnchor(" ");
|
setHelpAnchor("Hotkeys");
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -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");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -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");
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue