comparison dw.hpp @ 2889:4b075e64536c

C++: Add some simple menu code to see if things are working.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Thu, 22 Dec 2022 19:20:39 +0000
parents df1b7f7d1703
children ab4c86ddc63a
comparison
equal deleted inserted replaced
2888:ec0d34798706 2889:4b075e64536c
165 } 165 }
166 HMENUI menu; 166 HMENUI menu;
167 public: 167 public:
168 // User functions 168 // User functions
169 HMENUI GetHMENUI() { return menu; } 169 HMENUI GetHMENUI() { return menu; }
170 MenuItem *MenuItemNew(const char *title, unsigned long id, unsigned long flags, int end, int check, Menus *submenu); 170 MenuItem *AppendItem(const char *title, unsigned long id, unsigned long flags, int end, int check, Menus *submenu);
171 MenuItem *MenuItemNew(const char *title, Menus *submenu); 171 MenuItem *AppendItem(const char *title, Menus *submenu);
172 MenuItem *MenuItemNew(const char *title); 172 MenuItem *AppendItem(const char *title);
173 }; 173 };
174 174
175 class Menu : public Menus 175 class Menu : public Menus
176 { 176 {
177 public: 177 public:
197 // Constructors 197 // Constructors
198 MenuItem(Menus *menu, const char *title, unsigned long id, unsigned long flags, int end, int check, Menus *submenu) { 198 MenuItem(Menus *menu, const char *title, unsigned long id, unsigned long flags, int end, int check, Menus *submenu) {
199 SetHWND(dw_menu_append_item(menu->GetHMENUI(), title, id, flags, end, check, submenu ? submenu->GetHMENUI() : DW_NOMENU)); 199 SetHWND(dw_menu_append_item(menu->GetHMENUI(), title, id, flags, end, check, submenu ? submenu->GetHMENUI() : DW_NOMENU));
200 } 200 }
201 MenuItem(Menus *menu, const char *title, Menus *submenu) { 201 MenuItem(Menus *menu, const char *title, Menus *submenu) {
202 SetHWND(dw_menu_append_item(menu->GetHMENUI(), title, DW_MENU_AUTO, 0, TRUE, FALSE, submenu)); 202 SetHWND(dw_menu_append_item(menu->GetHMENUI(), title, DW_MENU_AUTO, 0, TRUE, FALSE, submenu ? submenu->GetHMENUI() : DW_NOMENU));
203 } 203 }
204 MenuItem(Menus *menu, const char *title) { 204 MenuItem(Menus *menu, const char *title) {
205 SetHWND(dw_menu_append_item(menu->GetHMENUI(), title, DW_MENU_AUTO, 0, TRUE, FALSE, DW_NOMENU)); 205 SetHWND(dw_menu_append_item(menu->GetHMENUI(), title, DW_MENU_AUTO, 0, TRUE, FALSE, DW_NOMENU));
206 } 206 }
207 207
208 // User functions 208 // User functions
209 void SetState(unsigned long flags) { dw_window_set_style(hwnd, flags, flags); } 209 void SetState(unsigned long flags) { dw_window_set_style(hwnd, flags, flags); }
210 void SetStyle(unsigned long flags, unsigned long mask) { dw_window_set_style(hwnd, flags, mask); } 210 void SetStyle(unsigned long flags, unsigned long mask) { dw_window_set_style(hwnd, flags, mask); }
211 }; 211 };
212 212
213 MenuItem *Menus::MenuItemNew(const char *title, unsigned long id, unsigned long flags, int end, int check, Menus *submenu) { 213 MenuItem *Menus::AppendItem(const char *title, unsigned long id, unsigned long flags, int end, int check, Menus *submenu) {
214 return new MenuItem((Menus *)menu, title, id, flags, end, check, submenu); 214 return new MenuItem((Menus *)menu, title, id, flags, end, check, submenu);
215 } 215 }
216 216
217 MenuItem *Menus::MenuItemNew(const char *title, Menus *submenu) { 217 MenuItem *Menus::AppendItem(const char *title, Menus *submenu) {
218 return new MenuItem((Menus *)menu, title, submenu); 218 return new MenuItem((Menus *)menu, title, submenu);
219 } 219 }
220 MenuItem *Menus::MenuItemNew(const char *title) { 220 MenuItem *Menus::AppendItem(const char *title) {
221 return new MenuItem((Menus *)menu, title); 221 return new MenuItem((Menus *)menu, title);
222 } 222 }
223 223
224 224
225 // Top-level window class is packable 225 // Top-level window class is packable
274 int Raise() { return dw_window_raise(hwnd); } 274 int Raise() { return dw_window_raise(hwnd); }
275 int Lower() { return dw_window_lower(hwnd); } 275 int Lower() { return dw_window_lower(hwnd); }
276 void Redraw() { dw_window_redraw(hwnd); } 276 void Redraw() { dw_window_redraw(hwnd); }
277 void Default(Widget *defaultitem) { if(defaultitem) dw_window_default(hwnd, defaultitem->GetHWND()); } 277 void Default(Widget *defaultitem) { if(defaultitem) dw_window_default(hwnd, defaultitem->GetHWND()); }
278 void SetIcon(HICN icon) { dw_window_set_icon(hwnd, icon); } 278 void SetIcon(HICN icon) { dw_window_set_icon(hwnd, icon); }
279 Menus *MenuBarNew() { if(!menu) menu = new MenuBar(hwnd); return menu; } 279 MenuBar *MenuBarNew() { if(!menu) menu = new MenuBar(hwnd); return menu; }
280 void Popup(Menus *menu, int x, int y) { 280 void Popup(Menu *menu, int x, int y) {
281 if(menu) { 281 if(menu) {
282 HMENUI pmenu = menu; 282 HMENUI pmenu = menu;
283 283
284 dw_menu_popup(&pmenu, hwnd, x, y); 284 dw_menu_popup(&pmenu, hwnd, x, y);
285 delete menu; 285 delete menu;
286 } 286 }
287 } 287 }
288 void Popup(Menus *menu) { if(menu) { 288 void Popup(Menu *menu) {
289 if(menu) {
289 long x, y; 290 long x, y;
290 HMENUI pmenu = menu; 291 HMENUI pmenu = menu;
291 292
292 dw_pointer_query_pos(&x, &y); 293 dw_pointer_query_pos(&x, &y);
293 dw_menu_popup(&pmenu, hwnd, (int)x, (int)y); 294 dw_menu_popup(&pmenu, hwnd, (int)x, (int)y);