Elaztek Developer Hub
Blamite Game Engine - Keystone  00390.07.02.23.1947.blamite
A library that enables the use of Qt in Blamite's editing tools.
menubar.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <qmenu.h>
4 #include <qmenubar.h>
5 #include <qaction.h>
6 
7 class EditorMenuBar : public QMenuBar
8 {
9 public:
10  template <typename SlotFunction>
11  QAction* AddMenuAction(QMenu* menu, QString title, SlotFunction slot)
12  {
13  return AddMenuAction(menu, title, "", slot);
14  }
15 
16  template <typename SlotFunction>
17  QAction* AddMenuAction(QMenu* menu, QString title, std::string icon_id, SlotFunction slot)
18  {
19  return AddMenuAction(menu, title, icon_id, "shared", slot);
20  }
21 
22  template <typename SlotFunction>
23  QAction* AddMenuAction(QMenu* menu, QString title, std::string icon_id, std::string icon_group, SlotFunction slot)
24  {
25  QAction* action = menu->addAction(title);
26 
27  connect(action, &QAction::triggered, (typename QtPrivate::FunctionPointer<SlotFunction>::Object*)this, slot);
28 
29  if (icon_id.length() > 0)
30  {
31  SetMenuItemIcon(action, icon_id, icon_group);
32  }
33 
34  return action;
35  }
36 
37  template <typename SlotFunction>
38  QAction* AddCheckableMenuAction(QMenu* menu, QString title, SlotFunction slot)
39  {
40  QAction* action = menu->addAction(title);
41 
42  connect(action, &QAction::triggered, (typename QtPrivate::FunctionPointer<SlotFunction>::Object*)this, slot);
43  action->setCheckable(true);
44 
45  return action;
46  }
47 
48  QAction* AddMenuDummy(QMenu* menu, QString title);
49  QAction* AddMenuDummy(QMenu* menu, QString title, std::string icon_id);
50  QAction* AddMenuDummy(QMenu* menu, QString title, std::string icon_id, std::string icon_group);
51  void SetMenuItemIcon(QAction* item, std::string icon_id, std::string icon_group = "shared");
52 };
menubar.h
themes.h
EditorMenuBar::SetMenuItemIcon
void SetMenuItemIcon(QAction *item, std::string icon_id, std::string icon_group="shared")
Definition: menubar.cpp:27
EditorMenuBar::AddMenuAction
QAction * AddMenuAction(QMenu *menu, QString title, std::string icon_id, SlotFunction slot)
Definition: menubar.h:17
BlamKeystone::Themes::GetActiveTheme
KEYSTONE BlamEditorTheme * GetActiveTheme()
Retrieves the currently selected theme.
Definition: themes.cpp:335
EditorMenuBar
Definition: menubar.h:7
EditorMenuBar::AddMenuAction
QAction * AddMenuAction(QMenu *menu, QString title, SlotFunction slot)
Definition: menubar.h:11
EditorMenuBar::AddMenuDummy
QAction * AddMenuDummy(QMenu *menu, QString title)
Definition: menubar.cpp:5
EditorMenuBar::AddCheckableMenuAction
QAction * AddCheckableMenuAction(QMenu *menu, QString title, SlotFunction slot)
Definition: menubar.h:38
EditorMenuBar::AddMenuAction
QAction * AddMenuAction(QMenu *menu, QString title, std::string icon_id, std::string icon_group, SlotFunction slot)
Definition: menubar.h:23