void *QXcbNativeInterface::nativeResourceForScreen(const QByteArray &resource, QScreen *screen) { void *result = 0; const QXcbScreen *xcbScreen = static_cast<QXcbScreen *>(screen->handle()); switch (resourceType(resource)) { case Display: #ifdef XCB_USE_XLIB result = xcbScreen->connection()->xlib_display(); #endif break; case AppTime: result = appTime(xcbScreen); break; case AppUserTime: result = appUserTime(xcbScreen); break; case ScreenHintStyle: result = reinterpret_cast<void *>(xcbScreen->hintStyle() + 1); break; case ScreenSubpixelType: result = reinterpret_cast<void *>(xcbScreen->subpixelType() + 1); break; case ScreenAntialiasingEnabled: result = reinterpret_cast<void *>(xcbScreen->antialiasingEnabled() + 1); break; case TrayWindow: if (QXcbSystemTrayTracker *s = systemTrayTracker(screen)) result = (void *)quintptr(s->trayWindow()); break; case GetTimestamp: result = getTimestamp(xcbScreen); break; case NoFontHinting: result = xcbScreen->noFontHinting() ? this : 0; //qboolptr... break; default: break; } return result; }
void *QXcbNativeInterface::nativeResourceForScreen(const QByteArray &resource, QScreen *screen) { const QXcbResourceMap::const_iterator it = qXcbResourceMap()->constFind(resource.toLower()); if (it == qXcbResourceMap()->constEnd() || !screen->handle()) return 0; void *result = 0; const QXcbScreen *xcbScreen = static_cast<QXcbScreen *>(screen->handle()); switch (it.value()) { case Display: #ifdef XCB_USE_XLIB result = xcbScreen->connection()->xlib_display(); #endif break; case AppTime: result = appTime(xcbScreen); break; case AppUserTime: result = appUserTime(xcbScreen); break; default: break; } return result; }