summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wasm/qwasmwindownonclientarea.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmwindownonclientarea.h')
-rw-r--r--src/plugins/platforms/wasm/qwasmwindownonclientarea.h21
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;