changeset 2884:06e475feaac0

C++: Split Menu and MenuBar to prevent type conflicts.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Thu, 22 Dec 2022 14:51:21 +0000
parents d301fed4bc23
children df1b7f7d1703
files dw.hpp
diffstat 1 files changed, 12 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/dw.hpp	Thu Dec 22 14:06:03 2022 +0000
+++ b/dw.hpp	Thu Dec 22 14:51:21 2022 +0000
@@ -173,17 +173,24 @@
 {
 public:
     // Constructors
-    Menu(HWND location) { SetHMENUI(dw_menubar_new(location)); }
     Menu(unsigned long id) { SetHMENUI(dw_menu_new(id)); }
     Menu() { SetHMENUI(dw_menu_new(0)); }
 };
-
+
+class MenuBar : public Menus
+{
+public:
+    // Constructors
+    MenuBar(HWND location) { SetHMENUI(dw_menubar_new(location)); }
+};
+
+
 class MenuItem : public Clickable
 {
 public:
     // Constructors
     MenuItem(Menus *menu, const char *title, unsigned long id, unsigned long flags, int end, int check, Menus *submenu) { 
-        SetHWND(dw_menu_append_item(menu->GetHMENUI(), title, id, flags, end, check, submenu ? submenu->GetHMENUI() : DW_NULL)); 
+        SetHWND(dw_menu_append_item(menu->GetHMENUI(), title, id, flags, end, check, submenu ? submenu->GetHMENUI() : 0)); 
     }
 
     // User functions
@@ -221,7 +228,7 @@
         if(reinterpret_cast<Window *>(data)->_ConnectConfigure)
             return reinterpret_cast<Window *>(data)->_ConnectConfigure(width, height);
         return reinterpret_cast<Window *>(data)->OnConfigure(width, height); }
-    Menu *menu;
+    MenuBar *menu;
 public:
     // Constructors
     Window(HWND owner, const char *title, unsigned long style) { SetHWND(dw_window_new(owner, title, style)); Setup(); }
@@ -245,7 +252,7 @@
     void Redraw() { dw_window_redraw(hwnd); }
     void Default(Widget *defaultitem) { if(defaultitem) dw_window_default(hwnd, defaultitem->GetHWND()); }
     void SetIcon(HICN icon) { dw_window_set_icon(hwnd, icon); }
-    Menu *MenuBar() { if(menu == DW_NULL) menu = new Menu(hwnd); return menu; }
+    MenuBar *MenuBarNew() { if(!menu) menu = new MenuBar(hwnd); return menu; }
 #ifdef DW_CPP11
     void ConnectDelete(std::function<int()> userfunc)
 #else