1// Copyright (C) 2018 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3#ifndef QXCBATOM_H
4#define QXCBATOM_H
5
6#include <xcb/xcb.h>
7
8class QXcbAtom
9{
10public:
11 enum Atom {
12 // window-manager <-> client protocols
13 AtomWM_PROTOCOLS,
14 AtomWM_DELETE_WINDOW,
15 AtomWM_TAKE_FOCUS,
16 Atom_NET_WM_PING,
17 Atom_NET_WM_CONTEXT_HELP,
18 Atom_NET_WM_SYNC_REQUEST,
19 Atom_NET_WM_SYNC_REQUEST_COUNTER,
20 AtomMANAGER, // System tray notification
21 Atom_NET_SYSTEM_TRAY_OPCODE, // System tray operation
22
23 // ICCCM window state
24 AtomWM_STATE,
25 AtomWM_CHANGE_STATE,
26 AtomWM_CLASS,
27 AtomWM_NAME,
28
29 // Session management
30 AtomWM_CLIENT_LEADER,
31 AtomWM_WINDOW_ROLE,
32 AtomSM_CLIENT_ID,
33 AtomWM_CLIENT_MACHINE,
34
35 // Clipboard
36 AtomCLIPBOARD,
37 AtomINCR,
38 AtomTARGETS,
39 AtomMULTIPLE,
40 AtomTIMESTAMP,
41 AtomSAVE_TARGETS,
42 AtomCLIP_TEMPORARY,
43 Atom_QT_SELECTION,
44 Atom_QT_CLIPBOARD_SENTINEL,
45 Atom_QT_SELECTION_SENTINEL,
46 AtomCLIPBOARD_MANAGER,
47
48 AtomRESOURCE_MANAGER,
49
50 Atom_XSETROOT_ID,
51
52 Atom_QT_SCROLL_DONE,
53 Atom_QT_INPUT_ENCODING,
54
55 // Qt/XCB specific
56 Atom_QT_CLOSE_CONNECTION,
57
58 Atom_QT_GET_TIMESTAMP,
59
60 Atom_MOTIF_WM_HINTS,
61
62 AtomDTWM_IS_RUNNING,
63 AtomENLIGHTENMENT_DESKTOP,
64 Atom_DT_SAVE_MODE,
65 Atom_SGI_DESKS_MANAGER,
66
67 // EWMH (aka NETWM)
68 Atom_NET_SUPPORTED,
69 Atom_NET_VIRTUAL_ROOTS,
70 Atom_NET_WORKAREA,
71
72 Atom_NET_MOVERESIZE_WINDOW,
73 Atom_NET_WM_MOVERESIZE,
74
75 Atom_NET_WM_NAME,
76 Atom_NET_WM_ICON_NAME,
77 Atom_NET_WM_ICON,
78
79 Atom_NET_WM_PID,
80
81 Atom_NET_WM_WINDOW_OPACITY,
82
83 Atom_NET_WM_STATE,
84 Atom_NET_WM_STATE_ABOVE,
85 Atom_NET_WM_STATE_BELOW,
86 Atom_NET_WM_STATE_FULLSCREEN,
87 Atom_NET_WM_STATE_MAXIMIZED_HORZ,
88 Atom_NET_WM_STATE_MAXIMIZED_VERT,
89 Atom_NET_WM_STATE_MODAL,
90 Atom_NET_WM_STATE_STAYS_ON_TOP,
91 Atom_NET_WM_STATE_DEMANDS_ATTENTION,
92 Atom_NET_WM_STATE_HIDDEN,
93
94 Atom_NET_WM_USER_TIME,
95 Atom_NET_WM_USER_TIME_WINDOW,
96 Atom_NET_WM_FULL_PLACEMENT,
97
98 Atom_NET_WM_WINDOW_TYPE,
99 Atom_NET_WM_WINDOW_TYPE_DESKTOP,
100 Atom_NET_WM_WINDOW_TYPE_DOCK,
101 Atom_NET_WM_WINDOW_TYPE_TOOLBAR,
102 Atom_NET_WM_WINDOW_TYPE_MENU,
103 Atom_NET_WM_WINDOW_TYPE_UTILITY,
104 Atom_NET_WM_WINDOW_TYPE_SPLASH,
105 Atom_NET_WM_WINDOW_TYPE_DIALOG,
106 Atom_NET_WM_WINDOW_TYPE_DROPDOWN_MENU,
107 Atom_NET_WM_WINDOW_TYPE_POPUP_MENU,
108 Atom_NET_WM_WINDOW_TYPE_TOOLTIP,
109 Atom_NET_WM_WINDOW_TYPE_NOTIFICATION,
110 Atom_NET_WM_WINDOW_TYPE_COMBO,
111 Atom_NET_WM_WINDOW_TYPE_DND,
112 Atom_NET_WM_WINDOW_TYPE_NORMAL,
113 Atom_KDE_NET_WM_WINDOW_TYPE_OVERRIDE,
114
115 Atom_KDE_NET_WM_DESKTOP_FILE,
116 Atom_KDE_NET_WM_FRAME_STRUT,
117 Atom_NET_FRAME_EXTENTS,
118
119 Atom_NET_STARTUP_INFO,
120 Atom_NET_STARTUP_INFO_BEGIN,
121 Atom_NET_STARTUP_ID,
122
123 Atom_NET_SUPPORTING_WM_CHECK,
124
125 Atom_NET_WM_CM_S0,
126
127 Atom_NET_SYSTEM_TRAY_VISUAL,
128
129 Atom_NET_ACTIVE_WINDOW,
130
131 // Property formats
132 AtomTEXT,
133 AtomUTF8_STRING,
134 AtomCARDINAL,
135
136 // Xdnd
137 AtomXdndEnter,
138 AtomXdndPosition,
139 AtomXdndStatus,
140 AtomXdndLeave,
141 AtomXdndDrop,
142 AtomXdndFinished,
143 AtomXdndTypelist,
144 AtomXdndActionList,
145
146 AtomXdndSelection,
147
148 AtomXdndAware,
149 AtomXdndProxy,
150
151 AtomXdndActionCopy,
152 AtomXdndActionLink,
153 AtomXdndActionMove,
154 AtomXdndActionAsk,
155 AtomXdndActionPrivate,
156
157 // Xkb
158 Atom_XKB_RULES_NAMES,
159
160 // XEMBED
161 Atom_XEMBED,
162 Atom_XEMBED_INFO,
163
164 // XInput2
165 AtomButtonLeft,
166 AtomButtonMiddle,
167 AtomButtonRight,
168 AtomButtonWheelUp,
169 AtomButtonWheelDown,
170 AtomButtonHorizWheelLeft,
171 AtomButtonHorizWheelRight,
172 AtomAbsMTPositionX,
173 AtomAbsMTPositionY,
174 AtomAbsMTTouchMajor,
175 AtomAbsMTTouchMinor,
176 AtomAbsMTOrientation,
177 AtomAbsMTPressure,
178 AtomAbsMTTrackingID,
179 AtomMaxContacts,
180 AtomRelX,
181 AtomRelY,
182 // XInput2 tablet
183 AtomAbsX,
184 AtomAbsY,
185 AtomAbsPressure,
186 AtomAbsTiltX,
187 AtomAbsTiltY,
188 AtomAbsWheel,
189 AtomAbsDistance,
190 AtomWacomSerialIDs,
191 AtomINTEGER,
192 AtomRelHorizWheel,
193 AtomRelVertWheel,
194 AtomRelHorizScroll,
195 AtomRelVertScroll,
196
197 Atom_XSETTINGS_SETTINGS,
198
199 Atom_COMPIZ_DECOR_PENDING,
200 Atom_COMPIZ_DECOR_REQUEST,
201 Atom_COMPIZ_DECOR_DELETE_PIXMAP,
202 Atom_COMPIZ_TOOLKIT_ACTION,
203 Atom_GTK_APPLICATION_ID,
204 Atom_GTK_LOAD_ICONTHEMES,
205
206 AtomAT_SPI_BUS,
207
208 AtomEDID,
209 AtomEDID_DATA,
210 AtomXFree86_DDC_EDID1_RAWDATA,
211
212 Atom_ICC_PROFILE,
213
214 NAtoms
215 };
216
217 QXcbAtom();
218 void initialize(xcb_connection_t *connection);
219
220 inline xcb_atom_t atom(QXcbAtom::Atom atom) const { return m_allAtoms[atom]; }
221 QXcbAtom::Atom qatom(xcb_atom_t atom) const;
222
223protected:
224 void initializeAllAtoms(xcb_connection_t *connection);
225
226private:
227 xcb_atom_t m_allAtoms[QXcbAtom::NAtoms];
228};
229
230#endif // QXCBATOM_H
231

Provided by KDAB

Privacy Policy
Learn to use CMake with our Intro Training
Find out more

source code of qtbase/src/plugins/platforms/xcb/qxcbatom.h