00001 #ifndef BCPOPUPMENU_H
00002 #define BCPOPUPMENU_H
00003
00004 #include "bcmenubar.inc"
00005 #include "bcmenuitem.inc"
00006 #include "bcmenupopup.inc"
00007 #include "bcsubwindow.h"
00008
00009
00010
00011
00012
00013
00014 class BC_PopupMenu : public BC_SubWindow
00015 {
00016 public:
00017 BC_PopupMenu(int x,
00018 int y,
00019 int w,
00020 char *text,
00021 int use_title = 1,
00022
00023 VFrame **data = 0,
00024
00025 int margin = -1);
00026 BC_PopupMenu(int x,
00027 int y,
00028 char *text,
00029 int use_title = 1,
00030
00031 VFrame **data = 0);
00032 virtual ~BC_PopupMenu();
00033
00034 static int calculate_h(VFrame **data = 0);
00035 virtual int handle_event() { return 0; };
00036 char* get_text();
00037 int initialize();
00038 int add_item(BC_MenuItem *item);
00039 int remove_item(BC_MenuItem *item);
00040 int total_items();
00041 BC_MenuItem* get_item(int i);
00042
00043 void set_text(char *text);
00044
00045 void set_icon(BC_Pixmap *pixmap);
00046
00047 int draw_title();
00048 int reposition_window(int x, int y);
00049 int deactivate();
00050 int activate_menu();
00051 int deactivate_menu();
00052 int focus_out_event();
00053 int repeat_event(int64_t duration);
00054 int button_press_event();
00055 int button_release_event();
00056 int cursor_leave_event();
00057 int cursor_enter_event();
00058 int cursor_motion_event();
00059 int translation_event();
00060 int drag_start_event();
00061 int drag_stop_event();
00062 int drag_motion_event();
00063 int set_images(VFrame **data);
00064
00065 private:
00066 char text[BCTEXTLEN];
00067 int margin;
00068 VFrame **data;
00069 BC_Pixmap *images[9];
00070 BC_Pixmap *icon;
00071 int highlighted;
00072 int popup_down;
00073 int use_title;
00074 int button_releases;
00075 BC_MenuPopup *menu_popup;
00076
00077 int button_press_x, button_press_y;
00078 int w_argument;
00079 int status;
00080 };
00081
00082
00083
00084 #endif