diff options
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmwindownonclientarea.h')
-rw-r--r-- | src/plugins/platforms/wasm/qwasmwindownonclientarea.h | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/plugins/platforms/wasm/qwasmwindownonclientarea.h b/src/plugins/platforms/wasm/qwasmwindownonclientarea.h index 18d1c63f4b..78c77585a0 100644 --- a/src/plugins/platforms/wasm/qwasmwindownonclientarea.h +++ b/src/plugins/platforms/wasm/qwasmwindownonclientarea.h @@ -4,6 +4,7 @@ #ifndef QWASMWINDOWNONCLIENTAREA_H #define QWASMWINDOWNONCLIENTAREA_H +#include <QtCore/qrect.h> #include <QtCore/qtconfigmacros.h> #include <QtCore/qnamespace.h> @@ -33,9 +34,13 @@ public: ~NonClientArea(); void onClientAreaWidthChange(int width); + void propagateSizeHints(); TitleBar *titleBar() const { return m_titleBar.get(); } private: + void updateResizability(); + + emscripten::val m_qtWindowElement; std::unique_ptr<Resizer> m_resizer; std::unique_ptr<TitleBar> m_titleBar; }; @@ -86,6 +91,12 @@ private: Callbacks m_callbacks; }; +struct ResizeConstraints { + QPoint minShrink; + QPoint maxGrow; + int maxGrowTop; +}; + class Resizer { public: @@ -146,6 +157,8 @@ public: Resizer(QWasmWindow *window, emscripten::val parentElement); ~Resizer(); + ResizeConstraints getResizeConstraints(); + private: void onInteraction(); void startResize(Qt::Edges resizeEdges, const PointerEvent &event); @@ -155,7 +168,7 @@ private: struct ResizeData { Qt::Edges edges = Qt::Edges::fromInt(0); - QPoint originInScreenCoords; + QPointF originInScreenCoords; QPoint minShrink; QPoint maxGrow; QRect initialBounds; @@ -176,6 +189,7 @@ public: void setTitle(const QString &title); void setRestoreVisible(bool visible); void setMaximizeVisible(bool visible); + void setCloseVisible(bool visible); void setIcon(std::string_view imageData, std::string_view format); void setWidth(int width); @@ -187,7 +201,7 @@ private: bool onPointerUp(const PointerEvent &event); bool onDoubleClick(); - QPoint clipPointWithScreen(const QPoint &pointInTitleBarCoords) const; + QPointF clipPointWithScreen(const QPointF &pointInTitleBarCoords) const; QWasmWindow *m_window; @@ -200,7 +214,8 @@ private: std::unique_ptr<WebImageButton> m_icon; int m_capturedPointerId = -1; - QPoint m_lastMovePoint; + QPointF m_moveStartPoint; + QPoint m_moveStartWindowPosition; std::unique_ptr<qstdweb::EventCallback> m_mouseDownEvent; std::unique_ptr<qstdweb::EventCallback> m_mouseMoveEvent; |