COSXScreen Class Reference

Implementation of IPlatformScreen for OS X. More...

#include <COSXScreen.h>

Inherits CPlatformScreen.

Inheritance diagram for COSXScreen:

Inheritance graph
[legend]
Collaboration diagram for COSXScreen:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 COSXScreen (bool isPrimary)
virtual ~COSXScreen ()
virtual void * getEventTarget () const
 Get event target.
virtual bool getClipboard (ClipboardID id, IClipboard *) const
 Get clipboard.
virtual void getShape (SInt32 &x, SInt32 &y, SInt32 &width, SInt32 &height) const
 Get screen shape.
virtual void getCursorPos (SInt32 &x, SInt32 &y) const
 Get cursor position.
virtual void reconfigure (UInt32 activeSides)
 Update configuration.
virtual void warpCursor (SInt32 x, SInt32 y)
 Warp cursor.
virtual UInt32 registerHotKey (KeyID key, KeyModifierMask mask)
 Register a system hotkey.
virtual void unregisterHotKey (UInt32 id)
 Unregister a system hotkey.
virtual void fakeInputBegin ()
 Prepare to synthesize input on primary screen.
virtual void fakeInputEnd ()
 Done synthesizing input on primary screen.
virtual SInt32 getJumpZoneSize () const
 Get jump zone size.
virtual bool isAnyMouseButtonDown () const
 Test if mouse is pressed.
virtual void getCursorCenter (SInt32 &x, SInt32 &y) const
 Get cursor center position.
virtual void fakeMouseButton (ButtonID id, bool press) const
 Fake mouse press/release.
virtual void fakeMouseMove (SInt32 x, SInt32 y) const
 Fake mouse move.
virtual void fakeMouseRelativeMove (SInt32 dx, SInt32 dy) const
 Fake mouse move.
virtual void fakeMouseWheel (SInt32 xDelta, SInt32 yDelta) const
 Fake mouse wheel.
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.

Protected Member Functions

virtual void handleSystemEvent (const CEvent &, void *)
 Handle system event.
virtual void updateButtons ()
 Update mouse buttons.
virtual IKeyStategetKeyState () const
 Get the key state.

Classes

struct  CHotKeyItem

Detailed Description

Implementation of IPlatformScreen for OS X.

Definition at line 39 of file COSXScreen.h.


Member Function Documentation

void COSXScreen::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 691 of file COSXScreen.cpp.

References IScreen::getClipboardGrabbedEvent(), and COSXClipboard::synchronize().

void COSXScreen::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 712 of file COSXScreen.cpp.

References COSXScreenSaver::enable().

void COSXScreen::disable (  )  [virtual]

Disable screen.

Undoes the operations in enable() and events should no longer be reported.

Implements CPlatformScreen.

Definition at line 563 of file COSXScreen.cpp.

References CEvent::kTimer.

Referenced by ~COSXScreen().

void COSXScreen::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 535 of file COSXScreen.cpp.

References fakeMouseMove(), and CEvent::kTimer.

void COSXScreen::enter (  )  [virtual]

Enter screen.

Called when the user navigates to this screen.

Implements CPlatformScreen.

Definition at line 593 of file COSXScreen.cpp.

void COSXScreen::fakeInputBegin (  )  [virtual]

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 fakeInputBegin() may not be nested.

Implements CPlatformScreen.

Definition at line 281 of file COSXScreen.cpp.

void COSXScreen::fakeInputEnd (  )  [virtual]

Done synthesizing input on primary screen.

Undoes whatever fakeInputBegin() did.

Implements CPlatformScreen.

Definition at line 287 of file COSXScreen.cpp.

void COSXScreen::fakeMouseButton ( ButtonID  id,
bool  press 
) const [virtual]

Fake mouse press/release.

Synthesize a press or release of mouse button id.

Implements CPlatformScreen.

Definition at line 465 of file COSXScreen.cpp.

References getCursorPos().

void COSXScreen::fakeMouseMove ( SInt32  x,
SInt32  y 
) const [virtual]

Fake mouse move.

Synthesize a mouse move to the absolute coordinates x,y.

Implements CPlatformScreen.

Definition at line 487 of file COSXScreen.cpp.

Referenced by enable(), and leave().

void COSXScreen::fakeMouseRelativeMove ( SInt32  dx,
SInt32  dy 
) const [virtual]

Fake mouse move.

Synthesize a mouse move to the relative coordinates dx,dy.

Implements CPlatformScreen.

Definition at line 502 of file COSXScreen.cpp.

void COSXScreen::fakeMouseWheel ( SInt32  xDelta,
SInt32  yDelta 
) const [virtual]

Fake mouse wheel.

Synthesize a mouse wheel event of amount xDelta and yDelta.

Implements CPlatformScreen.

Definition at line 526 of file COSXScreen.cpp.

bool COSXScreen::getClipboard ( ClipboardID  id,
IClipboard  
) const [virtual]

