Implementation of IPlatformScreen for Microsoft Windows. More...
#include <CMSWindowsScreen.h>
Inherits CPlatformScreen.
Classes | |
| struct | CHotKeyItem |
Public Member Functions | |
| CMSWindowsScreen (bool isPrimary, bool noHooks, const CGameDeviceInfo &gameDevice, bool stopOnDeskSwitch) | |
| virtual void * | getEventTarget () const |
| virtual bool | getClipboard (ClipboardID id, IClipboard *) const |
| virtual void | getShape (SInt32 &x, SInt32 &y, SInt32 &width, SInt32 &height) const |
| virtual void | getCursorPos (SInt32 &x, SInt32 &y) const |
| virtual void | reconfigure (UInt32 activeSides) |
| virtual void | warpCursor (SInt32 x, SInt32 y) |
| virtual UInt32 | registerHotKey (KeyID key, KeyModifierMask mask) |
| virtual void | unregisterHotKey (UInt32 id) |
| virtual void | fakeInputBegin () |
| virtual void | fakeInputEnd () |
| virtual SInt32 | getJumpZoneSize () const |
| virtual bool | isAnyMouseButtonDown () const |
| virtual void | getCursorCenter (SInt32 &x, SInt32 &y) const |
| virtual void | gameDeviceTimingResp (UInt16 freq) |
| virtual void | gameDeviceFeedback (GameDeviceID id, UInt16 m1, UInt16 m2) |
| virtual void | fakeMouseButton (ButtonID id, bool press) |
| virtual void | fakeMouseMove (SInt32 x, SInt32 y) const |
| virtual void | fakeMouseRelativeMove (SInt32 dx, SInt32 dy) const |
| virtual void | fakeMouseWheel (SInt32 xDelta, SInt32 yDelta) const |
| virtual void | fakeGameDeviceButtons (GameDeviceID id, GameDeviceButton buttons) const |
| virtual void | fakeGameDeviceSticks (GameDeviceID id, SInt16 x1, SInt16 y1, SInt16 x2, SInt16 y2) const |
| virtual void | fakeGameDeviceTriggers (GameDeviceID id, UInt8 t1, UInt8 t2) const |
| virtual void | queueGameDeviceTimingReq () const |
| virtual void | updateKeys () |
| virtual void | fakeKeyDown (KeyID id, KeyModifierMask mask, KeyButton button) |
| Fake a key press. | |
| virtual bool | fakeKeyRepeat (KeyID id, KeyModifierMask mask, SInt32 count, KeyButton button) |
| Fake a key repeat. | |
| virtual bool | fakeKeyUp (KeyButton button) |
| Fake a key release. | |
| virtual void | fakeAllKeysUp () |
| Fake key releases for all fake pressed keys. | |
| virtual void | enable () |
| Enable screen. | |
| virtual void | disable () |
| Disable screen. | |
| virtual void | enter () |
| Enter screen. | |
| virtual bool | leave () |
| Leave screen. | |
| virtual bool | setClipboard (ClipboardID, const IClipboard *) |
| Set clipboard. | |
| virtual void | checkClipboards () |
| Check clipboard owner. | |
| virtual void | openScreensaver (bool notify) |
| Open screen saver. | |
| virtual void | closeScreensaver () |
| Close screen saver. | |
| virtual void | screensaver (bool activate) |
| Activate/deactivate screen saver. | |
| virtual void | resetOptions () |
| Notify of options changes. | |
| virtual void | setOptions (const COptionsList &options) |
| Notify of options changes. | |
| virtual void | setSequenceNumber (UInt32) |
| Set clipboard sequence number. | |
| virtual bool | isPrimary () const |
| Test if is primary screen. | |
| void | sendEvent (CEvent::Type type, void *=NULL) |
Static Public Member Functions | |
manipulators | |
| static void | init (HINSTANCE) |
| Initialize. | |
accessors | |
| static HINSTANCE | getWindowInstance () |
| Get instance. | |
Protected Member Functions | |
| virtual void | handleSystemEvent (const CEvent &, void *) |
| Handle system event. | |
| virtual void | updateButtons () |
| Update mouse buttons. | |
| virtual IKeyState * | getKeyState () const |
| Get the key state. | |
Implementation of IPlatformScreen for Microsoft Windows.
Definition at line 42 of file CMSWindowsScreen.h.
| void CMSWindowsScreen::checkClipboards | ( | ) | [virtual] |
Check clipboard owner.
Check ownership of all clipboards and post grab events for any that have changed. This is used as a backup in case the system doesn't reliably report clipboard ownership changes.
Implements CPlatformScreen.
Definition at line 390 of file CMSWindowsScreen.cpp.
References IScreen::getClipboardGrabbedEvent(), and CMSWindowsClipboard::isOwnedBySynergy().
| void CMSWindowsScreen::closeScreensaver | ( | ) | [virtual] |
Close screen saver.
Close the screen saver. Stop reporting screen saver activation and deactivation and, if the screen saver was disabled by openScreensaver(), enable the screen saver.
Implements CPlatformScreen.
Definition at line 426 of file CMSWindowsScreen.cpp.
References CMSWindowsScreenSaver::enable(), and CMSWindowsDesks::installScreensaverHooks().
| void CMSWindowsScreen::disable | ( | ) | [virtual] |
Disable screen.
Undoes the operations in enable() and events should no longer be reported.
Implements CPlatformScreen.
Definition at line 256 of file CMSWindowsScreen.cpp.
References CMSWindowsKeyState::disable(), CMSWindowsDesks::disable(), CEvent::kTimer, and CArchMiscWindows::removeBusyState().
| void CMSWindowsScreen::enable | ( | ) | [virtual] |
Enable screen.
Enable the screen, preparing it to report system and user events. For a secondary screen it also means preparing to synthesize events and hiding the cursor.
Implements CPlatformScreen.
Definition at line 222 of file CMSWindowsScreen.cpp.
References CArchMiscWindows::addBusyState(), CMSWindowsDesks::enable(), and CEvent::kTimer.
| void CMSWindowsScreen::enter | ( | ) | [virtual] |
Enter screen.
Called when the user navigates to this screen.
Implements CPlatformScreen.
Definition at line 295 of file CMSWindowsScreen.cpp.
References CMSWindowsScreenSaver::deactivate(), CMSWindowsDesks::enter(), and CArchMiscWindows::wakeupDisplay().
| void CMSWindowsScreen::fakeAllKeysUp | ( | ) | [virtual] |
Fake key releases for all fake pressed keys.
Synthesizes a key release event for every key that is synthetically pressed and updates the key state.
Reimplemented from CPlatformScreen.
Definition at line 804 of file CMSWindowsScreen.cpp.
| void CMSWindowsScreen::fakeKeyDown | ( | KeyID | id, | |
| KeyModifierMask | mask, | |||
| KeyButton | button | |||
| ) | [virtual] |
Fake a key press.
Synthesizes a key press event and updates the key state.
Reimplemented from CPlatformScreen.
Definition at line 779 of file CMSWindowsScreen.cpp.
| bool CMSWindowsScreen::fakeKeyRepeat | ( | KeyID | id, | |
| KeyModifierMask | mask, | |||
| SInt32 | count, | |||
| KeyButton | button | |||
| ) | [virtual] |
Fake a key repeat.
Synthesizes a key repeat event and updates the key state.
Reimplemented from CPlatformScreen.
Definition at line 787 of file CMSWindowsScreen.cpp.
| bool CMSWindowsScreen::fakeKeyUp | ( | KeyButton | button | ) | [virtual] |
Fake a key release.
Synthesizes a key release event and updates the key state.
Reimplemented from CPlatformScreen.
Definition at line 796 of file CMSWindowsScreen.cpp.
| IKeyState * CMSWindowsScreen::getKeyState | ( | ) | const [protected, virtual] |
Get the key state.
Subclasses must implement this method to return the platform specific key state object that each subclass must have.
Implements CPlatformScreen.
Definition at line 955 of file CMSWindowsScreen.cpp.
| HINSTANCE CMSWindowsScreen::getWindowInstance | ( | ) | [static] |
Get instance.
Returns the application instance handle passed to init().
Definition at line 216 of file CMSWindowsScreen.cpp.
| void CMSWindowsScreen::handleSystemEvent | ( | const CEvent & | event, | |
| void * | ||||
| ) | [protected, virtual] |
Handle system event.
A platform screen is expected to install a handler for system events in its c'tor like so:
EVENTQUEUE->adoptHandler(CEvent::kSystem, IEventQueue::getSystemTarget(), new TMethodEventJob<CXXXPlatformScreen>(this, &CXXXPlatformScreen::handleSystemEvent));
It should remove the handler in its d'tor. Override the handleSystemEvent() method to process system events. It should post the events IScreen as appropriate.
A primary screen has further responsibilities. It should post the events in IPrimaryScreen as appropriate. It should also call onKey() on its CKeyState whenever a key is pressed or released (but not for key repeats). And it should call updateKeyMap() on its CKeyState if necessary when the keyboard mapping changes.
The target of all events should be the value returned by getEventTarget().
Implements CPlatformScreen.
Definition at line 925 of file CMSWindowsScreen.cpp.
References CArchMiscWindows::processDialog().
| void CMSWindowsScreen::init | ( | HINSTANCE | windowInstance | ) | [static] |
Initialize.
Saves the application's HINSTANCE. This must be called by WinMain with the HINSTANCE it was passed.
Definition at line 207 of file CMSWindowsScreen.cpp.
| bool CMSWindowsScreen::isPrimary | ( | ) | const [virtual] |
Test if is primary screen.
Return true iff this screen is a primary screen.
Implements CPlatformScreen.
Definition at line 472 of file CMSWindowsScreen.cpp.
| bool CMSWindowsScreen::leave | ( | ) | [virtual] |
Leave screen.
Called when the user navigates off the screen. Returns true on success, false on failure. A typical reason for failure is being unable to install the keyboard and mouse snoopers on a primary screen. Secondary screens should not fail.
Implements CPlatformScreen.
Definition at line 327 of file CMSWindowsScreen.cpp.
References CMSWindowsDesks::leave(), CMSWindowsKeyState::saveModifiers(), and CMSWindowsKeyState::setKeyLayout().
| void CMSWindowsScreen::openScreensaver | ( | bool | notify | ) | [virtual] |
Open screen saver.
Open the screen saver. If notify is true then this object must send events when the screen saver activates or deactivates until closeScreensaver() is called. If notify is false then the screen saver is disabled and restored on closeScreensaver().
Implements CPlatformScreen.
Definition at line 412 of file CMSWindowsScreen.cpp.
References CMSWindowsScreenSaver::disable(), and CMSWindowsDesks::installScreensaverHooks().
| void CMSWindowsScreen::resetOptions | ( | ) | [virtual] |
Notify of options changes.
Reset all options to their default values.
Implements CPlatformScreen.
Definition at line 454 of file CMSWindowsScreen.cpp.
References CMSWindowsDesks::resetOptions().
| void CMSWindowsScreen::screensaver | ( | bool | activate | ) | [virtual] |
Activate/deactivate screen saver.
Forcibly activate the screen saver if activate is true otherwise forcibly deactivate it.
Implements CPlatformScreen.
Definition at line 440 of file CMSWindowsScreen.cpp.
References CMSWindowsScreenSaver::activate(), and CMSWindowsScreenSaver::deactivate().
| bool CMSWindowsScreen::setClipboard | ( | ClipboardID | id, | |
| const IClipboard * | ||||
| ) | [virtual] |
Set clipboard.
Set the contents of the system clipboard indicated by id.
Implements CPlatformScreen.
Definition at line 371 of file CMSWindowsScreen.cpp.
References CMSWindowsClipboard::close(), IClipboard::copy(), CMSWindowsClipboard::empty(), and CMSWindowsClipboard::open().
| void CMSWindowsScreen::setOptions | ( | const COptionsList & | options | ) | [virtual] |
Notify of options changes.
Set options to given values. Ignore unknown options and don't modify options that aren't given in options.
Implements CPlatformScreen.
Definition at line 460 of file CMSWindowsScreen.cpp.
References CMSWindowsDesks::setOptions().
| void CMSWindowsScreen::setSequenceNumber | ( | UInt32 | ) | [virtual] |
Set clipboard sequence number.
Sets the sequence number to use in subsequent clipboard events.
Implements CPlatformScreen.
Definition at line 466 of file CMSWindowsScreen.cpp.
| void CMSWindowsScreen::updateButtons | ( | ) | [protected, virtual] |
Update mouse buttons.
Subclasses must implement this method to update their internal mouse button mapping and, if desired, state tracking.
Implements CPlatformScreen.
Definition at line 941 of file CMSWindowsScreen.cpp.
1.7.1