Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CMenu.hpp
Go to the documentation of this file.
1#ifndef LIBS_GUI_CMENU_HPP_
2#define LIBS_GUI_CMENU_HPP_
3
6
7#include <memory>
8#include <string>
9#include <vector>
10
11class CMenu
12{
13public:
14 enum class EPrvTypeItem
15 {
16 Option,
17 Submenu// Note that 'Option' refers to menuItem (for instance, in Gtk it'd be equivalent to GtkMenuItem)
18 };
19
21 {
22 SPrvMenuItem(EPrvTypeItem type, std::string_view nameSubmenu, std::vector<SPrvMenuItem *> **optionsSubmenu,
23 CMenuOption **menuOption);
25
27
28 std::string m_nameSubmenu;
29 std::vector<SPrvMenuItem *> *m_optionsSubmenu;
30
32 };
33
34 CMenu();
35 virtual ~CMenu();
36
37 void addSubMenu(std::string_view name, CMenu **subMenu);
38 void addOption(CMenuOption **option);
39
40 [[nodiscard]] bool hasOptions() const;
41 [[nodiscard]] bool hasToolbar() const;
42
43 void updateActiveOptions() const;
44
45 IWidget *createMenuWidget(CDialog *dialogFatherRef, const std::shared_ptr<IComponentsGUI> &frame);
46 IWidget *createToolbarWidget(CDialog *dialogFatherRef, const std::shared_ptr<IComponentsGUI> &frame);
47
48private:
49 std::vector<SPrvMenuItem *> *m_options;
50};
51
53{
54public:
55 explicit CMenuBar(const std::weak_ptr<CMenu> &menuRef);
56
57private:
58 IWidget *createWidget(CDialog *dialogFatherRef) override;
59
60 std::weak_ptr<CMenu> m_menuRef;
61};
62
64{
65public:
66 explicit CToolBar(const std::weak_ptr<CMenu> &menuRef);
67
68private:
69 IWidget *createWidget(CDialog *dialogFatherRef) override;
70
71 std::weak_ptr<CMenu> m_menuRef;
72};
73
74#endif /* LIBS_GUI_CMENU_HPP_ */
Definition AbstractComponentGUI.hpp:30
Definition CDialog.hpp:21
Definition CMenu.hpp:53
std::weak_ptr< CMenu > m_menuRef
Definition CMenu.hpp:60
CMenuBar(const std::weak_ptr< CMenu > &menuRef)
Definition CMenu.cpp:284
IWidget * createWidget(CDialog *dialogFatherRef) override
Definition CMenu.cpp:289
Definition CMenuOption.hpp:10
Definition CMenu.hpp:12
bool hasOptions() const
Definition CMenu.cpp:111
void addOption(CMenuOption **option)
Definition CMenu.cpp:100
bool hasToolbar() const
Definition CMenu.cpp:154
EPrvTypeItem
Definition CMenu.hpp:15
CMenu()
Definition CMenu.cpp:58
IWidget * createToolbarWidget(CDialog *dialogFatherRef, const std::shared_ptr< IComponentsGUI > &frame)
Definition CMenu.cpp:274
void addSubMenu(std::string_view name, CMenu **subMenu)
Definition CMenu.cpp:80
std::vector< SPrvMenuItem * > * m_options
Definition CMenu.hpp:49
void updateActiveOptions() const
Definition CMenu.cpp:191
virtual ~CMenu()
Definition CMenu.cpp:63
IWidget * createMenuWidget(CDialog *dialogFatherRef, const std::shared_ptr< IComponentsGUI > &frame)
Definition CMenu.cpp:234
Definition CMenu.hpp:64
std::weak_ptr< CMenu > m_menuRef
Definition CMenu.hpp:71
IWidget * createWidget(CDialog *dialogFatherRef) override
Definition CMenu.cpp:307
CToolBar(const std::weak_ptr< CMenu > &menuRef)
Definition CMenu.cpp:302
Definition IWidget.hpp:5
Definition CMenu.hpp:21
CMenuOption * m_menuOption
Definition CMenu.hpp:31
~SPrvMenuItem()
Definition CMenu.cpp:24
std::string m_nameSubmenu
Definition CMenu.hpp:28
std::vector< SPrvMenuItem * > * m_optionsSubmenu
Definition CMenu.hpp:29
EPrvTypeItem m_type
Definition CMenu.hpp:26
SPrvMenuItem(EPrvTypeItem type, std::string_view nameSubmenu, std::vector< SPrvMenuItem * > **optionsSubmenu, CMenuOption **menuOption)
Definition CMenu.cpp:13