/
quickmozview.h
134 lines (108 loc) · 4.05 KB
/
quickmozview.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* Copyright (c) 2013 - 2019 Jolla Ltd.
* Copyright (c) 2019 Open Mobile Platform LLC.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef QuickMozView_H
#define QuickMozView_H
#include <QMatrix>
#include <QMutex>
#include <QtQuick/QQuickItem>
#include <QtGui/QOpenGLShaderProgram>
#include "qmozview_defined_wrapper.h"
QT_BEGIN_NAMESPACE
class QSGTexture;
QT_END_NAMESPACE
class QMozViewPrivate;
class QMozWindow;
class QMozSecurity;
class QuickMozView : public QQuickItem
{
Q_OBJECT
Q_PROPERTY(bool privateMode READ privateMode WRITE setPrivateMode NOTIFY privateModeChanged FINAL)
Q_PROPERTY(bool active READ active WRITE setActive NOTIFY activeChanged FINAL)
Q_PROPERTY(bool loaded READ loaded NOTIFY loadedChanged FINAL)
Q_PROPERTY(Qt::ScreenOrientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged RESET resetOrientation FINAL)
Q_PROPERTY(qreal viewportWidth READ viewportWidth WRITE setViewportWidth NOTIFY viewportWidthChanged RESET resetViewportWidth)
Q_PROPERTY(qreal viewportHeight READ viewportHeight WRITE setViewportHeight NOTIFY viewportHeightChanged RESET resetViewportHeight)
Q_MOZ_VIEW_PRORERTIES
public:
QuickMozView(QQuickItem *parent = 0);
~QuickMozView();
Q_MOZ_VIEW_PUBLIC_METHODS
void RenderToCurrentContext();
bool privateMode() const;
bool active() const;
void setActive(bool active);
void setPrivateMode(bool);
bool loaded() const;
Qt::ScreenOrientation orientation() const;
void setOrientation(Qt::ScreenOrientation orientation);
void resetOrientation();
qreal viewportWidth() const;
void setViewportWidth(qreal width);
void resetViewportWidth();
qreal viewportHeight() const;
void setViewportHeight(qreal height);
void resetViewportHeight();
private:
void updateGLContextInfo();
public Q_SLOTS:
Q_MOZ_VIEW_PUBLIC_SLOTS
Q_SIGNALS:
void setIsActive(bool);
void privateModeChanged();
void activeChanged();
void loadedChanged();
void followItemGeometryChanged();
void orientationChanged();
void viewportWidthChanged();
void viewportHeightChanged();
Q_MOZ_VIEW_SIGNALS
private Q_SLOTS:
void processViewInitialization();
void SetIsActive(bool aIsActive);
void resumeRendering();
void compositingFinished();
void updateMargins();
// INTERNAL
protected:
void itemChange(ItemChange change, const ItemChangeData &) override;
void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override;
QSGNode *updatePaintNode(QSGNode *node, UpdatePaintNodeData *data) override;
void mouseMoveEvent(QMouseEvent *event) override;
void mousePressEvent(QMouseEvent *event) override;
void mouseReleaseEvent(QMouseEvent *event) override;
QVariant inputMethodQuery(Qt::InputMethodQuery property) const override;
void inputMethodEvent(QInputMethodEvent *event) override;
void keyPressEvent(QKeyEvent *) override;
void keyReleaseEvent(QKeyEvent *) override;
void focusInEvent(QFocusEvent *) override;
void focusOutEvent(QFocusEvent *) override;
void touchEvent(QTouchEvent *) override;
void timerEvent(QTimerEvent *) override;
void componentComplete() override;
void releaseResources() override;
void updatePolish() override;
public Q_SLOTS:
void setInputMethodHints(Qt::InputMethodHints hints);
private Q_SLOTS:
void updateEnabled();
void updateOrientation(Qt::ScreenOrientation orientation);
private:
void updateContentSize(const QSizeF &size);
void prepareMozWindow();
QMozViewPrivate *d;
QSGTexture *mTexture;
friend class QMozViewPrivate;
Qt::ScreenOrientation mOrientation;
bool mExplicitViewportWidth;
bool mExplicitViewportHeight;
bool mExplicitOrientation;
bool mComposited;
bool mFollowItemGeometry;
};
#endif // QuickMozView_H