diff options
author | Morten Johan Sorvig <morten.sorvig@nokia.com> | 2012-05-21 15:33:42 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-23 10:02:11 +0200 |
commit | 98dbaecf7f9c16be82b895a75ff02e89ff1f3269 (patch) | |
tree | 5f5039bc15c5afd1afc1842ab47415492e57cca8 /src/gui/kernel/qplatformmenu.h | |
parent | 62fafaf16a972337fb3d6540889efc7cbf56ba7c (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.h | 58 |
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 |