2 * Copyright 2013 Samsung Electronics Co., Ltd
4 * Licensed under the Flora License, Version 1.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://floralicense.org/license/
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
21 #ifndef __DEF_MYFILE_UTIL_H_
22 #define __DEF_MYFILE_UTIL_H_
30 #include <Elementary.h>
31 #include "mf-fo-common.h"
32 #include "mf-fs-util.h"
35 #define SAFE_FREE_CHAR(x) do {\
42 #define SAFE_FREE_GSTRING(x) do {\
44 g_string_free(x, TRUE); \
49 #define CHAR_CHECK_NULL_GOTO(arg, dest) do {\
55 #define GSTRING_CHECK_NULL_GOTO(arg, dest) do {\
56 if ((arg) == NULL || (arg->str) == NULL) {\
61 #define SAFE_TIMER_DEL(x) do {\
68 #define SAFE_DEL_NAVI_ITEM(x) do {\
70 elm_object_item_del(x); \
75 #define SAFE_DEL_ECORE_TIMER(timer) do { \
77 ecore_timer_del(timer);\
82 #define SAFE_FREE_OBJ(x) do {\
89 #define SAFE_STRCPY(dest, src) \
90 do{if(!dest||!src)break;\
91 strncpy (dest , src, sizeof(dest)-1);\
92 dest[sizeof(dest)-1] = 0; }while(0)
94 #define mf_ecore_idler_del(idler) do { \
96 ecore_idler_del(idler);\
101 #define SAFE_FREE_ECORE_EVENT(event) do { \
103 ecore_event_handler_del(event);\
108 typedef enum _MF_INTERNAL_NAME_ERR MF_INTERNAL_NAME_ERR;
109 enum _MF_INTERNAL_NAME_ERR {
110 MF_INTERNAL_FILE_NAME_NULL = 1,
111 MF_INTERNAL_FILE_NAME_EMPTY,
112 MF_INTERNAL_FILE_NAME_IGNORE,
113 MF_INTERNAL_FILE_NAME_CHUG,
114 MF_INTERNAL_FILE_NAME_MAX_LENGTH,
115 MF_INTERNAL_FILE_NAME_INVALID_CHAR,
118 typedef enum _MF_THEME_TYPE MF_THEME_TYPE;
119 enum _MF_THEME_TYPE {
122 THEME_NBEAT_BLACK = 1,
126 typedef enum __mf_thumbnail_type mf_thumbnail_type;
127 enum __mf_thumbnail_type {
128 MF_THUMBNAIL_TYPE_DEFAULT,
129 MF_THUMBNAIL_TYPE_THUMBNAIL,
130 MF_THUMBNAIL_TYPE_MAX
133 #define MYFILE_MAGIC_MAIN_CONTEXT (0x1983cdaf)
134 #define MYFILE_MAGIC_DETAIL_LIST_ITEM (0x1977abcd)
135 #define MYFILE_MAGIC_PIPE_DATA (0x0716ffcc)
137 #define MYFILE_FINISH_MMC_INIT_DATA "db/Apps/FileManager/FinishMmcInitData"
139 #define MYFILE_MAGIC unsigned int __magic
140 #define MYFILE_MAGIC_SET(d, m) (d)->__magic = (m)
141 #define MYFILE_MAGIC_CHECK(d, m) ((d) && ((d)->__magic == (m)))
143 #define MYFILE_DBUS_SIGNAL_INTERFACE "app.fexplorer.dbus.Signal"
144 #define MYFILE_DBUS_SIGNAL_PATH "/app/fexplorer/dbus"
145 #define MAX_LEN_VIB_DURATION 0.5
147 typedef enum _MORE_TYPE MORE_TYPE;
148 enum _MORE_TYPE { /* softkey / contextual popup */
156 MORE_INTERNAL_COPY_MOVE,
159 MORE_THUMBNAIL_RENAME,
162 MORE_SENDVIABLUETOOTH,
168 typedef enum __mf_view_type_e mf_view_type_e;
169 enum __mf_view_type_e {
171 mf_view_root_category,
175 typedef enum _LAUNCH_TYPE LAUNCH_TYPE;
177 LAUNCH_TYPE_FORK = 0,
181 LAUNCH_TYPE_UNSUPPORT,
186 typedef enum _REPORT_TYPE REPORT_TYPE;
188 MYFILE_REPORT_NONE = 1,
189 MYFILE_REPORT_RECURSION_DETECT,
190 MYFILE_REPORT_BOTH_ARE_SAME_FILE,
194 typedef enum _MYFILE_FILE_NAME_TYPE MYFILE_FILE_NAME_TYPE;
195 enum _MYFILE_FILE_NAME_TYPE {
196 FILE_NAME_WITH_BRACKETS,
197 FILE_NAME_WITH_UNDERLINE,
201 typedef enum _MYFILE_CONTENT_TYPE MYFILE_CONTENT_TYPE;
202 enum _MYFILE_CONTENT_TYPE {
216 int is_direct_launch;
218 int having_a_thumbnail;
222 typedef enum _MYFILE_VCONF_TYPE MYFILE_VCONF_TYPE;
223 enum _MYFILE_VCONF_TYPE {
224 VCONF_TYPE_SORT_TYPE = 0,
225 VCONF_TYPE_TIME_FORMAT,
226 VCONF_TYPE_DATE_FORMAT,
227 VCONF_TYPE_MASS_STORAGE,
228 VCONF_TYPE_VIEW_STYLE,
229 VCONF_TYPE_NFC_ENABLE,
230 VCONF_TYPE_EXTENSION_STATE,
234 void mf_callback_warning_popup_cb(void *data, Evas_Object *obj, void *event_info);
235 int keydown_cb(void *data, int type, void *event);
237 void ime_mkdir_callback_cb(void *data);
238 void ime_rename_callback_cb(void *data);
239 void add_panel_to_softkey(Evas_Object *obj, int mode);
240 void create_popup(void *data, char *header, Evas_Smart_Cb func);
241 void softkey_cb(void *data, Evas_Object *obj, void *event_info);
242 void tab_cb(void *data, Evas_Object *obj, void *event_info);
243 int keydown_cb(void *data, int type, void *event);
244 int copy_files(char *src, char *dst);
246 void file_selection_popup_cb(void *data, Evas_Object *obj, void *event_info);
247 int set_default_state_as(int state);
249 bool mf_util_check_forbidden_operation(void *data);
250 int mf_util_check_disk_space(void *data);
252 void operation_abort(void *data);
253 void myfile_recovery_after_cancel();
254 void myfile_mmc_in_out_cb(void *data);
256 int mf_util_refresh_screen(void *data);
257 int mfScreenReset(void *data);
258 int mf_util_is_mmc_on(int *mmc_card);
259 int mf_util_is_otg_on(int *otg);
260 int mf_util_get_eina_list_len(const Eina_List *list);
261 void mf_util_free_eina_list_with_data(Eina_List **list, MYFILE_CONTENT_TYPE type);
262 void mf_util_operation_alloc_failed(void *data);
263 void mf_util_action_storage_insert(void *data, char *pItemLabel);
264 int mf_util_get_vconf_value(MYFILE_VCONF_TYPE type, int *value);
265 void mf_util_set_sort_type(int value);
266 void mf_util_merge_eina_list_to_glist(const Eina_List *eSource, GList **gSource);
267 void mf_util_exception_func(void *data);
268 int mf_util_is_valid_name_check(const char *name);
269 void mf_util_ex_disk_list_update(void *data);
270 long mf_util_character_count_get(const char *original);
271 /**ecore_*** handler related**/
272 void mf_util_add_to_handler_list(void *data, Ecore_Job *handler, char *label);
273 void mf_util_delete_from_handler_list(void *data, char *label, bool flag_del);
274 void mf_util_clear_handler_list(void *data);
275 char *mf_util_upper_folder_name_get(void *data, GString *fullpath);
277 char *mf_util_get_icu_date(fsNodeInfo *pNode);
278 int mf_util_icu_init(void *data);
279 void mf_util_icu_finalize(void *data);
280 char *mf_util_icu_translate(void *data, UDate date);
281 void mf_util_set_pm_lock(void *data, Eina_Bool isLock);
282 Eina_List *mf_util_get_all_selected(void *data);
283 gboolean mf_util_is_file_selected(Eina_List **source, GString *path);
284 MF_THEME_TYPE mf_util_get_theme(void);
285 void mf_util_sort_the_file_list(void *data);
286 int mf_util_generate_file_list(void *data);
287 char *mf_util_get_text(const char *ID);
288 void mf_util_set_view_style(int value);
289 void mf_util_rotate_state_set(void *data, app_device_orientation_e rotate_mode);
290 int mf_util_generate_root_view_file_list(Eina_List **list, int storage_state);
291 void mf_util_set_extension_state(int value);
292 const char *mf_util_search_markup_keyword(const char *string, char *searchword, bool *result);
293 void mf_util_set_recent_file(char *path);
294 Eina_List *mf_util_get_all_selected_items(void *data);
295 void mf_util_remove_item_from_list_by_location(Eina_List **list, int location);
296 void mf_util_generate_list(Eina_List **list, const char *path, int file_type);
297 bool mf_util_is_rotation_lock(void);
299 #endif /* __DEF_MYFILE_UTIL_H_ */