Base screen implementation. More...
#include <CPlatformScreen.h>
Inherits IPlatformScreen.
Inherited by CMSWindowsScreen, COSXScreen, and CXWindowsScreen.
Public Member Functions | |
| CPlatformScreen (IEventQueue &eventQueue) | |
| virtual void * | getEventTarget () const =0 |
| virtual bool | getClipboard (ClipboardID id, IClipboard *) const =0 |
| virtual void | getShape (SInt32 &x, SInt32 &y, SInt32 &width, SInt32 &height) const =0 |
| virtual void | getCursorPos (SInt32 &x, SInt32 &y) const =0 |
| virtual void | reconfigure (UInt32 activeSides)=0 |
| virtual void | warpCursor (SInt32 x, SInt32 y)=0 |
| virtual UInt32 | registerHotKey (KeyID key, KeyModifierMask mask)=0 |
| virtual void | unregisterHotKey (UInt32 id)=0 |
| virtual void | fakeInputBegin ()=0 |
| virtual void | fakeInputEnd ()=0 |
| virtual SInt32 | getJumpZoneSize () const =0 |
| virtual bool | isAnyMouseButtonDown () const =0 |
| virtual void | getCursorCenter (SInt32 &x, SInt32 &y) const =0 |
| virtual void | gameDeviceTimingResp (UInt16 freq)=0 |
| virtual void | fakeMouseButton (ButtonID id, bool press)=0 |
| virtual void | fakeMouseMove (SInt32 x, SInt32 y) const =0 |
| virtual void | fakeMouseRelativeMove (SInt32 dx, SInt32 dy) const =0 |
| virtual void | fakeMouseWheel (SInt32 xDelta, SInt32 yDelta) const =0 |
| virtual void | fakeGameDeviceButtons (GameDeviceID id, GameDeviceButton buttons) const =0 |
| virtual void | fakeGameDeviceSticks (GameDeviceID id, SInt16 x1, SInt16 y1, SInt16 x2, SInt16 y2) const =0 |
| virtual void | fakeGameDeviceTriggers (GameDeviceID id, UInt8 t1, UInt8 t2) const =0 |
| virtual void | queueGameDeviceTimingReq () const =0 |
| virtual void | updateKeyMap () |
| Update the keyboard map. | |
| virtual void | updateKeyState () |
| Update the key state. | |
| virtual void | setHalfDuplexMask (KeyModifierMask) |
| Set half-duplex mask. | |
| 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 bool | fakeCtrlAltDel () |
| Fake ctrl+alt+del. | |
| virtual bool | isKeyDown (KeyButton) const |
| Test if key is pressed. | |
| virtual KeyModifierMask | getActiveModifiers () const |
| Get the active modifiers. | |
| virtual KeyModifierMask | pollActiveModifiers () const |
| Get the active modifiers from OS. | |
| virtual SInt32 | pollActiveGroup () const |
| Get the active keyboard layout from OS. | |
| virtual void | pollPressedKeys (KeyButtonSet &pressedKeys) const |
| Get the keys currently pressed from OS. | |
| virtual void | enable ()=0 |
| Enable screen. | |
| virtual void | disable ()=0 |
| Disable screen. | |
| virtual void | enter ()=0 |
| Enter screen. | |
| virtual bool | leave ()=0 |
| Leave screen. | |
| virtual bool | setClipboard (ClipboardID, const IClipboard *)=0 |
| Set clipboard. | |
| virtual void | checkClipboards ()=0 |
| Check clipboard owner. | |
| virtual void | openScreensaver (bool notify)=0 |
| Open screen saver. | |
| virtual void | closeScreensaver ()=0 |
| Close screen saver. | |
| virtual void | screensaver (bool activate)=0 |
| Activate/deactivate screen saver. | |
| virtual void | resetOptions ()=0 |
| Notify of options changes. | |
| virtual void | setOptions (const COptionsList &options)=0 |
| Notify of options changes. | |
| virtual void | setSequenceNumber (UInt32)=0 |
| Set clipboard sequence number. | |
| virtual bool | isPrimary () const =0 |
| Test if is primary screen. | |
Protected Member Functions | |
| virtual void | updateButtons ()=0 |
| Update mouse buttons. | |
| virtual IKeyState * | getKeyState () const =0 |
| Get the key state. | |
| virtual void | handleSystemEvent (const CEvent &event, void *)=0 |
| Handle system event. | |
Base screen implementation.
This screen implementation is the superclass of all other screen implementations. It implements a handful of methods and requires subclasses to implement the rest.
Definition at line 30 of file CPlatformScreen.h.
| virtual void CPlatformScreen::checkClipboards | ( | ) | [pure 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 IPlatformScreen.
Implemented in CMSWindowsScreen, COSXScreen, and CXWindowsScreen.
| virtual void CPlatformScreen::closeScreensaver | ( | ) | [pure 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 IPlatformScreen.
Implemented in CMSWindowsScreen, COSXScreen, and CXWindowsScreen.
| virtual void CPlatformScreen::disable | ( | ) | [pure virtual] |
Disable screen.
Undoes the operations in enable() and events should no longer be reported.
Implements IPlatformScreen.
Implemented in CMSWindowsScreen, COSXScreen, and CXWindowsScreen.
| virtual void CPlatformScreen::enable | ( | ) | [pure 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 IPlatformScreen.
Implemented in CMSWindowsScreen, COSXScreen, and CXWindowsScreen.
| virtual void CPlatformScreen::enter | ( | ) | [pure virtual] |
Enter screen.
Called when the user navigates to this screen.
Implements IPlatformScreen.
Implemented in CMSWindowsScreen, COSXScreen, and CXWindowsScreen.
| void CPlatformScreen::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.
Implements IPlatformScreen.
Reimplemented in CMSWindowsScreen.
Definition at line 76 of file CPlatformScreen.cpp.
References IKeyState::fakeAllKeysUp(), and getKeyState().
| bool CPlatformScreen::fakeCtrlAltDel | ( | ) | [virtual] |
Fake ctrl+alt+del.
Synthesize a press of ctrl+alt+del. Return true if processing is complete and false if normal key processing should continue.
Implements IPlatformScreen.
Definition at line 82 of file CPlatformScreen.cpp.
References IKeyState::fakeCtrlAltDel(), and getKeyState().
| void CPlatformScreen::fakeKeyDown | ( | KeyID | id, | |
| KeyModifierMask | mask, | |||
| KeyButton | button | |||
| ) | [virtual] |
Fake a key press.
Synthesizes a key press event and updates the key state.
Implements IPlatformScreen.
Reimplemented in CMSWindowsScreen.
Definition at line 56 of file CPlatformScreen.cpp.
References IKeyState::fakeKeyDown(), and getKeyState().
| bool CPlatformScreen::fakeKeyRepeat | ( | KeyID | id, | |
| KeyModifierMask | mask, | |||
| SInt32 | count, | |||
| KeyButton | button | |||
| ) | [virtual] |
Fake a key repeat.
Synthesizes a key repeat event and updates the key state.
Implements IPlatformScreen.
Reimplemented in CMSWindowsScreen.
Definition at line 63 of file CPlatformScreen.cpp.
References IKeyState::fakeKeyRepeat(), and getKeyState().
| bool CPlatformScreen::fakeKeyUp | ( | KeyButton | button | ) | [virtual] |
Fake a key release.
Synthesizes a key release event and updates the key state.
Implements IPlatformScreen.
Reimplemented in CMSWindowsScreen.
Definition at line 70 of file CPlatformScreen.cpp.
References IKeyState::fakeKeyUp(), and getKeyState().
| KeyModifierMask CPlatformScreen::getActiveModifiers | ( | ) | const [virtual] |
Get the active modifiers.
Returns the modifiers that are currently active according to our shadowed state.
Implements IPlatformScreen.
Definition at line 94 of file CPlatformScreen.cpp.
References IKeyState::getActiveModifiers(), and getKeyState().
| virtual IKeyState* CPlatformScreen::getKeyState | ( | ) | const [protected, pure virtual] |
Get the key state.
Subclasses must implement this method to return the platform specific key state object that each subclass must have.
Implemented in CMSWindowsScreen, COSXScreen, and CXWindowsScreen.
Referenced by fakeAllKeysUp(), fakeCtrlAltDel(), fakeKeyDown(), fakeKeyRepeat(), fakeKeyUp(), getActiveModifiers(), isKeyDown(), pollActiveGroup(), pollActiveModifiers(), pollPressedKeys(), setHalfDuplexMask(), updateKeyMap(), and updateKeyState().
| virtual void CPlatformScreen::handleSystemEvent | ( | const CEvent & | event, | |
| void * | ||||
| ) | [protected, pure 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 IPlatformScreen.
Implemented in CMSWindowsScreen, COSXScreen, and CXWindowsScreen.
| bool CPlatformScreen::isKeyDown | ( | KeyButton | ) | const [virtual] |
Test if key is pressed.
Returns true iff the given key is down. Half-duplex toggles always return false.
Implements IPlatformScreen.
Definition at line 88 of file CPlatformScreen.cpp.
References getKeyState(), and IKeyState::isKeyDown().
| virtual bool CPlatformScreen::isPrimary | ( | ) | const [pure virtual] |
Test if is primary screen.
Return true iff this screen is a primary screen.
Implements IPlatformScreen.
Implemented in CMSWindowsScreen, COSXScreen, and CXWindowsScreen.
| virtual bool CPlatformScreen::leave | ( | ) | [pure 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 IPlatformScreen.
Implemented in CMSWindowsScreen, COSXScreen, and CXWindowsScreen.
| virtual void CPlatformScreen::openScreensaver | ( | bool | notify | ) | [pure 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 IPlatformScreen.
Implemented in CMSWindowsScreen, COSXScreen, and CXWindowsScreen.
| SInt32 CPlatformScreen::pollActiveGroup | ( | ) | const [virtual] |
Get the active keyboard layout from OS.
Returns the active keyboard layout according to the operating system.
Implements IPlatformScreen.
Definition at line 106 of file CPlatformScreen.cpp.
References getKeyState(), and IKeyState::pollActiveGroup().
| KeyModifierMask CPlatformScreen::pollActiveModifiers | ( | ) | const [virtual] |
Get the active modifiers from OS.
Returns the modifiers that are currently active according to the operating system.
Implements IPlatformScreen.
Definition at line 100 of file CPlatformScreen.cpp.
References getKeyState(), and IKeyState::pollActiveModifiers().
| void CPlatformScreen::pollPressedKeys | ( | KeyButtonSet & | pressedKeys | ) | const [virtual] |
Get the keys currently pressed from OS.
Adds any keys that are currently pressed according to the operating system to pressedKeys.
Implements IPlatformScreen.
Definition at line 112 of file CPlatformScreen.cpp.
References getKeyState(), and IKeyState::pollPressedKeys().
| virtual void CPlatformScreen::resetOptions | ( | ) | [pure virtual] |
Notify of options changes.
Reset all options to their default values.
Implements IPlatformScreen.
Implemented in CMSWindowsScreen, COSXScreen, and CXWindowsScreen.
| virtual void CPlatformScreen::screensaver | ( | bool | activate | ) | [pure virtual] |
Activate/deactivate screen saver.
Forcibly activate the screen saver if activate is true otherwise forcibly deactivate it.
Implements IPlatformScreen.
Implemented in CMSWindowsScreen, COSXScreen, and CXWindowsScreen.
| virtual bool CPlatformScreen::setClipboard | ( | ClipboardID | id, | |
| const IClipboard * | ||||
| ) | [pure virtual] |
Set clipboard.
Set the contents of the system clipboard indicated by id.
Implements IPlatformScreen.
Implemented in CMSWindowsScreen, COSXScreen, and CXWindowsScreen.
| void CPlatformScreen::setHalfDuplexMask | ( | KeyModifierMask | ) | [virtual] |
Set half-duplex mask.
Sets which modifier toggle keys are half-duplex. A half-duplex toggle key doesn't report a key release when toggled on and doesn't report a key press when toggled off.
Implements IPlatformScreen.
Definition at line 50 of file CPlatformScreen.cpp.
References getKeyState(), and IKeyState::setHalfDuplexMask().
| virtual void CPlatformScreen::setOptions | ( | const COptionsList & | options | ) | [pure 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 IPlatformScreen.
Implemented in CMSWindowsScreen, COSXScreen, and CXWindowsScreen.
| virtual void CPlatformScreen::setSequenceNumber | ( | UInt32 | ) | [pure virtual] |
Set clipboard sequence number.
Sets the sequence number to use in subsequent clipboard events.
Implements IPlatformScreen.
Implemented in CMSWindowsScreen, COSXScreen, and CXWindowsScreen.
| virtual void CPlatformScreen::updateButtons | ( | ) | [protected, pure virtual] |
Update mouse buttons.
Subclasses must implement this method to update their internal mouse button mapping and, if desired, state tracking.
Implemented in CMSWindowsScreen, COSXScreen, and CXWindowsScreen.
Referenced by updateKeyState().
| void CPlatformScreen::updateKeyMap | ( | ) | [virtual] |
Update the keyboard map.
Causes the key state to get updated to reflect the current keyboard mapping.
Implements IPlatformScreen.
Definition at line 37 of file CPlatformScreen.cpp.
References getKeyState(), and IKeyState::updateKeyMap().
| void CPlatformScreen::updateKeyState | ( | ) | [virtual] |
Update the key state.
Causes the key state to get updated to reflect the physical keyboard state.
Implements IPlatformScreen.
Definition at line 43 of file CPlatformScreen.cpp.
References getKeyState(), updateButtons(), and IKeyState::updateKeyState().
1.7.1