33 Q_DECLARE_PUBLIC(QQuickMenuBar)
35 static QQuickMenuBarPrivate *get(QQuickMenuBar *menuBar)
37 return menuBar->d_func();
40 QQmlListProperty<QQuickMenu> menus();
41 QQmlListProperty<QObject> contentData();
43 QQuickItem *createItemFromDelegate();
44 QQuickMenuBarItem *createMenuBarItem(QQuickMenu *menu);
46 void openCurrentMenu();
47 void closeCurrentMenu();
48 void activateMenuItem(
int index);
50 void activateItem(QQuickMenuBarItem *item);
51 void activateNextItem();
52 void activatePreviousItem();
55 void onItemTriggered();
56 void onMenuAboutToHide(QQuickMenu *menu);
58 void insertMenu(
int index, QQuickMenu *menu, QQuickMenuBarItem *delegateItem);
59 QQuickMenu *takeMenu(
int index);
60 void insertNativeMenu(QQuickMenu *menu);
61 void removeNativeMenu(QQuickMenu *menu);
62 void syncMenuBarItemVisibilty(QQuickMenuBarItem *menuBarItem);
64 QWindow *window()
const;
65 int menuIndex(QQuickMenu *menu)
const;
67 QPlatformMenuBar *nativeHandle()
const;
68 bool useNativeMenuBar()
const;
69 bool useNativeMenu(
const QQuickMenu *menu)
const;
70 void syncNativeMenuBarVisible();
71 void createNativeMenuBar();
72 void removeNativeMenuBar();
74 qreal getContentWidth()
const override;
75 qreal getContentHeight()
const override;
77 void itemImplicitWidthChanged(QQuickItem *item) override;
78 void itemImplicitHeightChanged(QQuickItem *item) override;
80 static void contentData_append(QQmlListProperty<QObject> *prop, QObject *obj);
82 static void menus_append(QQmlListProperty<QQuickMenu> *prop, QQuickMenu *obj);
83 static qsizetype menus_count(QQmlListProperty<QQuickMenu> *prop);
84 static QQuickMenu *menus_at(QQmlListProperty<QQuickMenu> *prop, qsizetype index);
85 static void menus_clear(QQmlListProperty<QQuickMenu> *prop);
87 QPalette defaultPalette()
const override;
89 bool closingCurrentMenu =
false;
90 bool altPressed =
false;
91 bool currentMenuOpen =
false;
92 QQmlComponent *delegate =
nullptr;
93 QPointer<QQuickMenuBarItem> currentItem;
94 QPointer<QQuickItem> windowContentItem;
97 std::unique_ptr<QPlatformMenuBar> handle;