10#include <QtCore/qjnienvironment.h>
11#include <QtCore/qjniobject.h>
15QAndroidPlatformMenu::QAndroidPlatformMenu()
29 m_menuItems.insert(std::find(m_menuItems.begin(),
31 static_cast<QAndroidPlatformMenuItem *>(before)),
32 static_cast<QAndroidPlatformMenuItem *>(menuItem));
33 m_menuHash.insert(m_nextMenuId++, menuItem);
39 PlatformMenuItemsType::iterator it = std::find(m_menuItems.begin(),
41 static_cast<QAndroidPlatformMenuItem *>(menuItem));
42 if (it != m_menuItems.end())
43 m_menuItems.erase(it);
47 QHash<
int, QPlatformMenuItem *>::iterator it = m_menuHash.begin();
48 while (it != m_menuHash.end()) {
49 if (it.value() == menuItem) {
50 it = m_menuHash.erase(it);
52 maxId = qMax(maxId, it.key());
57 m_nextMenuId = maxId + 1;
63 PlatformMenuItemsType::iterator it;
64 for (it = m_menuItems.begin(); it != m_menuItems.end(); ++it) {
65 if ((*it)->tag() == menuItem->tag())
69 if (it != m_menuItems.end())
110 m_isVisible = visible;
120 Q_UNUSED(parentWindow);
128 for (QAndroidPlatformMenuItem *menuItem : m_menuItems) {
129 if (menuItem->tag() == tag)
138 if (position < m_menuItems.size())
139 return m_menuItems[position];
145 QHash<
int, QPlatformMenuItem *>::const_iterator it;
146 for (it = m_menuHash.constBegin(); it != m_menuHash.constEnd(); ++it) {
147 if (it.value() == menu)
156 return m_menuHash.value(menuId);
166 return &m_menuItemsMutex;
Combined button and popup list for selecting options.
void syncMenu(QAndroidPlatformMenu *)
void androidPlatformMenuDestroyed(QAndroidPlatformMenu *menu)
void showContextMenu(QAndroidPlatformMenu *menu, const QRect &anchorRect)