Download

Support

lib/ewl_widget.h

Go to the documentation of this file.
00001 /* vim: set sw=8 ts=8 sts=8 expandtab: */
00002 #ifndef EWL_WIDGET_H
00003 #define EWL_WIDGET_H
00004 
00026 #define EWL_WIDGET_TYPE "widget"
00027 
00032 #define EWL_WIDGET_IS(w) (ewl_widget_type_is(EWL_WIDGET(w), EWL_WIDGET_TYPE))
00033 
00037 typedef struct Ewl_Attach_List Ewl_Attach_List;
00038 
00042 struct Ewl_Attach_List
00043 {
00044         void **list;                
00045         unsigned int direct:1;        
00046         unsigned int len:31;        
00047 };
00048 
00052 typedef struct Ewl_Pair Ewl_Pair;
00053 
00058 #define EWL_PAIR(p) ((Ewl_Pair *)p)
00059 
00063 struct Ewl_Pair
00064 {
00065         const char *key; 
00066         char *value;        
00067 };
00068 
00072 typedef struct Ewl_Pair_List Ewl_Pair_List;
00073 
00077 struct Ewl_Pair_List
00078 {
00079         Ewl_Pair **list;        
00080         unsigned int direct:1;        
00081         unsigned int len:31;        
00082 };
00083 
00087 typedef struct Ewl_Callback_Chain Ewl_Callback_Chain;
00088 
00092 struct Ewl_Callback_Chain
00093 {
00094         void **list;                
00095         unsigned char mask;        
00096         unsigned char len;        
00097         unsigned char index;        
00098 };
00099 
00103 typedef struct Ewl_Color_Set Ewl_Color_Set;
00104 
00108 struct Ewl_Color_Set
00109 {
00110         unsigned char r,         
00111                       g,         
00112                       b,         
00113                       a;        
00114 };
00115 
00119 typedef void *(*Ewl_Widget_Drag)(void);
00120 
00125 typedef struct Ewl_Widget Ewl_Widget;
00126 
00131 #define EWL_WIDGET(widget) ((Ewl_Widget *) widget)
00132 
00137 struct Ewl_Widget
00138 {
00139         Ewl_Object object; 
00140         Ewl_Widget *parent; 
00142         Ewl_Callback_Chain callbacks[EWL_CALLBACK_MAX + 1];
00144         Ewl_Attach_List *attach;       
00146         void *smart_object; 
00147         void *fx_clip_box;  
00149         void *theme_object; 
00150         const char *theme_path;     
00151         const char *theme_group;    
00152         const char *theme_state;    
00153         const char *appearance;   
00154         const char *inheritance;  
00155         int layer;                
00157         Ecore_Hash *theme;                 
00158         Ewl_Pair_List theme_text;        
00160         unsigned char toplayered:1;        
00162         unsigned char unmanaged:1;
00163 
00164 };
00165 
00166 Ewl_Widget         *ewl_widget_new(void);
00167 int                  ewl_widget_init(Ewl_Widget *w);
00168 void                 ewl_widget_free(Ewl_Widget *w);
00169 
00170 void                  ewl_widget_name_set(Ewl_Widget *w, const char *name);
00171 const char         *ewl_widget_name_get(Ewl_Widget *w);
00172 Ewl_Widget         *ewl_widget_name_find(const char *name);
00173 
00174 void                  ewl_widget_reparent(Ewl_Widget *widget);
00175 void                  ewl_widget_realize(Ewl_Widget *widget);
00176 void                  ewl_widget_unrealize(Ewl_Widget *w);
00177 void                  ewl_widget_reveal(Ewl_Widget *w);
00178 void                  ewl_widget_obscure(Ewl_Widget *w);
00179 void                  ewl_widget_show(Ewl_Widget *widget);
00180 void                  ewl_widget_hide(Ewl_Widget *widget);
00181 void                   ewl_widget_destroy(Ewl_Widget *widget);
00182 void                  ewl_widget_configure(Ewl_Widget *widget);
00183 
00184 void                  ewl_widget_data_set(Ewl_Widget *w, void *k, void *v);
00185 void                 *ewl_widget_data_del(Ewl_Widget *w, void *k);
00186 void                 *ewl_widget_data_get(Ewl_Widget *w, void *k);
00187 
00188 void                  ewl_widget_state_set(Ewl_Widget *w, const char *state,
00189                                                 Ewl_State_Type flag);
00190 
00191 void                  ewl_widget_appearance_set(Ewl_Widget *w, const char *appearance);
00192 char                 *ewl_widget_appearance_get(Ewl_Widget *w);
00193 char                 *ewl_widget_appearance_path_get(Ewl_Widget *w);
00194 int                 ewl_widget_appearance_path_size_get(Ewl_Widget *w);
00195 int                 ewl_widget_appearance_path_copy(Ewl_Widget *w, char *buf,
00196                                                 int size);
00197 void                  ewl_widget_appearance_part_text_set(Ewl_Widget *w, const char *part,
00198                                                    const char *text);
00199 const char         *ewl_widget_appearance_part_text_get(Ewl_Widget *w, const char *part);
00200 void                  ewl_widget_appearance_text_set(Ewl_Widget *w, const char *text);
00201 const char        *ewl_widget_appearance_text_get(Ewl_Widget *w);
00202 
00203 void                  ewl_widget_inherit(Ewl_Widget *widget, const char *type);
00204 
00205 unsigned int          ewl_widget_type_is(Ewl_Widget *widget, const char *type);
00206 unsigned int          ewl_widget_onscreen_is(Ewl_Widget *widget);
00207 
00208 void                  ewl_widget_parent_set(Ewl_Widget *w, Ewl_Widget *p);
00209 Ewl_Widget         *ewl_widget_parent_get(Ewl_Widget *w);
00210 
00211 void                  ewl_widget_enable(Ewl_Widget *w);
00212 void                  ewl_widget_disable(Ewl_Widget *w);
00213 
00214 void                  ewl_widget_print(Ewl_Widget *w);
00215 void                  ewl_widget_print_verbose(Ewl_Widget *w);
00216 void                 ewl_widget_tree_print(Ewl_Widget *w);
00217 
00218 void                  ewl_widget_layer_top_set(Ewl_Widget *w, int top);
00219 int                  ewl_widget_layer_top_get(Ewl_Widget *w);
00220 void                  ewl_widget_layer_priority_set(Ewl_Widget *w, int layer);
00221 int                  ewl_widget_layer_priority_get(Ewl_Widget *w);
00222 
00223 void                  ewl_widget_internal_set(Ewl_Widget *w, unsigned int val);
00224 unsigned int     ewl_widget_internal_is(Ewl_Widget *w);
00225 
00226 void                  ewl_widget_unmanaged_set(Ewl_Widget *w, unsigned int val);
00227 unsigned int     ewl_widget_unmanaged_is(Ewl_Widget *w);
00228 
00229 void                  ewl_widget_clipped_set(Ewl_Widget *w, unsigned int val);
00230 unsigned int     ewl_widget_clipped_is(Ewl_Widget *w);
00231 
00232 void                  ewl_widget_focus_send(Ewl_Widget *w);
00233 Ewl_Widget          *ewl_widget_focused_get(void);
00234 
00235 void                  ewl_widget_tab_order_append(Ewl_Widget *w);
00236 void                  ewl_widget_tab_order_prepend(Ewl_Widget *w);
00237 void                  ewl_widget_tab_order_insert(Ewl_Widget *w, unsigned int idx);
00238 void                 ewl_widget_tab_order_insert_before(Ewl_Widget *w, Ewl_Widget *before);
00239 void                 ewl_widget_tab_order_insert_after(Ewl_Widget *w, Ewl_Widget *after);
00240 void                  ewl_widget_tab_order_remove(Ewl_Widget *w);
00241 
00242 void                 ewl_widget_focusable_set(Ewl_Widget *w, unsigned int val);
00243 unsigned int         ewl_widget_focusable_get(Ewl_Widget *w);
00244 
00245 void                 ewl_widget_ignore_focus_change_set(Ewl_Widget *w, unsigned int val);
00246 unsigned int         ewl_widget_ignore_focus_change_get(Ewl_Widget *w);
00247 
00248 void                  ewl_widget_color_set(Ewl_Widget *w, unsigned int r, unsigned int g,
00249                                                         unsigned int b, unsigned int a);
00250 void                  ewl_widget_color_get(Ewl_Widget *w, unsigned int *r, unsigned int *g,
00251                                                         unsigned int *b, unsigned int *a);
00252 
00253 int                  ewl_widget_parent_of(Ewl_Widget *c, Ewl_Widget *w);
00254 
00255 
00256 #define UNMANAGED(w) (((const Ewl_Widget *)(w))->unmanaged)
00257 
00258 /*
00259  * Internally used callbacks, override at your own risk.
00260  */
00261 void ewl_widget_cb_show(Ewl_Widget *w, void *ev_data, void *user_data);
00262 void ewl_widget_cb_hide(Ewl_Widget *w, void *ev_data, void *user_data);
00263 void ewl_widget_cb_reveal(Ewl_Widget *w, void *ev_data, void *user_data);
00264 void ewl_widget_cb_obscure(Ewl_Widget *w, void *ev_data, void *user_data);
00265 void ewl_widget_cb_realize(Ewl_Widget *w, void *ev_data, void *user_data);
00266 void ewl_widget_cb_unrealize(Ewl_Widget *w, void *ev_data, void *user_data);
00267 void ewl_widget_cb_configure(Ewl_Widget *w, void *ev_data, void *user_data);
00268 void ewl_widget_cb_reparent(Ewl_Widget *w, void *ev_data, void *user_data);
00269 void ewl_widget_cb_enable(Ewl_Widget *w, void *ev_data, void *user_data);
00270 void ewl_widget_cb_disable(Ewl_Widget *w, void *ev_data, void *user_data);
00271 void ewl_widget_cb_focus_in(Ewl_Widget *w, void *ev_data, void *user_data);
00272 void ewl_widget_cb_focus_out(Ewl_Widget *w, void *ev_data, void *user_data);
00273 void ewl_widget_cb_mouse_in(Ewl_Widget *w, void *ev_data, void *user_data);
00274 void ewl_widget_cb_mouse_out(Ewl_Widget *w, void *ev_data, void *user_data);
00275 void ewl_widget_cb_mouse_down(Ewl_Widget *w, void *ev_data, void *user_data);
00276 void ewl_widget_cb_mouse_up(Ewl_Widget *w, void *ev_data, void *user_data);
00277 void ewl_widget_cb_mouse_move(Ewl_Widget *w, void *ev_data, void *user_data);
00278 
00283 #endif

Copyright © Enlightenment.org

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