Download

Support

lib/ewl_menu.h

Go to the documentation of this file.
00001 /* vim: set sw=8 ts=8 sts=8 expandtab: */
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  * Internally used callbacks, override at your own risk.
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

Copyright © Enlightenment.org

Enlightened Widget Library Documentation Generated: Sat May 17 16:49:05 2008