![]() |
Qt 6.x
The Qt SDK
|
The QQnxWindow is the base class of the various classes used as instances of QPlatformWindow in the QNX QPA plugin. More...
#include <qqnxwindow.h>
Public Member Functions | |
QQnxWindow (QWindow *window, screen_context_t context, bool needRootWindow) | |
QQnxWindow (QWindow *window, screen_context_t context, screen_window_t screenWindow) | |
virtual | ~QQnxWindow () |
void | setGeometry (const QRect &rect) override |
This function is called by Qt whenever a window is moved or resized using the QWindow API. | |
void | setVisible (bool visible) override |
Reimplemented in subclasses to show the surface if visible is true , and hide it if visible is false . | |
void | setOpacity (qreal level) override |
Reimplement to be able to let Qt set the opacity level of a window. | |
bool | isExposed () const override |
Returns if this window is exposed in the windowing system. | |
WId | winId () const override |
Reimplement in subclasses to return a handle to the native window. | |
screen_window_t | nativeHandle () const |
void | setBufferSize (const QSize &size) |
QSize | bufferSize () const |
void | setScreen (QQnxScreen *platformScreen) |
void | setParent (const QPlatformWindow *window) override |
This function is called to enable native child window in QPA. | |
void | raise () override |
Reimplement to be able to let Qt raise windows to the top of the desktop. | |
void | lower () override |
Reimplement to be able to let Qt lower windows to the bottom of the desktop. | |
void | requestActivateWindow () override |
Reimplement to let Qt be able to request activation/focus for a window. | |
void | setWindowState (Qt::WindowStates state) override |
Requests setting the window state of this surface to type. | |
void | setExposed (bool exposed) |
void | propagateSizeHints () override |
Reimplement to propagate the size hints of the QWindow. | |
QPlatformScreen * | screen () const override |
Returns the platform screen handle corresponding to this platform window, or null if the window is not associated with a screen. | |
const QList< QQnxWindow * > & | children () const |
QQnxWindow * | findWindow (screen_window_t windowHandle) |
void | minimize () |
void | setRotation (int rotation) |
QByteArray | groupName () const |
void | joinWindowGroup (const QByteArray &groupName) |
bool | shouldMakeFullScreen () const |
void | windowPosted () |
void | handleActivationEvent () |
![]() | |
QPlatformWindow (QWindow *window) | |
Constructs a platform window with the given top level window. | |
~QPlatformWindow () override | |
Virtual destructor does not delete its top level window. | |
virtual void | initialize () |
Called as part of QWindow::create(), after constructing the window. | |
QWindow * | window () const |
Returns the window which belongs to the QPlatformWindow. | |
QPlatformWindow * | parent () const |
Returns the parent platform window (or \nullptr if orphan). | |
QPlatformScreen * | screen () const override |
Returns the platform screen handle corresponding to this platform window, or null if the window is not associated with a screen. | |
virtual QSurfaceFormat | format () const override |
Returns the actual surface format of the window. | |
virtual void | setGeometry (const QRect &rect) |
This function is called by Qt whenever a window is moved or resized using the QWindow API. | |
virtual QRect | geometry () const |
Returns the current geometry of a window. | |
virtual QRect | normalGeometry () const |
Returns the geometry of a window in 'normal' state (neither maximized, fullscreen nor minimized) for saving geometries to application settings. | |
virtual QMargins | frameMargins () const |
virtual QMargins | safeAreaMargins () const |
The safe area margins of a window represent the area that is safe to place content within, without intersecting areas of the screen where system UI is placed, or where a screen bezel may cover the content. | |
virtual void | setVisible (bool visible) |
Reimplemented in subclasses to show the surface if visible is true , and hide it if visible is false . | |
virtual void | setWindowFlags (Qt::WindowFlags flags) |
Requests setting the window flags of this surface to flags. | |
virtual void | setWindowState (Qt::WindowStates state) |
Requests setting the window state of this surface to type. | |
virtual WId | winId () const |
Reimplement in subclasses to return a handle to the native window. | |
virtual void | setParent (const QPlatformWindow *window) |
This function is called to enable native child window in QPA. | |
virtual void | setWindowTitle (const QString &title) |
Reimplement to set the window title to title. | |
virtual void | setWindowFilePath (const QString &title) |
Reimplement to set the window file path to filePath. | |
virtual void | setWindowIcon (const QIcon &icon) |
Reimplement to set the window icon to icon. | |
virtual bool | close () |
Reimplement to let the platform handle non-spontaneous window close. | |
virtual void | raise () |
Reimplement to be able to let Qt raise windows to the top of the desktop. | |
virtual void | lower () |
Reimplement to be able to let Qt lower windows to the bottom of the desktop. | |
virtual bool | isExposed () const |
Returns if this window is exposed in the windowing system. | |
virtual bool | isActive () const |
Returns true if the window should appear active from a style perspective. | |
virtual bool | isAncestorOf (const QPlatformWindow *child) const |
Returns true if the window is an ancestor of the given child. | |
virtual bool | isEmbedded () const |
Returns true if the window is a child of a non-Qt window. | |
virtual bool | isForeignWindow () const |
virtual QPoint | mapToGlobal (const QPoint &pos) const |
Translates the window coordinate pos to global screen coordinates using native methods. | |
QPointF | mapToGlobalF (const QPointF &pos) const |
virtual QPoint | mapFromGlobal (const QPoint &pos) const |
Translates the global screen coordinate pos to window coordinates using native methods. | |
QPointF | mapFromGlobalF (const QPointF &pos) const |
virtual void | propagateSizeHints () |
Reimplement to propagate the size hints of the QWindow. | |
virtual void | setOpacity (qreal level) |
Reimplement to be able to let Qt set the opacity level of a window. | |
virtual void | setMask (const QRegion ®ion) |
Reimplement to be able to let Qt set the mask of a window. | |
virtual void | requestActivateWindow () |
Reimplement to let Qt be able to request activation/focus for a window. | |
virtual void | handleContentOrientationChange (Qt::ScreenOrientation orientation) |
Handle changes to the orientation of the platform window's contents. | |
virtual qreal | devicePixelRatio () const |
Reimplement this function in subclass to return the device pixel ratio for the window. | |
virtual bool | setKeyboardGrabEnabled (bool grab) |
virtual bool | setMouseGrabEnabled (bool grab) |
virtual bool | setWindowModified (bool modified) |
Reimplement to be able to let Qt indicate that the window has been modified. | |
virtual bool | windowEvent (QEvent *event) |
Reimplement this method to be able to do any platform specific event handling. | |
virtual bool | startSystemResize (Qt::Edges edges) |
Reimplement this method to start a system resize operation if the system supports it and return true to indicate success. | |
virtual bool | startSystemMove () |
Reimplement this method to start a system move operation if the system supports it and return true to indicate success. | |
virtual void | setFrameStrutEventsEnabled (bool enabled) |
Reimplement this method to set whether frame strut events should be sent to enabled. | |
virtual bool | frameStrutEventsEnabled () const |
Reimplement this method to return whether frame strut events are enabled. | |
virtual void | setAlertState (bool enabled) |
Reimplement this method to set whether the window demands attention (for example, by flashing the taskbar icon) depending on enabled. | |
virtual bool | isAlertState () const |
Reimplement this method return whether the window is in an alert state. | |
virtual void | invalidateSurface () |
Invalidates the window's surface by releasing its surface buffers. | |
virtual void | requestUpdate () |
Requests an QEvent::UpdateRequest event. | |
bool | hasPendingUpdateRequest () const |
Returns true if the window has a pending update request. | |
virtual void | deliverUpdateRequest () |
Delivers an QEvent::UpdateRequest event to the window. | |
QSize | windowMinimumSize () const |
Returns the QWindow minimum size. | |
QSize | windowMaximumSize () const |
Returns the QWindow maximum size. | |
QSize | windowBaseSize () const |
Returns the QWindow base size. | |
QSize | windowSizeIncrement () const |
Returns the QWindow size increment. | |
QRect | windowGeometry () const |
Returns the QWindow geometry. | |
QRect | windowFrameGeometry () const |
Returns the QWindow frame geometry. | |
QRectF | windowClosestAcceptableGeometry (const QRectF &nativeRect) const |
![]() | |
virtual | ~QPlatformSurface () |
virtual QSurfaceFormat | format () const =0 |
QSurface * | surface () const |
virtual QPlatformScreen * | screen () const =0 |
Protected Member Functions | |
virtual int | pixelFormat () const =0 |
virtual void | resetBuffers ()=0 |
void | initWindow () |
![]() | |
QPlatformScreen * | screenForGeometry (const QRect &newGeometry) const |
Helper function for finding the new screen for newGeometry in response to a geometry changed event. | |
Protected Attributes | |
screen_context_t | m_screenContext |
![]() | |
QScopedPointer< QPlatformWindowPrivate > | d_ptr |
Friends | |
class | QQnxScreen |
Additional Inherited Members | |
![]() | |
static QRect | initialGeometry (const QWindow *w, const QRect &initialGeometry, int defaultWidth, int defaultHeight, const QScreen **resultingScreenReturn=nullptr) |
Helper function to get initial geometry on windowing systems which do not do smart positioning and also do not provide a means of centering a transient window w.r.t. | |
static QRectF | closestAcceptableGeometry (const QWindow *w, const QRectF &nativeRect) |
Returns the closest acceptable geometry for a given geometry before a resize/move event for platforms that support it, for example to implement heightForWidth(). | |
![]() | |
static bool | isRasterSurface (QSurface *surface) |
![]() | |
static QString | formatWindowTitle (const QString &title, const QString &separator) |
Call this method to put together a window title composed of title separator the application display name. | |
static QSize | constrainWindowSize (const QSize &size) |
Returns a size with both dimensions bounded to [0, QWINDOWSIZE_MAX]. | |
The QQnxWindow is the base class of the various classes used as instances of QPlatformWindow in the QNX QPA plugin.
The standard properties and methods available in Qt are not a perfect match for the features provided by the QNX screen service. While for the majority of applications the default behavior suffices, some circumstances require greater control over the interaction with screen.
Definition at line 27 of file qqnxwindow.h.
|
explicit |
Definition at line 114 of file qqnxwindow.cpp.
References QVariant::canConvert(), Qt::CoverWindow, debug, Qt::Desktop, QScreen::handle(), QVariant::isValid(), joinWindowGroup(), m_screenContext, nativeHandle(), ok, QPlatformWindow::parent(), QObject::property(), Q_SCREEN_CHECKERROR, Q_SCREEN_CRITICALERROR, Q_UNLIKELY, qWindowDebug, QQnxScreen::rootWindow(), QQnxScreen::setRootWindow(), QWindow::size(), QVariant::toByteArray(), QVariant::toInt(), and QPlatformWindow::window().
|
explicit |
Definition at line 236 of file qqnxwindow.cpp.
References QVariant::canConvert(), QByteArray::constData(), QByteArray::data(), QVariant::isValid(), joinWindowGroup(), QObject::property(), qWindowDebug, QByteArray::resize(), QByteArray::size(), QWindow::size(), QVariant::toByteArray(), and QPlatformWindow::window().
|
virtual |
Definition at line 268 of file qqnxwindow.cpp.
References QQnxIntegration::instance(), Q_ASSERT, qWindowDebug, QList< T >::size(), QQnxScreen::updateHierarchy(), and QPlatformWindow::window().
|
inline |
Definition at line 45 of file qqnxwindow.h.
Referenced by QQnxRasterWindow::adjustBufferSize(), QQnxEglWindow::ensureInitialized(), QQnxRasterWindow::hasBuffers(), and QQnxEglWindow::setGeometry().
|
inline |
Definition at line 59 of file qqnxwindow.h.
QQnxWindow * QQnxWindow::findWindow | ( | screen_window_t | windowHandle | ) |
Definition at line 722 of file qqnxwindow.cpp.
References Q_FOREACH, and QPlatformWindow::window().
Referenced by requestActivateWindow().
|
inline |
Definition at line 67 of file qqnxwindow.h.
Referenced by joinWindowGroup(), QQnxNativeInterface::nativeResourceForWindow(), setParent(), setVisible(), and QQnxScreen::windowGroupName().
void QQnxWindow::handleActivationEvent | ( | ) |
Definition at line 907 of file qqnxwindow.cpp.
References requestActivateWindow().
|
protected |
Definition at line 749 of file qqnxwindow.cpp.
References Qt::CoverWindow, Qt::Desktop, QPlatformWindow::geometry(), QScreen::handle(), QQnxIntegration::instance(), QPlatformWindow::parent(), Q_SCREEN_CHECKERROR, screen(), setOpacity(), setParent(), setScreen(), setWindowState(), shouldMakeFullScreen(), and QPlatformWindow::window().
Referenced by QQnxEglWindow::QQnxEglWindow(), QQnxForeignWindow::QQnxForeignWindow(), and QQnxRasterWindow::QQnxRasterWindow().
|
overridevirtual |
Returns if this window is exposed in the windowing system.
An exposeEvent() is sent every time this value changes.
Reimplemented from QPlatformWindow.
Definition at line 406 of file qqnxwindow.cpp.
Referenced by setGeometry().
void QQnxWindow::joinWindowGroup | ( | const QByteArray & | groupName | ) |
Definition at line 815 of file qqnxwindow.cpp.
References groupName(), QByteArray::isEmpty(), m_screenContext, and qWindowDebug.
Referenced by QQnxWindow(), QQnxWindow(), setParent(), setVisible(), and QQnxNativeInterface::setWindowProperty().
|
overridevirtual |
Reimplement to be able to let Qt lower windows to the bottom of the desktop.
Reimplemented from QPlatformWindow.
Definition at line 583 of file qqnxwindow.cpp.
References QQnxScreen::lowerWindow(), QList< T >::push_front(), qWindowDebug, QList< T >::removeAll(), QQnxScreen::updateHierarchy(), and QPlatformWindow::window().
void QQnxWindow::minimize | ( | ) |
Definition at line 736 of file qqnxwindow.cpp.
References qWarning.
|
inline |
Definition at line 42 of file qqnxwindow.h.
Referenced by QQnxRasterWindow::QQnxRasterWindow(), QQnxWindow(), QQnxForeignWindow::pixelFormat(), QQnxRasterWindow::post(), QQnxRasterWindow::renderBuffer(), and requestActivateWindow().
|
protectedpure virtual |
Implemented in QQnxEglWindow, QQnxForeignWindow, and QQnxRasterWindow.
Referenced by setBufferSize().
|
overridevirtual |
Reimplement to propagate the size hints of the QWindow.
The size hints include QWindow::minimumSize(), QWindow::maximumSize(), QWindow::sizeIncrement(), and QWindow::baseSize().
Reimplemented from QPlatformWindow.
Definition at line 711 of file qqnxwindow.cpp.
References qWindowDebug.
|
overridevirtual |
Reimplement to be able to let Qt raise windows to the top of the desktop.
Reimplemented from QPlatformWindow.
Definition at line 569 of file qqnxwindow.cpp.
References QList< T >::push_back(), qWindowDebug, QQnxScreen::raiseWindow(), QList< T >::removeAll(), QQnxScreen::updateHierarchy(), and QPlatformWindow::window().
|
overridevirtual |
Reimplement to let Qt be able to request activation/focus for a window.
Some window systems will probably not have callbacks for this functionality, and then calling QWindowSystemInterface::handleWindowActivated(QWindow *w) would be sufficient.
If the window system has some event handling/callbacks then call QWindowSystemInterface::handleWindowActivated(QWindow *w) when the window system gives the notification.
Default implementation calls QWindowSystem::handleWindowActivated(QWindow *w)
Reimplemented from QPlatformWindow.
Definition at line 597 of file qqnxwindow.cpp.
References QList< T >::at(), QList< T >::constLast(), findWindow(), QGuiApplication::focusWindow(), i, QList< T >::last(), m_screenContext, nativeHandle(), QPlatformWindow::parent(), QList< T >::prepend(), QQnxScreen::rootWindow(), screen(), and QList< T >::size().
Referenced by handleActivationEvent().
|
protectedpure virtual |
Implemented in QQnxEglWindow, QQnxForeignWindow, and QQnxRasterWindow.
Referenced by setBufferSize().
|
overridevirtual |
Returns the platform screen handle corresponding to this platform window, or null if the window is not associated with a screen.
Reimplemented from QPlatformWindow.
Definition at line 717 of file qqnxwindow.cpp.
Referenced by QQnxEglWindow::QQnxEglWindow(), QQnxRasterBackingStore::beginPaint(), initWindow(), QQnxRasterWindow::pixelFormat(), QQnxRasterWindow::renderBuffer(), requestActivateWindow(), QQnxEglWindow::setGeometry(), setGeometry(), setParent(), and shouldMakeFullScreen().
Definition at line 411 of file qqnxwindow.cpp.
References QSize::height(), QSize::isEmpty(), QSize::isValid(), MAX_BUFFER_COUNT, pixelFormat(), Q_SCREEN_CHECKERROR, Q_SCREEN_CRITICALERROR, Q_UNLIKELY, qFatal, qWindowDebug, resetBuffers(), QSize::width(), and QPlatformWindow::window().
Referenced by QQnxRasterWindow::adjustBufferSize().
void QQnxWindow::setExposed | ( | bool | exposed | ) |
Definition at line 396 of file qqnxwindow.cpp.
References QPlatformWindow::geometry(), QWindowSystemInterface::handleExposeEvent(), qWindowDebug, and QPlatformWindow::window().
Referenced by QQnxScreen::activateWindowGroup(), and QQnxScreen::deactivateWindowGroup().
This function is called by Qt whenever a window is moved or resized using the QWindow API.
Unless you also override QPlatformWindow::geometry(), you need to call the baseclass implementation of this function in any override of QPlatformWindow::setGeometry(), as QWindow::geometry() is expected to report back the set geometry until a confirmation (or rejection) of the new geometry comes back from the window manager and is reported via QWindowSystemInterface::handleGeometryChange().
Window move/resizes can also be triggered spontaneously by the window manager, or as a response to an earlier requested move/resize via the Qt APIs. There is no need to call this function from the window manager callback, instead call QWindowSystemInterface::handleGeometryChange().
The position(x, y) part of the rect might be inclusive or exclusive of the window frame as returned by frameMargins(). You can detect this in the plugin by checking qt_window_private(window())->positionPolicy.
Reimplemented from QPlatformWindow.
Definition at line 291 of file qqnxwindow.cpp.
References Qt::Desktop, QPlatformScreen::geometry(), QWindowSystemInterface::handleExposeEvent(), isExposed(), rect, screen(), shouldMakeFullScreen(), QRect::size(), and QPlatformWindow::window().
Referenced by QQnxEglWindow::setGeometry(), and QQnxScreen::setRotation().
Reimplement to be able to let Qt set the opacity level of a window.
Reimplemented from QPlatformWindow.
Definition at line 385 of file qqnxwindow.cpp.
References m_screenContext, Q_SCREEN_CHECKERROR, qWindowDebug, and QPlatformWindow::window().
Referenced by initWindow().
|
overridevirtual |
This function is called to enable native child window in QPA.
It is common not to support this feature in Window systems, but can be faked. When this function is called all geometry of this platform window will be relative to the parent.
Reimplemented from QPlatformWindow.
Definition at line 537 of file qqnxwindow.cpp.
References QQnxScreen::addWindow(), groupName(), joinWindowGroup(), QList< T >::push_back(), qWarning, qWindowDebug, screen(), setScreen(), QQnxScreen::updateHierarchy(), and QPlatformWindow::window().
Referenced by initWindow(), and QQnxRasterWindow::setParent().
void QQnxWindow::setRotation | ( | int | rotation | ) |
Definition at line 741 of file qqnxwindow.cpp.
References Q_SCREEN_CHECKERROR, and qWindowDebug.
Referenced by QQnxScreen::setRotation().
void QQnxWindow::setScreen | ( | QQnxScreen * | platformScreen | ) |
Definition at line 478 of file qqnxwindow.cpp.
References QQnxScreen::addWindow(), QQnxIntegration::instance(), QQnxScreen::nativeDisplay(), Q_FOREACH, Q_SCREEN_CHECKERROR, qWindowDebug, QQnxScreen::removeWindow(), QQnxIntegration::RootWindow, setScreen(), Qt::SubWindow, Qt::ToolTip, QQnxScreen::updateHierarchy(), and QPlatformWindow::window().
Referenced by QQnxScreen::~QQnxScreen(), initWindow(), QQnxIntegration::moveToScreen(), setParent(), and setScreen().
|
overridevirtual |
Reimplemented in subclasses to show the surface if visible is true
, and hide it if visible is false
.
The default implementation sends a synchronous expose event.
Reimplemented from QPlatformWindow.
Definition at line 334 of file qqnxwindow.cpp.
References Qt::Desktop, QPlatformWindow::geometry(), groupName(), QWindowSystemInterface::handleExposeEvent(), QByteArray::isNull(), joinWindowGroup(), m_screenContext, QPlatformWindow::parent(), Q_SCREEN_CHECKERROR, qWindowDebug, QPlatformWindow::window(), and QQnxScreen::windowGroupName().
|
overridevirtual |
Requests setting the window state of this surface to type.
Qt::WindowActive can be ignored.
Reimplemented from QPlatformWindow.
Definition at line 697 of file qqnxwindow.cpp.
References qWindowDebug, and state.
Referenced by initWindow().
bool QQnxWindow::shouldMakeFullScreen | ( | ) | const |
Definition at line 900 of file qqnxwindow.cpp.
References QQnxIntegration::FullScreenApplication, QQnxIntegration::instance(), and screen().
Referenced by QQnxEglWindow::QQnxEglWindow(), initWindow(), QQnxEglWindow::setGeometry(), and setGeometry().
void QQnxWindow::windowPosted | ( | ) |
Definition at line 890 of file qqnxwindow.cpp.
References qqnxLgmonFramePosted(), and QQnxAbstractCover::updateCover().
Referenced by QQnxRasterWindow::post(), and QQnxGLContext::swapBuffers().
|
inlineoverridevirtual |
Reimplement in subclasses to return a handle to the native window.
Reimplemented from QPlatformWindow.
Definition at line 41 of file qqnxwindow.h.
References Qt::Desktop, and QPlatformWindow::window().
|
friend |
Definition at line 29 of file qqnxwindow.h.
|
protected |
Definition at line 81 of file qqnxwindow.h.
Referenced by QQnxWindow(), QQnxRasterWindow::blitPreviousToCurrent(), joinWindowGroup(), requestActivateWindow(), setOpacity(), and setVisible().