Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QQnxWindow Class Referenceabstract

The QQnxWindow is the base class of the various classes used as instances of QPlatformWindow in the QNX QPA plugin. More...

#include <qqnxwindow.h>

+ Inheritance diagram for QQnxWindow:
+ Collaboration diagram for QQnxWindow:

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.
 
QPlatformScreenscreen () 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
 
QQnxWindowfindWindow (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 ()
 
- Public Member Functions inherited from QPlatformWindow
 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.
 
QWindowwindow () const
 Returns the window which belongs to the QPlatformWindow.
 
QPlatformWindowparent () const
 Returns the parent platform window (or \nullptr if orphan).
 
virtual QSurfaceFormat format () const override
 Returns the actual surface format of the window.
 
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 setWindowFlags (Qt::WindowFlags flags)
 Requests setting the window flags of this surface to flags.
 
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 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 setMask (const QRegion &region)
 Reimplement to be able to let Qt set the mask of 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
 
- Public Member Functions inherited from QPlatformSurface
virtual ~QPlatformSurface ()
 
QSurfacesurface () const
 

Protected Member Functions

virtual int pixelFormat () const =0
 
virtual void resetBuffers ()=0
 
void initWindow ()
 
- Protected Member Functions inherited from QPlatformWindow
QPlatformScreenscreenForGeometry (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
 
- Protected Attributes inherited from QPlatformWindow
QScopedPointer< QPlatformWindowPrivated_ptr
 

Friends

class QQnxScreen
 

Additional Inherited Members

- Static Public Member Functions inherited from QPlatformWindow
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 Public Member Functions inherited from QPlatformSurface
static bool isRasterSurface (QSurface *surface)
 
- Static Protected Member Functions inherited from QPlatformWindow
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].
 

Detailed Description

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 30 of file qqnxwindow.h.

Constructor & Destructor Documentation

◆ QQnxWindow() [1/2]

QQnxWindow::QQnxWindow ( QWindow * window,
screen_context_t context,
bool needRootWindow )
explicit

Definition at line 112 of file qqnxwindow.cpp.

References Qt::CoverWindow, debug, Qt::Desktop, QScreen::handle(), joinWindowGroup(), m_screenContext, nativeHandle(), ok, QPlatformWindow::parent(), QObject::property(), Q_SCREEN_CHECKERROR, Q_SCREEN_CRITICALERROR, Q_UNLIKELY, qCDebug, QQnxScreen::rootWindow(), QQnxScreen::setRootWindow(), QWindow::size(), QVariant::toInt(), and QPlatformWindow::window().

+ Here is the call graph for this function:

◆ QQnxWindow() [2/2]

QQnxWindow::QQnxWindow ( QWindow * window,
screen_context_t context,
screen_window_t screenWindow )
explicit

Definition at line 234 of file qqnxwindow.cpp.

References QByteArray::constData(), QByteArray::data(), joinWindowGroup(), QObject::property(), qCDebug, QByteArray::resize(), QByteArray::size(), QWindow::size(), and QPlatformWindow::window().

+ Here is the call graph for this function:

◆ ~QQnxWindow()

QQnxWindow::~QQnxWindow ( )
virtual

Definition at line 266 of file qqnxwindow.cpp.

References QQnxIntegration::instance(), Q_ASSERT, qCDebug, QList< T >::size(), QQnxScreen::updateHierarchy(), and QPlatformWindow::window().

+ Here is the call graph for this function:

Member Function Documentation

◆ bufferSize()

QSize QQnxWindow::bufferSize ( ) const
inline

Definition at line 48 of file qqnxwindow.h.

Referenced by QQnxRasterWindow::adjustBufferSize(), QQnxEglWindow::ensureInitialized(), QQnxRasterWindow::hasBuffers(), and QQnxEglWindow::setGeometry().

+ Here is the caller graph for this function:

◆ children()

const QList< QQnxWindow * > & QQnxWindow::children ( ) const
inline

Definition at line 62 of file qqnxwindow.h.

◆ findWindow()

QQnxWindow * QQnxWindow::findWindow ( screen_window_t windowHandle)

Definition at line 720 of file qqnxwindow.cpp.

References Q_FOREACH, and QPlatformWindow::window().

Referenced by requestActivateWindow().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ groupName()

QByteArray QQnxWindow::groupName ( ) const
inline

Definition at line 70 of file qqnxwindow.h.

Referenced by joinWindowGroup(), setParent(), setVisible(), and QQnxScreen::windowGroupName().

+ Here is the caller graph for this function:

◆ handleActivationEvent()

void QQnxWindow::handleActivationEvent ( )

Definition at line 905 of file qqnxwindow.cpp.

References requestActivateWindow().

+ Here is the call graph for this function:

◆ initWindow()

void QQnxWindow::initWindow ( )
protected

Definition at line 747 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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isExposed()

bool QQnxWindow::isExposed ( ) const
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 404 of file qqnxwindow.cpp.

Referenced by setGeometry().

+ Here is the caller graph for this function:

◆ joinWindowGroup()

void QQnxWindow::joinWindowGroup ( const QByteArray & groupName)

Definition at line 813 of file qqnxwindow.cpp.

References groupName(), QByteArray::isEmpty(), m_screenContext, Q_FUNC_INFO, and qCDebug.

Referenced by QQnxWindow(), QQnxWindow(), setParent(), setVisible(), and QQnxNativeInterface::setWindowProperty().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ lower()

void QQnxWindow::lower ( )
overridevirtual

Reimplement to be able to let Qt lower windows to the bottom of the desktop.

Reimplemented from QPlatformWindow.

Definition at line 581 of file qqnxwindow.cpp.

References QQnxScreen::lowerWindow(), QList< T >::push_front(), Q_FUNC_INFO, qCDebug, QList< T >::removeAll(), QQnxScreen::updateHierarchy(), and QPlatformWindow::window().

+ Here is the call graph for this function:

◆ minimize()

void QQnxWindow::minimize ( )

Definition at line 734 of file qqnxwindow.cpp.

References qWarning.

◆ nativeHandle()

screen_window_t QQnxWindow::nativeHandle ( ) const
inline

Definition at line 45 of file qqnxwindow.h.

Referenced by QQnxRasterWindow::QQnxRasterWindow(), QQnxWindow(), QQnxForeignWindow::pixelFormat(), QQnxRasterWindow::post(), QQnxRasterWindow::renderBuffer(), and requestActivateWindow().

+ Here is the caller graph for this function:

◆ pixelFormat()

virtual int QQnxWindow::pixelFormat ( ) const
protectedpure virtual

Implemented in QQnxEglWindow, QQnxForeignWindow, and QQnxRasterWindow.

Referenced by setBufferSize().

+ Here is the caller graph for this function:

◆ propagateSizeHints()

void QQnxWindow::propagateSizeHints ( )
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 709 of file qqnxwindow.cpp.

◆ raise()

void QQnxWindow::raise ( )
overridevirtual

Reimplement to be able to let Qt raise windows to the top of the desktop.

Reimplemented from QPlatformWindow.

Definition at line 567 of file qqnxwindow.cpp.

References QList< T >::push_back(), Q_FUNC_INFO, qCDebug, QQnxScreen::raiseWindow(), QList< T >::removeAll(), QQnxScreen::updateHierarchy(), and QPlatformWindow::window().

+ Here is the call graph for this function:

◆ requestActivateWindow()

void QQnxWindow::requestActivateWindow ( )
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::handleFocusWindowChanged(QWindow *w) would be sufficient.

If the window system has some event handling/callbacks then call QWindowSystemInterface::handleFocusWindowChanged(QWindow *w) when the window system gives the notification.

Default implementation calls QWindowSystem::handleFocusWindowChanged(QWindow *w)

Reimplemented from QPlatformWindow.

Definition at line 595 of file qqnxwindow.cpp.

References findWindow(), QGuiApplication::focusWindow(), i, m_screenContext, nativeHandle(), QPlatformWindow::parent(), QQnxScreen::rootWindow(), and screen().

Referenced by handleActivationEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ resetBuffers()

virtual void QQnxWindow::resetBuffers ( )
protectedpure virtual

Implemented in QQnxEglWindow, QQnxForeignWindow, and QQnxRasterWindow.

Referenced by setBufferSize().

+ Here is the caller graph for this function:

◆ screen()

QPlatformScreen * QQnxWindow::screen ( ) const
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 715 of file qqnxwindow.cpp.

Referenced by QQnxEglWindow::QQnxEglWindow(), QQnxRasterBackingStore::beginPaint(), initWindow(), QQnxRasterWindow::pixelFormat(), QQnxRasterWindow::renderBuffer(), requestActivateWindow(), QQnxEglWindow::setGeometry(), setGeometry(), setParent(), and shouldMakeFullScreen().

+ Here is the caller graph for this function:

◆ setBufferSize()

void QQnxWindow::setBufferSize ( const QSize & size)

Definition at line 409 of file qqnxwindow.cpp.

References QSize::isEmpty(), QSize::isValid(), MAX_BUFFER_COUNT, pixelFormat(), Q_SCREEN_CHECKERROR, Q_SCREEN_CRITICALERROR, Q_UNLIKELY, qCDebug, qFatal, resetBuffers(), and QPlatformWindow::window().

Referenced by QQnxRasterWindow::adjustBufferSize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setExposed()

void QQnxWindow::setExposed ( bool exposed)

Definition at line 394 of file qqnxwindow.cpp.

References QPlatformWindow::geometry(), QWindowSystemInterface::handleExposeEvent(), qCDebug, and QPlatformWindow::window().

Referenced by QQnxScreen::activateWindowGroup(), and QQnxScreen::deactivateWindowGroup().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setGeometry()

void QQnxWindow::setGeometry ( const QRect & rect)
overridevirtual

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 289 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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setOpacity()

void QQnxWindow::setOpacity ( qreal level)
overridevirtual

Reimplement to be able to let Qt set the opacity level of a window.

Reimplemented from QPlatformWindow.

Definition at line 383 of file qqnxwindow.cpp.

References m_screenContext, Q_SCREEN_CHECKERROR, qCDebug, and QPlatformWindow::window().

Referenced by initWindow().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setParent()

void QQnxWindow::setParent ( const QPlatformWindow * parent)
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 535 of file qqnxwindow.cpp.

References QQnxScreen::addWindow(), groupName(), joinWindowGroup(), QList< T >::push_back(), QByteArray(), qCDebug, qWarning, screen(), setScreen(), QQnxScreen::updateHierarchy(), and QPlatformWindow::window().

Referenced by initWindow(), and QQnxRasterWindow::setParent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setRotation()

void QQnxWindow::setRotation ( int rotation)

Definition at line 739 of file qqnxwindow.cpp.

References Q_FUNC_INFO, Q_SCREEN_CHECKERROR, and qCDebug.

Referenced by QQnxScreen::setRotation().

+ Here is the caller graph for this function:

◆ setScreen()

void QQnxWindow::setScreen ( QQnxScreen * platformScreen)

Definition at line 476 of file qqnxwindow.cpp.

References QQnxScreen::addWindow(), QQnxIntegration::instance(), QQnxScreen::nativeDisplay(), Q_FOREACH, Q_SCREEN_CHECKERROR, qCDebug, QQnxScreen::removeWindow(), QQnxIntegration::RootWindow, Qt::SubWindow, Qt::ToolTip, QQnxScreen::updateHierarchy(), and QPlatformWindow::window().

Referenced by QQnxScreen::~QQnxScreen(), initWindow(), QQnxIntegration::moveToScreen(), and setParent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setVisible()

void QQnxWindow::setVisible ( bool visible)
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 332 of file qqnxwindow.cpp.

References Qt::Desktop, QPlatformWindow::geometry(), groupName(), QWindowSystemInterface::handleExposeEvent(), QByteArray::isNull(), joinWindowGroup(), m_screenContext, QPlatformWindow::parent(), Q_SCREEN_CHECKERROR, QByteArray(), qCDebug, QPlatformWindow::window(), and QQnxScreen::windowGroupName().

+ Here is the call graph for this function:

◆ setWindowState()

void QQnxWindow::setWindowState ( Qt::WindowStates state)
overridevirtual

Requests setting the window state of this surface to type.

Qt::WindowActive can be ignored.

Reimplemented from QPlatformWindow.

Definition at line 695 of file qqnxwindow.cpp.

References Q_FUNC_INFO, qCDebug, and state.

Referenced by initWindow().

+ Here is the caller graph for this function:

◆ shouldMakeFullScreen()

bool QQnxWindow::shouldMakeFullScreen ( ) const

Definition at line 898 of file qqnxwindow.cpp.

References QQnxIntegration::FullScreenApplication, QQnxIntegration::instance(), and screen().

Referenced by QQnxEglWindow::QQnxEglWindow(), initWindow(), QQnxEglWindow::setGeometry(), and setGeometry().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ windowPosted()

void QQnxWindow::windowPosted ( )

Definition at line 888 of file qqnxwindow.cpp.

References qqnxLgmonFramePosted(), and QQnxAbstractCover::updateCover().

Referenced by QQnxRasterWindow::post(), and QQnxGLContext::swapBuffers().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ winId()

WId QQnxWindow::winId ( ) const
inlineoverridevirtual

Reimplement in subclasses to return a handle to the native window.

Reimplemented from QPlatformWindow.

Definition at line 44 of file qqnxwindow.h.

References Qt::Desktop, and QPlatformWindow::window().

+ Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ QQnxScreen

friend class QQnxScreen
friend

Definition at line 32 of file qqnxwindow.h.

Member Data Documentation

◆ m_screenContext

screen_context_t QQnxWindow::m_screenContext
protected

The documentation for this class was generated from the following files: