lib/ewl_context_menu.h
Go to the documentation of this file.00001
00002 #ifndef EWL_CONTEXT_MENU_H
00003 #define EWL_CONTEXT_MENU_H
00004
00005 #include "ewl_popup.h"
00021 #define EWL_CONTEXT_MENU_TYPE "context_menu"
00022
00027 #define EWL_CONTEXT_MENU_IS(w) (ewl_widget_type_is(EWL_WIDGET(w), \
00028 EWL_CONTEXT_MENU_TYPE))
00029
00033 typedef struct Ewl_Context_Menu Ewl_Context_Menu;
00034
00039 #define EWL_CONTEXT_MENU(context_menu) ((Ewl_Context_Menu *) context_menu)
00040
00044 struct Ewl_Context_Menu
00045 {
00046 Ewl_Popup popup;
00047 Ewl_Widget *open_menu;
00048 Ewl_Widget *container;
00049 Ewl_Child_Add child_add;
00050 Ewl_Child_Remove child_remove;
00051 };
00052
00053 Ewl_Widget *ewl_context_menu_new(void);
00054 int ewl_context_menu_init(Ewl_Context_Menu *cm);
00055 void ewl_context_menu_attach(Ewl_Context_Menu *cm, Ewl_Widget *w);
00056 void ewl_context_menu_detach(Ewl_Context_Menu *cm, Ewl_Widget *w);
00057
00058 void ewl_context_menu_container_set(Ewl_Context_Menu *cm,
00059 Ewl_Container *c);
00060
00061
00062
00063
00064 void ewl_context_menu_cb_hide(Ewl_Widget *w, void *ev_data, void *user_data);
00065 void ewl_context_menu_cb_mouse_down(Ewl_Widget *w, void *ev_data,
00066 void *user_data);
00067 void ewl_context_menu_cb_mouse_move(Ewl_Widget *w, void *ev_data,
00068 void *user_data);
00069 void ewl_context_menu_cb_focus_in(Ewl_Widget *w, void *ev_data,
00070 void *user_data);
00071 void ewl_context_menu_cb_attach_mouse_down(Ewl_Widget *w, void *ev_data,
00072 void *user_data);
00073 void ewl_context_menu_cb_child_add(Ewl_Container *c, Ewl_Widget *w);
00074 void ewl_context_menu_cb_child_remove(Ewl_Container *c, Ewl_Widget *w, int idx);
00075 void ewl_context_menu_cb_child_mouse_in(Ewl_Widget *w, void *ev_data,
00076 void *user_data);
00077 void ewl_context_menu_cb_child_clicked(Ewl_Widget *w, void *ev_data,
00078 void *user_data);
00079
00084 #endif