| /**************************************************************************** |
| ** |
| ** Copyright (C) 2018 The Qt Company Ltd. |
| ** Contact: https://www.qt.io/licensing/ |
| ** |
| ** This file is part of the QtCore module of the Qt Toolkit. |
| ** |
| ** $QT_BEGIN_LICENSE:LGPL$ |
| ** Commercial License Usage |
| ** Licensees holding valid commercial Qt licenses may use this file in |
| ** accordance with the commercial license agreement provided with the |
| ** Software or, alternatively, in accordance with the terms contained in |
| ** a written agreement between you and The Qt Company. For licensing terms |
| ** and conditions see https://www.qt.io/terms-conditions. For further |
| ** information use the contact form at https://www.qt.io/contact-us. |
| ** |
| ** GNU Lesser General Public License Usage |
| ** Alternatively, this file may be used under the terms of the GNU Lesser |
| ** General Public License version 3 as published by the Free Software |
| ** Foundation and appearing in the file LICENSE.LGPL3 included in the |
| ** packaging of this file. Please review the following information to |
| ** ensure the GNU Lesser General Public License version 3 requirements |
| ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. |
| ** |
| ** GNU General Public License Usage |
| ** Alternatively, this file may be used under the terms of the GNU |
| ** General Public License version 2.0 or (at your option) the GNU General |
| ** Public license version 3 or any later version approved by the KDE Free |
| ** Qt Foundation. The licenses are as published by the Free Software |
| ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 |
| ** included in the packaging of this file. Please review the following |
| ** information to ensure the GNU General Public License requirements will |
| ** be met: https://www.gnu.org/licenses/gpl-2.0.html and |
| ** https://www.gnu.org/licenses/gpl-3.0.html. |
| ** |
| ** $QT_END_LICENSE$ |
| ** |
| ****************************************************************************/ |
| #ifndef QXCBATOM_H |
| #define QXCBATOM_H |
| |
| #include <xcb/xcb.h> |
| |
| class QXcbAtom |
| { |
| public: |
| enum Atom { |
| // window-manager <-> client protocols |
| WM_PROTOCOLS, |
| WM_DELETE_WINDOW, |
| WM_TAKE_FOCUS, |
| _NET_WM_PING, |
| _NET_WM_CONTEXT_HELP, |
| _NET_WM_SYNC_REQUEST, |
| _NET_WM_SYNC_REQUEST_COUNTER, |
| MANAGER, // System tray notification |
| _NET_SYSTEM_TRAY_OPCODE, // System tray operation |
| |
| // ICCCM window state |
| WM_STATE, |
| WM_CHANGE_STATE, |
| WM_CLASS, |
| WM_NAME, |
| |
| // Session management |
| WM_CLIENT_LEADER, |
| WM_WINDOW_ROLE, |
| SM_CLIENT_ID, |
| WM_CLIENT_MACHINE, |
| |
| // Clipboard |
| CLIPBOARD, |
| INCR, |
| TARGETS, |
| MULTIPLE, |
| TIMESTAMP, |
| SAVE_TARGETS, |
| CLIP_TEMPORARY, |
| _QT_SELECTION, |
| _QT_CLIPBOARD_SENTINEL, |
| _QT_SELECTION_SENTINEL, |
| CLIPBOARD_MANAGER, |
| |
| RESOURCE_MANAGER, |
| |
| _XSETROOT_ID, |
| |
| _QT_SCROLL_DONE, |
| _QT_INPUT_ENCODING, |
| |
| // Qt/XCB specific |
| _QT_CLOSE_CONNECTION, |
| |
| _MOTIF_WM_HINTS, |
| |
| DTWM_IS_RUNNING, |
| ENLIGHTENMENT_DESKTOP, |
| _DT_SAVE_MODE, |
| _SGI_DESKS_MANAGER, |
| |
| // EWMH (aka NETWM) |
| _NET_SUPPORTED, |
| _NET_VIRTUAL_ROOTS, |
| _NET_WORKAREA, |
| |
| _NET_MOVERESIZE_WINDOW, |
| _NET_WM_MOVERESIZE, |
| |
| _NET_WM_NAME, |
| _NET_WM_ICON_NAME, |
| _NET_WM_ICON, |
| |
| _NET_WM_PID, |
| |
| _NET_WM_WINDOW_OPACITY, |
| |
| _NET_WM_STATE, |
| _NET_WM_STATE_ABOVE, |
| _NET_WM_STATE_BELOW, |
| _NET_WM_STATE_FULLSCREEN, |
| _NET_WM_STATE_MAXIMIZED_HORZ, |
| _NET_WM_STATE_MAXIMIZED_VERT, |
| _NET_WM_STATE_MODAL, |
| _NET_WM_STATE_STAYS_ON_TOP, |
| _NET_WM_STATE_DEMANDS_ATTENTION, |
| _NET_WM_STATE_HIDDEN, |
| |
| _NET_WM_USER_TIME, |
| _NET_WM_USER_TIME_WINDOW, |
| _NET_WM_FULL_PLACEMENT, |
| |
| _NET_WM_WINDOW_TYPE, |
| _NET_WM_WINDOW_TYPE_DESKTOP, |
| _NET_WM_WINDOW_TYPE_DOCK, |
| _NET_WM_WINDOW_TYPE_TOOLBAR, |
| _NET_WM_WINDOW_TYPE_MENU, |
| _NET_WM_WINDOW_TYPE_UTILITY, |
| _NET_WM_WINDOW_TYPE_SPLASH, |
| _NET_WM_WINDOW_TYPE_DIALOG, |
| _NET_WM_WINDOW_TYPE_DROPDOWN_MENU, |
| _NET_WM_WINDOW_TYPE_POPUP_MENU, |
| _NET_WM_WINDOW_TYPE_TOOLTIP, |
| _NET_WM_WINDOW_TYPE_NOTIFICATION, |
| _NET_WM_WINDOW_TYPE_COMBO, |
| _NET_WM_WINDOW_TYPE_DND, |
| _NET_WM_WINDOW_TYPE_NORMAL, |
| _KDE_NET_WM_WINDOW_TYPE_OVERRIDE, |
| |
| _KDE_NET_WM_FRAME_STRUT, |
| _NET_FRAME_EXTENTS, |
| |
| _NET_STARTUP_INFO, |
| _NET_STARTUP_INFO_BEGIN, |
| |
| _NET_SUPPORTING_WM_CHECK, |
| |
| _NET_WM_CM_S0, |
| |
| _NET_SYSTEM_TRAY_VISUAL, |
| |
| _NET_ACTIVE_WINDOW, |
| |
| // Property formats |
| TEXT, |
| UTF8_STRING, |
| CARDINAL, |
| |
| // Xdnd |
| XdndEnter, |
| XdndPosition, |
| XdndStatus, |
| XdndLeave, |
| XdndDrop, |
| XdndFinished, |
| XdndTypelist, |
| XdndActionList, |
| |
| XdndSelection, |
| |
| XdndAware, |
| XdndProxy, |
| |
| XdndActionCopy, |
| XdndActionLink, |
| XdndActionMove, |
| XdndActionAsk, |
| XdndActionPrivate, |
| |
| // Xkb |
| _XKB_RULES_NAMES, |
| |
| // XEMBED |
| _XEMBED, |
| _XEMBED_INFO, |
| |
| // XInput2 |
| ButtonLeft, |
| ButtonMiddle, |
| ButtonRight, |
| ButtonWheelUp, |
| ButtonWheelDown, |
| ButtonHorizWheelLeft, |
| ButtonHorizWheelRight, |
| AbsMTPositionX, |
| AbsMTPositionY, |
| AbsMTTouchMajor, |
| AbsMTTouchMinor, |
| AbsMTOrientation, |
| AbsMTPressure, |
| AbsMTTrackingID, |
| MaxContacts, |
| RelX, |
| RelY, |
| // XInput2 tablet |
| AbsX, |
| AbsY, |
| AbsPressure, |
| AbsTiltX, |
| AbsTiltY, |
| AbsWheel, |
| AbsDistance, |
| WacomSerialIDs, |
| INTEGER, |
| RelHorizWheel, |
| RelVertWheel, |
| RelHorizScroll, |
| RelVertScroll, |
| |
| _XSETTINGS_SETTINGS, |
| |
| _COMPIZ_DECOR_PENDING, |
| _COMPIZ_DECOR_REQUEST, |
| _COMPIZ_DECOR_DELETE_PIXMAP, |
| _COMPIZ_TOOLKIT_ACTION, |
| _GTK_LOAD_ICONTHEMES, |
| |
| AT_SPI_BUS, |
| |
| EDID, |
| EDID_DATA, |
| XFree86_DDC_EDID1_RAWDATA, |
| |
| NAtoms |
| }; |
| |
| QXcbAtom(); |
| void initialize(xcb_connection_t *connection); |
| |
| inline xcb_atom_t atom(QXcbAtom::Atom atom) const { return m_allAtoms[atom]; } |
| QXcbAtom::Atom qatom(xcb_atom_t atom) const; |
| |
| protected: |
| void initializeAllAtoms(xcb_connection_t *connection); |
| |
| private: |
| xcb_atom_t m_allAtoms[QXcbAtom::NAtoms]; |
| }; |
| |
| #endif // QXCBATOM_H |