r717: Made the highlighted text color of the menus WHITE
[cinelerra_cv/mob.git] / guicast / bcmenupopup.h
blob0dc3bebef2b83a6d4fd84e206832b1dfb673cb5e
1 #ifndef BCMENUPOPUP_H
2 #define BCMENUPOPUP_H
6 #include "arraylist.h"
7 #include "bcmenu.inc"
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.
17 class BC_MenuPopup;
19 class BC_MenuPopup
21 public:
22 BC_MenuPopup();
23 virtual ~BC_MenuPopup();
25 friend class BC_MenuItem;
26 friend class BC_PopupMenu;
28 int initialize(BC_WindowBase *top_level,
29 BC_MenuBar *menu_bar,
30 BC_Menu *menu,
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);
47 int get_key_x();
48 int get_w();
49 int draw_items();
50 BC_Popup* get_popup();
52 private:
53 int get_dimensions();
55 ArrayList<BC_MenuItem *> menu_items;
56 BC_WindowBase *top_level;
57 BC_MenuItem *menu_item;
58 BC_MenuBar *menu_bar;
59 BC_PopupMenu *popup_menu;
60 BC_Menu *menu;
61 // Dimensions relative to root window
62 int x, y, w, h;
63 // Horizontal position of hotkey text
64 int key_x;
65 // Popup window that only exists when menu is down.
66 BC_Popup *popup;
67 int active;
68 int type;
69 // Images for backgrounds
70 BC_Pixmap *window_bg;
71 BC_Pixmap *item_bg[3];
74 class BC_SubMenu : public BC_MenuPopup
76 public:
77 BC_SubMenu();
78 virtual ~BC_SubMenu();
80 int add_submenuitem(BC_MenuItem *item);
86 #endif