Download

Support

lib/ewl_engines.h

Go to the documentation of this file.
00001 /* vim: set sw=8 ts=8 sts=8 expandtab: */
00002 #ifndef EWL_ENGINES_H
00003 #define EWL_ENGINES_H
00004 
00005 enum Ewl_Engine_Window_Hooks
00006 {
00007         EWL_ENGINE_WINDOW_NEW,        
00008         EWL_ENGINE_WINDOW_DESTROY,
00010         EWL_ENGINE_WINDOW_MOVE,        
00012         EWL_ENGINE_WINDOW_RESIZE,        
00013         EWL_ENGINE_WINDOW_MIN_MAX_SIZE_SET, 
00014         EWL_ENGINE_WINDOW_SHOW,        
00015         EWL_ENGINE_WINDOW_HIDE,        
00017         EWL_ENGINE_WINDOW_TITLE_SET, 
00018         EWL_ENGINE_WINDOW_NAME_CLASS_SET,
00020         EWL_ENGINE_WINDOW_BORDERLESS_SET,
00022         EWL_ENGINE_WINDOW_DIALOG_SET,        
00023         EWL_ENGINE_WINDOW_STATES_SET,        
00024         EWL_ENGINE_WINDOW_HINTS_SET,        
00025         EWL_ENGINE_WINDOW_TRANSIENT_FOR,
00026         EWL_ENGINE_WINDOW_LEADER_SET,        
00027         EWL_ENGINE_WINDOW_RAISE,        
00028         EWL_ENGINE_WINDOW_LOWER,        
00030         EWL_ENGINE_WINDOW_KEYBOARD_GRAB,        
00031         EWL_ENGINE_WINDOW_KEYBOARD_UNGRAB,        
00032         EWL_ENGINE_WINDOW_POINTER_GRAB,        
00033         EWL_ENGINE_WINDOW_POINTER_UNGRAB,        
00035         EWL_ENGINE_WINDOW_SELECTION_TEXT_SET, 
00036         EWL_ENGINE_WINDOW_GEOMETRY_GET, 
00038         EWL_ENGINE_WINDOW_DND_AWARE_SET,         
00039         EWL_ENGINE_WINDOW_DESKTOP_SIZE_GET, 
00041         EWL_ENGINE_WINDOW_DND_DRAG_TYPES_SET, 
00042         EWL_ENGINE_WINDOW_DND_DRAG_START, 
00043         EWL_ENGINE_WINDOW_DND_DRAG_DROP, 
00044         EWL_ENGINE_WINDOW_DND_DRAG_DATA_SEND, 
00046         EWL_ENGINE_WINDOW_MAX
00047 };
00048 
00049 enum Ewl_Engine_Canvas_Hooks
00050 {
00051         EWL_ENGINE_CANVAS_SETUP, 
00052         EWL_ENGINE_CANVAS_OUTPUT_SET, 
00054         EWL_ENGINE_CANVAS_RENDER,
00055         EWL_ENGINE_CANVAS_FREEZE,
00056         EWL_ENGINE_CANVAS_THAW,
00057 
00058         EWL_ENGINE_CANVAS_DAMAGE_ADD,
00059 
00060         EWL_ENGINE_CANVAS_MAX
00061 };
00062 
00063 enum Ewl_Engine_Theme_Hooks
00064 {
00065         EWL_ENGINE_THEME_FREEZE,
00066         EWL_ENGINE_THEME_THAW,
00067 
00068         EWL_ENGINE_THEME_DATA_GET,
00069 
00070         EWL_ENGINE_THEME_WIDGET_GROUP,
00071 
00072         EWL_ENGINE_THEME_OBJECT_ADD,
00073         EWL_ENGINE_THEME_OBJECT_DEL,
00074         EWL_ENGINE_THEME_OBJECT_MOVE,
00075         EWL_ENGINE_THEME_OBJECT_RESIZE,
00076         EWL_ENGINE_THEME_OBJECT_SHOW,
00077         EWL_ENGINE_THEME_OBJECT_HIDE,
00078         EWL_ENGINE_THEME_OBJECT_CLIP_SET,
00079         EWL_ENGINE_THEME_OBJECT_CLIP_UNSET,
00080         EWL_ENGINE_THEME_OBJECT_FILE_SET,
00081         EWL_ENGINE_THEME_OBJECT_LOAD_ERROR,
00082         EWL_ENGINE_THEME_OBJECT_MIN_SIZE_GET,
00083         EWL_ENGINE_THEME_OBJECT_MAX_SIZE_GET,
00084         EWL_ENGINE_THEME_OBJECT_SIGNAL_SEND,
00085         EWL_ENGINE_THEME_OBJECT_PART_TEXT_SET,
00086         EWL_ENGINE_THEME_OBJECT_COLOR_CLASS_SET,
00087 
00088         EWL_ENGINE_THEME_CLIP_ADD,
00089         EWL_ENGINE_THEME_CLIP_DEL,
00090         EWL_ENGINE_THEME_CLIP_CLIPEES_GET,
00091         EWL_ENGINE_THEME_CLIP_COLOR_SET,
00092 
00093         EWL_ENGINE_THEME_WIDGET_STACK_ADD,
00094         EWL_ENGINE_THEME_WIDGET_LAYER_UPDATE,
00095         EWL_ENGINE_THEME_MAX,
00096 };
00097 
00098 enum Ewl_Engine_Pointer_Hooks
00099 {
00100         EWL_ENGINE_POINTER_DATA_NEW, 
00101         EWL_ENGINE_POINTER_FREE, 
00102         EWL_ENGINE_POINTER_GET, 
00103         EWL_ENGINE_POINTER_SET, 
00104         EWL_ENGINE_POINTER_MAX
00105 };
00106 
00107 typedef enum Ewl_Engine_Window_Hooks Ewl_Engine_Window_Hooks;
00108 typedef enum Ewl_Engine_Theme_Hooks Ewl_Engine_Theme_Hooks;
00109 typedef enum Ewl_Engine_Canvas_Hooks Ewl_Engine_Canvas_Hooks;
00110 typedef enum Ewl_Engine_Pointer_Hooks Ewl_Engine_Pointer_Hooks;
00111 
00112 #define EWL_ENGINE(engine) ((Ewl_Engine *)engine)
00113 
00117 typedef struct Ewl_Engine Ewl_Engine;
00118 
00122 typedef struct Ewl_Engine_Info Ewl_Engine_Info;
00123 
00127 struct Ewl_Engine_Info
00128 {
00129         void (*shutdown)(Ewl_Engine *engine);        
00131         struct
00132         {
00133                 void **window;                
00134                 void **canvas;                
00135                 void **theme;                
00136                 void **pointer;                
00137         } hooks;                        
00138 };
00139 
00143 struct Ewl_Engine
00144 {
00145         Ecore_Plugin * plugin;                
00147         Ecore_DList *dependancies;        
00148         Ewl_Engine_Info *functions;        
00150 };
00151 
00152 extern Ecore_Path_Group *ewl_engines_path;
00153 
00154 int                  ewl_engines_init(void);
00155 void                  ewl_engines_shutdown(void);
00156 
00157 Ecore_List        *ewl_engine_names_get(void);
00158 
00159 Ewl_Engine        *ewl_engine_new(const char *name,
00160                                 int *argc, char ** argv);
00161 
00162 void                 ewl_engine_event_handlers_init(void);
00163 void                 ewl_engine_event_handlers_shutdown(void);
00164 
00165 void                 ewl_engine_engine_shutdown(Ewl_Window *win);
00166 
00167 void                 ewl_engine_window_new(Ewl_Window *win);
00168 void                 ewl_engine_window_destroy(Ewl_Window *win);
00169 
00170 void                 ewl_engine_window_move(Ewl_Window *win);
00171 void                 ewl_engine_window_resize(Ewl_Window *win);
00172 void                 ewl_engine_window_min_max_size_set(Ewl_Window *win);
00173 void                 ewl_engine_window_show(Ewl_Window *win);
00174 void                 ewl_engine_window_hide(Ewl_Window *win);
00175 
00176 void                 ewl_engine_window_title_set(Ewl_Window *win);
00177 void                 ewl_engine_window_name_class_set(Ewl_Window *win);
00178 
00179 void                 ewl_engine_window_borderless_set(Ewl_Window *win);
00180 void                 ewl_engine_window_dialog_set(Ewl_Window *win);
00181 void                 ewl_engine_window_states_set(Ewl_Window *win);
00182 void                 ewl_engine_window_hints_set(Ewl_Window *win);
00183 void                 ewl_engine_window_transient_for(Ewl_Window *win);
00184 void                 ewl_engine_window_leader_set(Ewl_Window *win);
00185 
00186 void                 ewl_engine_window_raise(Ewl_Window *win);
00187 void                 ewl_engine_window_lower(Ewl_Window *win);
00188 
00189 int                 ewl_engine_keyboard_grab(Ewl_Window *win);
00190 void                 ewl_engine_keyboard_ungrab(Ewl_Window *win);
00191 int                  ewl_engine_pointer_grab(Ewl_Window *win);
00192 void                  ewl_engine_pointer_ungrab(Ewl_Window *win);
00193 
00194 void                 ewl_engine_window_geometry_get(Ewl_Window *win, int root,
00195                                                 int *width, int *height);
00196 void                 ewl_engine_embed_selection_text_set(Ewl_Embed *emb,
00197                                                         const char *txt);
00198 void                 ewl_engine_embed_dnd_aware_set(Ewl_Embed *embed);
00199 void                  ewl_engine_embed_dnd_drag_types_set(Ewl_Embed *embed,
00200                                                         char **types,
00201                                                         unsigned int num);
00202 void                  ewl_engine_embed_dnd_drag_start(Ewl_Embed *embed);
00203 void                  ewl_engine_embed_dnd_drag_drop(Ewl_Embed *embed);
00204 int              ewl_engine_embed_dnd_drag_data_send(Ewl_Embed *embed,
00205                                                         void *handle,
00206                                                         void *data,
00207                                                         int size);
00208 void                 ewl_engine_desktop_size_get(Ewl_Embed *embed, int *w, int *h);
00209 
00210 void                 ewl_engine_canvas_setup(Ewl_Window *win, int debug);
00211 void                 ewl_engine_canvas_output_set(Ewl_Embed *emb, int x, int y,
00212                                                 int width, int height);
00213 void                 ewl_engine_canvas_render(Ewl_Embed *embed);
00214 void                 ewl_engine_canvas_freeze(Ewl_Embed *embed);
00215 void                 ewl_engine_canvas_thaw(Ewl_Embed *embed);
00216 void                 ewl_engine_canvas_damage_add(Ewl_Embed *embed, int x, int y,
00217                                                                 int w, int h);
00218 
00219 void                 ewl_engine_theme_freeze(Ewl_Embed *embed);
00220 void                 ewl_engine_theme_thaw(Ewl_Embed *embed);
00221 char                *ewl_engine_theme_data_get(Ewl_Widget *w, char *key);
00222 
00223 int                  ewl_engine_pointer_data_new(Ewl_Embed *embed,
00224                                                 unsigned int *data, int w, int h);
00225 void                 ewl_engine_pointer_free(Ewl_Embed *embed, int pointer);
00226 void                 ewl_engine_pointer_set(Ewl_Embed *embed, int pointer);
00227 int                  ewl_engine_pointer_get(Ewl_Embed *embed);
00228 
00234 typedef void (*Ewl_Engine_Cb_Window_New)(Ewl_Window *win);        
00235 typedef void (*Ewl_Engine_Cb_Window_Destroy)(Ewl_Window *win);
00236 typedef void (*Ewl_Engine_Cb_Window_Move)(Ewl_Window *win);        
00238 typedef void (*Ewl_Engine_Cb_Window_Resize)(Ewl_Window *win);        
00239 typedef void (*Ewl_Engine_Cb_Window_Min_Max_Size_Set)(Ewl_Window *win); 
00241 typedef void (*Ewl_Engine_Cb_Window_Show)(Ewl_Window *win);        
00242 typedef void (*Ewl_Engine_Cb_Window_Hide)(Ewl_Window *win);        
00243 typedef void (*Ewl_Engine_Cb_Window_Title_Set)(Ewl_Window *win); 
00244 typedef void (*Ewl_Engine_Cb_Window_Name_Class_Set)(Ewl_Window *win);        
00246 typedef void (*Ewl_Engine_Cb_Window_Borderless_Set)(Ewl_Window *win);        
00248 typedef void (*Ewl_Engine_Cb_Window_Dialog_Set)(Ewl_Window *win);        
00250 typedef void (*Ewl_Engine_Cb_Window_Transient_For)(Ewl_Window *win);        
00252 typedef void (*Ewl_Engine_Cb_Window_Leader_Set)(Ewl_Window *win);        
00254 typedef void (*Ewl_Engine_Cb_Window_States_Set)(Ewl_Window *win); 
00255 typedef void (*Ewl_Engine_Cb_Window_Hints_Set)(Ewl_Window *win); 
00256 typedef void (*Ewl_Engine_Cb_Window_Raise)(Ewl_Window *win);        
00257 typedef void (*Ewl_Engine_Cb_Window_Lower)(Ewl_Window *win);        
00258 typedef int  (*Ewl_Engine_Cb_Keyboard_Grab)(Ewl_Window *win);        
00259 typedef void  (*Ewl_Engine_Cb_Keyboard_Ungrab)(Ewl_Window *win); 
00261 typedef int  (*Ewl_Engine_Cb_Pointer_Grab)(Ewl_Window *win);        
00262 typedef void  (*Ewl_Engine_Cb_Pointer_Ungrab)(Ewl_Window *win); 
00263 typedef void (*Ewl_Engine_Cb_Window_Selection_Text_Set)(Ewl_Embed *emb,
00264                                                         const char *txt); 
00266 typedef void (*Ewl_Engine_Cb_Window_Geometry_Get)(Ewl_Window *win,
00267                                                 int *width, int *height); 
00269 typedef void (*Ewl_Engine_Cb_Window_Dnd_Aware_Set)(Ewl_Embed *embed);         
00271 typedef void (*Ewl_Engine_Cb_Window_Dnd_Drag_Types_Set)(Ewl_Embed *embed, char **types, unsigned int num);         
00272 typedef void (*Ewl_Engine_Cb_Window_Dnd_Drag_Start)(Ewl_Embed *embed);         
00273 typedef void (*Ewl_Engine_Cb_Window_Dnd_Drag_Drop)(Ewl_Embed *embed);         
00274 typedef int (*Ewl_Engine_Cb_Window_Dnd_Drag_Data_Send)(Ewl_Embed *embed, void *handle, void *data, int size);         
00275 typedef void (*Ewl_Engine_Cb_Window_Desktop_Size_Get)(Ewl_Embed *embed,
00276                                                         int *w, int *h); 
00278 typedef void (*Ewl_Engine_Cb_Canvas_Setup)(Ewl_Window *win, int debug); 
00279 typedef void  (*Ewl_Engine_Cb_Canvas_Output_Set)(Ewl_Embed *emb, int x, int y,
00280                                                  int width, int height);
00281 typedef void  (*Ewl_Engine_Cb_Canvas_Render)(Ewl_Embed *embed);
00282 typedef void  (*Ewl_Engine_Cb_Canvas_Freeze)(Ewl_Embed *embed);
00283 typedef void  (*Ewl_Engine_Cb_Canvas_Thaw)(Ewl_Embed *embed);
00284 typedef void  (*Ewl_Engine_Cb_Canvas_Damage_Add)(Ewl_Embed *embed,
00285                                                 int x, int y, int w, int h);
00286 typedef void  (*Ewl_Engine_Cb_Theme_Freeze)();
00287 typedef void  (*Ewl_Engine_Cb_Theme_Thaw)();
00288 typedef char *(*Ewl_Engine_Cb_Theme_Data_Get)(const char *path, char *key);
00289 typedef void *(*Ewl_Engine_Cb_Theme_Widget_Group)(Ewl_Widget *w);
00290 typedef void *(*Ewl_Engine_Cb_Theme_Object_Add)(Ewl_Embed *embed);
00291 typedef void  (*Ewl_Engine_Cb_Theme_Object_Del)(void *obj);
00292 typedef void  (*Ewl_Engine_Cb_Theme_Object_Move)(void *obj, int x, int y);
00293 typedef void  (*Ewl_Engine_Cb_Theme_Object_Resize)(void *obj, int w, int h);
00294 typedef void *(*Ewl_Engine_Cb_Theme_Object_Show)(void *obj);
00295 typedef void *(*Ewl_Engine_Cb_Theme_Object_Hide)(void *obj);
00296 typedef void *(*Ewl_Engine_Cb_Theme_Object_Clip_Set)(void *obj, void *clip);
00297 typedef void *(*Ewl_Engine_Cb_Theme_Object_Clip_Unset)(void *obj);
00298 typedef void (*Ewl_Engine_Cb_Theme_Object_Stack_Add)(Ewl_Widget *w);
00299 typedef void (*Ewl_Engine_Cb_Theme_Object_Layer_Update)(Ewl_Widget *w);
00300 typedef void  (*Ewl_Engine_Cb_Theme_Object_File_Set)(void *obj, char *path,
00301                                                                 char *group);
00302 typedef void *(*Ewl_Engine_Cb_Theme_Object_Load_Error)(void *obj);
00303 typedef void  (*Ewl_Engine_Cb_Theme_Object_Min_Size_Get)(void *obj, int *w, int *h);
00304 typedef void  (*Ewl_Engine_Cb_Theme_Object_Max_Size_Get)(void *obj, int *w, int *h);
00305 typedef void  (*Ewl_Engine_Cb_Theme_Object_Signal_Send)(void *obj,
00306                                                         char *state, char *source);
00307 typedef void  (*Ewl_Engine_Cb_Theme_Object_Part_Text_Set)(void *obj,
00308                                                         char *part, char *text);
00309 typedef void  (*Ewl_Engine_Cb_Theme_Object_Color_Class_Set)(char *name, int r,
00310                                                         int g, int b, int r2,
00311                                                         int g2, int b2, int r3,
00312                                                         int g3, int b3);
00313 typedef void *(*Ewl_Engine_Cb_Theme_Clip_Add)(Ewl_Embed *embed);
00314 typedef void  (*Ewl_Engine_Cb_Theme_Clip_Del)(void *clip);
00315 typedef void *(*Ewl_Engine_Cb_Theme_Clip_Clipees_Get)(void *clip);
00316 typedef void  (*Ewl_Engine_Cb_Theme_Clip_Color_Set)(void *clip, int r, int g,
00317                                                                 int b, int a);
00318 
00319 typedef int   (*Ewl_Engine_Cb_Pointer_Data_New)(Ewl_Embed *embed,
00320                                                 unsigned int *data,
00321                                                 int w, int h);
00322 typedef void  (*Ewl_Engine_Cb_Pointer_Free)(Ewl_Embed *embed, int pointer);
00323 typedef void  (*Ewl_Engine_Cb_Pointer_Set)(Ewl_Embed *embed, int pointer);
00324 typedef int   (*Ewl_Engine_Cb_Pointer_Get)(Ewl_Embed *embed);
00325 
00326 #endif
00327 

Copyright © Enlightenment.org

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