Get clipboard.

Save the contents of the clipboard indicated by id and return true iff successful.

Implements CPlatformScreen.

Definition at line 232 of file COSXScreen.cpp.

References IClipboard::copy().

void COSXScreen::getCursorCenter ( SInt32 &  x,
SInt32 &  y 
) const [virtual]

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 CPlatformScreen.

Definition at line 305 of file COSXScreen.cpp.

void COSXScreen::getCursorPos ( SInt32 &  x,
SInt32 &  y 
) const [virtual]

Get cursor position.

Return the current position of the cursor in x and y.

Implements CPlatformScreen.

Definition at line 248 of file COSXScreen.cpp.

Referenced by fakeMouseButton().

void * COSXScreen::getEventTarget (  )  const [virtual]

Get event target.

Returns the target used for events created by this object.

Implements CPlatformScreen.

Definition at line 226 of file COSXScreen.cpp.

Referenced by COSXScreen(), and ~COSXScreen().

SInt32 COSXScreen::getJumpZoneSize (  )  const [virtual]

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 CPlatformScreen.

Definition at line 293 of file COSXScreen.cpp.

IKeyState * COSXScreen::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 1317 of file COSXScreen.cpp.

void COSXScreen::getShape ( SInt32 &  x,
SInt32 &  y,
SInt32 &  width,
SInt32 &  height 
) const [virtual]

Get screen shape.

Return the position of the upper-left corner of the screen in x and y and the size of the screen in width and height.

Implements CPlatformScreen.

Definition at line 239 of file COSXScreen.cpp.

void COSXScreen::handleSystemEvent ( const CEvent ,
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 770 of file COSXScreen.cpp.

References CEvent::getData().

Referenced by COSXScreen().

bool COSXScreen::isAnyMouseButtonDown (  )  const [virtual]

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 CPlatformScreen.

Definition at line 299 of file COSXScreen.cpp.

bool COSXScreen::isPrimary (  )  const [virtual]

Test if is primary screen.

Return true iff this screen is a primary screen.

Implements CPlatformScreen.

Definition at line 749 of file COSXScreen.cpp.

bool COSXScreen::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 635 of file COSXScreen.cpp.

References fakeMouseMove(), and warpCursor().

void COSXScreen::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 703 of file COSXScreen.cpp.

References COSXScreenSaver::disable().

void COSXScreen::reconfigure ( UInt32  activeSides  )  [virtual]

Update configuration.

This is called when the configuration has changed. activeSides is a bitmask of EDirectionMask indicating which sides of the primary screen are linked to clients. Override to handle the possible change in jump zones.

Implements CPlatformScreen.

Definition at line 260 of file COSXScreen.cpp.

UInt32 COSXScreen::registerHotKey ( KeyID  key,
KeyModifierMask  mask 
) [virtual]

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 getHotKeyDownEvent() or getHotKeyUpEvent(), respectively. The hot key is key key with exactly the modifiers mask. Returns 0 on failure otherwise an id that can be used to unregister the hotkey.

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 CPlatformScreen.

Definition at line 312 of file COSXScreen.cpp.

References CKeyMap::formatKey(), and COSXKeyState::mapSynergyHotKeyToMac().

void COSXScreen::resetOptions (  )  [virtual]

Notify of options changes.

Reset all options to their default values.

Implements CPlatformScreen.

Definition at line 731 of file COSXScreen.cpp.

void COSXScreen::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 720 of file COSXScreen.cpp.

References COSXScreenSaver::activate(), and COSXScreenSaver::deactivate().

bool COSXScreen::setClipboard ( ClipboardID  ,
const IClipboard  
) [virtual]

Set clipboard.

Set the contents of the system clipboard indicated by id.

Implements CPlatformScreen.

Definition at line 681 of file COSXScreen.cpp.

References IClipboard::copy().

void COSXScreen::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 737 of file COSXScreen.cpp.

void COSXScreen::setSequenceNumber ( UInt32   )  [virtual]

Set clipboard sequence number.

Sets the sequence number to use in subsequent clipboard events.

Implements CPlatformScreen.

Definition at line 743 of file COSXScreen.cpp.

void COSXScreen::unregisterHotKey ( UInt32  id  )  [virtual]

Unregister a system hotkey.

Unregisters a previously registered hot key.

Implements CPlatformScreen.

Definition at line 367 of file COSXScreen.cpp.

void COSXScreen::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 1308 of file COSXScreen.cpp.

void COSXScreen::warpCursor ( SInt32  x,
SInt32  y 
) [virtual]

Warp cursor.

Warp the cursor to the absolute coordinates x,y. Also discard input events up to and including the warp before returning.

Implements CPlatformScreen.

Definition at line 266 of file COSXScreen.cpp.

Referenced by leave().


The documentation for this class was generated from the following files:
Generated on Fri Nov 6 00:19:09 2009 for synergy-plus by  doxygen 1.4.7