2#if defined( __linux__ )
11#include <X11/Xresource.h>
14 class X11Module :
public Module {
16 static X11Module& instance();
17 virtual void initPtrs()
override;
19 Status (*XInitThreads)();
21 Display* XOpenDisplay(
const char* displayName);
22 void XCloseDisplay(Display* ) {}
24 ::Window (*XCreateWindow)(Display* display, ::Window parent,
int x,
int y,
unsigned int width,
unsigned int height,
unsigned int borderWidth,
int depth,
unsigned int cls, Visual* visual,
unsigned long valueMask, XSetWindowAttributes* attributes);
25 int (*XDestroyWindow)(Display* display, ::Window w);
26 int (*XMapWindow)(Display* display, ::Window w);
27 int (*XUnmapWindow)(Display* display, ::Window w);
28 Status (*XIconifyWindow)(Display* display, ::Window w,
int screenNumber);
29 int (*XMoveWindow)(Display* display, ::Window w,
int x,
int y);
30 int (*XResizeWindow)(Display* display, ::Window w,
unsigned int width,
unsigned int height);
31 Status (*XGetWindowAttributes)(Display* display, ::Window w, XWindowAttributes* attributes);
32 int (*XGetWindowProperty)(Display *display, ::Window w, Atom property,
long offset,
long length, Bool del, Atom requiredType, Atom* actualType,
int* actualFormat,
unsigned long* itemCount,
unsigned long* bytesAfter,
unsigned char** returnedProperty);
33 Status (*XQueryTree)(Display* display, ::Window w, ::Window* root, ::Window* parent, ::Window** children,
unsigned int* noofchildren);
35 Colormap (*XCreateColormap)(Display* display, ::Window w, Visual* visual,
int alloc);
36 int (*XFreeColormap)(Display* display, Colormap colorMap);
38 int (*XPending)(Display* display);
39 Status (*XSendEvent)(Display* display, ::Window w, Bool propagate,
long eventMask, XEvent* eventSend);
40 int (*XNextEvent)(Display* display, XEvent* eventReturn);
41 Bool (*XFilterEvent)(XEvent* event, ::Window w);
43 int (*XSync)(Display* display, Bool discard);
44 int (*XFree)(
void* data);
46 Atom (*XInternAtom)(Display* display,
const char* atomName, Bool onlyIfExists);
47 int (*XStoreName)(Display* display, ::Window win,
const char* windowName);
49 int (*XScreenNumberOfScreen)(Screen*);
51 KeySym (*XkbKeycodeToKeysym)(Display* display, KeyCode kc,
unsigned int group,
unsigned int level);
52 Status (*XSetWMProtocols)(Display* display, ::Window w, Atom* protocols,
int count);
53 int (*XSelectInput)(Display* display, ::Window w,
long eventMask);
54 int (*XRefreshKeyboardMapping)(XMappingEvent* eventMap);
55 XIM (*XOpenIM)(Display *display, XrmDatabase db,
char* res_name,
char* res_class);
56 Status (*XCloseIM)(XIM im);
57 char* (*XGetIMValues)(XIM im, ...);
58 XIC (*XCreateIC)(XIM im, ...);
59 void (*XDestroyIC)(XIC ic);
60 void (*XSetICFocus)(XIC ic);
61 int (*Xutf8LookupString)(XIC ic, XKeyPressedEvent* event,
char* buffer_return,
int bytes_buffer, KeySym* keysym_return, Status* status_return);
62 Bool (*XSupportsLocale)();
63 char* (*XSetLocaleModifiers)(
char* modifier_list);
65 int (*XSetSelectionOwner)(Display* display, Atom selection, ::Window owner, Time time);
66 ::Window (*XGetSelectionOwner)(Display* display, Atom selection);
67 int (*XConvertSelection)(Display* display, Atom selection, Atom target, Atom property, ::Window requestor, Time time);
69 int (*XChangeProperty)(Display *display, ::Window w, Atom property, Atom type,
int format,
int mode,
unsigned char* data,
int nelements);
70 int (*XDeleteProperty)(Display *display, ::Window w, Atom property);
73 std::map<std::string, Display*> cachedDisplays;
75 Display* (*XOpenDisplayFn)(
const char* displayName);
76 int (*XCloseDisplayFn)(Display* display);
Contains all Cogs related functionality.