Download

Support

lib/ewl_embed.h

Go to the documentation of this file.
00001 /* vim: set sw=8 ts=8 sts=8 expandtab: */
00002 #ifndef EWL_EMBED_H
00003 #define EWL_EMBED_H
00004 
00027 #define EWL_EMBED_TYPE "embed"
00028 
00033 #define EWL_EMBED_IS(w) (ewl_widget_type_is(EWL_WIDGET(w), EWL_EMBED_TYPE))
00034 
00039 typedef struct Ewl_Embed Ewl_Embed;
00040 
00044 typedef void *Ewl_Embed_Window;
00045 
00050 #define EWL_EMBED(widget) ((Ewl_Embed *) widget)
00051 
00056 #define EWL_EMBED_WINDOW(window) ((Ewl_Embed_Window *)window)
00057 
00062 struct Ewl_Embed
00063 {
00064         Ewl_Cell cell;                 
00066         const char *engine_name; 
00067         void *engine;                 
00069         void *canvas;                 
00070         void *canvas_window;        
00071         int cursor;                
00073         void *smart;         
00074         void *ev_clip;         
00075         Ecore_DList *tab_order; 
00077         Ecore_Hash  *obj_cache; 
00079         struct
00080         {
00081                 Ewl_Widget *clicked; 
00082                 Ewl_Widget *focused; 
00083                 Ewl_Widget *mouse_in; 
00084                 Ewl_Widget *drop_widget; 
00085                 Ewl_Widget *drag_widget; 
00086         } last;        
00088         int x; 
00089         int y; 
00091         int dnd_count;        
00093         Ewl_Dnd_Types dnd_types;        
00094         Ewl_Widget *dnd_last_position;        
00096         unsigned char focus:1;         
00097         unsigned char render:1;        
00101 };
00102 
00103 Ewl_Widget      *ewl_embed_new(void);
00104 int              ewl_embed_init(Ewl_Embed *emb);
00105 int              ewl_embed_engine_name_set(Ewl_Embed *embed, const char *engine);
00106 const char      *ewl_embed_engine_name_get(Ewl_Embed *embed);
00107 void             ewl_embed_shutdown(void);
00108 void            *ewl_embed_canvas_set(Ewl_Embed *emb, void *canvas,
00109                                         Ewl_Embed_Window *canvas_window);
00110 
00111 void             ewl_embed_focus_set(Ewl_Embed *embed, int f);
00112 int              ewl_embed_focus_get(Ewl_Embed *embed);
00113 
00114 void             ewl_embed_active_set(Ewl_Embed *embed, unsigned int act);
00115 Ewl_Embed       *ewl_embed_active_embed_get(void);
00116 
00117 void             ewl_embed_last_mouse_position_get(int *x, int *y);
00118 
00119 void             ewl_embed_key_down_feed(Ewl_Embed *embed, const char *keyname,
00120                                         unsigned int modifiers);
00121 void             ewl_embed_key_up_feed(Ewl_Embed *embed, const char *keyname,
00122                                         unsigned int modifiers);
00123 void             ewl_embed_mouse_down_feed(Ewl_Embed *embed, int b, int clicks,
00124                                         int x, int y, unsigned int modifiers);
00125 void             ewl_embed_mouse_up_feed(Ewl_Embed *embed, int b, int clicks,
00126                                          int x, int y, unsigned int modifiers);
00127 void             ewl_embed_mouse_move_feed(Ewl_Embed *embed, int x, int y,
00128                                         unsigned int modifiers);
00129 
00130 const char      *ewl_embed_dnd_position_feed(Ewl_Embed *embed, int x, int y,
00131                                         int *, int *, int *, int *);
00132 const char      *ewl_embed_dnd_drop_feed(Ewl_Embed* embed, int x, int y);
00133 void             ewl_embed_dnd_data_received_feed(Ewl_Embed* embed, char *type,
00134                                         void *data, unsigned int len,
00135                                         unsigned int format);
00136 void             ewl_embed_dnd_data_request_feed(Ewl_Embed* embed, void *handle,                                        char *type);
00137 
00138 void             ewl_embed_mouse_out_feed(Ewl_Embed *embed, int x, int y,
00139                                         unsigned int modifiers);
00140 void             ewl_embed_mouse_wheel_feed(Ewl_Embed *embed, int x, int y,
00141                                         int z, int dir, unsigned int mods);
00142 void             ewl_embed_selection_text_clear_feed(void);
00143 
00144 void             ewl_embed_font_path_add(char *path);
00145 Ewl_Embed       *ewl_embed_canvas_window_find(Ewl_Embed_Window *win);
00146 Ewl_Embed       *ewl_embed_widget_find(Ewl_Widget *w);
00147 void             ewl_embed_object_cache(Ewl_Embed *e, void *obj);
00148 void            *ewl_embed_object_request(Ewl_Embed *e, char *type);
00149 
00150 void             ewl_embed_tab_order_append(Ewl_Embed *e, Ewl_Widget *w);
00151 void             ewl_embed_tab_order_prepend(Ewl_Embed *e, Ewl_Widget *w);
00152 void             ewl_embed_tab_order_insert(Ewl_Embed *e, Ewl_Widget *w,
00153                                         unsigned int idx);
00154 void             ewl_embed_tab_order_insert_before(Ewl_Embed *e, Ewl_Widget *w,
00155                                         Ewl_Widget *before);
00156 void             ewl_embed_tab_order_insert_after(Ewl_Embed *e, Ewl_Widget *w,
00157                                         Ewl_Widget *after);
00158 void             ewl_embed_tab_order_remove(Ewl_Embed *e, Ewl_Widget *w);
00159 void             ewl_embed_tab_order_next(Ewl_Embed *e);
00160 void             ewl_embed_tab_order_previous(Ewl_Embed *e);
00161 
00162 void             ewl_embed_focused_widget_set(Ewl_Embed *e, Ewl_Widget *w);
00163 Ewl_Widget      *ewl_embed_focused_widget_get(Ewl_Embed *e);
00164 void             ewl_embed_info_widgets_cleanup(Ewl_Embed *e, Ewl_Widget *w);
00165 
00166 void             ewl_embed_coord_to_screen(Ewl_Embed *e, int xx, int yy,
00167                                         int *x, int *y);
00168 
00169 void             ewl_embed_mouse_cursor_set(Ewl_Widget *w);
00170 void             ewl_embed_position_get(Ewl_Embed *e, int *x, int *y);
00171 void             ewl_embed_window_position_get(Ewl_Embed *e, int *x, int *y);
00172 void             ewl_embed_desktop_size_get(Ewl_Embed *e, int *w, int *y);
00173 void             ewl_embed_freeze(Ewl_Embed *e);
00174 void             ewl_embed_thaw(Ewl_Embed *e);
00175 
00176 void             ewl_embed_dnd_aware_set(Ewl_Embed *embed);
00177 void             ewl_embed_dnd_aware_remove(Ewl_Embed *embed);
00178 
00179 void             ewl_embed_selection_text_set(Ewl_Embed *emb, Ewl_Widget *w,
00180                                                 const char *txt);
00181 
00182 void             ewl_embed_render_set(Ewl_Embed *emb, unsigned int render);
00183 unsigned int     ewl_embed_render_get(Ewl_Embed *emb);
00184 
00185 void             ewl_embed_cache_cleanup(Ewl_Embed *emb);
00186 
00187 /*
00188  * Internally used callbacks, override at your own risk.
00189  */
00190 void ewl_embed_cb_realize(Ewl_Widget *w, void *ev_data, void *user_data);
00191 void ewl_embed_cb_unrealize(Ewl_Widget *w, void *ev_data, void *user_data);
00192 void ewl_embed_cb_configure(Ewl_Widget *w, void *ev_data, void *user_data);
00193 void ewl_embed_cb_focus_out(Ewl_Widget *w, void *ev_data, void *user_data);
00194 void ewl_embed_cb_destroy(Ewl_Widget *w, void *ev_data, void *user_data);
00195 
00200 #endif

Copyright © Enlightenment.org

Enlightened Widget Library Documentation Generated: Fri Jan 23 21:56:24 2009