@@ -90,7 +90,7 @@ int main() {
9090 tray_icon.SetVisible (true );
9191
9292 // Create context menu
93- auto context_menu = Menu::Create ();
93+ auto context_menu = std::make_shared<Menu> ();
9494
9595 context_menu->AddListener <MenuOpenedEvent>(
9696 [](const MenuOpenedEvent& event) {
@@ -104,7 +104,7 @@ int main() {
104104
105105 // Add menu items
106106 auto show_window_item =
107- MenuItem::Create (" Show Window" , MenuItemType::Normal);
107+ std::make_shared<MenuItem> (" Show Window" , MenuItemType::Normal);
108108 show_window_item->AddListener <MenuItemClickedEvent>(
109109 [window_ptr](const MenuItemClickedEvent& event) {
110110 std::cout << " Show Window clicked from context menu" << std::endl;
@@ -116,7 +116,7 @@ int main() {
116116 context_menu->AddItem (show_window_item);
117117
118118 auto hide_window_item =
119- MenuItem::Create (" Hide Window" , MenuItemType::Normal);
119+ std::make_shared<MenuItem> (" Hide Window" , MenuItemType::Normal);
120120 hide_window_item->AddListener <MenuItemClickedEvent>(
121121 [window_ptr](const MenuItemClickedEvent& event) {
122122 std::cout << " Hide Window clicked from context menu" << std::endl;
@@ -130,7 +130,7 @@ int main() {
130130 context_menu->AddSeparator ();
131131
132132 // Add about item
133- auto about_item = MenuItem::Create (" About" , MenuItemType::Normal);
133+ auto about_item = std::make_shared<MenuItem> (" About" , MenuItemType::Normal);
134134 about_item->AddListener <MenuItemClickedEvent>(
135135 [](const MenuItemClickedEvent& event) {
136136 std::cout << " About clicked from context menu" << std::endl;
@@ -139,19 +139,19 @@ int main() {
139139 context_menu->AddItem (about_item);
140140
141141 // Create Tools submenu with submenu event handling
142- auto tools_submenu = Menu::Create ();
142+ auto tools_submenu = std::make_shared<Menu> ();
143143
144144 // Add items to tools submenu
145145 auto clear_cache_item =
146- MenuItem::Create (" Clear Cache" , MenuItemType::Normal);
146+ std::make_shared<MenuItem> (" Clear Cache" , MenuItemType::Normal);
147147 clear_cache_item->AddListener <MenuItemClickedEvent>(
148148 [](const MenuItemClickedEvent& event) {
149149 std::cout << " Clear Cache clicked from submenu" << std::endl;
150150 });
151151 tools_submenu->AddItem (clear_cache_item);
152152
153153 auto reset_settings_item =
154- MenuItem::Create (" Reset Settings" , MenuItemType::Normal);
154+ std::make_shared<MenuItem> (" Reset Settings" , MenuItemType::Normal);
155155 reset_settings_item->AddListener <MenuItemClickedEvent>(
156156 [](const MenuItemClickedEvent& event) {
157157 std::cout << " Reset Settings clicked from submenu" << std::endl;
@@ -161,7 +161,7 @@ int main() {
161161 tools_submenu->AddSeparator ();
162162
163163 auto debug_mode_item =
164- MenuItem::Create (" Debug Mode" , MenuItemType::Checkbox);
164+ std::make_shared<MenuItem> (" Debug Mode" , MenuItemType::Checkbox);
165165 debug_mode_item->SetState (MenuItemState::Unchecked);
166166 debug_mode_item->AddListener <MenuItemClickedEvent>(
167167 [debug_mode_item](const MenuItemClickedEvent& event) {
@@ -178,7 +178,8 @@ int main() {
178178 tools_submenu->AddItem (debug_mode_item);
179179
180180 // Create the submenu parent item
181- auto tools_item = MenuItem::Create (" Tools" , MenuItemType::Submenu);
181+ auto tools_item =
182+ std::make_shared<MenuItem>(" Tools" , MenuItemType::Submenu);
182183 tools_item->SetSubmenu (tools_submenu);
183184
184185 // Add submenu event listeners
@@ -201,12 +202,12 @@ int main() {
201202
202203 // Add preferences section (not a submenu, just a label)
203204 auto preferences_item =
204- MenuItem::Create (" Preferences" , MenuItemType::Normal);
205+ std::make_shared<MenuItem> (" Preferences" , MenuItemType::Normal);
205206 context_menu->AddItem (preferences_item);
206207
207208 // Add checkbox menu items
208209 auto auto_start_item =
209- MenuItem::Create (" Auto Start" , MenuItemType::Checkbox);
210+ std::make_shared<MenuItem> (" Auto Start" , MenuItemType::Checkbox);
210211 auto_start_item->SetState (MenuItemState::Checked); // Initially checked
211212 auto_start_item->AddListener <MenuItemClickedEvent>(
212213 [auto_start_item](const MenuItemClickedEvent& event) {
@@ -222,8 +223,8 @@ int main() {
222223 });
223224 context_menu->AddItem (auto_start_item);
224225
225- auto notifications_item =
226- MenuItem::Create ( " Show Notifications" , MenuItemType::Checkbox);
226+ auto notifications_item = std::make_shared<MenuItem>(
227+ " Show Notifications" , MenuItemType::Checkbox);
227228 notifications_item->SetState (
228229 MenuItemState::Unchecked); // Initially unchecked
229230 notifications_item->AddListener <MenuItemClickedEvent>(
@@ -241,7 +242,8 @@ int main() {
241242 context_menu->AddItem (notifications_item);
242243
243244 // Add three-state checkbox example
244- auto sync_item = MenuItem::Create (" Sync Status" , MenuItemType::Checkbox);
245+ auto sync_item =
246+ std::make_shared<MenuItem>(" Sync Status" , MenuItemType::Checkbox);
245247 sync_item->SetState (MenuItemState::Mixed); // Initially mixed/indeterminate
246248 sync_item->AddListener <MenuItemClickedEvent>(
247249 [sync_item](const MenuItemClickedEvent& event) {
@@ -275,11 +277,12 @@ int main() {
275277 context_menu->AddSeparator ();
276278
277279 // Add radio button group for theme selection
278- auto theme_label = MenuItem::Create (" Theme:" , MenuItemType::Normal);
280+ auto theme_label =
281+ std::make_shared<MenuItem>(" Theme:" , MenuItemType::Normal);
279282 context_menu->AddItem (theme_label);
280283
281284 auto light_theme_item =
282- MenuItem::Create (" Light Theme" , MenuItemType::Radio);
285+ std::make_shared<MenuItem> (" Light Theme" , MenuItemType::Radio);
283286 light_theme_item->SetRadioGroup (0 ); // Group 0
284287 light_theme_item->SetState (MenuItemState::Checked); // Default selection
285288 light_theme_item->AddListener <MenuItemClickedEvent>(
@@ -289,7 +292,8 @@ int main() {
289292 });
290293 context_menu->AddItem (light_theme_item);
291294
292- auto dark_theme_item = MenuItem::Create (" Dark Theme" , MenuItemType::Radio);
295+ auto dark_theme_item =
296+ std::make_shared<MenuItem>(" Dark Theme" , MenuItemType::Radio);
293297 dark_theme_item->SetRadioGroup (0 ); // Same group as light theme
294298 dark_theme_item->AddListener <MenuItemClickedEvent>(
295299 [dark_theme_item](const MenuItemClickedEvent& event) {
@@ -298,7 +302,8 @@ int main() {
298302 });
299303 context_menu->AddItem (dark_theme_item);
300304
301- auto auto_theme_item = MenuItem::Create (" Auto Theme" , MenuItemType::Radio);
305+ auto auto_theme_item =
306+ std::make_shared<MenuItem>(" Auto Theme" , MenuItemType::Radio);
302307 auto_theme_item->SetRadioGroup (0 ); // Same group
303308 auto_theme_item->AddListener <MenuItemClickedEvent>(
304309 [auto_theme_item](const MenuItemClickedEvent& event) {
@@ -311,7 +316,7 @@ int main() {
311316 context_menu->AddSeparator ();
312317
313318 // Add exit item
314- auto exit_item = MenuItem::Create (" Exit" , MenuItemType::Normal);
319+ auto exit_item = std::make_shared<MenuItem> (" Exit" , MenuItemType::Normal);
315320 exit_item->AddListener <MenuItemClickedEvent>(
316321 [&window_manager](const MenuItemClickedEvent& event) {
317322 std::cout << " Exit clicked from context menu" << std::endl;
0 commit comments