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>.
|
#include <qwasmwindow.h>
Public Member Functions | |
QWasmWindow (QWindow *w, QWasmDeadKeySupport *deadKeySupport, QWasmCompositor *compositor, QWasmBackingStore *backingStore) | |
~QWasmWindow () final | |
QSurfaceFormat | format () const override |
Returns the actual surface format of the window. | |
void | paint () |
void | setZOrder (int order) |
void | setWindowCursor (QByteArray cssCursorName) |
void | onActivationChanged (bool active) |
bool | isVisible () const |
void | onNonClientAreaInteraction () |
void | onRestoreClicked () |
void | onMaximizeClicked () |
void | onToggleMaximized () |
void | onCloseClicked () |
bool | onNonClientEvent (const PointerEvent &event) |
void | initialize () override |
Called as part of QWindow::create(), after constructing the window. | |
void | setGeometry (const QRect &) 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 . | |
QMargins | frameMargins () const override |
WId | winId () const override |
Reimplement in subclasses to return a handle to the native window. | |
void | propagateSizeHints () override |
Reimplement to propagate the size hints of the QWindow. | |
void | setOpacity (qreal level) override |
Reimplement to be able to let Qt set the opacity level of a window. | |
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. | |
QRect | normalGeometry () const override |
Returns the geometry of a window in 'normal' state (neither maximized, fullscreen nor minimized) for saving geometries to application settings. | |
qreal | devicePixelRatio () const override |
Reimplement this function in subclass to return the device pixel ratio for the window. | |
void | requestUpdate () override |
Requests an QEvent::UpdateRequest event. | |
void | requestActivateWindow () override |
Reimplement to let Qt be able to request activation/focus for a window. | |
void | setWindowFlags (Qt::WindowFlags flags) override |
Requests setting the window flags of this surface to flags. | |
void | setWindowState (Qt::WindowStates state) override |
Requests setting the window state of this surface to type. | |
void | setWindowTitle (const QString &title) override |
Reimplement to set the window title to title. | |
void | setWindowIcon (const QIcon &icon) override |
Reimplement to set the window icon to icon. | |
bool | setKeyboardGrabEnabled (bool) override |
bool | setMouseGrabEnabled (bool grab) final |
bool | windowEvent (QEvent *event) final |
Reimplement this method to be able to do any platform specific event handling. | |
void | setMask (const QRegion ®ion) final |
Reimplement to be able to let Qt set the mask of a window. | |
void | setParent (const QPlatformWindow *window) final |
This function is called to enable native child window in QPA. | |
QWasmScreen * | platformScreen () const |
void | setBackingStore (QWasmBackingStore *store) |
QWasmBackingStore * | backingStore () const |
QWindow * | window () const |
std::string | canvasSelector () const |
emscripten::val | context2d () const |
emscripten::val | a11yContainer () const |
emscripten::val | inputHandlerElement () const |
emscripten::val | document () const override |
emscripten::val | clientArea () const override |
emscripten::val | containerElement () final |
QWasmWindowTreeNode * | parentNode () final |
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. | |
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 QRect | geometry () const |
Returns the current geometry of a window. | |
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 | setWindowFilePath (const QString &title) |
Reimplement to set the window file path to filePath. | |
virtual bool | close () |
Reimplement to let the platform handle non-spontaneous window close. | |
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 | handleContentOrientationChange (Qt::ScreenOrientation orientation) |
Handle changes to the orientation of the platform window's contents. | |
virtual bool | setWindowModified (bool modified) |
Reimplement to be able to let Qt indicate that the window has been modified. | |
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. | |
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 () |
QSurface * | surface () const |
Public Member Functions inherited from QWasmWindowTreeNode | |
QWasmWindowTreeNode () | |
virtual | ~QWasmWindowTreeNode () |
Static Public Member Functions | |
static QWasmWindow * | fromWindow (QWindow *window) |
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) |
Private Member Functions | |
QWasmWindow * | asWasmWindow () final |
void | onParentChanged (QWasmWindowTreeNode *previous, QWasmWindowTreeNode *current, QWasmWindowStack::PositionPreference positionPreference) final |
Friends | |
class | QWasmScreen |
class | QWasmCompositor |
class | QWasmEventTranslator |
Additional Inherited Members | |
Protected Member Functions inherited from QPlatformWindow | |
QPlatformScreen * | screenForGeometry (const QRect &newGeometry) const |
Helper function for finding the new screen for newGeometry in response to a geometry changed event. | |
Protected Member Functions inherited from QWasmWindowTreeNode | |
virtual void | onSubtreeChanged (QWasmWindowTreeNodeChangeType changeType, QWasmWindowTreeNode *parent, QWasmWindow *child) |
virtual void | setWindowZOrder (QWasmWindow *window, int z) |
void | onPositionPreferenceChanged (QWasmWindowStack::PositionPreference positionPreference) |
void | setAsActiveNode () |
void | bringToTop () |
void | sendToBottom () |
const QWasmWindowStack & | childStack () const |
QWasmWindow * | activeChild () const |
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]. | |
Protected Attributes inherited from QPlatformWindow | |
QScopedPointer< QPlatformWindowPrivate > | d_ptr |
Definition at line 38 of file qwasmwindow.h.
QWasmWindow::QWasmWindow | ( | QWindow * | w, |
QWasmDeadKeySupport * | deadKeySupport, | ||
QWasmCompositor * | compositor, | ||
QWasmBackingStore * | backingStore ) |
Definition at line 49 of file qwasmwindow.cpp.
References canvasSelector(), compositor, QWindow::flags, PointerEvent::fromWeb(), WheelEvent::fromWeb(), KeyEvent::fromWebWithDeadKeyTranslation(), QWasmIntegration::get(), QWasmClipboard::installEventHandlers(), QWasmInputContext::m_inputElement, QSurface::OpenGLSurface, QPlatformWindow::parent(), setParent(), title, and window().
|
final |
Definition at line 148 of file qwasmwindow.cpp.
References canvasSelector(), and window().
|
inline |
Definition at line 95 of file qwasmwindow.h.
|
finalprivatevirtual |
Reimplemented from QWasmWindowTreeNode.
Definition at line 686 of file qwasmwindow.cpp.
|
inline |
Definition at line 89 of file qwasmwindow.h.
std::string QWasmWindow::canvasSelector | ( | ) | const |
Definition at line 669 of file qwasmwindow.cpp.
Referenced by QWasmWindow(), and ~QWasmWindow().
|
inlineoverride |
Definition at line 100 of file qwasmwindow.h.
|
finalvirtual |
Implements QWasmWindowTreeNode.
Definition at line 674 of file qwasmwindow.cpp.
Referenced by setGeometry().
|
inline |
Definition at line 94 of file qwasmwindow.h.
|
overridevirtual |
Reimplement this function in subclass to return the device pixel ratio for the window.
This is the ratio between physical pixels and device-independent pixels.
Reimplemented from QPlatformWindow.
Definition at line 563 of file qwasmwindow.cpp.
References QPlatformScreen::devicePixelRatio(), and QPlatformWindow::screen().
Referenced by setGeometry().
|
inlineoverride |
Definition at line 99 of file qwasmwindow.h.
|
overridevirtual |
Returns the actual surface format of the window.
Reimplemented from QPlatformWindow.
Definition at line 161 of file qwasmwindow.cpp.
References window().
|
overridevirtual |
Reimplemented from QPlatformWindow.
Definition at line 344 of file qwasmwindow.cpp.
References QMarginsF::toMargins().
Referenced by setGeometry().
|
static |
Definition at line 166 of file qwasmwindow.cpp.
References window().
Referenced by QWasmDrag::onNativeDrop().
|
overridevirtual |
Called as part of QWindow::create(), after constructing the window.
Platforms should prefer to do initialization here instead of in the constructor, as the platform window object will be fully constructed, and associated to the corresponding QWindow, allowing synchronous event delivery.
Reimplemented from QPlatformWindow.
Definition at line 209 of file qwasmwindow.cpp.
References icon, QPlatformWindow::initialGeometry(), QPlatformWindow::setGeometry(), setMask(), setWindowFlags(), setWindowIcon(), setWindowState(), setWindowTitle(), title, QHighDpi::toNativeLocalRegion(), window(), and QPlatformWindow::windowGeometry().
|
inline |
Definition at line 96 of file qwasmwindow.h.
bool QWasmWindow::isVisible | ( | ) | const |
Definition at line 339 of file qwasmwindow.cpp.
References window().
Referenced by paint().
|
overridevirtual |
Reimplement to be able to let Qt lower windows to the bottom of the desktop.
Reimplemented from QPlatformWindow.
Definition at line 364 of file qwasmwindow.cpp.
References QWasmWindowTreeNode::sendToBottom().
|
overridevirtual |
Returns the geometry of a window in 'normal' state (neither maximized, fullscreen nor minimized) for saving geometries to application settings.
Reimplemented from QPlatformWindow.
Definition at line 558 of file qwasmwindow.cpp.
void QWasmWindow::onActivationChanged | ( | bool | active | ) |
Definition at line 392 of file qwasmwindow.cpp.
References dom::syncCSSClassWith().
void QWasmWindow::onCloseClicked | ( | ) |
Definition at line 187 of file qwasmwindow.cpp.
References QWindow::close(), and window().
Referenced by TitleBar::TitleBar().
void QWasmWindow::onMaximizeClicked | ( | ) |
Definition at line 176 of file qwasmwindow.cpp.
References window(), and Qt::WindowMaximized.
Referenced by TitleBar::TitleBar().
void QWasmWindow::onNonClientAreaInteraction | ( | ) |
Definition at line 192 of file qwasmwindow.cpp.
References QGuiApplicationPrivate::instance(), and requestActivateWindow().
Referenced by TitleBar::TitleBar().
bool QWasmWindow::onNonClientEvent | ( | const PointerEvent & | event | ) |
Definition at line 198 of file qwasmwindow.cpp.
References QWasmIntegration::getTimestamp(), QWindowSystemInterface::handleMouseEvent(), QPlatformWindow::mapFromGlobal(), QWasmScreen::mapFromLocal(), dom::mapPoint(), MouseEvent::mouseEventTypeFromEventType(), NonClient, platformScreen(), and window().
|
finalprivatevirtual |
Reimplemented from QWasmWindowTreeNode.
Definition at line 691 of file qwasmwindow.cpp.
References QWasmWindowTreeNode::containerElement(), and QWasmWindowTreeNode::onParentChanged().
void QWasmWindow::onRestoreClicked | ( | ) |
Definition at line 171 of file qwasmwindow.cpp.
References window(), and Qt::WindowNoState.
Referenced by TitleBar::TitleBar().
void QWasmWindow::onToggleMaximized | ( | ) |
Definition at line 181 of file qwasmwindow.cpp.
References window(), Qt::WindowMaximized, and Qt::WindowNoState.
void QWasmWindow::paint | ( | ) |
Definition at line 237 of file qwasmwindow.cpp.
References QWasmBackingStore::getUpdatedWebImage(), and isVisible().
|
finalvirtual |
Implements QWasmWindowTreeNode.
Definition at line 679 of file qwasmwindow.cpp.
References QPlatformWindow::parent(), and platformScreen().
Referenced by Resizer::getResizeConstraints(), setGeometry(), and setParent().
QWasmScreen * QWasmWindow::platformScreen | ( | ) | const |
Definition at line 232 of file qwasmwindow.cpp.
References QScreen::handle(), and window().
Referenced by onNonClientEvent(), parentNode(), and setGeometry().
|
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 375 of file qwasmwindow.cpp.
References setGeometry(), and QPlatformWindow::windowGeometry().
|
overridevirtual |
Reimplement to be able to let Qt raise windows to the top of the desktop.
Reimplemented from QPlatformWindow.
Definition at line 356 of file qwasmwindow.cpp.
References QWasmWindowTreeNode::bringToTop(), and QWasmIntegration::get().
Referenced by 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 607 of file qwasmwindow.cpp.
References QWasmIntegration::get(), QGuiApplicationPrivate::instance(), raise(), QPlatformWindow::requestActivateWindow(), requestActivateWindow(), QWasmWindowTreeNode::setAsActiveNode(), and window().
Referenced by onNonClientAreaInteraction(), QWasmWindowTreeNode::onSubtreeChanged(), and requestActivateWindow().
|
overridevirtual |
Requests an QEvent::UpdateRequest event.
The event will be delivered to the QWindow.
QPlatformWindow subclasses can re-implement this function to provide display refresh synchronized updates. The event should be delivered using QPlatformWindow::deliverUpdateRequest() to not get out of sync with the internal state of QWindow.
The default implementation posts an UpdateRequest event to the window after an interval that is at most 5 ms. If the window's associated screen reports a \l{QPlatformScreen::refreshRate()}{refresh rate} higher than 60 Hz, the interval is scaled down to a valid smaller than 5. The additional time is there to give the event loop a bit of idle time to gather system events.
Reimplemented from QPlatformWindow.
Definition at line 568 of file qwasmwindow.cpp.
References QWasmCompositor::requestUpdateWindow(), and QWasmCompositor::UpdateRequestDelivery.
|
inline |
Definition at line 88 of file qwasmwindow.h.
Referenced by QWasmBackingStore::QWasmBackingStore(), and QWasmBackingStore::~QWasmBackingStore().
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 258 of file qwasmwindow.cpp.
References QPlatformScreen::availableGeometry(), containerElement(), devicePixelRatio(), frameMargins(), QPlatformScreen::geometry(), QWasmScreen::geometry(), QWindowSystemInterface::handleGeometryChange(), QSizeF::height(), QPlatformWindow::parent(), parentNode(), platformScreen(), rect, QWasmCompositor::requestUpdateWindow(), QPlatformWindow::screen(), QRect::size(), QSizeF::width(), window(), Qt::WindowFullScreen, Qt::WindowMaximized, QPlatformWindow::windowMaximumSize(), and QPlatformWindow::windowMinimumSize().
Referenced by propagateSizeHints().
|
inlineoverridevirtual |
Reimplemented from QPlatformWindow.
Definition at line 81 of file qwasmwindow.h.
Reimplement to be able to let Qt set the mask of a window.
Reimplemented from QPlatformWindow.
Definition at line 644 of file qwasmwindow.cpp.
References QRegion::isEmpty(), and rect.
Referenced by initialize().
|
finalvirtual |
Reimplemented from QPlatformWindow.
Definition at line 624 of file qwasmwindow.cpp.
References Q_UNUSED.
Reimplement to be able to let Qt set the opacity level of a window.
Reimplemented from QPlatformWindow.
Definition at line 382 of file qwasmwindow.cpp.
References qBound().
|
finalvirtual |
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 664 of file qwasmwindow.cpp.
References parentNode().
Referenced by QWasmWindow().
|
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 324 of file qwasmwindow.cpp.
References QWasmCompositor::ExposeEventDelivery, QWasmCompositor::requestUpdateWindow(), and window().
void QWasmWindow::setWindowCursor | ( | QByteArray | cssCursorName | ) |
Definition at line 253 of file qwasmwindow.cpp.
|
overridevirtual |
Requests setting the window flags of this surface to flags.
Reimplemented from QPlatformWindow.
Definition at line 397 of file qwasmwindow.cpp.
References QWasmWindowTreeNode::onPositionPreferenceChanged(), dom::syncCSSClassWith(), Qt::WindowCloseButtonHint, Qt::WindowStaysOnBottomHint, Qt::WindowStaysOnTopHint, and Qt::WindowTransparentForInput.
Referenced by initialize().
Reimplement to set the window icon to icon.
Reimplemented from QPlatformWindow.
Definition at line 445 of file qwasmwindow.cpp.
References QPlatformScreen::devicePixelRatio(), Base64IconStore::get(), icon, QIcon::pixmap(), pixmap, Base64IconStore::QtLogo, QPlatformWindow::screen(), QByteArray::toBase64(), and QByteArray::toStdString().
Referenced by initialize().
|
overridevirtual |
Requests setting the window state of this surface to type.
Qt::WindowActive can be ignored.
Reimplemented from QPlatformWindow.
Definition at line 416 of file qwasmwindow.cpp.
References newState(), QPlatformWindow::parent(), qWarning, window(), Qt::WindowActive, and Qt::WindowMinimized.
Referenced by initialize().
Reimplement to set the window title to title.
The implementation might want to append the application display name to the window title, like Windows and Linux do.
Reimplemented from QPlatformWindow.
Definition at line 440 of file qwasmwindow.cpp.
References title.
Referenced by initialize().
void QWasmWindow::setZOrder | ( | int | order | ) |
Definition at line 248 of file qwasmwindow.cpp.
|
inline |
Definition at line 90 of file qwasmwindow.h.
Referenced by ClientArea::ClientArea(), QWasmWindow(), ~QWasmWindow(), format(), fromWindow(), Resizer::getResizeConstraints(), initialize(), isVisible(), onCloseClicked(), onMaximizeClicked(), onNonClientEvent(), onRestoreClicked(), QWasmWindowTreeNode::onSubtreeChanged(), onToggleMaximized(), platformScreen(), requestActivateWindow(), setGeometry(), setVisible(), setWindowState(), and QWasmScreen::topWindow().
|
finalvirtual |
Reimplement this method to be able to do any platform specific event handling.
All non-synthetic events for window() are passed to this function before being sent to QWindow::event().
Return true if the event should not be passed on to the QWindow.
Subclasses should always call the base class implementation.
Reimplemented from QPlatformWindow.
Definition at line 630 of file qwasmwindow.cpp.
References QEvent::WindowBlocked, QPlatformWindow::windowEvent(), and QEvent::WindowUnblocked.
|
overridevirtual |
Reimplement in subclasses to return a handle to the native window.
Reimplemented from QPlatformWindow.
Definition at line 370 of file qwasmwindow.cpp.
|
friend |
Definition at line 169 of file qwasmwindow.h.
|
friend |
Definition at line 170 of file qwasmwindow.h.
|
friend |
Definition at line 107 of file qwasmwindow.h.