Qt 6.x
The Qt SDK
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
qiosmenu.h
Go to the documentation of this file.
1// Copyright (C) 2016 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 QIOSMENU_H
5#define QIOSMENU_H
6
7#import <UIKit/UIKit.h>
8
9#include <QtCore/QtCore>
10#include <qpa/qplatformmenu.h>
11
12#import "quiview.h"
13
14class QIOSMenu;
16@class QUIPickerView;
17
19{
20public:
22
23 void setText(const QString &text) override;
24 void setIcon(const QIcon &) override {}
25 void setMenu(QPlatformMenu *) override;
26 void setVisible(bool isVisible) override;
27 void setIsSeparator(bool) override;
28 void setFont(const QFont &) override {}
29 void setRole(MenuRole role) override;
30 void setCheckable(bool) override {}
31 void setChecked(bool) override {}
32#ifndef QT_NO_SHORTCUT
33 void setShortcut(const QKeySequence&) override;
34#endif
35 void setEnabled(bool enabled) override;
36 void setIconSize(int) override {}
37
45};
46
48
49class QIOSMenu : public QPlatformMenu
50{
51public:
52 QIOSMenu();
53 ~QIOSMenu();
54
55 void insertMenuItem(QPlatformMenuItem *menuItem, QPlatformMenuItem *before) override;
56 void removeMenuItem(QPlatformMenuItem *menuItem) override;
57 void syncMenuItem(QPlatformMenuItem *) override;
58 void syncSeparatorsCollapsible(bool) override {}
59
60 void setText(const QString &) override;
61 void setIcon(const QIcon &) override {}
62 void setEnabled(bool enabled) override;
63 void setVisible(bool visible) override;
64 void setMenuType(MenuType type) override;
65
66 void showPopup(const QWindow *parentWindow, const QRect &targetRect, const QPlatformMenuItem *item) override;
67 void dismiss() override;
68
69 QPlatformMenuItem *menuItemAt(int position) const override;
71
72 void handleItemSelected(QIOSMenuItem *menuItem);
73
74 static QIOSMenu *currentMenu() { return m_currentMenu; }
75 static id menuActionTarget() { return m_currentMenu ? m_currentMenu->m_menuController : 0; }
76
77protected:
78 bool eventFilter(QObject *obj, QEvent *event) override;
79
80private:
81 bool m_enabled;
82 bool m_visible;
83 QString m_text;
84 MenuType m_menuType;
85 MenuType m_effectiveMenuType;
86 QPointer<QWindow> m_parentWindow;
87 QRect m_targetRect;
88 const QIOSMenuItem *m_targetItem;
89 QUIMenuController *m_menuController;
90 QUIPickerView *m_pickerView;
91 QIOSMenuItemList m_menuItems;
92
93 static QIOSMenu *m_currentMenu;
94
95 void updateVisibility();
96 void toggleShowUsingUIMenuController(bool show);
97 void toggleShowUsingUIPickerView(bool show);
98 QIOSMenuItemList visibleMenuItems() const;
99 QIOSMenuItemList filterFirstResponderActions(const QIOSMenuItemList &menuItems);
100 void repositionMenu();
101};
102
103#endif // QIOSMENU_H
\inmodule QtCore
Definition qcoreevent.h:45
\reentrant
Definition qfont.h:20
void setChecked(bool) override
Definition qiosmenu.h:31
void setIcon(const QIcon &) override
Definition qiosmenu.h:24
QString m_text
Definition qiosmenu.h:39
void setIconSize(int) override
Definition qiosmenu.h:36
void setFont(const QFont &) override
Definition qiosmenu.h:28
void setText(const QString &text) override
Definition qiosmenu.mm:235
QIOSMenu * m_menu
Definition qiosmenu.h:43
void setIsSeparator(bool) override
Definition qiosmenu.mm:250
void setVisible(bool isVisible) override
Definition qiosmenu.mm:245
bool m_enabled
Definition qiosmenu.h:41
bool m_visible
Definition qiosmenu.h:38
void setCheckable(bool) override
Definition qiosmenu.h:30
bool m_separator
Definition qiosmenu.h:42
MenuRole m_role
Definition qiosmenu.h:40
void setShortcut(const QKeySequence &) override
Definition qiosmenu.mm:261
void setRole(MenuRole role) override
Definition qiosmenu.mm:255
void setEnabled(bool enabled) override
Definition qiosmenu.mm:267
void setMenu(QPlatformMenu *) override
Definition qiosmenu.mm:240
QKeySequence m_shortcut
Definition qiosmenu.h:44
void dismiss() override
Definition qiosmenu.mm:390
QPlatformMenuItem * menuItemAt(int position) const override
Definition qiosmenu.mm:531
void insertMenuItem(QPlatformMenuItem *menuItem, QPlatformMenuItem *before) override
Definition qiosmenu.mm:292
void removeMenuItem(QPlatformMenuItem *menuItem) override
Definition qiosmenu.mm:304
void setText(const QString &) override
Definition qiosmenu.mm:326
QPlatformMenuItem * menuItemForTag(quintptr tag) const override
Definition qiosmenu.mm:538
static QIOSMenu * currentMenu()
Definition qiosmenu.h:74
void setVisible(bool visible) override
Definition qiosmenu.mm:336
void setIcon(const QIcon &) override
Definition qiosmenu.h:61
void showPopup(const QWindow *parentWindow, const QRect &targetRect, const QPlatformMenuItem *item) override
Definition qiosmenu.mm:357
static id menuActionTarget()
Definition qiosmenu.h:75
bool eventFilter(QObject *obj, QEvent *event) override
Filters events if this object has been installed as an event filter for the watched object.
Definition qiosmenu.mm:455
void syncMenuItem(QPlatformMenuItem *) override
Definition qiosmenu.mm:311
void syncSeparatorsCollapsible(bool) override
Definition qiosmenu.h:58
void handleItemSelected(QIOSMenuItem *menuItem)
Definition qiosmenu.mm:346
void setEnabled(bool enabled) override
Definition qiosmenu.mm:331
void setMenuType(MenuType type) override
Definition qiosmenu.mm:341
The QIcon class provides scalable icons in different modes and states.
Definition qicon.h:20
The QKeySequence class encapsulates a key sequence as used by shortcuts.
Definition qlist.h:74
\inmodule QtCore
Definition qobject.h:90
virtual quintptr tag() const
\inmodule QtCore
Definition qpointer.h:18
\inmodule QtCore\reentrant
Definition qrect.h:30
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:127
\inmodule QtGui
Definition qwindow.h:63
QString text
QList< QIOSMenuItem * > QIOSMenuItemList
Definition qiosmenu.h:47
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLenum type
struct _cl_event * event
GLhandleARB obj
[2]
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
size_t quintptr
Definition qtypes.h:72
view show()
[18] //! [19]
QGraphicsItem * item
edit isVisible()