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