acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
application_menu.h
1//
2// apex_application_menu.hpp
3// apex
4//
5// Created by Camilo Sasuke Thomas Borregaard Soerensen on 13/11/18.
6//
11#pragma once
12
13
14struct popup_flag_t{};
15
16//#include "acme/constant/id.h"
17
18#include "acme/user/menu/menu.h"
19
20
21class CLASS_DECL_ACME application_menu :
22 virtual public ::menu::menu,
23 virtual public ::pointer_array < application_menu >
24{
25public:
26
27
28 enum enum_status
29 {
30 e_status_none = 0,
31 e_status_checked = 1<<0,
32 e_status_disabled = 1<<1,
33 e_status_set_checked = 1<<8,
34 e_status_set_disabled = 1<<9,
35 };
36
37
38 ::collection::index m_iCurrentLayoutItemIndex = 0;
39 bool m_bPopup = false;
40 string m_strName;
41 ::atom m_atomMenu;
42 string m_strLabel;
43 string m_strAccelerator;
44 string m_strDescription;
45 bool m_bStockItem = false;
46
48 application_menu(const ::scoped_string & scopedstrName, popup_flag_t);
50 bool bStockItem,
51 const ::scoped_string & scopedstrName,
52 const ::atom & atom = {},
53 const ::scoped_string & scopedstrAccelerator = {},
54 const ::scoped_string & scopedstrDescription = {});
55
56
57 virtual application_menu * insert_popup(const ::scoped_string & scopedstrName);
58 virtual application_menu * defer_add_popup(const ::scoped_string & scopedstrName);
59 virtual application_menu * _set_item_at_and_go_next(::collection::index & iIndex, bool bStockItem, const ::scoped_string & scopedstrName, const ::atom & atom = {}, const ::scoped_string & scopedstrMacosAccelerator = {}, const ::scoped_string & scopedstrDescription = {});
60 virtual application_menu * add_item(bool bStockItem, const ::scoped_string & scopedstrName, const ::atom & atom = {}, const ::scoped_string & scopedstrMacosAccelerator = {}, const ::scoped_string & scopedstrDescription = {});
61 virtual application_menu * insert_item(const ::scoped_string & scopedstrName, const ::atom & atom = {}, const ::scoped_string & scopedstrMacosAccelerator = {}, const ::scoped_string & scopedstrDescription = {});
62 virtual application_menu * insert_stock_item(const ::scoped_string & scopedstrName, const ::atom & atom = {}, const ::scoped_string & scopedstrMacosAccelerator = {}, const ::scoped_string & scopedstrDescription = {});
63 virtual application_menu * defer_add_item(const ::scoped_string & scopedstrName, const ::atom & atom = {}, const ::scoped_string & scopedstrMacosAccelerator = {}, const ::scoped_string & scopedstrDescription = {});
64 virtual application_menu * add_stock_item(const ::scoped_string & scopedstrName, const ::atom & atom = {}, const ::scoped_string & scopedstrMacosAccelerator = {}, const ::scoped_string & scopedstrDescription = {});
65 virtual application_menu * insert_separator();
66 virtual application_menu * add_separator();
67
68
69 ::collection::index find_child_with_name(const_char_pointer pszName) const;
70
71 virtual bool is_popup() const;
72
73 virtual bool is_separator() const;
74
75 void destroy() override;
76
77};
78
79
application_menu()
Definition application_menu.cpp:19
Definition atom.h:237
Definition menu.h:14
inline ::collection::index add_item(const pointer< T > &p)
consumes a referer
Definition pointer_array.h:184
Definition pointer_array.h:1882
Definition application_menu.h:14