23 ,
public QNativeInterface::QX11Application
40 ScreenAntialiasingEnabled,
49 QXcbNativeInterface();
51 void *nativeResourceForIntegration(
const QByteArray &resource) override;
52 void *nativeResourceForContext(
const QByteArray &resourceString, QOpenGLContext *context) override;
53 void *nativeResourceForScreen(
const QByteArray &resource, QScreen *screen) override;
54 void *nativeResourceForWindow(
const QByteArray &resourceString, QWindow *window) override;
55 void *nativeResourceForBackingStore(
const QByteArray &resource, QBackingStore *backingStore) override;
57 void *nativeResourceForCursor(
const QByteArray &resource,
const QCursor &cursor) override;
60 NativeResourceForIntegrationFunction nativeResourceFunctionForIntegration(
const QByteArray &resource) override;
61 NativeResourceForContextFunction nativeResourceFunctionForContext(
const QByteArray &resource) override;
62 NativeResourceForScreenFunction nativeResourceFunctionForScreen(
const QByteArray &resource) override;
63 NativeResourceForWindowFunction nativeResourceFunctionForWindow(
const QByteArray &resource) override;
64 NativeResourceForBackingStoreFunction nativeResourceFunctionForBackingStore(
const QByteArray &resource) override;
66 QFunctionPointer platformFunction(
const QByteArray &function)
const override;
68 inline const QByteArray &nativeEventType()
const {
return m_nativeEventType; }
70 void *displayForWindow(QWindow *window);
71 void *connectionForWindow(QWindow *window);
72 void *screenForWindow(QWindow *window);
73 void *appTime(
const QXcbScreen *screen);
74 void *appUserTime(
const QXcbScreen *screen);
75 void *getTimestamp(
const QXcbScreen *screen);
80 Display *display()
const override;
81 xcb_connection_t *connection()
const override;
84 static void setStartupId(
const char *);
85 static void setAppTime(QScreen *screen, xcb_timestamp_t time);
86 static void setAppUserTime(QScreen *screen, xcb_timestamp_t time);
88 static qint32 generatePeekerId();
89 static bool removePeekerId(qint32 peekerId);
90 static bool peekEventQueue(QXcbEventQueue::PeekerCallback peeker,
void *peekerData =
nullptr,
91 QXcbEventQueue::PeekOptions option = QXcbEventQueue::PeekDefault,
92 qint32 peekerId = -1);
94 Q_INVOKABLE QString dumpConnectionNativeWindows(
const QXcbConnection *connection, WId root)
const;
95 Q_INVOKABLE QString dumpNativeWindows(WId root = 0)
const;
97 void addHandler(QXcbNativeInterfaceHandler *handler);
98 void removeHandler(QXcbNativeInterfaceHandler *handler);
100 void systemTrayWindowChanged(QScreen *screen);
103 const QByteArray m_nativeEventType = QByteArrayLiteral(
"xcb_generic_event_t");
105 static QXcbScreen *qPlatformScreenForWindow(QWindow *window);
107 QList<QXcbNativeInterfaceHandler *> m_handlers;
108 NativeResourceForIntegrationFunction handlerNativeResourceFunctionForIntegration(
const QByteArray &resource)
const;
109 NativeResourceForContextFunction handlerNativeResourceFunctionForContext(
const QByteArray &resource)
const;
110 NativeResourceForScreenFunction handlerNativeResourceFunctionForScreen(
const QByteArray &resource)
const;
111 NativeResourceForWindowFunction handlerNativeResourceFunctionForWindow(
const QByteArray &resource)
const;
112 NativeResourceForBackingStoreFunction handlerNativeResourceFunctionForBackingStore(
const QByteArray &resource)
const;
113 QFunctionPointer handlerPlatformFunction(
const QByteArray &function)
const;
114 void *handlerNativeResourceForIntegration(
const QByteArray &resource)
const;
115 void *handlerNativeResourceForContext(
const QByteArray &resource, QOpenGLContext *context)
const;
116 void *handlerNativeResourceForScreen(
const QByteArray &resource, QScreen *screen)
const;
117 void *handlerNativeResourceForWindow(
const QByteArray &resource, QWindow *window)
const;
118 void *handlerNativeResourceForBackingStore(
const QByteArray &resource, QBackingStore *backingStore)
const;