Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qxcbatom.h
Go to the documentation of this file.
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// Qt-Security score:significant reason:default
4
5#pragma once
6
7#include <xcb/xcb.h>
8
9class QXcbAtom
10{
11public:
12 enum Atom {
13 // window-manager <-> client protocols
14 AtomWM_PROTOCOLS,
15 AtomWM_DELETE_WINDOW,
16 AtomWM_TAKE_FOCUS,
17 Atom_NET_WM_PING,
18 Atom_NET_WM_CONTEXT_HELP,
19 Atom_NET_WM_SYNC_REQUEST,
20 Atom_NET_WM_SYNC_REQUEST_COUNTER,
21 AtomMANAGER, // System tray notification
22 Atom_NET_SYSTEM_TRAY_OPCODE, // System tray operation
23
24 // ICCCM window state
25 AtomWM_STATE,
26 AtomWM_CHANGE_STATE,
27 AtomWM_CLASS,
28 AtomWM_NAME,
29
30 // Session management
31 AtomWM_CLIENT_LEADER,
32 AtomWM_WINDOW_ROLE,
33 AtomSM_CLIENT_ID,
34 AtomWM_CLIENT_MACHINE,
35
36 // Clipboard
37 AtomCLIPBOARD,
38 AtomINCR,
39 AtomTARGETS,
40 AtomMULTIPLE,
41 AtomTIMESTAMP,
42 AtomSAVE_TARGETS,
43 AtomCLIP_TEMPORARY,
44 Atom_QT_SELECTION,
45 Atom_QT_CLIPBOARD_SENTINEL,
46 Atom_QT_SELECTION_SENTINEL,
47 AtomCLIPBOARD_MANAGER,
48
49 AtomRESOURCE_MANAGER,
50
51 Atom_XSETROOT_ID,
52
53 Atom_QT_SCROLL_DONE,
54 Atom_QT_INPUT_ENCODING,
55
56 // Qt/XCB specific
57 Atom_QT_CLOSE_CONNECTION,
58
59 Atom_QT_GET_TIMESTAMP,
60
61 Atom_MOTIF_WM_HINTS,
62
63 AtomDTWM_IS_RUNNING,
64 AtomENLIGHTENMENT_DESKTOP,
65 Atom_DT_SAVE_MODE,
66 Atom_SGI_DESKS_MANAGER,
67
68 // EWMH (aka NETWM)
69 Atom_NET_SUPPORTED,
70 Atom_NET_VIRTUAL_ROOTS,
71 Atom_NET_WORKAREA,
72
73 Atom_NET_MOVERESIZE_WINDOW,
74 Atom_NET_WM_MOVERESIZE,
75
76 Atom_NET_WM_NAME,
77 Atom_NET_WM_ICON_NAME,
78 Atom_NET_WM_ICON,
79
80 Atom_NET_WM_PID,
81
82 Atom_NET_WM_WINDOW_OPACITY,
83
84 Atom_NET_WM_STATE,
85 Atom_NET_WM_STATE_ABOVE,
86 Atom_NET_WM_STATE_BELOW,
87 Atom_NET_WM_STATE_FULLSCREEN,
88 Atom_NET_WM_STATE_MAXIMIZED_HORZ,
89 Atom_NET_WM_STATE_MAXIMIZED_VERT,
90 Atom_NET_WM_STATE_MODAL,
91 Atom_NET_WM_STATE_STAYS_ON_TOP,
92 Atom_NET_WM_STATE_DEMANDS_ATTENTION,
93 Atom_NET_WM_STATE_HIDDEN,
94
95 Atom_NET_WM_USER_TIME,
96 Atom_NET_WM_USER_TIME_WINDOW,
97 Atom_NET_WM_FULL_PLACEMENT,
98
99 Atom_NET_WM_WINDOW_TYPE,
100 Atom_NET_WM_WINDOW_TYPE_DESKTOP,
101 Atom_NET_WM_WINDOW_TYPE_DOCK,
102 Atom_NET_WM_WINDOW_TYPE_TOOLBAR,
103 Atom_NET_WM_WINDOW_TYPE_MENU,
104 Atom_NET_WM_WINDOW_TYPE_UTILITY,
105 Atom_NET_WM_WINDOW_TYPE_SPLASH,
106 Atom_NET_WM_WINDOW_TYPE_DIALOG,
107 Atom_NET_WM_WINDOW_TYPE_DROPDOWN_MENU,
108 Atom_NET_WM_WINDOW_TYPE_POPUP_MENU,
109 Atom_NET_WM_WINDOW_TYPE_TOOLTIP,
110 Atom_NET_WM_WINDOW_TYPE_NOTIFICATION,
111 Atom_NET_WM_WINDOW_TYPE_COMBO,
112 Atom_NET_WM_WINDOW_TYPE_DND,
113 Atom_NET_WM_WINDOW_TYPE_NORMAL,
114 Atom_KDE_NET_WM_WINDOW_TYPE_OVERRIDE,
115
116 Atom_KDE_NET_WM_DESKTOP_FILE,
117 Atom_KDE_NET_WM_FRAME_STRUT,
118 Atom_NET_FRAME_EXTENTS,
119
120 Atom_NET_STARTUP_INFO,
121 Atom_NET_STARTUP_INFO_BEGIN,
122 Atom_NET_STARTUP_ID,
123
124 Atom_NET_SUPPORTING_WM_CHECK,
125
126 Atom_NET_WM_CM_S0,
127
128 Atom_NET_SYSTEM_TRAY_VISUAL,
129
130 Atom_NET_ACTIVE_WINDOW,
131
132 // Property formats
133 AtomTEXT,
134 AtomUTF8_STRING,
135 AtomCARDINAL,
136
137 // Xdnd
138 AtomXdndEnter,
139 AtomXdndPosition,
140 AtomXdndStatus,
141 AtomXdndLeave,
142 AtomXdndDrop,
143 AtomXdndFinished,
144 AtomXdndTypelist,
145 AtomXdndActionList,
146
147 AtomXdndSelection,
148
149 AtomXdndAware,
150 AtomXdndProxy,
151
152 AtomXdndActionCopy,
153 AtomXdndActionLink,
154 AtomXdndActionMove,
155 AtomXdndActionAsk,
156 AtomXdndActionPrivate,
157
158 // Xkb
159 Atom_XKB_RULES_NAMES,
160
161 // XEMBED
162 Atom_XEMBED,
163 Atom_XEMBED_INFO,
164
165 // XInput2
166 AtomButtonLeft,
167 AtomButtonMiddle,
168 AtomButtonRight,
169 AtomButtonWheelUp,
170 AtomButtonWheelDown,
171 AtomButtonHorizWheelLeft,
172 AtomButtonHorizWheelRight,
173 AtomAbsMTPositionX,
174 AtomAbsMTPositionY,
175 AtomAbsMTTouchMajor,
176 AtomAbsMTTouchMinor,
177 AtomAbsMTOrientation,
178 AtomAbsMTPressure,
179 AtomAbsMTTrackingID,
180 AtomMaxContacts,
181 AtomRelX,
182 AtomRelY,
183 // XInput2 tablet
184 AtomAbsX,
185 AtomAbsY,
186 AtomAbsPressure,
187 AtomAbsTiltX,
188 AtomAbsTiltY,
189 AtomAbsWheel,
190 AtomAbsDistance,
191 AtomWacomSerialIDs,
192 AtomINTEGER,
193 AtomRelHorizWheel,
194 AtomRelVertWheel,
195 AtomRelHorizScroll,
196 AtomRelVertScroll,
197
198 Atom_XSETTINGS_SETTINGS,
199
200 Atom_COMPIZ_DECOR_PENDING,
201 Atom_COMPIZ_DECOR_REQUEST,
202 Atom_COMPIZ_DECOR_DELETE_PIXMAP,
203 Atom_COMPIZ_TOOLKIT_ACTION,
204 Atom_GTK_APPLICATION_ID,
205 Atom_GTK_LOAD_ICONTHEMES,
206
207 AtomAT_SPI_BUS,
208
209 AtomEDID,
210 AtomEDID_DATA,
211 AtomXFree86_DDC_EDID1_RAWDATA,
212
213 Atom_ICC_PROFILE,
214
215 // AppMenu
216 Atom_KDE_NET_WM_APPMENU_SERVICE_NAME,
217 Atom_KDE_NET_WM_APPMENU_OBJECT_PATH,
218
219 NAtoms
220 };
221
222 QXcbAtom();
223 void initialize(xcb_connection_t *connection);
224
225 inline xcb_atom_t atom(QXcbAtom::Atom atom) const { return m_allAtoms[atom]; }
226 QXcbAtom::Atom qatom(xcb_atom_t atom) const;
227
228protected:
229 void initializeAllAtoms(xcb_connection_t *connection);
230
231private:
232 xcb_atom_t m_allAtoms[QXcbAtom::NAtoms];
233};
\inmodule QtSql
bool(*)(xcb_generic_event_t *event, void *peekerData) PeekerCallback
bool removePeekerId(qint32 peekerId)
qint32 generatePeekerId()
const QXcbEventNode * flushedTail() const
xcb_generic_event_t * peek(PeekOption config, Peeker &&peeker)
bool isEmpty() const
xcb_generic_event_t * takeFirst(QEventLoop::ProcessEventsFlags flags)
xcb_generic_event_t * peek(Peeker &&peeker)
xcb_generic_event_t * takeFirst()
void waitForNewEvents(const QXcbEventNode *sinceFlushedTail, unsigned long time=(std::numeric_limits< unsigned long >::max)())
bool peekEventQueue(PeekerCallback peeker, void *peekerData=nullptr, PeekOptions option=PeekDefault, qint32 peekerId=-1)
bool isForeignWindow() const override
Definition qxcbwindow.h:273
void create() override
Definition qxcbwindow.h:276
QXcbForeignWindow(QWindow *window, WId nativeHandle)
QXcbConnection * connection() const
Definition qxcbobject.h:17
xcb_connection_t * xcb_connection() const
Definition qxcbobject.h:20
xcb_atom_t atom(QXcbAtom::Atom atom) const
Definition qxcbobject.h:19
void setConnection(QXcbConnection *connection)
Definition qxcbobject.h:16
QXcbObject(QXcbConnection *connection=nullptr)
Definition qxcbobject.h:14
QXcbWindow * window() const
QXcbSyncWindowRequest(QXcbWindow *w)
virtual void handleConfigureNotifyEvent(const xcb_configure_notify_event_t *)
virtual void handleUnmapNotifyEvent(const xcb_unmap_notify_event_t *)
virtual void handleXIMouseEvent(xcb_ge_event_t *, Qt::MouseEventSource=Qt::MouseEventNotSynthesized)
virtual void handleButtonPressEvent(const xcb_button_press_event_t *)
virtual void handleEnterNotifyEvent(const xcb_enter_notify_event_t *)
virtual void handleMapNotifyEvent(const xcb_map_notify_event_t *)
virtual void handleClientMessageEvent(const xcb_client_message_event_t *)
virtual void handleDestroyNotifyEvent(const xcb_destroy_notify_event_t *)
virtual void handleXIEnterLeave(xcb_ge_event_t *)
virtual void handleMotionNotifyEvent(const xcb_motion_notify_event_t *)
virtual void handleLeaveNotifyEvent(const xcb_leave_notify_event_t *)
virtual void handleButtonReleaseEvent(const xcb_button_release_event_t *)
virtual void handleExposeEvent(const xcb_expose_event_t *)
virtual void handleFocusOutEvent(const xcb_focus_out_event_t *)
virtual void handleFocusInEvent(const xcb_focus_in_event_t *)
virtual void handlePropertyNotifyEvent(const xcb_property_notify_event_t *)
virtual bool handleNativeEvent(xcb_generic_event_t *)
virtual QXcbWindow * toWindow()
QT_BEGIN_NAMESPACE Q_DECLARE_LOGGING_CATEGORY(lcEventDispatcher)
QHash< xcb_window_t, QXcbWindowEventListener * > WindowMapper
#define Q_XCB_REPLY_CONNECTION_ARG(connection,...)
#define Q_XCB_EXPORT
Definition qxcbexport.h:14
QList< xcb_rectangle_t > qRegionToXcbRectangleList(const QRegion &region)
void operator()(void *p) const noexcept