1 #ifdef E_TYPEDEFS
2 
3 #else
4 #ifndef E_UTILS_H
5 #define E_UTILS_H
6 
7 #define e_util_dialog_show(title, args...) \
8 do { \
9    char __tmpbuf[4096]; \
10    \
11    snprintf(__tmpbuf, sizeof(__tmpbuf), ##args); \
12    e_util_dialog_internal(title, __tmpbuf); \
13 } while (0)
14 
15 E_API void         e_util_wakeup(void);
16 E_API void         e_util_env_set(const char *var, const char *val);
17 E_API int          e_util_glob_match(const char *str, const char *glob);
18 E_API int          e_util_glob_case_match(const char *str, const char *glob);
19 E_API int          e_util_strcasecmp(const char *s1, const char *s2);
20 E_API int          e_util_strcmp(const char *s1, const char *s2);
21 E_API int          e_util_both_str_empty(const char *s1, const char *s2);
22 E_API int          e_util_immortal_check(void);
23 E_API int          e_util_edje_icon_check(const char *name);
24 E_API int          e_util_edje_icon_set(Evas_Object *obj, const char *name);
25 E_API int          e_util_icon_theme_set(Evas_Object *obj, const char *icon);
26 E_API unsigned int e_util_icon_size_normalize(unsigned int desired);
27 E_API int          e_util_menu_item_theme_icon_set(E_Menu_Item *mi, const char *icon);
28 E_API const char *e_util_mime_icon_get(const char *mime, unsigned int size);
29 E_API E_Client    *e_util_desk_client_above(E_Client *ec);
30 E_API E_Client    *e_util_desk_client_below(E_Client *ec);
31 E_API int          e_util_edje_collection_exists(const char *file, const char *coll);
32 E_API E_Dialog     *e_util_dialog_internal(const char *title, const char *txt);
33 E_API const char  *e_util_filename_escape(const char *filename);
34 E_API char        *e_util_shell_env_path_eval(const char *path);
35 E_API char        *e_util_size_string_get(off_t size);
36 E_API char        *e_util_file_time_get(time_t ftime);
37 E_API Evas_Object *e_util_icon_add(const char *path, Evas *evas);
38 E_API Evas_Object *e_util_desktop_icon_add(Efreet_Desktop *desktop, unsigned int size, Evas *evas);
39 E_API Evas_Object *e_util_icon_theme_icon_add(const char *icon_name, unsigned int size, Evas *evas);
40 E_API void         e_util_desktop_menu_item_icon_add(Efreet_Desktop *desktop, unsigned int size, E_Menu_Item *mi);
41 E_API int          e_util_dir_check(const char *dir);
42 E_API void         e_util_defer_object_del(E_Object *obj);
43 E_API const char  *e_util_winid_str_get(Ecore_X_Window win);
44 E_API void         e_util_win_auto_resize_fill(Evas_Object *win);
45 /* check if loaded config version matches the current version, show a
46    dialog warning if loaded version is older or newer than current */
47 E_API Eina_Bool    e_util_module_config_check(const char *module_name, int loaded, int current);
48 
49 E_API E_Config_Binding_Key *e_util_binding_match(const Eina_List *bindlist, Ecore_Event_Key *ev, unsigned int *num, const E_Config_Binding_Key *skip);
50 E_API Eina_Bool e_util_fullscreen_current_any(void);
51 E_API Eina_Bool e_util_fullscreen_any(void);
52 E_API const char *e_util_time_str_get(long int seconds);
53 E_API void e_util_size_debug(Evas_Object *obj);
54 E_API void e_util_size_debug_set(Evas_Object *obj, Eina_Bool enable);
55 E_API Efreet_Desktop *e_util_terminal_desktop_get(void);
56 E_API void e_util_gadcon_orient_icon_set(E_Gadcon_Orient orient, Evas_Object *obj);
57 E_API void e_util_gadcon_orient_menu_item_icon_set(E_Gadcon_Orient orient, E_Menu_Item *mi);
58 
59 E_API char *e_util_string_append_char(char *str, size_t *size, size_t *len, char c);
60 E_API char *e_util_string_append_quoted(char *str, size_t *size, size_t *len, const char *src);
61 
62 E_API void e_util_evas_objects_above_print(Evas_Object *o);
63 E_API void e_util_evas_objects_above_print_smart(Evas_Object *o);
64 
65 E_API void e_util_string_list_free(Eina_List *l);
66 
67 E_API void e_util_memclear(void *s, size_t n);
68 
69 E_API Ecore_Exe *e_util_open(const char *exe, void *data);
70 
71 E_API Ecore_Exe *e_util_exe_safe_run(const char *cmd, void *data);
72 
73 typedef enum
74 {
75    E_UTIL_ACTION_NONE,
76    E_UTIL_ACTION_DONE,
77    E_UTIL_ACTION_ABORT,
78    E_UTIL_ACTION_DO
79 } E_Util_Action;
80 
81 E_API E_Util_Action e_util_key_geometry_action_get(const char *key, int *x, int *y, int dx, int dy);
82 
83 static inline Eina_Bool
isedje(const Evas_Object * obj)84 isedje(const Evas_Object *obj)
85 {
86    return obj && !e_util_strcmp(evas_object_type_get(obj), "edje");
87 }
88 
89 static inline Eina_Bool
dblequal(double a,double b)90 dblequal(double a, double b)
91 {
92    return fabs(a - b) < DBL_EPSILON;
93 }
94 
95 static inline Eina_Bool
is_dragged(int dx,int dy)96 is_dragged(int dx, int dy)
97 {
98    Evas_Coord resist = elm_config_finger_size_get() / 2;
99 
100    if ((dx * dx) + (dy * dy) > resist) return EINA_TRUE;
101    return EINA_FALSE;
102 }
103 
104 #endif
105 #endif
106