Mercurial > dwindows
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