Re-enabled 'grabmouse' functionality with a few changes:

- it doesn't have a hotkey any more
  - it is changed in the "Input Settings' UI, not in 'Video Settings'
  - it only has meaning while in emulation mode
  - it is enabled by default


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2245 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2011-06-02 20:53:01 +00:00
parent d5ce0042e4
commit 2b9f625f76
9 changed files with 68 additions and 13 deletions

View File

@ -12,6 +12,18 @@
Release History
===========================================================================
3.4 to 3.4.1: (June xx, 2011)
* Re-enabled 'grabmouse' commandline argument and associated
functionality with the following changes:
- it doesn't have a hotkey anymore
- it is changed in the "Input Settings' UI, not in 'Video Settings'
- it only has meaning while in emulation mode
- it is enabled by default
-Have fun!
3.3 to 3.4: (May. 29, 2011)
* Many improvements to input handling, particularly with the mouse and
@ -54,8 +66,6 @@
* Updated built-in version of the PNG library to the latest version.
-Have fun!
3.2.2 to 3.3: (November 12, 2010)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -52,7 +52,7 @@
<br><br><br>
<center><b>February 1999 - May 2011</b></center>
<center><b>February 1999 - June 2011</b></center>
<center><b>The Stella Team</b></center>
<center><b><a href="http://stella.sourceforge.net">Stella Homepage</a></b></center>
@ -1584,7 +1584,7 @@
<tr>
<td><pre>-video &lt;soft|gl&gt;</pre></td>
<td>Use SDL software or OpenGL rendering mode.</td>
<td>Use software or OpenGL rendering mode.</td>
</tr>
<tr>
@ -1792,6 +1792,11 @@
<td>Enable using the mouse for various controllers (paddle, driving, etc).</td>
</tr>
<tr>
<td><pre>-grabmouse &lt;1|0&gt;</pre></td>
<td>Keeps the mouse in the game window in emulation mode.</td>
</tr>
<tr>
<td><pre>-dsense &lt;number&gt;</pre></td>
<td>Sensitivity for emulation of paddles when using a digital device
@ -2374,6 +2379,7 @@
<tr><td>Mouse paddle sensitivity</td><td>Sensitivity used when emulating a paddle using a mouse</td><td>-msense</td></tr>
<tr><td>Allow all 4 ...</td><td>Allow all 4 joystick directions to be pressed simultaneously</td><td>-joyallow4</td></tr>
<tr><td>Use mouse as ...</td><td>Use the mouse for various controllers (paddles, driving, etc)</td><td>-usemouse</td></tr>
<tr><td>Grab mouse ...</td><td>Keep mouse in window in emulation mode</td><td>-grabmouse</td></tr>
</table>
</td>
</tr>
@ -2567,7 +2573,7 @@
<p>Note that you must use the entire name of the port as specified by
your operating system. For example, in Windows this would be COM1,
COM2, etc; Linux and MacOSX tend to use names similar to '/dev/xxxxxx'.
For now, only Linux/UNIX, MacOSX, and Win32 are supported.</p>
For now, only Linux/UNIX, MacOSX, and Windows are supported.</p>
<p>Support for the EEPROM portion of the AtariVox and SaveKey is currently
emulated. That is, a file will be created on your computer simulating the

View File

@ -743,11 +743,12 @@ cerr << "New mode:" << endl
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void FrameBuffer::setCursorState()
{
// Always grab mouse in fullscreen or during emulation,
// Always grab mouse in fullscreen or during emulation (if enabled),
// and don't show the cursor during emulation
bool emulation =
myOSystem->eventHandler().state() == EventHandler::S_EMULATE;
grabMouse(fullScreen() || emulation);
grabMouse(fullScreen() ||
(emulation && myOSystem->settings().getBool("grabmouse")));
showCursor(!emulation);
}

View File

