barrier/synergy/CXWindowsPrimaryScreen.h

51 lines
1.2 KiB
C
Raw Normal View History

2001-10-06 14:13:28 +00:00
#ifndef CXWINDOWSPRIMARYSCREEN_H
#define CXWINDOWSPRIMARYSCREEN_H
2001-10-24 22:33:24 +00:00
#include "CMutex.h"
2001-10-06 14:13:28 +00:00
#include "KeyTypes.h"
#include "MouseTypes.h"
#include "IPrimaryScreen.h"
#include <X11/Xlib.h>
class CThread;
class CXWindowsPrimaryScreen : public IPrimaryScreen {
public:
CXWindowsPrimaryScreen();
virtual ~CXWindowsPrimaryScreen();
// IPrimaryScreen overrides
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 getSize(SInt32* width, SInt32* height) const;
virtual SInt32 getJumpZoneSize() const;
private:
void selectEvents(Window) const;
2001-10-23 22:41:46 +00:00
Cursor createBlankCursor();
2001-10-24 22:33:24 +00:00
void warpCursorNoLock(SInt32 xAbsolute, SInt32 yAbsolute);
2001-10-06 14:13:28 +00:00
void eventThread(void*);
KeyModifierMask mapModifier(unsigned int state) const;
KeyID mapKey(KeyCode, KeyModifierMask) const;
ButtonID mapButton(unsigned int button) const;
private:
CServer* m_server;
CThread* m_eventThread;
Display* m_display;
int m_screen;
2001-10-23 22:41:46 +00:00
Window m_root;
2001-10-06 14:13:28 +00:00
SInt32 m_w, m_h;
Window m_window;
bool m_active;
2001-10-24 22:33:24 +00:00
// X is not thread safe
CMutex m_mutex;
2001-10-06 14:13:28 +00:00
};
#endif