8 #include "bcmenubar.inc"
9 #include "bcmenuitem.inc"
10 #include "bcpopup.inc"
11 #include "bcpopupmenu.inc"
12 #include "bcwindowbase.inc"
15 // A window that contains a menu.
23 virtual ~BC_MenuPopup();
25 friend class BC_MenuItem
;
26 friend class BC_PopupMenu
;
28 int initialize(BC_WindowBase
*top_level
,
31 BC_MenuItem
*menu_item
,
32 BC_PopupMenu
*popup_menu
);
33 int add_item(BC_MenuItem
*item
);
34 int remove_item(BC_MenuItem
* item
= 0);
35 int total_menuitems();
37 // Deactivates all submenus in a downward progression except for the exclude
38 int deactivate_submenus(BC_MenuPopup
*exclude
= 0);
39 int dispatch_button_press();
40 int dispatch_button_release();
41 int dispatch_key_press();
42 int dispatch_motion_event();
43 int dispatch_cursor_leave();
44 int dispatch_translation_event();
45 int deactivate_menu();
46 int activate_menu(int x
, int y
, int w
, int h
, int top_window_coords
, int vertical_justify
);
50 BC_Popup
* get_popup();
55 ArrayList
<BC_MenuItem
*> menu_items
;
56 BC_WindowBase
*top_level
;
57 BC_MenuItem
*menu_item
;
59 BC_PopupMenu
*popup_menu
;
61 // Dimensions relative to root window
63 // Horizontal position of hotkey text
65 // Popup window that only exists when menu is down.
69 // Images for backgrounds
71 BC_Pixmap
*item_bg
[3];
74 class BC_SubMenu
: public BC_MenuPopup
78 virtual ~BC_SubMenu();
80 int add_submenuitem(BC_MenuItem
*item
);