lib/ewl_menu.h
Go to the documentation of this file.00001
00002 #ifndef EWL_MENU_H
00003 #define EWL_MENU_H
00004
00005 #include "ewl_menu_item.h"
00028 #define EWL_MENU_TYPE "menu"
00029
00034 #define EWL_MENU_IS(w) (ewl_widget_type_is(EWL_WIDGET(w), EWL_MENU_TYPE))
00035
00039 typedef struct Ewl_Menu Ewl_Menu;
00040
00045 #define EWL_MENU(menu) ((Ewl_Menu *) menu)
00046
00051 struct Ewl_Menu
00052 {
00053 Ewl_Menu_Item item;
00054 Ewl_Widget *popup;
00056 Ewl_Widget *menubar_parent;
00057 };
00058
00062 typedef struct Ewl_Menu_Info Ewl_Menu_Info;
00063
00067 struct Ewl_Menu_Info
00068 {
00069 const char *name;
00070 const char *img;
00071 void (*cb)(Ewl_Widget *w, void *ev, void *data);
00072 };
00073
00074 Ewl_Widget *ewl_menu_new(void);
00075 int ewl_menu_init(Ewl_Menu *menu);
00076
00077 void ewl_menu_from_info(Ewl_Menu *menu, Ewl_Menu_Info *info);
00078
00079 void ewl_menu_collapse(Ewl_Menu *menu);
00080
00081
00082
00083
00084 void ewl_menu_cb_configure(Ewl_Widget *w, void *ev_data, void *user_data);
00085 void ewl_menu_cb_expand(Ewl_Widget *w, void *ev_data, void *user_data);
00086 void ewl_menu_cb_hide(Ewl_Widget *w, void *ev_data, void *user_data);
00087 void ewl_menu_cb_realize(Ewl_Widget *w, void *ev_data, void *user_data);
00088 void ewl_menu_cb_destroy(Ewl_Widget *w, void *ev, void *data);
00089 void ewl_menu_cb_popup_destroy(Ewl_Widget *w, void *ev, void *data);
00090 void ewl_menu_cb_mouse_move(Ewl_Widget *w, void *ev_data, void *user_data);
00091
00092 int ewl_menu_mouse_feed(Ewl_Menu *menu, int x, int y);
00093
00098 #endif