@ -643,9 +643,16 @@ string OSystem::MD5FromFile(const string& filename)
void OSystem::logMessage(const string& message, uInt8 level)
{
if(level == 0)
cerr << message;
{
cout << message << flush;
myLogMessages += message;
}
else if(level <= (uInt8)mySettings->getInt("showinfo"))
cout << message;
{
if(1) // TODO - messages should be output to console
cout << message << flush;
myLogMessages += message;
}
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -386,6 +386,13 @@ class OSystem
*/
void logMessage(const string& message, uInt8 level);
/**
Get the system messages logged up to this point.
@return The list of log messages
*/
const string& logMessages() const { return myLogMessages; }
public:
//////////////////////////////////////////////////////////////////////
// The following methods are system-specific and can be overrided in
@ -520,6 +527,9 @@ class OSystem
// Pointer to the StateManager object
StateManager* myStateManager;
// The list of log messages
string myLogMessages;
// Maximum dimensions of the desktop area
uInt32 myDesktopWidth, myDesktopHeight;

View File

@ -54,6 +54,7 @@ Settings::Settings(OSystem* osystem)
setInternal("fullscreen", "0");
setInternal("fullres", "auto");
setInternal("center", "false");
setInternal("grabmouse", "true");
setInternal("palette", "standard");
setInternal("colorloss", "false");
setInternal("timing", "sleep");
@ -370,6 +371,7 @@ void Settings::usage()
<< " -fullscreen <1|0|-1> Use fullscreen mode (1 or 0), or disable switching to fullscreen entirely\n"
<< " -fullres <auto|WxH> The resolution to use in fullscreen mode\n"
<< " -center <1|0> Centers game window (if possible)\n"
<< " -grabmouse <1|0> Keeps the mouse in the game window\n"
<< " -palette <standard| Use the specified color palette\n"
<< " z26|\n"
<< " user>\n"
@ -463,7 +465,7 @@ void Settings::usage()
<< " -pp <arg> Sets the 'Display.Phosphor' property\n"
<< " -ppblend <arg> Sets the 'Display.PPBlend' property\n"
#endif
<< endl;
<< endl << flush;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -49,7 +49,7 @@ InputDialog::InputDialog(OSystem* osystem, DialogContainer* parent,
// Set real dimensions
_w = BSPF_min(50 * fontWidth + 10, max_w);
_h = BSPF_min(12 * (lineHeight + 4) + 10, max_h);
_h = BSPF_min(13 * (lineHeight + 4) + 10, max_h);
// The tab widget
xpos = 2; ypos = vBorder;
@ -190,6 +190,15 @@ void InputDialog::addDevicePortTab(const GUI::Font& font)
"Use mouse as a controller");
wid.push_back(myMouseEnabled);
// Grab mouse (in windowed mode)
ypos += lineHeight + 4;
myGrabMouse = new CheckboxWidget(myTab, font, xpos, ypos,
"Grab mouse in emulation mode");
wid.push_back(myGrabMouse);
#ifndef WINDOWED_SUPPORT
myGrabMouse->clearFlags(WIDGET_ENABLED);
#endif
// Add items for virtual device ports
addToFocusList(wid, tabID);
}
@ -210,8 +219,10 @@ void InputDialog::loadConfig()
myDeadzoneLabel->setValue(Joystick::deadzone());
// Mouse/paddle enabled
bool usemouse = instance().settings().getBool("usemouse");
myMouseEnabled->setState(usemouse);
myMouseEnabled->setState(instance().settings().getBool("usemouse"));
// Grab mouse
myGrabMouse->setState(instance().settings().getBool("grabmouse"));
// Paddle speed (digital and mouse)
myDPaddleSpeed->setValue(instance().settings().getInt("dsense"));
@ -246,6 +257,10 @@ void InputDialog::saveConfig()
instance().settings().setBool("usemouse", usemouse);
instance().eventHandler().setMouseControllerMode(usemouse ? 0 : -1);
// Grab mouse
instance().settings().setBool("grabmouse", myGrabMouse->getState());
instance().frameBuffer().setCursorState();
// Paddle speed (digital and mouse)
int sensitivity = myDPaddleSpeed->getValue();
instance().settings().setInt("dsense", sensitivity);
@ -289,6 +304,9 @@ void InputDialog::setDefaults()
// Mouse/paddle enabled
myMouseEnabled->setState(true);
// Grab mouse
myGrabMouse->setState(true);
// Paddle speed (digital and mouse)
myDPaddleSpeed->setValue(5);
myDPaddleLabel->setLabel("5");

View File

@ -81,6 +81,7 @@ class InputDialog : public Dialog
StaticTextWidget* myMPaddleLabel;
CheckboxWidget* myAllowAll4;
CheckboxWidget* myMouseEnabled;
CheckboxWidget* myGrabMouse;
};
#endif