aboutsummaryrefslogtreecommitdiff
path: root/module/appmenu.h
diff options
context:
space:
mode:
Diffstat (limited to 'module/appmenu.h')
-rw-r--r--module/appmenu.h32
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