summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qplatformmenu.h
diff options
context:
space:
mode:
authorMorten Johan Sorvig <morten.sorvig@nokia.com>2012-05-21 15:33:42 +0200
committerQt by Nokia <qt-info@nokia.com>2012-05-23 10:02:11 +0200
commit98dbaecf7f9c16be82b895a75ff02e89ff1f3269 (patch)
tree5f5039bc15c5afd1afc1842ab47415492e57cca8 /src/gui/kernel/qplatformmenu.h
parent62fafaf16a972337fb3d6540889efc7cbf56ba7c (diff)
Minor QPlatformMenu API cleanup.
Make the QPlatformMenu* classes abstract with pure virtual functions. Delete qplatformmenu_qpa.cpp. QtGui no longer has to carry the empty implementations. Change the inheritance tree - Make QPlatformMenu and QPlatformMenuBar inherit QObject instead of QMenuItem. Add (now) missing virtual functions to QPlatformMenu. The effect of this change is to reduce the number of pure virtuals the platform has to implement. Change QPlatformMenuBar::syncMenu to take a QPlatformMenu pointer instead of a QPlatformMenuItem* pointer. Fix a couple of header/unused variable compiler warnings. Change-Id: I77450e40c6aae26f3e1aca204603acebd242c036 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Diffstat (limited to 'src/gui/kernel/qplatformmenu.h')
-rwxr-xr-x[-rw-r--r--]src/gui/kernel/qplatformmenu.h58
1 files changed, 32 insertions, 26 deletions
diff --git a/src/gui/kernel/qplatformmenu.h b/src/gui/kernel/qplatformmenu.h
index 4e36f5aee6..298dd5dd68 100644..100755
--- a/src/gui/kernel/qplatformmenu.h
+++ b/src/gui/kernel/qplatformmenu.h
@@ -69,50 +69,56 @@ public:
enum MenuRole { NoRole = 0, TextHeuristicRole, ApplicationSpecificRole, AboutQtRole,
AboutRole, PreferencesRole, QuitRole };
- virtual void setTag(quintptr tag);
- virtual quintptr tag() const;
-
- virtual void setText(const QString &text);
- virtual void setIcon(const QImage &icon);
- virtual void setMenu(QPlatformMenu *menu);
- virtual void setVisible(bool isVisible);
- virtual void setIsSeparator(bool isSeparator);
- virtual void setFont(const QFont &font);
- virtual void setRole(MenuRole role);
- virtual void setChecked(bool isChecked);
- virtual void setShortcut(const QKeySequence& shortcut);
- virtual void setEnabled(bool enabled);
+ virtual void setTag(quintptr tag) = 0;
+ virtual quintptr tag()const = 0;
+
+ virtual void setText(const QString &text) = 0;
+ virtual void setIcon(const QImage &icon) = 0;
+ virtual void setMenu(QPlatformMenu *menu) = 0;
+ virtual void setVisible(bool isVisible) = 0;
+ virtual void setIsSeparator(bool isSeparator) = 0;
+ virtual void setFont(const QFont &font) = 0;
+ virtual void setRole(MenuRole role) = 0;
+ virtual void setChecked(bool isChecked) = 0;
+ virtual void setShortcut(const QKeySequence& shortcut) = 0;
+ virtual void setEnabled(bool enabled) = 0;
Q_SIGNALS:
void activated();
void hovered();
};
-class Q_GUI_EXPORT QPlatformMenu : public QPlatformMenuItem // Some (but not all) of the PlatformMenuItem API applies to QPlatformMenu as well.
+class Q_GUI_EXPORT QPlatformMenu : public QObject
{
Q_OBJECT
public:
- virtual void insertMenuItem(QPlatformMenuItem *menuItem, QPlatformMenuItem *before);
- virtual void removeMenuItem(QPlatformMenuItem *menuItem);
- virtual void syncMenuItem(QPlatformMenuItem *menuItem);
- virtual void syncSeparatorsCollapsible(bool enable);
+ virtual void insertMenuItem(QPlatformMenuItem *menuItem, QPlatformMenuItem *before) = 0;
+ virtual void removeMenuItem(QPlatformMenuItem *menuItem) = 0;
+ virtual void syncMenuItem(QPlatformMenuItem *menuItem) = 0;
+ virtual void syncSeparatorsCollapsible(bool enable) = 0;
+
+ virtual void setTag(quintptr tag) = 0;
+ virtual quintptr tag()const = 0;
+
+ virtual void setText(const QString &text) = 0;
+ virtual void setEnabled(bool enabled) = 0;
- virtual QPlatformMenuItem *menuItemAt(int position) const;
- virtual QPlatformMenuItem *menuItemForTag(quintptr tag) const;
+ virtual QPlatformMenuItem *menuItemAt(int position) const = 0;
+ virtual QPlatformMenuItem *menuItemForTag(quintptr tag) const = 0;
Q_SIGNALS:
void aboutToShow();
void aboutToHide();
};
-class Q_GUI_EXPORT QPlatformMenuBar : public QPlatformMenu
+class Q_GUI_EXPORT QPlatformMenuBar : public QObject
{
Q_OBJECT
public:
- virtual void insertMenu(QPlatformMenu *menu, QPlatformMenu *before);
- virtual void removeMenu(QPlatformMenu *menu);
- virtual void syncMenu(QPlatformMenuItem *menuItem);
- virtual void handleReparent(QWindow *newParentWindow);
+ virtual void insertMenu(QPlatformMenu *menu, QPlatformMenu *before) = 0;
+ virtual void removeMenu(QPlatformMenu *menu) = 0;
+ virtual void syncMenu(QPlatformMenu *menuItem) = 0;
+ virtual void handleReparent(QWindow *newParentWindow) = 0;
- virtual QPlatformMenu *menuForTag(quintptr tag) const;
+ virtual QPlatformMenu *menuForTag(quintptr tag) const = 0;
};
QT_END_NAMESPACE