1 #ifdef E_TYPEDEFS 2 3 /* IGNORE this code for now! */ 4 5 typedef enum _E_Fm2_View_Mode 6 { 7 E_FM2_VIEW_MODE_ICONS, /* regular layout row by row like text */ 8 E_FM2_VIEW_MODE_GRID_ICONS, /* regular grid layout */ 9 E_FM2_VIEW_MODE_CUSTOM_ICONS, /* icons go anywhere you drop them (desktop) */ 10 11 /* FIXME: not going to implement this at this stage */ 12 E_FM2_VIEW_MODE_CUSTOM_GRID_ICONS, /* icons go anywhere you drop them but align to a grid */ 13 /* FIXME: not going to implement this at this stage */ 14 E_FM2_VIEW_MODE_CUSTOM_SMART_GRID_ICONS, /* icons go anywhere you drop them but try align to icons nearby */ 15 /* FIXME: not going to implement this at this stage */ 16 E_FM2_VIEW_MODE_LIST /* vertical fileselector list */ 17 } E_Fm2_View_Mode; 18 19 typedef enum _E_Fm2_Menu_Flags 20 { 21 E_FM2_MENU_NO_REFRESH = (1 << 0), 22 E_FM2_MENU_NO_SHOW_HIDDEN = (1 << 1), 23 E_FM2_MENU_NO_REMEMBER_ORDERING = (1 << 2), 24 E_FM2_MENU_NO_NEW = (1 << 3), 25 E_FM2_MENU_NO_DELETE = (1 << 4), 26 E_FM2_MENU_NO_RENAME = (1 << 5), 27 E_FM2_MENU_NO_CUT = (1 << 6), 28 E_FM2_MENU_NO_COPY = (1 << 7), 29 E_FM2_MENU_NO_PASTE = (1 << 8), 30 E_FM2_MENU_NO_SYMLINK = (1 << 9), 31 E_FM2_MENU_NO_VIEW_MENU = (1 << 10), 32 E_FM2_MENU_NO_INHERIT_PARENT = (1 << 11), 33 E_FM2_MENU_NO_ACTIVATE_CHANGE = (1 << 12), 34 E_FM2_MENU_NO_VIEW_CHANGE = (1 << 13), 35 } E_Fm2_Menu_Flags; 36 37 typedef enum _E_Fm2_View_Flags 38 { 39 E_FM2_VIEW_NO_FLAGS = 0, 40 E_FM2_VIEW_LOAD_DIR_CUSTOM = (1 << 0), 41 E_FM2_VIEW_SAVE_DIR_CUSTOM = (1 << 1), 42 E_FM2_VIEW_INHERIT_DIR_CUSTOM = (1 << 2), 43 E_FM2_VIEW_DIR_CUSTOM = (E_FM2_VIEW_LOAD_DIR_CUSTOM | 44 E_FM2_VIEW_SAVE_DIR_CUSTOM | 45 E_FM2_VIEW_INHERIT_DIR_CUSTOM) 46 } E_Fm2_View_Flags; 47 48 typedef struct _E_Fm2_Config E_Fm2_Config; 49 typedef struct _E_Fm2_Icon E_Fm2_Icon; 50 typedef struct _E_Fm2_Icon_Info E_Fm2_Icon_Info; 51 52 #include "e_fm_shared_types.h" 53 54 #else 55 #ifndef E_FM_H 56 #define E_FM_H 57 58 struct _E_Fm2_Config 59 { 60 /* general view mode */ 61 struct 62 { 63 E_Fm2_View_Mode mode; 64 Eina_Bool open_dirs_in_place E_BITFIELD; 65 Eina_Bool selector E_BITFIELD; 66 Eina_Bool single_click E_BITFIELD; 67 Eina_Bool no_subdir_jump E_BITFIELD; 68 Eina_Bool no_subdir_drop E_BITFIELD; 69 Eina_Bool always_order E_BITFIELD; 70 Eina_Bool link_drop E_BITFIELD; 71 Eina_Bool fit_custom_pos E_BITFIELD; 72 Eina_Bool no_typebuf_set E_BITFIELD; 73 Eina_Bool no_click_rename E_BITFIELD; 74 unsigned int single_click_delay; 75 } view; 76 /* display of icons */ 77 struct 78 { 79 struct 80 { 81 int w, h; 82 } icon, list; 83 struct 84 { 85 unsigned char w; 86 unsigned char h; 87 } fixed; 88 struct 89 { 90 Eina_Bool show E_BITFIELD; 91 } extension; 92 const char *key_hint; 93 unsigned int max_thumb_size; 94 } icon; 95 /* how to sort files */ 96 struct 97 { 98 struct 99 { 100 Eina_Bool no_case E_BITFIELD; 101 Eina_Bool size E_BITFIELD; 102 Eina_Bool extension E_BITFIELD; 103 Eina_Bool mtime E_BITFIELD; 104 struct 105 { 106 Eina_Bool first E_BITFIELD; 107 Eina_Bool last E_BITFIELD; 108 } dirs; 109 } sort; 110 } list; 111 /* control how you can select files */ 112 struct 113 { 114 Eina_Bool single E_BITFIELD; 115 Eina_Bool windows_modifiers E_BITFIELD; 116 } selection; 117 /* the background - if any, and how to handle it */ 118 /* FIXME: not implemented yet */ 119 struct 120 { 121 const char *background, *frame, *icons; 122 Eina_Bool fixed E_BITFIELD; 123 } theme; 124 Eina_Bool secure_rm E_BITFIELD; 125 }; 126 127 struct _E_Fm2_Icon_Info 128 { 129 Evas_Object *fm; 130 E_Fm2_Icon *ic; 131 const char *file; 132 const char *mime; 133 const char *label; 134 const char *comment; 135 const char *generic; 136 const char *icon; 137 const char *link; 138 const char *real_link; 139 const char *category; 140 struct stat statinfo; 141 unsigned char icon_type; 142 Eina_Bool mount E_BITFIELD; 143 Eina_Bool removable E_BITFIELD; 144 Eina_Bool removable_full E_BITFIELD; 145 Eina_Bool deleted E_BITFIELD; 146 Eina_Bool broken_link E_BITFIELD; 147 }; 148 149 typedef void (*E_Fm_Cb)(void *data, Evas_Object *obj, E_Menu *m, E_Fm2_Icon_Info *info); 150 151 EINTERN int e_fm2_init(void); 152 EINTERN int e_fm2_shutdown(void); 153 E_API void e_fm2_die(void); 154 E_API Evas_Object *e_fm2_add(Evas *evas); 155 E_API void e_fm2_path_set(Evas_Object *obj, const char *dev, const char *path); 156 E_API void e_fm2_custom_theme_set(Evas_Object *obj, const char *path); 157 E_API void e_fm2_custom_theme_content_set(Evas_Object *obj, const char *content); 158 E_API void e_fm2_underlay_show(Evas_Object *obj); 159 E_API void e_fm2_underlay_hide(Evas_Object *obj); 160 E_API void e_fm2_all_unsel(Evas_Object *obj); 161 E_API void e_fm2_all_sel(Evas_Object *obj); 162 E_API void e_fm2_first_sel(Evas_Object *obj); 163 E_API void e_fm2_last_sel(Evas_Object *obj); 164 E_API void e_fm2_path_get(Evas_Object *obj, const char **dev, const char **path); 165 E_API void e_fm2_refresh(Evas_Object *obj); 166 E_API const char *e_fm2_real_path_get(Evas_Object *obj); 167 E_API int e_fm2_has_parent_get(Evas_Object *obj); 168 E_API void e_fm2_parent_go(Evas_Object *obj); 169 E_API void e_fm2_config_set(Evas_Object *obj, E_Fm2_Config *cfg); 170 E_API E_Fm2_Config *e_fm2_config_get(Evas_Object *obj); 171 E_API Eina_List *e_fm2_selected_list_get(Evas_Object *obj); 172 E_API Eina_List *e_fm2_all_list_get(Evas_Object *obj); 173 E_API E_Fm2_Icon_Info *e_fm2_icon_file_get(Evas_Object *obj, const char *file); 174 E_API void e_fm2_select_set(Evas_Object *obj, const char *file, int select); 175 E_API void e_fm2_deselect_all(Evas_Object *obj); 176 E_API void e_fm2_file_show(Evas_Object *obj, const char *file); 177 E_API void e_fm2_icon_menu_replace_callback_set(Evas_Object *obj, E_Fm_Cb func, void *data); 178 E_API void e_fm2_icon_menu_start_extend_callback_set(Evas_Object *obj, E_Fm_Cb func, void *data); 179 E_API void e_fm2_icon_menu_end_extend_callback_set(Evas_Object *obj, E_Fm_Cb func, void *data); 180 E_API void e_fm2_icon_menu_flags_set(Evas_Object *obj, E_Fm2_Menu_Flags flags); 181 E_API E_Fm2_Menu_Flags e_fm2_icon_menu_flags_get(Evas_Object *obj); 182 E_API void e_fm2_view_flags_set(Evas_Object *obj, E_Fm2_View_Flags flags); 183 E_API E_Fm2_View_Flags e_fm2_view_flags_get(Evas_Object *obj); 184 E_API E_Object *e_fm2_window_object_get(Evas_Object *obj); 185 E_API void e_fm2_window_object_set(Evas_Object *obj, E_Object *eobj); 186 E_API void e_fm2_window_set(Evas_Object *obj, Evas_Object *win); 187 E_API void e_fm2_icons_update(Evas_Object *obj); 188 189 E_API void e_fm2_pan_set(Evas_Object *obj, Evas_Coord x, Evas_Coord y); 190 E_API void e_fm2_pan_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y); 191 E_API void e_fm2_pan_max_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y); 192 E_API void e_fm2_pan_child_size_get(Evas_Object *obj, Evas_Coord *w, Evas_Coord *h); 193 194 E_API void e_fm2_all_icons_update(void); 195 196 E_API void e_fm2_operation_abort(int id); 197 198 E_API Evas_Object *e_fm2_icon_get(Evas *evas, E_Fm2_Icon *ic, Evas_Smart_Cb gen_func, 199 void *data, int force_gen, const char **type_ret); 200 E_API E_Fm2_Icon_Info *e_fm2_icon_file_info_get(E_Fm2_Icon *ic); 201 E_API void e_fm2_icon_geometry_get(E_Fm2_Icon *ic, int *x, int *y, int *w, int *h); 202 E_API Eina_Bool e_fm2_typebuf_visible_get(Evas_Object *obj); 203 E_API void e_fm2_typebuf_clear(Evas_Object *obj); 204 E_API void e_fm2_overlay_clip_to(Evas_Object *fm, Evas_Object *clip); 205 206 E_API void e_fm2_client_data(Ecore_Ipc_Event_Client_Data *e); 207 E_API void e_fm2_client_del(Ecore_Ipc_Event_Client_Del *e); 208 E_API E_Fm2_View_Mode e_fm2_view_mode_get(Evas_Object *obj); 209 E_API Eina_Bool e_fm2_optimal_size_calc(Evas_Object *obj, int minw, int maxw, int maxh, int *w, int *h); 210 E_API const char *e_fm2_real_path_map(const char *dev, const char *path); 211 E_API void e_fm2_favorites_init(void); 212 E_API unsigned int e_fm2_selected_count(Evas_Object *obj); 213 E_API const char *e_fm2_desktop_url_eval(const char *val); 214 E_API E_Fm2_Icon_Info *e_fm2_drop_icon_get(Evas_Object *obj); 215 E_API void e_fm2_drop_menu(Evas_Object *e_fm, char *args); 216 E_API Eina_List *e_fm2_uri_path_list_get(const Eina_List *uri_list); 217 E_API Efreet_Desktop *e_fm2_desktop_get(Evas_Object *obj); 218 219 E_API int e_fm2_client_file_move(Evas_Object *e_fm, const char *args); 220 E_API int e_fm2_client_file_copy(Evas_Object *e_fm, const char *args); 221 E_API int e_fm2_client_file_symlink(Evas_Object *e_fm, const char *args); 222 223 E_API int _e_fm2_client_mount(const char *udi, const char *mountpoint); 224 E_API int _e_fm2_client_unmount(const char *udi); 225 E_API void _e_fm2_file_force_update(const char *path); 226 227 E_API E_Fm2_Icon *e_fm2_icon_editing_get(Evas_Object *obj); 228 #endif 229 #endif 230