Cogs.Core
X11Module.cpp
1#include "X11Module.h"
2
3#if defined( __linux__ )
4
5Cogs::X11Module& Cogs::X11Module::instance() {
6 static X11Module m = load<X11Module>("libX11.so");
7
8 return m;
9}
10
11void Cogs::X11Module::initPtrs() {
12 getProcAddress(XInitThreads, "XInitThreads");
13
14 getProcAddress(XOpenDisplayFn, "XOpenDisplay");
15 getProcAddress(XCloseDisplayFn, "XCloseDisplay");
16
17 getProcAddress(XCreateWindow, "XCreateWindow");
18 getProcAddress(XDestroyWindow, "XDestroyWindow");
19 getProcAddress(XMapWindow, "XMapWindow");
20 getProcAddress(XUnmapWindow, "XUnmapWindow");
21 getProcAddress(XIconifyWindow, "XIconifyWindow");
22 getProcAddress(XMoveWindow, "XMoveWindow");
23 getProcAddress(XResizeWindow, "XResizeWindow");
24 getProcAddress(XGetWindowAttributes, "XGetWindowAttributes");
25 getProcAddress(XGetWindowProperty, "XGetWindowProperty");
26 getProcAddress(XQueryTree, "XQueryTree");
27
28 getProcAddress(XCreateColormap, "XCreateColormap");
29 getProcAddress(XFreeColormap, "XFreeColormap");
30
31 getProcAddress(XPending, "XPending");
32 getProcAddress(XSendEvent, "XSendEvent");
33 getProcAddress(XNextEvent, "XNextEvent");
34 getProcAddress(XFilterEvent, "XFilterEvent");
35
36 getProcAddress(XSync, "XSync");
37 getProcAddress(XFree, "XFree");
38
39 getProcAddress(XInternAtom, "XInternAtom");
40 getProcAddress(XStoreName, "XStoreName");
41
42 getProcAddress(XScreenNumberOfScreen, "XScreenNumberOfScreen");
43
44 getProcAddress(XkbKeycodeToKeysym, "XkbKeycodeToKeysym");
45 getProcAddress(XSetWMProtocols, "XSetWMProtocols");
46 getProcAddress(XSelectInput, "XSelectInput");
47 getProcAddress(XRefreshKeyboardMapping, "XRefreshKeyboardMapping");
48 getProcAddress(XOpenIM, "XOpenIM");
49 getProcAddress(XCloseIM, "XCloseIM");
50 getProcAddress(XGetIMValues, "XGetIMValues");
51 getProcAddress(XCreateIC, "XCreateIC");
52 getProcAddress(XDestroyIC, "XDestroyIC");
53 getProcAddress(XSetICFocus, "XSetICFocus");
54 getProcAddress(Xutf8LookupString, "Xutf8LookupString");
55 getProcAddress(XSupportsLocale, "XSupportsLocale");
56 getProcAddress(XSetLocaleModifiers, "XSetLocaleModifiers");
57
58 getProcAddress(XSetSelectionOwner, "XSetSelectionOwner");
59 getProcAddress(XGetSelectionOwner, "XGetSelectionOwner");
60 getProcAddress(XConvertSelection, "XConvertSelection");
61
62 getProcAddress(XChangeProperty, "XChangeProperty");
63 getProcAddress(XDeleteProperty, "XDeleteProperty");
64}
65
66Display* Cogs::X11Module::XOpenDisplay(const char* displayName) {
67 const char* mapName = displayName ? displayName : "";
68 auto i = cachedDisplays.find(mapName);
69
70 if (i != cachedDisplays.end()) {
71 return i->second;
72 }
73
74 Display* display = XOpenDisplayFn(displayName);
75
76 if (display) {
77 cachedDisplays[mapName] = display;
78 }
79 return display;
80}
81
82#endif