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;        
00092         int focus;         
00094         Ewl_Dnd_Types dnd_types;        
00095         Ewl_Widget *dnd_last_position;        
00096 };
00097 
00098 Ewl_Widget         *ewl_embed_new(void);
00099 int                  ewl_embed_init(Ewl_Embed *emb);
00100 int                  ewl_embed_engine_name_set(Ewl_Embed *embed, const char *engine);
00101 const char         *ewl_embed_engine_name_get(Ewl_Embed *embed);
00102 void                  ewl_embed_shutdown(void);
00103 void                *ewl_embed_canvas_set(Ewl_Embed *emb, void *canvas,
00104                                         Ewl_Embed_Window *canvas_window);
00105 
00106 void                  ewl_embed_focus_set(Ewl_Embed *embed, int f);
00107 int                  ewl_embed_focus_get(Ewl_Embed *embed);
00108 
00109 void                 ewl_embed_active_set(Ewl_Embed *embed, unsigned int act);
00110 Ewl_Embed         *ewl_embed_active_embed_get(void);
00111 
00112 void                 ewl_embed_last_mouse_position_get(int *x, int *y);
00113 
00114 void                  ewl_embed_key_down_feed(Ewl_Embed *embed, const char *keyname,
00115                                         unsigned int modifiers);
00116 void                  ewl_embed_key_up_feed(Ewl_Embed *embed, const char *keyname,
00117                                         unsigned int modifiers);
00118 void                  ewl_embed_mouse_down_feed(Ewl_Embed *embed, int b, int clicks,
00119                                           int x, int y, unsigned int modifiers);
00120 void                  ewl_embed_mouse_up_feed(Ewl_Embed *embed, int b, int x,
00121                                         int y, unsigned int modifiers);
00122 void                  ewl_embed_mouse_move_feed(Ewl_Embed *embed, int x, int y,
00123                                           unsigned int modifiers);
00124 
00125 const char         *ewl_embed_dnd_position_feed(Ewl_Embed *embed, int x, int y,
00126                                                 int *, int *, int *, int *);
00127 const char         *ewl_embed_dnd_drop_feed(Ewl_Embed* embed, int x, int y,
00128                                                         int internal);
00129 void                 ewl_embed_dnd_data_received_feed(Ewl_Embed* embed, char *type,
00130                                                         void *data,
00131                                                         unsigned int len,
00132                                                         unsigned int format);
00133 void                 ewl_embed_dnd_data_request_feed(Ewl_Embed* embed, void *handle,
00134                                                                 char *type);
00135 
00136 void                  ewl_embed_mouse_out_feed(Ewl_Embed *embed, int x, int y,
00137                                          unsigned int modifiers);
00138 void                  ewl_embed_mouse_wheel_feed(Ewl_Embed *embed, int x, int y,
00139                                            int z, int dir, unsigned int mods);
00140 
00141 void                  ewl_embed_font_path_add(char *path);
00142 Ewl_Embed          *ewl_embed_canvas_window_find(Ewl_Embed_Window *win);
00143 Ewl_Embed         *ewl_embed_widget_find(Ewl_Widget *w);
00144 void                   ewl_embed_object_cache(Ewl_Embed *e, void *obj);
00145 void                *ewl_embed_object_request(Ewl_Embed *e, char *type);
00146 
00147 void                  ewl_embed_tab_order_append(Ewl_Embed *e, Ewl_Widget *w);
00148 void                 ewl_embed_tab_order_prepend(Ewl_Embed *e, Ewl_Widget *w);
00149 void                 ewl_embed_tab_order_insert(Ewl_Embed *e, Ewl_Widget *w,
00150                                            unsigned int idx);
00151 void                 ewl_embed_tab_order_insert_before(Ewl_Embed *e, Ewl_Widget *w,
00152                                                  Ewl_Widget *before);
00153 void                 ewl_embed_tab_order_insert_after(Ewl_Embed *e, Ewl_Widget *w,
00154                                                  Ewl_Widget *after);
00155 void                  ewl_embed_tab_order_remove(Ewl_Embed *e, Ewl_Widget *w);
00156 void                  ewl_embed_tab_order_next(Ewl_Embed *e);
00157 void                 ewl_embed_tab_order_previous(Ewl_Embed *e);
00158 
00159 void                 ewl_embed_focused_widget_set(Ewl_Embed *e, Ewl_Widget *w);
00160 Ewl_Widget         *ewl_embed_focused_widget_get(Ewl_Embed *e);
00161 void                 ewl_embed_info_widgets_cleanup(Ewl_Embed *e, Ewl_Widget *w);
00162 
00163 void                  ewl_embed_coord_to_screen(Ewl_Embed *e, int xx, int yy,
00164                                           int *x, int *y);
00165 
00166 void                 ewl_embed_mouse_cursor_set(Ewl_Widget *w);
00167 void                  ewl_embed_position_get(Ewl_Embed *e, int *x, int *y);
00168 void                  ewl_embed_window_position_get(Ewl_Embed *e, int *x, int *y);
00169 void                  ewl_embed_desktop_size_get(Ewl_Embed *e, int *w, int *y);
00170 void                  ewl_embed_freeze(Ewl_Embed *e);
00171 void                  ewl_embed_thaw(Ewl_Embed *e);
00172 
00173 void                  ewl_embed_dnd_aware_set(Ewl_Embed *embed);
00174 void                  ewl_embed_dnd_aware_remove(Ewl_Embed *embed);
00175 
00176 void                  ewl_embed_selection_text_set(Ewl_Embed *emb, const char *txt);
00177 
00178 void                  ewl_embed_cache_cleanup(Ewl_Embed *emb);
00179 
00180 /*
00181  * Internally used callbacks, override at your own risk.
00182  */
00183 void ewl_embed_cb_realize(Ewl_Widget *w, void *ev_data, void *user_data);
00184 void ewl_embed_cb_unrealize(Ewl_Widget *w, void *ev_data, void *user_data);
00185 void ewl_embed_cb_configure(Ewl_Widget *w, void *ev_data, void *user_data);
00186 void ewl_embed_cb_focus_out(Ewl_Widget *w, void *ev_data, void *user_data);
00187 void ewl_embed_cb_destroy(Ewl_Widget *w, void *ev_data, void *user_data);
00188 
00193 #endif

Copyright © Enlightenment.org

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