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
qcocoamenu.h
Go to the documentation of this file.
1// Copyright (C) 2018 The Qt Company Ltd.
2// Copyright (C) 2012 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author James Turner <james.turner@kdab.com>
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
4
5#ifndef QCOCOAMENU_H
6#define QCOCOAMENU_H
7
8#include <QtCore/QList>
9#include <qpa/qplatformmenu.h>
10#include <qpa/qplatformmenu_p.h>
11
12#include "qcocoamenuitem.h"
13#include "qcocoansmenu.h"
14
16
17class QCocoaMenuBar;
18
21{
22public:
23 QCocoaMenu();
25
26 void insertMenuItem(QPlatformMenuItem *menuItem, QPlatformMenuItem *before) override;
27 void removeMenuItem(QPlatformMenuItem *menuItem) override;
28 void syncMenuItem(QPlatformMenuItem *menuItem) override;
29 void setEnabled(bool enabled) override;
30 bool isEnabled() const override;
31 void setVisible(bool visible) override;
32 void showPopup(const QWindow *parentWindow, const QRect &targetRect, const QPlatformMenuItem *item) override;
33 void dismiss() override;
34
35 void syncSeparatorsCollapsible(bool enable) override;
36
38
39 void setIcon(const QIcon &) override {}
40
41 void setText(const QString &text) override;
42 void setMinimumWidth(int width) override;
43 void setFont(const QFont &font) override;
44
45 NSMenu *nsMenu() const override;
46 void setAsDockMenu() const override;
47
48 inline bool isVisible() const { return m_visible; }
49
50 QPlatformMenuItem *menuItemAt(int position) const override;
52
53 QList<QCocoaMenuItem *> items() const;
54 QList<QCocoaMenuItem *> merged() const;
55
56 void setAttachedItem(NSMenuItem *item);
57 NSMenuItem *attachedItem() const;
58
59 bool isOpen() const;
60 void setIsOpen(bool isOpen);
61
62 bool isAboutToShow() const;
63 void setIsAboutToShow(bool isAbout);
64
65 void timerEvent(QTimerEvent *e) override;
66
67 void syncMenuItem_helper(QPlatformMenuItem *menuItem, bool menubarUpdate);
68
70
71private:
72 QCocoaMenuItem *itemOrNull(int index) const;
73 void insertNative(QCocoaMenuItem *item, QCocoaMenuItem *beforeItem);
74 void scheduleUpdate();
75
76 QList<QCocoaMenuItem *> m_menuItems;
77 QCocoaNSMenu *m_nativeMenu;
78 NSMenuItem *m_attachedItem;
79 int m_updateTimer;
80 bool m_enabled:1;
81 bool m_parentEnabled:1;
82 bool m_visible:1;
83 bool m_isOpen:1;
84 bool m_isAboutToShow:1;
85};
86
88
89#endif
void dismiss() override
bool isVisible() const
Definition qcocoamenu.h:48
QPlatformMenuItem * menuItemForTag(quintptr tag) const override
QList< QCocoaMenuItem * > merged() const
void timerEvent(QTimerEvent *e) override
This event handler can be reimplemented in a subclass to receive timer events for the object.
void setEnabled(bool enabled) override
QList< QCocoaMenuItem * > items() const
void setItemTargetAction(QCocoaMenuItem *item) const
NSMenuItem * attachedItem() const
void insertMenuItem(QPlatformMenuItem *menuItem, QPlatformMenuItem *before) override
Definition qcocoamenu.mm:83
void setIsOpen(bool isOpen)
void setAsDockMenu() const override
Definition qcocoamenu.mm:77
void setText(const QString &text) override
Definition qcocoamenu.mm:51
bool isEnabled() const override
void propagateEnabledState(bool enabled)
void syncSeparatorsCollapsible(bool enable) override
void setIsAboutToShow(bool isAbout)
void showPopup(const QWindow *parentWindow, const QRect &targetRect, const QPlatformMenuItem *item) override
void setIcon(const QIcon &) override
Definition qcocoamenu.h:39
bool isAboutToShow() const
void setFont(const QFont &font) override
Definition qcocoamenu.mm:63
bool isOpen() const
QPlatformMenuItem * menuItemAt(int position) const override
void syncMenuItem(QPlatformMenuItem *menuItem) override
void removeMenuItem(QPlatformMenuItem *menuItem) override
void syncMenuItem_helper(QPlatformMenuItem *menuItem, bool menubarUpdate)
void setAttachedItem(NSMenuItem *item)
NSMenu * nsMenu() const override
Definition qcocoamenu.mm:72
void setVisible(bool visible) override
void setMinimumWidth(int width) override
Definition qcocoamenu.mm:58
\reentrant
Definition qfont.h:22
The QIcon class provides scalable icons in different modes and states.
Definition qicon.h:20
Native interface for QPlatformMenu on \macos. \inmodule QtGui.
virtual quintptr tag() const
\inmodule QtCore\reentrant
Definition qrect.h:30
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\inmodule QtCore
Definition qcoreevent.h:366
\inmodule QtGui
Definition qwindow.h:63
QString text
Combined button and popup list for selecting options.
GLuint index
[2]
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLint GLsizei width
GLboolean enable
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
size_t quintptr
Definition qtypes.h:167
QGraphicsItem * item