Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
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
14#include <QtCore/qpointer.h>
15
16class QIOSMenu;
18@class QUIPickerView;
19
21{
22public:
24
25 void setText(const QString &text) override;
26 void setIcon(const QIcon &) override {}
27 void setMenu(QPlatformMenu *) override;
28 void setVisible(bool isVisible) override;
29 void setIsSeparator(bool) override;
30 void setFont(const QFont &) override {}
31 void setRole(MenuRole role) override;
32 void setCheckable(bool) override {}
33 void setChecked(bool) override {}
34#ifndef QT_NO_SHORTCUT
35 void setShortcut(const QKeySequence&) override;
36#endif
37 void setEnabled(bool enabled) override;
38 void setIconSize(int) override {}
39
47};
48
49typedef QList<QIOSMenuItem *> QIOSMenuItemList;
50
51class QIOSMenu : public QPlatformMenu
52{
53public:
54 QIOSMenu();
55 ~QIOSMenu();
56
57 void insertMenuItem(QPlatformMenuItem *menuItem, QPlatformMenuItem *before) override;
58 void removeMenuItem(QPlatformMenuItem *menuItem) override;
59 void syncMenuItem(QPlatformMenuItem *) override;
60 void syncSeparatorsCollapsible(bool) override {}
61
62 void setText(const QString &) override;
63 void setIcon(const QIcon &) override {}
64 void setEnabled(bool enabled) override;
65 void setVisible(bool visible) override;
66 void setMenuType(MenuType type) override;
67
68 void showPopup(const QWindow *parentWindow, const QRect &targetRect, const QPlatformMenuItem *item) override;
69 void dismiss() override;
70
71 QPlatformMenuItem *menuItemAt(int position) const override;
73
74 void handleItemSelected(QIOSMenuItem *menuItem);
75
76 static QIOSMenu *currentMenu() { return m_currentMenu; }
77 static id menuActionTarget() { return m_currentMenu ? m_currentMenu->m_menuController : 0; }
78
79protected:
80 bool eventFilter(QObject *obj, QEvent *event) override;
81
82private:
83 bool m_enabled;
84 bool m_visible;
85 QString m_text;
86 MenuType m_menuType;
87 MenuType m_effectiveMenuType;
88 QPointer<QWindow> m_parentWindow;
89 QRect m_targetRect;
90 const QIOSMenuItem *m_targetItem;
91 QUIMenuController *m_menuController;
92 QUIPickerView *m_pickerView;
93 QIOSMenuItemList m_menuItems;
94
95 static QIOSMenu *m_currentMenu;
96
97 void updateVisibility();
98 void toggleShowUsingUIMenuController(bool show);
99 void toggleShowUsingUIPickerView(bool show);
100 QIOSMenuItemList visibleMenuItems() const;
101 QIOSMenuItemList filterFirstResponderActions(const QIOSMenuItemList &menuItems);
102 void repositionMenu();
103};
104
105#endif // QIOSMENU_H
\inmodule QtCore
Definition qcoreevent.h:45
\reentrant
Definition qfont.h:22
void setChecked(bool) override
Definition qiosmenu.h:33
void setIcon(const QIcon &) override
Definition qiosmenu.h:26
QString m_text
Definition qiosmenu.h:41
void setIconSize(int) override
Definition qiosmenu.h:38
void setFont(const QFont &) override
Definition qiosmenu.h:30
void setText(const QString &text) override
Definition qiosmenu.mm:235
QIOSMenu * m_menu
Definition qiosmenu.h:45
void setIsSeparator(bool) override
Definition qiosmenu.mm:250
void setVisible(bool isVisible) override
Definition qiosmenu.mm:245
bool m_enabled
Definition qiosmenu.h:43
bool m_visible
Definition qiosmenu.h:40
void setCheckable(bool) override
Definition qiosmenu.h:32
bool m_separator
Definition qiosmenu.h:44
MenuRole m_role
Definition qiosmenu.h:42
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:46
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:76
void setVisible(bool visible) override
Definition qiosmenu.mm:336
void setIcon(const QIcon &) override
Definition qiosmenu.h:63
void showPopup(const QWindow *parentWindow, const QRect &targetRect, const QPlatformMenuItem *item) override
Definition qiosmenu.mm:357
static id menuActionTarget()
Definition qiosmenu.h:77
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:60
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.
\inmodule QtCore
Definition qobject.h:103
virtual quintptr tag() const
\inmodule QtCore\reentrant
Definition qrect.h:30
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\inmodule QtGui
Definition qwindow.h:63
QString text
QList< QIOSMenuItem * > QIOSMenuItemList
Definition qiosmenu.h:49
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:167
view show()
[18] //! [19]
QGraphicsItem * item
edit isVisible()