Files
barrier/server/CXWindowsPrimaryScreen.h
crs 242109d430 Added hack to handle "half-duplex" caps-lock key on powerbook.
That key only reports press when pressed and released when
caps-lock is activated and only reports release when pressed
and released when caps-lock is deactivated.  I don't know of a
way to detect this behavior so it may have to be configured by
the user.  The code assumes normal behavior;  will have to add
code to set the flag (perhaps from a user configuration).
2002-04-26 20:12:55 +00:00

51 lines
1.3 KiB
C++

#ifndef CXWINDOWSPRIMARYSCREEN_H
#define CXWINDOWSPRIMARYSCREEN_H
#include "KeyTypes.h"
#include "MouseTypes.h"
#include "CXWindowsScreen.h"
#include "IPrimaryScreen.h"
class CXWindowsPrimaryScreen : public CXWindowsScreen, public IPrimaryScreen {
public:
CXWindowsPrimaryScreen();
virtual ~CXWindowsPrimaryScreen();
// IPrimaryScreen overrides
virtual void run();
virtual void stop();
virtual void open(CServer*);
virtual void close();
virtual void enter(SInt32 xAbsolute, SInt32 yAbsolute);
virtual void leave();
virtual void warpCursor(SInt32 xAbsolute, SInt32 yAbsolute);
virtual void setClipboard(const IClipboard*);
virtual void grabClipboard();
virtual void getSize(SInt32* width, SInt32* height) const;
virtual SInt32 getJumpZoneSize() const;
virtual void getClipboard(IClipboard*) const;
protected:
// CXWindowsScreen overrides
virtual void onOpenDisplay();
virtual void onCloseDisplay();
private:
void selectEvents(Display*, Window) const;
void warpCursorNoLock(Display*,
SInt32 xAbsolute, SInt32 yAbsolute);
KeyModifierMask mapModifier(unsigned int state) const;
KeyID mapKey(XKeyEvent*) const;
ButtonID mapButton(unsigned int button) const;
private:
CServer* m_server;
bool m_active;
Window m_window;
bool m_capsLockHalfDuplex;
};
#endif