#include <IPlatformScreen.h>
Inherits IScreen, IPrimaryScreen, ISecondaryScreen, and IKeyState.
Inherited by CPlatformScreen.
Inheritance diagram for IPlatformScreen:
Public Member Functions | |
virtual void * | getEventTarget () const =0 |
Get event target. | |
virtual bool | getClipboard (ClipboardID id, IClipboard *) const =0 |
Get clipboard. | |
virtual void | getShape (SInt32 &x, SInt32 &y, SInt32 &width, SInt32 &height) const =0 |
Get screen shape. | |
virtual void | getCursorPos (SInt32 &x, SInt32 &y) const =0 |
Get cursor position. | |
virtual void | reconfigure (UInt32 activeSides)=0 |
Update configuration. | |
virtual void | warpCursor (SInt32 x, SInt32 y)=0 |
Warp cursor. | |
virtual UInt32 | registerHotKey (KeyID key, KeyModifierMask mask)=0 |
Register a system hotkey. | |
virtual void | unregisterHotKey (UInt32 id)=0 |
Unregister a system hotkey. | |
virtual void | fakeInputBegin ()=0 |
Prepare to synthesize input on primary screen. | |
virtual void | fakeInputEnd ()=0 |
Done synthesizing input on primary screen. | |
virtual SInt32 | getJumpZoneSize () const =0 |
Get jump zone size. | |
virtual bool | isAnyMouseButtonDown () const =0 |
Test if mouse is pressed. | |
virtual void | getCursorCenter (SInt32 &x, SInt32 &y) const =0 |
Get cursor center position. | |
virtual void | fakeMouseButton (ButtonID id, bool press) const =0 |
Fake mouse press/release. | |
virtual void | fakeMouseMove (SInt32 x, SInt32 y) const =0 |
Fake mouse move. | |
virtual void | fakeMouseRelativeMove (SInt32 dx, SInt32 dy) const =0 |
Fake mouse move. | |
virtual void | fakeMouseWheel (SInt32 xDelta, SInt32 yDelta) const =0 |
Fake mouse wheel. | |
virtual void | updateKeyMap ()=0 |
Update the keyboard map. | |
virtual void | updateKeyState ()=0 |
Update the key state. | |
virtual void | setHalfDuplexMask (KeyModifierMask)=0 |
Set half-duplex mask. | |
virtual void | fakeKeyDown (KeyID id, KeyModifierMask mask, KeyButton button)=0 |
Fake a key press. | |
virtual void | fakeKeyRepeat (KeyID id, KeyModifierMask mask, SInt32 count, KeyButton button)=0 |
Fake a key repeat. | |
virtual void | fakeKeyUp (KeyButton button)=0 |
Fake a key release. | |
virtual void | fakeAllKeysUp ()=0 |
Fake key releases for all fake pressed keys. | |
virtual bool | fakeCtrlAltDel ()=0 |
Fake ctrl+alt+del. | |
virtual bool | isKeyDown (KeyButton) const =0 |
Test if key is pressed. | |
virtual KeyModifierMask | getActiveModifiers () const =0 |
Get the active modifiers. | |
virtual KeyModifierMask | pollActiveModifiers () const =0 |
Get the active modifiers from OS. | |
virtual SInt32 | pollActiveGroup () const =0 |
Get the active keyboard layout from OS. | |
virtual void | pollPressedKeys (KeyButtonSet &pressedKeys) const =0 |
Get the keys currently pressed from OS. | |
manipulators | |
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 id, 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. | |
accessors | |
virtual bool | isPrimary () const =0 |
Test if is primary screen. | |
Protected Member Functions | |
virtual void | handleSystemEvent (const CEvent &event, void *)=0 |
Handle system event. |
This interface defines the methods common to all platform dependent screen implementations that are used by both primary and secondary screens.
Definition at line 33 of file IPlatformScreen.h.
|
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. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::leave(). |
|
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. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::setOptions(). |
|
Disable screen. Undoes the operations in enable() and events should no longer be reported. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::disable(). |
|
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. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::enable(). |
|
Enter screen. Called when the user navigates to this screen. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::enter(). |
|
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 IKeyState. Implemented in CMSWindowsScreen, and CPlatformScreen. |
|
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 IKeyState. Implemented in CPlatformScreen. Referenced by CScreen::keyDown(). |
|
Prepare to synthesize input on primary screen.
Prepares the primary screen to receive synthesized input. We do not want to receive this synthesized input as user input so this method ensures that we ignore it. Calls to Implements IPrimaryScreen. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::fakeInputBegin(). |
|
Done synthesizing input on primary screen.
Undoes whatever Implements IPrimaryScreen. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::fakeInputEnd(). |
|
Fake a key press. Synthesizes a key press event and updates the key state. Implements IKeyState. Implemented in CMSWindowsScreen, and CPlatformScreen. Referenced by CScreen::keyDown(). |
|
Fake a key repeat. Synthesizes a key repeat event and updates the key state. Implements IKeyState. Implemented in CMSWindowsScreen, and CPlatformScreen. Referenced by CScreen::keyRepeat(). |
|
Fake a key release. Synthesizes a key release event and updates the key state. Implements IKeyState. Implemented in CMSWindowsScreen, and CPlatformScreen. Referenced by CScreen::keyUp(). |
|
Fake mouse press/release.
Synthesize a press or release of mouse button Implements ISecondaryScreen. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::mouseDown(), and CScreen::mouseUp(). |
|
Fake mouse move.
Synthesize a mouse move to the absolute coordinates Implements ISecondaryScreen. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::mouseMove(). |
|
Fake mouse move.
Synthesize a mouse move to the relative coordinates Implements ISecondaryScreen. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::mouseRelativeMove(). |
|
Fake mouse wheel.
Synthesize a mouse wheel event of amount Implements ISecondaryScreen. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::mouseWheel(). |
|
Get the active modifiers. Returns the modifiers that are currently active according to our shadowed state. Implements IKeyState. Implemented in CPlatformScreen. Referenced by CScreen::getActiveModifiers(). |
|
Get clipboard.
Save the contents of the clipboard indicated by Implements IScreen. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::getClipboard(). |
|
Get cursor center position. Return the cursor center position which is where we park the cursor to compute cursor motion deltas and should be far from the edges of the screen, typically the center. Implements IPrimaryScreen. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::getCursorCenter(). |
|
Get cursor position.
Return the current position of the cursor in Implements IScreen. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::getCursorPos(). |
|
Get event target. Returns the target used for events created by this object. Implements IScreen. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. |
|
Get jump zone size. Return the jump zone size, the size of the regions on the edges of the screen that cause the cursor to jump to another screen. Implements IPrimaryScreen. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::getJumpZoneSize(). |
|
Get screen shape.
Return the position of the upper-left corner of the screen in Implements IScreen. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::getShape(). |
|
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)); 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
The target of all events should be the value returned by Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. |
|
Test if mouse is pressed. Return true if any mouse button is currently pressed. Ideally, "current" means up to the last processed event but it can mean the current physical mouse button state. Implements IPrimaryScreen. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::isLockedToScreen(). |
|
Test if key is pressed. Returns true iff the given key is down. Half-duplex toggles always return false. Implements IKeyState. Implemented in CPlatformScreen. |
|
Test if is primary screen. Return true iff this screen is a primary screen. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. |
|
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. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::leave(). |
|
Open screen saver.
Open the screen saver. If Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::resetOptions(), and CScreen::setOptions(). |
|
Get the active keyboard layout from OS. Returns the active keyboard layout according to the operating system. Implements IKeyState. Implemented in CPlatformScreen. |
|
Get the active modifiers from OS. Returns the modifiers that are currently active according to the operating system. Implements IKeyState. Implemented in CPlatformScreen. Referenced by CScreen::pollActiveModifiers(). |
|
Get the keys currently pressed from OS.
Adds any keys that are currently pressed according to the operating system to Implements IKeyState. Implemented in CPlatformScreen. |
|
Update configuration.
This is called when the configuration has changed. Implements IPrimaryScreen. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::reconfigure(). |
|
Register a system hotkey.
Registers a system-wide hotkey. The screen should arrange for an event to be delivered to itself when the hot key is pressed or released. When that happens the screen should post a A hot key is a set of modifiers and a key, which may itself be a modifier. The hot key is pressed when the hot key's modifiers and only those modifiers are logically down (active) and the key is pressed. The hot key is released when the key is released, regardless of the modifiers. The hot key event should be generated no matter what window or application has the focus. No other window or application should receive the key press or release events (they can and should see the modifier key events). When the key is a modifier, it's acceptable to allow the user to press the modifiers in any order or to require the user to press the given key last. Implements IPrimaryScreen. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::registerHotKey(). |
|
Notify of options changes. Reset all options to their default values. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::resetOptions(). |
|
Activate/deactivate screen saver.
Forcibly activate the screen saver if Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::screensaver(). |
|
Set clipboard.
Set the contents of the system clipboard indicated by Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::grabClipboard(), and CScreen::setClipboard(). |
|
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 IKeyState. Implemented in CPlatformScreen. Referenced by CScreen::setOptions(). |
|
Notify of options changes.
Set options to given values. Ignore unknown options and don't modify options that aren't given in Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::setOptions(). |
|
Set clipboard sequence number. Sets the sequence number to use in subsequent clipboard events. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::setSequenceNumber(). |
|
Unregister a system hotkey. Unregisters a previously registered hot key. Implements IPrimaryScreen. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::unregisterHotKey(). |
|
Update the keyboard map. Causes the key state to get updated to reflect the current keyboard mapping. Implements IKeyState. Implemented in CPlatformScreen. Referenced by CScreen::enable(). |
|
Update the key state. Causes the key state to get updated to reflect the physical keyboard state. Implements IKeyState. Implemented in CPlatformScreen. Referenced by CScreen::enable(). |
|
Warp cursor.
Warp the cursor to the absolute coordinates Implements IPrimaryScreen. Implemented in CMSWindowsScreen, COSXScreen, CXWindowsScreen, and CPlatformScreen. Referenced by CScreen::warpCursor(). |