summaryrefslogtreecommitdiff
path: root/src/controls/qtmenu_p.h
diff options
context:
space:
mode:
authorGabriel de Dietrich <gabriel.dedietrich@digia.com>2013-02-27 14:02:22 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-03-01 11:05:58 +0100
commitb0d19a08b4f34859c8643495d1910690c48644c9 (patch)
tree99c1df3b9763abaff24a1f1b8ff54c88b1f6c0d6 /src/controls/qtmenu_p.h
parent6215e42377fbe5bc0e67a08702bede2982a363d9 (diff)
downloadqtquickcontrols-b0d19a08b4f34859c8643495d1910690c48644c9.tar.gz
MenuBar, Menu, MenuItem, Action: New, reviewed API
Change-Id: Ic018c0d9c61ddf6fdf05750bf172cf5e306d0508 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Diffstat (limited to 'src/controls/qtmenu_p.h')
-rw-r--r--src/controls/qtmenu_p.h104
1 files changed, 48 insertions, 56 deletions
diff --git a/src/controls/qtmenu_p.h b/src/controls/qtmenu_p.h
index f45b13bb..4c0da38b 100644
--- a/src/controls/qtmenu_p.h
+++ b/src/controls/qtmenu_p.h
@@ -52,23 +52,52 @@ QT_BEGIN_NAMESPACE
class QPlatformMenu;
class QtMenuPopupWindow;
+class QQuickWindow;
-class QtMenu : public QtMenuItem
+class QtMenu : public QtMenuText
{
Q_OBJECT
- Q_PROPERTY(QVariant model READ model WRITE setModel NOTIFY modelChanged)
+ Q_PROPERTY(QQmlListProperty<QtMenuBase> items READ menuItems NOTIFY itemsChanged)
+ Q_CLASSINFO("DefaultProperty", "items")
Q_PROPERTY(int selectedIndex READ selectedIndex WRITE setSelectedIndex NOTIFY selectedIndexChanged)
- Q_PROPERTY(int minimumWidth READ minimumWidth WRITE setMinimumWidth NOTIFY minimumWidthChanged)
- Q_PROPERTY(QFont font WRITE setFont)
- Q_PROPERTY(QQmlListProperty<QtMenuBase> menuItems READ menuItems NOTIFY menuItemsChanged)
- Q_CLASSINFO("DefaultProperty", "menuItems")
- Q_PROPERTY(QQuickItem *menuContentItem READ menuContentItem WRITE setMenuContentItem NOTIFY menuContentItemChanged)
- Q_PROPERTY(bool popupVisible READ popupVisible NOTIFY popupVisibleChanged)
+ Q_PROPERTY(QQuickItem *visualParent READ visualParent WRITE setVisualParent NOTIFY visualParentChanged)
+ Q_PROPERTY(QVariant model READ model WRITE setModel NOTIFY modelChanged)
+
+ Q_PROPERTY(bool __popupVisible READ popupVisible NOTIFY popupVisibleChanged)
+ Q_PROPERTY(QQuickItem *__contentItem READ menuContentItem WRITE setMenuContentItem)
+ Q_PROPERTY(int __minimumWidth READ minimumWidth WRITE setMinimumWidth)
+ Q_PROPERTY(QFont __font WRITE setFont)
+
+public:
+ Q_INVOKABLE void popup();
+
+ Q_INVOKABLE QtMenuItem *addItem(const QString &text);
+ Q_INVOKABLE void clear();
+
+ Q_INVOKABLE void __popup(qreal x, qreal y, int atActionIndex = -1);
+ Q_INVOKABLE QString __modelTextAt(int index) const;
+ Q_INVOKABLE int __modelCount() const;
+ Q_INVOKABLE bool __hasNativeModel() const { return m_hasNativeModel; }
+
+public Q_SLOTS:
+ void __closeMenu();
+ void __dismissMenu();
+
+Q_SIGNALS:
+ void selectedIndexChanged();
+ void visualParentChanged();
+ void modelChanged(const QVariant &newModel);
+ void itemsChanged();
+
+ void __menuClosed();
+ void popupVisibleChanged();
public:
QtMenu(QObject *parent = 0);
virtual ~QtMenu();
+ void setText(const QString &text);
+
int selectedIndex() const { return m_selectedIndex; }
void setSelectedIndex(int index);
@@ -82,65 +111,26 @@ public:
void setFont(const QFont &font);
- Q_INVOKABLE void showPopup(qreal x, qreal y, int atActionIndex = -1, QObject *reference = 0);
- Q_INVOKABLE void clearMenuItems();
- Q_INVOKABLE QtMenuItem *addMenuItem(const QString &text);
- Q_INVOKABLE QString itemTextAt(int index) const; // TODO Remove, it's useless
- Q_INVOKABLE QString modelTextAt(int index) const;
- Q_INVOKABLE int modelCount() const;
-
QVariant model() const { return m_model; }
- Q_INVOKABLE bool hasNativeModel() const { return m_hasNativeModel; }
- QQuickItem *menuContentItem() const
- {
- return m_menuContentItem;
- }
+ QQuickItem *menuContentItem() const { return m_menuContentItem; }
+ bool popupVisible() const { return m_popupVisible; }
- bool popupVisible() const
- {
- return m_popupVisible;
- }
-
-public Q_SLOTS:
void setModel(const QVariant &newModel);
- void closeMenu();
- void dismissMenu();
- void updateSelectedIndex();
- void setMenuContentItem(QQuickItem * arg)
- {
- if (m_menuContentItem != arg) {
- m_menuContentItem = arg;
- emit menuContentItemChanged(arg);
- }
- }
-
- void setPopupVisible(bool arg)
- {
- if (m_popupVisible != arg) {
- m_popupVisible = arg;
- emit popupVisibleChanged(arg);
- }
- }
+ void setMenuContentItem(QQuickItem *);
+ void setPopupVisible(bool);
-Q_SIGNALS:
- void menuClosed();
- void selectedIndexChanged();
- void modelChanged(const QVariant &newModel);
- void rebuildMenu();
- void minimumWidthChanged();
- void menuItemsChanged();
- void menuContentItemChanged(QQuickItem * arg);
+ QQuickItem *visualParent() const { return m_visualParent; }
+ void setVisualParent(QQuickItem *);
- void popupVisibleChanged(bool arg);
-
-protected:
bool isNative() { return m_platformMenu != 0; }
+ QQuickWindow *findParentWindow();
+
protected Q_SLOTS:
- void updateText();
void windowVisibleChanged(bool);
+ void updateSelectedIndex();
private:
static void append_menuItems(QQmlListProperty<QtMenuBase> *list, QtMenuBase *menuItem);
@@ -151,12 +141,14 @@ private:
QList<QtMenuBase *> m_menuItems;
int m_selectedIndex;
int m_highlightedIndex;
+ QQuickItem *m_visualParent;
bool m_hasNativeModel;
QVariant m_model;
int m_minimumWidth;
QtMenuPopupWindow *m_popupWindow;
QQuickItem * m_menuContentItem;
bool m_popupVisible;
+ QQuickWindow *m_parentWindow;
friend class QtMenuBase;
};