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
4
#include "
ui/gui/AbstractComponentGUI.hpp
"
5
#include "
ui/gui/CMenuOption.hpp
"
6
7
#include <memory>
8
#include <string>
9
#include <vector>
10
11
class
CMenu
12
{
13
public
:
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
20
struct
SPrvMenuItem
21
{
22
SPrvMenuItem
(
EPrvTypeItem
type, std::string_view nameSubmenu, std::vector<SPrvMenuItem *> **optionsSubmenu,
23
CMenuOption
**menuOption);
24
~SPrvMenuItem
();
25
26
EPrvTypeItem
m_type
;
27
28
std::string
m_nameSubmenu
;
29
std::vector<SPrvMenuItem *> *
m_optionsSubmenu
;
30
31
CMenuOption
*
m_menuOption
;
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
48
private
:
49
std::vector<SPrvMenuItem *> *
m_options
;
50
};
51
52
class
CMenuBar
:
public
AbstractComponentGUI
53
{
54
public
:
55
explicit
CMenuBar
(
const
std::weak_ptr<CMenu> &menuRef);
56
57
private
:
58
IWidget
*
createWidget
(
CDialog
*dialogFatherRef)
override
;
59
60
std::weak_ptr<CMenu>
m_menuRef
;
61
};
62
63
class
CToolBar
:
public
AbstractComponentGUI
64
{
65
public
:
66
explicit
CToolBar
(
const
std::weak_ptr<CMenu> &menuRef);
67
68
private
:
69
IWidget
*
createWidget
(
CDialog
*dialogFatherRef)
override
;
70
71
std::weak_ptr<CMenu>
m_menuRef
;
72
};
73
74
#endif
/* LIBS_GUI_CMENU_HPP_ */
AbstractComponentGUI.hpp
CMenuOption.hpp
AbstractComponentGUI
Definition
AbstractComponentGUI.hpp:30
CDialog
Definition
CDialog.hpp:21
CMenuBar
Definition
CMenu.hpp:53
CMenuBar::m_menuRef
std::weak_ptr< CMenu > m_menuRef
Definition
CMenu.hpp:60
CMenuBar::CMenuBar
CMenuBar(const std::weak_ptr< CMenu > &menuRef)
Definition
CMenu.cpp:284
CMenuBar::createWidget
IWidget * createWidget(CDialog *dialogFatherRef) override
Definition
CMenu.cpp:289
CMenuOption
Definition
CMenuOption.hpp:10
CMenu
Definition
CMenu.hpp:12
CMenu::hasOptions
bool hasOptions() const
Definition
CMenu.cpp:111
CMenu::addOption
void addOption(CMenuOption **option)
Definition
CMenu.cpp:100
CMenu::hasToolbar
bool hasToolbar() const
Definition
CMenu.cpp:154
CMenu::EPrvTypeItem
EPrvTypeItem
Definition
CMenu.hpp:15
CMenu::EPrvTypeItem::Option
@ Option
CMenu::EPrvTypeItem::Submenu
@ Submenu
CMenu::CMenu
CMenu()
Definition
CMenu.cpp:58
CMenu::createToolbarWidget
IWidget * createToolbarWidget(CDialog *dialogFatherRef, const std::shared_ptr< IComponentsGUI > &frame)
Definition
CMenu.cpp:274
CMenu::addSubMenu
void addSubMenu(std::string_view name, CMenu **subMenu)
Definition
CMenu.cpp:80
CMenu::m_options
std::vector< SPrvMenuItem * > * m_options
Definition
CMenu.hpp:49
CMenu::updateActiveOptions
void updateActiveOptions() const
Definition
CMenu.cpp:191
CMenu::~CMenu
virtual ~CMenu()
Definition
CMenu.cpp:63
CMenu::createMenuWidget
IWidget * createMenuWidget(CDialog *dialogFatherRef, const std::shared_ptr< IComponentsGUI > &frame)
Definition
CMenu.cpp:234
CToolBar
Definition
CMenu.hpp:64
CToolBar::m_menuRef
std::weak_ptr< CMenu > m_menuRef
Definition
CMenu.hpp:71
CToolBar::createWidget
IWidget * createWidget(CDialog *dialogFatherRef) override
Definition
CMenu.cpp:307
CToolBar::CToolBar
CToolBar(const std::weak_ptr< CMenu > &menuRef)
Definition
CMenu.cpp:302
IWidget
Definition
IWidget.hpp:5
CMenu::SPrvMenuItem
Definition
CMenu.hpp:21
CMenu::SPrvMenuItem::m_menuOption
CMenuOption * m_menuOption
Definition
CMenu.hpp:31
CMenu::SPrvMenuItem::~SPrvMenuItem
~SPrvMenuItem()
Definition
CMenu.cpp:24
CMenu::SPrvMenuItem::m_nameSubmenu
std::string m_nameSubmenu
Definition
CMenu.hpp:28
CMenu::SPrvMenuItem::m_optionsSubmenu
std::vector< SPrvMenuItem * > * m_optionsSubmenu
Definition
CMenu.hpp:29
CMenu::SPrvMenuItem::m_type
EPrvTypeItem m_type
Definition
CMenu.hpp:26
CMenu::SPrvMenuItem::SPrvMenuItem
SPrvMenuItem(EPrvTypeItem type, std::string_view nameSubmenu, std::vector< SPrvMenuItem * > **optionsSubmenu, CMenuOption **menuOption)
Definition
CMenu.cpp:13
src
ui
gui
CMenu.hpp
Generated by
1.12.0