Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qquicklabsplatformmenu_p.h
Go to the documentation of this file.
1// Copyright (C) 2020 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QQUICKLABSPLATFORMMENU_P_H
5#define QQUICKLABSPLATFORMMENU_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtCore/qobject.h>
19#include <QtCore/qurl.h>
20#include <QtGui/qfont.h>
21#include <QtGui/qpa/qplatformmenu.h>
22#include <QtQml/qqmlparserstatus.h>
23#include <QtQml/qqmllist.h>
24#include <QtQml/qqml.h>
25
27
29
30class QIcon;
31class QWindow;
32class QQuickItem;
33class QPlatformMenu;
34class QQmlV4Function;
39
41{
50#if QT_CONFIG(systemtrayicon)
51 Q_PROPERTY(QQuickLabsPlatformSystemTrayIcon *systemTrayIcon READ systemTrayIcon NOTIFY systemTrayIconChanged FINAL)
52#endif
54 Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged FINAL)
55 Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged FINAL)
58 Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged FINAL)
59 Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged FINAL)
60 Q_PROPERTY(QQuickLabsPlatformIcon icon READ icon WRITE setIcon NOTIFY iconChanged FINAL REVISION(1, 1))
61 Q_CLASSINFO("DefaultProperty", "data")
62
63public:
64 explicit QQuickLabsPlatformMenu(QObject *parent = nullptr);
66
67 QPlatformMenu *handle() const;
69 void destroy();
70 void sync();
71
74
77
80
81#if QT_CONFIG(systemtrayicon)
82 QQuickLabsPlatformSystemTrayIcon *systemTrayIcon() const;
83 void setSystemTrayIcon(QQuickLabsPlatformSystemTrayIcon *icon);
84#endif
85
87
88 bool isEnabled() const;
89 void setEnabled(bool enabled);
90
91 bool isVisible() const;
92 void setVisible(bool visible);
93
94 int minimumWidth() const;
95 void setMinimumWidth(int width);
96
99
100 QString title() const;
101 void setTitle(const QString &title);
102
103 QFont font() const;
104 void setFont(const QFont &font);
105
108
112
116
117 Q_INVOKABLE void clear();
118
119public Q_SLOTS:
120 void open(QQmlV4Function *args);
121 void close();
122
126
137 Q_REVISION(2, 1) void iconChanged();
138
139protected:
140 void classBegin() override;
141 void componentComplete() override;
142
144
146
147 static void data_append(QQmlListProperty<QObject> *property, QObject *object);
151
156
158 void updateIcon();
159
160private:
161 void unparentSubmenus();
162
163 bool m_complete;
164 bool m_enabled;
165 bool m_visible;
166 int m_minimumWidth;
167 QPlatformMenu::MenuType m_type;
168 QString m_title;
169 QFont m_font;
170 QList<QObject *> m_data;
172 QQuickLabsPlatformMenuBar *m_menuBar;
173 QQuickLabsPlatformMenu *m_parentMenu;
174 QQuickLabsPlatformSystemTrayIcon *m_systemTrayIcon;
175 mutable QQuickLabsPlatformMenuItem *m_menuItem;
176 mutable QQuickLabsPlatformIconLoader *m_iconLoader;
177 QPlatformMenu *m_handle;
178};
179
181
183
184#endif // QQUICKLABSPLATFORMMENU_P_H
\reentrant
Definition qfont.h:20
The QIcon class provides scalable icons in different modes and states.
Definition qicon.h:20
Definition qlist.h:74
\inmodule QtCore
Definition qobject.h:90
QObject * parent() const
Returns a pointer to the parent object.
Definition qobject.h:311
\inmodule QtCore\reentrant
Definition qpoint.h:23
The QQmlListProperty class allows applications to expose list-like properties of QObject-derived clas...
Definition qqmllist.h:24
The QQmlParserStatus class provides updates on the QML parser state.
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
Definition qquickitem.h:64
static QQuickLabsPlatformMenuItem * items_at(QQmlListProperty< QQuickLabsPlatformMenuItem > *property, qsizetype index)
static QObject * data_at(QQmlListProperty< QObject > *property, qsizetype index)
static void items_append(QQmlListProperty< QQuickLabsPlatformMenuItem > *property, QQuickLabsPlatformMenuItem *item)
bool isVisible() const
\qmlproperty bool Qt.labs.platform::Menu::visible
Q_INVOKABLE void insertItem(int index, QQuickLabsPlatformMenuItem *item)
\qmlmethod void Qt.labs.platform::Menu::insertItem(int index, MenuItem item)
static void items_clear(QQmlListProperty< QQuickLabsPlatformMenuItem > *property)
Q_REVISION(2, 1) void iconChanged()
Q_INVOKABLE void removeMenu(QQuickLabsPlatformMenu *menu)
\qmlmethod void Qt.labs.platform::Menu::removeMenu(Menu submenu)
static qsizetype data_count(QQmlListProperty< QObject > *property)
QQuickLabsPlatformIconLoader * iconLoader() const
Q_INVOKABLE void addMenu(QQuickLabsPlatformMenu *menu)
\qmlmethod void Qt.labs.platform::Menu::addMenu(Menu submenu)
Q_INVOKABLE void removeItem(QQuickLabsPlatformMenuItem *item)
\qmlmethod void Qt.labs.platform::Menu::removeItem(MenuItem item)
void setIcon(const QQuickLabsPlatformIcon &icon)
static qsizetype items_count(QQmlListProperty< QQuickLabsPlatformMenuItem > *property)
QQuickLabsPlatformMenuItem * menuItem
Q_INVOKABLE void clear()
\qmlmethod void Qt.labs.platform::Menu::clear()
void setFont(const QFont &font)
void componentComplete() override
Invoked after the root component that caused this instantiation has completed construction.
Q_INVOKABLE void addItem(QQuickLabsPlatformMenuItem *item)
\qmlmethod void Qt.labs.platform::Menu::addItem(MenuItem item)
void setType(QPlatformMenu::MenuType type)
static void data_append(QQmlListProperty< QObject > *property, QObject *object)
QQmlListProperty< QObject > data()
Q_INVOKABLE void insertMenu(int index, QQuickLabsPlatformMenu *menu)
\qmlmethod void Qt.labs.platform::Menu::insertMenu(int index, Menu submenu)
QQmlListProperty< QQuickLabsPlatformMenuItem > items
\qmlproperty list<MenuItem> Qt.labs.platform::Menu::items
QQuickLabsPlatformIcon icon
QQuickLabsPlatformMenuBar * menuBar
QQuickLabsPlatformMenu * parentMenu
QQmlListProperty< QQuickLabsPlatformMenuItem > items()
static void data_clear(QQmlListProperty< QObject > *property)
QPlatformMenu * handle() const
void open(QQmlV4Function *args)
\qmlmethod void Qt.labs.platform::Menu::open(MenuItem item)
void close()
\qmlmethod void Qt.labs.platform::Menu::close()
bool isEnabled() const
\qmlproperty bool Qt.labs.platform::Menu::enabled
void classBegin() override
Invoked after class creation, but before any properties have been set.
void setMenuBar(QQuickLabsPlatformMenuBar *menuBar)
void setTitle(const QString &title)
QPlatformMenu::MenuType type
void setParentMenu(QQuickLabsPlatformMenu *menu)
QWindow * findWindow(QQuickItem *target, QPoint *offset) const
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:127
\inmodule QtGui
Definition qwindow.h:63
Combined button and popup list for selecting options.
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
GLuint index
[2]
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLint GLsizei width
GLenum type
GLenum target
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLenum GLuint GLintptr offset
#define QML_DECLARE_TYPE(TYPE)
Definition qqml.h:19
#define QML_NAMED_ELEMENT(NAME)
#define QML_EXTENDED_NAMESPACE(EXTENDED_NAMESPACE)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_CLASSINFO(name, value)
#define Q_INVOKABLE
#define Q_INTERFACES(x)
#define Q_SLOTS
#define Q_SIGNALS
ptrdiff_t qsizetype
Definition qtypes.h:70
const char property[13]
Definition qwizard.cpp:101
QGraphicsItem * item
QMenu menu
[5]
QJSValueList args