Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qandroidplatformmenu.h
Go to the documentation of this file.
1// Copyright (C) 2012 BogDan Vatra <bogdan@kde.org>
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 QANDROIDPLATFORMMENU_H
5#define QANDROIDPLATFORMMENU_H
6
7#include <qhash.h>
8#include <qpa/qplatformmenu.h>
9#include <qlist.h>
10#include <qmutex.h>
11
13
16{
17public:
19
20public:
23
24 void insertMenuItem(QPlatformMenuItem *menuItem, QPlatformMenuItem *before) override;
25 void removeMenuItem(QPlatformMenuItem *menuItem) override;
26 void syncMenuItem(QPlatformMenuItem *menuItem) override;
27 void syncSeparatorsCollapsible(bool enable) override;
28
29 void setText(const QString &text) override;
30 QString text() const;
31 void setIcon(const QIcon &icon) override;
32 QIcon icon() const;
33 void setEnabled(bool enabled) override;
34 bool isEnabled() const override;
35 void setVisible(bool visible) override;
36 bool isVisible() const;
37 void showPopup(const QWindow *parentWindow, const QRect &targetRect, const QPlatformMenuItem *item) override;
38
39 QPlatformMenuItem *menuItemAt(int position) const override;
40 QPlatformMenuItem *menuItemForTag(quintptr tag) const override;
41 QPlatformMenuItem *menuItemForId(int menuId) const;
42 int menuId(QPlatformMenuItem *menuItem) const;
43
45 QMutex *menuItemsMutex();
46
47private:
48 PlatformMenuItemsType m_menuItems;
49 QString m_text;
50 QIcon m_icon;
51 bool m_enabled;
52 bool m_isVisible;
53 QMutex m_menuItemsMutex;
54
55 int m_nextMenuId = 0;
56 QHash<int, QPlatformMenuItem *> m_menuHash;
57};
58
59QT_END_NAMESPACE
60
61#endif // QANDROIDPLATFORMMENU_H
#define GET_AND_CHECK_STATIC_FIELD(VAR, CLASS, FIELD_NAME, FIELD_SIGNATURE)
#define FIND_AND_CHECK_CLASS(CLASS_NAME)
#define GET_AND_CHECK_METHOD(VAR, CLASS, METHOD_NAME, METHOD_SIGNATURE)
PlatformMenusType menus() const
QList< QAndroidPlatformMenu * > PlatformMenusType
QAndroidPlatformMenu * menu() const
void setChecked(bool isChecked) override
void syncMenuItem(QPlatformMenuItem *menuItem) override
void removeMenuItem(QPlatformMenuItem *menuItem) override
int menuId(QPlatformMenuItem *menuItem) const
QPlatformMenuItem * menuItemForTag(quintptr tag) const override
QPlatformMenuItem * menuItemForId(int menuId) const
void showPopup(const QWindow *parentWindow, const QRect &targetRect, const QPlatformMenuItem *item) override
QList< QAndroidPlatformMenuItem * > PlatformMenuItemsType
void insertMenuItem(QPlatformMenuItem *menuItem, QPlatformMenuItem *before) override
void syncSeparatorsCollapsible(bool enable) override
bool isEnabled() const override
void setIcon(const QIcon &icon) override
void setEnabled(bool enabled) override
void setVisible(bool visible) override
void setText(const QString &text) override
QPlatformMenuItem * menuItemAt(int position) const override
PlatformMenuItemsType menuItems() const
Definition qlist.h:80
\inmodule QtCore
Definition qmutex.h:346
static int addAllMenuItemsToMenu(JNIEnv *env, jobject menu, QAndroidPlatformMenu *platformMenu)
static jmethodID setHeaderTitleContextMenuMethodID
void hideContextMenu(QAndroidPlatformMenu *menu)
static jboolean onContextItemSelected(JNIEnv *env, jobject thiz, jint menuId, jboolean checked)
static QString removeAmpersandEscapes(QString s)
static QList< QAndroidPlatformMenu * > pendingContextMenus
static QSet< QAndroidPlatformMenuBar * > menuBars
void setActiveTopLevelWindow(QWindow *window)
void removeMenuBar(QAndroidPlatformMenuBar *menuBar)
void syncMenu(QAndroidPlatformMenu *)
static void onCreateContextMenu(JNIEnv *env, jobject thiz, jobject menu)
void androidPlatformMenuDestroyed(QAndroidPlatformMenu *menu)
static jmethodID clearMenuMethodID
static QAndroidPlatformMenuBar * visibleMenuBar
static jmethodID addMenuItemMethodID
void addMenuBar(QAndroidPlatformMenuBar *menuBar)
static int menuNoneValue
static jmethodID setIconMenuItemMethodID
static void onContextMenuClosed(JNIEnv *env, jobject thiz, jobject menu)
static void onOptionsMenuClosed(JNIEnv *env, jobject thiz, jobject menu)
static QWindow * activeTopLevelWindow
void showContextMenu(QAndroidPlatformMenu *menu, const QRect &anchorRect)
static jmethodID setCheckableMenuItemMethodID
static jboolean onPrepareOptionsMenu(JNIEnv *env, jobject thiz, jobject menu)
static QAndroidPlatformMenu * visibleMenu
static void fillMenuItem(JNIEnv *env, jobject menuItem, bool checkable, bool checked, bool enabled, bool visible, const QIcon &icon=QIcon())
bool registerNatives(QJniEnvironment &env)
static jmethodID setCheckedMenuItemMethodID
void setMenuBar(QAndroidPlatformMenuBar *menuBar, QWindow *window)
static jmethodID setVisibleMenuItemMethodID
static void fillContextMenu(JNIEnv *env, jobject thiz, jobject menu)
static jmethodID setEnabledMenuItemMethodID
static jboolean onOptionsItemSelected(JNIEnv *env, jobject thiz, jint menuId, jboolean checked)
static JNINativeMethod methods[]
AndroidBackendRegister * backendRegister()
Q_DECLARE_JNI_CLASS(MotionEvent, "android/view/MotionEvent")