made "color loss", "stats" and "grab mouse" hotkey toggles temporary only

added messages for "grab mouse" toggle
updates doc for "grab mouse" toggle
This commit is contained in:
thrust26 2017-11-23 22:13:37 +01:00
parent b7794c6e64
commit d6680a681f
9 changed files with 52 additions and 17 deletions

View File

@ -1517,6 +1517,12 @@
<td>Control + 0</td> <td>Control + 0</td>
</tr> </tr>
<tr>
<td>Toggle grab mouse</td>
<td>Control + g</td>
<td>Control + g</td>
</tr>
<tr> <tr>
<td>Swap Stelladaptor/2600-daptor port ordering</td> <td>Swap Stelladaptor/2600-daptor port ordering</td>
<td>Control + 1</td> <td>Control + 1</td>

View File

@ -360,10 +360,9 @@ void Console::toggleFormat(int direction)
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void Console::toggleColorLoss() void Console::toggleColorLoss()
{ {
bool colorloss = !myOSystem.settings().getBool("dev.colorloss"); bool colorloss = !myTIA->colorLossEnabled();
if(myTIA->enableColorLoss(colorloss)) if(myTIA->enableColorLoss(colorloss))
{ {
myOSystem.settings().setValue("dev.colorloss", colorloss);
string message = string("PAL color-loss ") + string message = string("PAL color-loss ") +
(colorloss ? "enabled" : "disabled"); (colorloss ? "enabled" : "disabled");
myOSystem.frameBuffer().showMessage(message); myOSystem.frameBuffer().showMessage(message);
@ -374,7 +373,7 @@ void Console::toggleColorLoss()
} }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void Console::toggleColorLoss(bool state) void Console::enableColorLoss(bool state)
{ {
myTIA->enableColorLoss(state); myTIA->enableColorLoss(state);
} }

View File

@ -222,7 +222,7 @@ class Console : public Serializable
Toggles the PAL color-loss effect. Toggles the PAL color-loss effect.
*/ */
void toggleColorLoss(); void toggleColorLoss();
void toggleColorLoss(bool state); void enableColorLoss(bool state);
/** /**
Initialize the video subsystem wrt this class. Initialize the video subsystem wrt this class.

View File

@ -530,7 +530,11 @@ void EventHandler::handleKeyEvent(StellaKey key, StellaMod mod, bool state)
case KBDK_G: // Ctrl-g (un)grabs mouse case KBDK_G: // Ctrl-g (un)grabs mouse
if(!myOSystem.frameBuffer().fullScreen()) if(!myOSystem.frameBuffer().fullScreen())
{
myOSystem.frameBuffer().toggleGrabMouse(); myOSystem.frameBuffer().toggleGrabMouse();
myOSystem.frameBuffer().showMessage(myOSystem.frameBuffer().grabMouseEnabled()
? "Grab mouse enabled" : "Grab mouse disabled");
}
break; break;
case KBDK_L: // Ctrl-l toggles PAL color-loss effect case KBDK_L: // Ctrl-l toggles PAL color-loss effect

View File

@ -48,7 +48,7 @@ FrameBuffer::FrameBuffer(OSystem& osystem)
myCurrentModeList(nullptr) myCurrentModeList(nullptr)
{ {
myMsg.surface = myStatsMsg.surface = nullptr; myMsg.surface = myStatsMsg.surface = nullptr;
myMsg.enabled = myStatsMsg.enabled = false; myStatsEnabled = myMsg.enabled = myStatsMsg.enabled = false;
} }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@ -142,6 +142,8 @@ bool FrameBuffer::initialize()
} }
FBSurface::setPalette(myPalette); FBSurface::setPalette(myPalette);
myGrabMouse = myOSystem.settings().getBool("grabmouse");
// Create a TIA surface; we need it for rendering TIA images // Create a TIA surface; we need it for rendering TIA images
myTIASurface = make_unique<TIASurface>(myOSystem); myTIASurface = make_unique<TIASurface>(myOSystem);
@ -368,14 +370,13 @@ void FrameBuffer::showMessage(const string& message, MessagePosition position,
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void FrameBuffer::toggleFrameStats() void FrameBuffer::toggleFrameStats()
{ {
showFrameStats(!myOSystem.settings().getBool("dev.stats")); showFrameStats(!myStatsEnabled);
} }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void FrameBuffer::showFrameStats(bool enable) void FrameBuffer::showFrameStats(bool enable)
{ {
myOSystem.settings().setValue("dev.stats", enable); myStatsEnabled = myStatsMsg.enabled = enable;
myStatsMsg.enabled = enable;
} }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@ -384,7 +385,7 @@ void FrameBuffer::enableMessages(bool enable)
if(enable) if(enable)
{ {
// Only re-enable frame stats if they were already enabled before // Only re-enable frame stats if they were already enabled before
myStatsMsg.enabled = myOSystem.settings().getBool("dev.stats"); myStatsMsg.enabled = myStatsEnabled;
} }
else else
{ {
@ -593,7 +594,7 @@ void FrameBuffer::setCursorState()
myOSystem.eventHandler().controllerIsAnalog(Controller::Right)) : false; myOSystem.eventHandler().controllerIsAnalog(Controller::Right)) : false;
bool alwaysUseMouse = BSPF::equalsIgnoreCase("always", myOSystem.settings().getString("usemouse")); bool alwaysUseMouse = BSPF::equalsIgnoreCase("always", myOSystem.settings().getString("usemouse"));
grabMouse(emulation && (analog || alwaysUseMouse) && myOSystem.settings().getBool("grabmouse")); grabMouse(emulation && (analog || alwaysUseMouse) && myGrabMouse);
// Show/hide cursor in UI/emulation mode based on 'cursor' setting // Show/hide cursor in UI/emulation mode based on 'cursor' setting
switch(myOSystem.settings().getInt("cursor")) switch(myOSystem.settings().getInt("cursor"))
@ -605,11 +606,17 @@ void FrameBuffer::setCursorState()
} }
} }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void FrameBuffer::enableGrabMouse(bool enable)
{
myGrabMouse = enable;
setCursorState();
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void FrameBuffer::toggleGrabMouse() void FrameBuffer::toggleGrabMouse()
{ {
bool state = myOSystem.settings().getBool("grabmouse"); myGrabMouse = !myGrabMouse;
myOSystem.settings().setValue("grabmouse", !state);
setCursorState(); setCursorState();
} }

View File

@ -226,12 +226,21 @@ class FrameBuffer
*/ */
void setCursorState(); void setCursorState();
/**
Sets the use of grabmouse.
*/
void enableGrabMouse(bool enable);
/** /**
Toggles the use of grabmouse (only has effect in emulation mode). Toggles the use of grabmouse (only has effect in emulation mode).
The method changes the 'grabmouse' setting and saves it.
*/ */
void toggleGrabMouse(); void toggleGrabMouse();
/**
Sets the use of grabmouse.
*/
bool grabMouseEnabled() { return myGrabMouse; }
/** /**
Set up the TIA/emulation palette for a screen of any depth > 8. Set up the TIA/emulation palette for a screen of any depth > 8.
@ -477,6 +486,9 @@ class FrameBuffer
}; };
Message myMsg; Message myMsg;
Message myStatsMsg; Message myStatsMsg;
bool myStatsEnabled;
bool myGrabMouse;
// The list of all available video modes for this framebuffer // The list of all available video modes for this framebuffer
VideoModeList* myCurrentModeList; VideoModeList* myCurrentModeList;

View File

@ -238,6 +238,13 @@ class TIA : public Device
*/ */
bool enableColorLoss(bool enabled); bool enableColorLoss(bool enabled);
/**
Answers whether color-loss is enabled.
@return Colour-loss is enabled
*/
bool colorLossEnabled() const { return myColorLossEnabled; }
/** /**
Answers whether colour-loss is applicable for the current frame. Answers whether colour-loss is applicable for the current frame.

View File

@ -448,9 +448,9 @@ void DeveloperDialog::saveConfig()
if(instance().hasConsole()) if(instance().hasConsole())
{ {
if(devSettings) if(devSettings)
instance().console().toggleColorLoss(myColorLoss->getState()); instance().console().enableColorLoss(myColorLoss->getState());
else else
instance().console().toggleColorLoss(false); instance().console().enableColorLoss(false);
} }
instance().settings().setValue("dev.tiadriven", myUndrivenPins->getState()); instance().settings().setValue("dev.tiadriven", myUndrivenPins->getState());

View File

@ -352,7 +352,7 @@ void InputDialog::saveConfig()
const string& cursor = myCursorState->getSelectedTag().toString(); const string& cursor = myCursorState->getSelectedTag().toString();
instance().settings().setValue("cursor", cursor); instance().settings().setValue("cursor", cursor);
instance().settings().setValue("grabmouse", myGrabMouse->getState()); instance().settings().setValue("grabmouse", myGrabMouse->getState());
instance().frameBuffer().setCursorState(); instance().frameBuffer().enableGrabMouse(myGrabMouse->getState());
// Enable/disable control key-combos // Enable/disable control key-combos
instance().settings().setValue("ctrlcombo", myCtrlCombo->getState()); instance().settings().setValue("ctrlcombo", myCtrlCombo->getState());