diff options
Diffstat (limited to 'module/appmenu.h')
-rw-r--r-- | module/appmenu.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/module/appmenu.h b/module/appmenu.h new file mode 100644 index 0000000..bc7171d --- /dev/null +++ b/module/appmenu.h @@ -0,0 +1,32 @@ +#ifndef APPMENU_H +#define APPMENU_H + +#include "menuproxy.h" + +class AppMenu : public MenuProxy +{ + Q_OBJECT + +public: + AppMenu(QObject *parent = 0); + ~AppMenu(); + + GtkMenu * getGtkMenu(); + + GtkMenuItem * addAction(QAction *action); + GtkMenuItem * addAction(QAction* action, QAction* before, QMenu* parent); + void removeAction(QAction* action); + void updateAction(QAction* action); + +private: + void addDefaultItems(); + static uint orderForRole(QAction::MenuRole role); + static QAction::MenuRole detectRole(QAction *action); + +private: + GtkMenu *m_menu; + QMultiMap<uint, QAction*> m_actions; + QAction *m_def_quit; +}; + +#endif // APPMENU_H |