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// Qt-Security score:significant reason:default
4
5#ifndef QANDROIDPLATFORMMENU_H
6#define QANDROIDPLATFORMMENU_H
7
8#include <qhash.h>
9#include <qpa/qplatformmenu.h>
10#include <qlist.h>
11#include <qmutex.h>
12
14
17{
18public:
20
21public:
24
25 void insertMenuItem(QPlatformMenuItem *menuItem, QPlatformMenuItem *before) override;
26 void removeMenuItem(QPlatformMenuItem *menuItem) override;
27 void syncMenuItem(QPlatformMenuItem *menuItem) override;
28 void syncSeparatorsCollapsible(bool enable) override;
29
30 void setText(const QString &text) override;
31 QString text() const;
32 void setIcon(const QIcon &icon) override;
33 QIcon icon() const;
34 void setEnabled(bool enabled) override;
35 bool isEnabled() const override;
36 void setVisible(bool visible) override;
37 bool isVisible() const;
38 void showPopup(const QWindow *parentWindow, const QRect &targetRect, const QPlatformMenuItem *item) override;
39
40 QPlatformMenuItem *menuItemAt(int position) const override;
41 QPlatformMenuItem *menuItemForTag(quintptr tag) const override;
42 QPlatformMenuItem *menuItemForId(int menuId) const;
43 int menuId(QPlatformMenuItem *menuItem) const;
44
46 QMutex *menuItemsMutex();
47
48private:
49 PlatformMenuItemsType m_menuItems;
50 QString m_text;
51 QIcon m_icon;
52 bool m_enabled;
53 bool m_isVisible;
54 QMutex m_menuItemsMutex;
55
56 int m_nextMenuId = 0;
57 QHash<int, QPlatformMenuItem *> m_menuHash;
58};
59
60QT_END_NAMESPACE
61
62#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:81
\inmodule QtCore
Definition qmutex.h:346
Combined button and popup list for selecting options.
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")