acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
menu.h
1// From base/menu/menu.h (user::menu) to
2// aura/menu/menu.h (menu::menu) more like an
3// interface of a menu by camilo on
4// 2024-06-24 08:26 <3ThomasBorregaardSorensen!!
5#pragma once
6
7
8namespace menu
9{
10
11
12 class CLASS_DECL_ACME menu :
13 virtual public ::particle
14 {
15 public:
16
17
18// ::pointer<::menu::menu> m_pmenuParent;
19// ::pointer<::menu::item> m_pmenuitem;
20// ::i32_size m_sizeMinimum;
21// ::pointer<::menu::item> m_pmenuitemShowSubMenu2;
22// bool m_bHideSubMenu2;
23// ::pointer<::channel> m_pchannelNotify;
24// bool m_bCloseParentOnClose;
25// bool m_bOwnItem;
26// ::i32_size m_size;
27// ::f64 m_dCheckBoxSize;
28// bool m_bAutoDelete;
29// ::f64 m_dHeaderHeight;
30// ::pointer<::menu::item> m_pitemClose;
31// ::i32 m_iHoverSubMenu;
32// ::u32 m_dwOut;
33// ::pointer<menu> m_pmenuSubMenu;
34// i32_point m_pointTrack;
35// bool m_bUsePositionHint;
36// i32_point m_pointPositionHint;
37// ::i32 m_iFlags;
38// bool m_bPositionHint;
39// bool m_bInline;
40// bool m_bMenuOk;
41// ::pointer<::menu::item> m_pmenuitemSub;
42// ::i32_array_base m_iaColumnWidth;
43// ::i32_array_base m_iaColumnHeight;
44// bool m_bCloseButton;
45//
46
47 menu();
48 ~menu() override;
49//
50// ::i32_size get_window_minimum_size() override;
51//
52// bool is_menu() const override;
53//
54// virtual ::channel * get_notify_channel();
55//
56// ::menu::item * GetSubMenu(::i32 i);
57//
58// virtual void defer_initialize_user_menu();
59// virtual void initialize_user_menu();
60//
61// //virtual void layout_menu(::draw2d::graphics_pointer& pgraphics);
62//
63// virtual bool contains_menu_item(::menu::item * pitem, bool bRecursive = true) const;
64//
65// virtual void update_flags(::i32 iFlags);
66// virtual void update_position(const ::i32_point & point);
67// virtual void hints(::i32 iFlags, const ::i32_point & point);
68//
69// virtual bool create_menu(::channel * pchannelNotify = nullptr, ::user::interaction * puiParent = nullptr);
70// virtual bool create_inline_menu(::channel* pchannelNotify = nullptr, ::user::interaction * puiParent = nullptr);
71// virtual bool track_popup_menu(::channel* pchannelNotify = nullptr, ::user::interaction * puiParent = nullptr);
72//
73// void operator()(::timer * ptimer) override;
74//
75// void _001OnDraw(::draw2d::graphics_pointer & pgraphics) override;
76//
77//
78// virtual void show_sub_menu(::menu::item * pmenuitem);
79// virtual void hide_sub_menu();
80//
81//
82// virtual void show_sub_menu_delayed(::menu::item * pmenuitem);
83// virtual void hide_sub_menu_delayed();
84//
85//
86// virtual void detach_sub_menu();
87//
88//
89// DECLARE_MESSAGE_HANDLER(on_message_left_button_down);
90// DECLARE_MESSAGE_HANDLER(on_message_create);
91// DECLARE_MESSAGE_HANDLER(on_message_destroy);
92// DECLARE_MESSAGE_HANDLER(_001OnNcActivate);
93// DECLARE_MESSAGE_HANDLER(on_message_non_client_calculate_size);
94// DECLARE_MESSAGE_HANDLER(_001OnEnable);
95// DECLARE_MESSAGE_HANDLER(on_message_show_window);
96// DECLARE_MESSAGE_HANDLER(on_message_close);
97// DECLARE_MESSAGE_HANDLER(_001OnMouseActivate);
98// DECLARE_MESSAGE_HANDLER(_001OnActivate);
99// DECLARE_MESSAGE_HANDLER(_001OnNcCreate);
100//
101//
102// void handle(::topic * ptopic, ::handler_context * phandlercontext) override;
103//
104// bool on_click(::item * pitem) override;
105//
106// bool pre_create_window(::user::system * pusersystem) override;
107//
108// void install_message_routing(::channel * pchannel) override;
109//
110// ::pointer<::menu::item>get_menu_item();
111//
112// //::pointer<::menu::item>get_menu_item(::user::interaction * pinteraction);
113//
114// //bool has_pending_graphical_update() override;
115//
116// virtual bool create_menu(const string_array_base & straCommand, const string_array_base & straCommandTitle);
117//
118// void destroy() override;
119//
120// virtual bool add_menu(::xml::node * pnode);
121//
122// virtual bool load_xml_menu(const ::payload & payload);
123//
124// //virtual bool add_xml_menu(const ::payload & varXml);
125//
126// virtual void update_command(::menu::item * pitemParent);
127//
128// void calc_size(::menu::item * pitem, ::draw2d::graphics_pointer & pgraphics, ::i32 & iMaxWidth, ::i32 & iMaxHeight);
129// void layout_buttons(::menu::item * pitem, ::i32 iMaxWidth, ::i32_rectangle * prectangle, const ::i32_rectangle & lpcrectBound);
130//
131//
132//
133// virtual void defer_close();
134//
135// virtual ::pointer<::user::menu_interaction>create_menu_button(::draw2d::graphics_pointer & pgraphics, ::menu::item * pitem);
136//
137// void route_command(::message::command* pcommand, bool bRouteToKeyDescendant) override;
138//
139// //// <3ThomasBorregaardSorensen__!!
140// void handle_command(const ::atom& atom) override;
141//
142//
143// void on_perform_top_down_layout(::draw2d::graphics_pointer & pgraphics) override;
144
145
146 };
147
148
149} // namespace user
150
151
152