diff --git a/src/bin/file_mgr.c b/src/bin/file_mgr.c index 8ff212c..00c6871 100644 --- a/src/bin/file_mgr.c +++ b/src/bin/file_mgr.c @@ -53,7 +53,7 @@ warning_replace_btn_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { file_mgr_data *fmd = data; - enventor_object_file_set(base_enventor_get(), config_input_path_get()); + enventor_object_main_file_set(base_enventor_get(), config_input_path_get()); warning_close(fmd); } diff --git a/src/bin/main.c b/src/bin/main.c index 7b1eea3..b111344 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -569,7 +569,7 @@ enventor_setup(app_data *ad) enventor_common_setup(enventor); - enventor_object_file_set(enventor, config_input_path_get()); + enventor_object_main_file_set(enventor, config_input_path_get()); base_enventor_set(enventor); base_title_set(config_input_path_get()); diff --git a/src/bin/menu.c b/src/bin/menu.c index e8cb337..1e8b0cf 100644 --- a/src/bin/menu.c +++ b/src/bin/menu.c @@ -432,7 +432,7 @@ fileselector_save_done_cb(void *data, Evas_Object *obj, void *event_info) eina_stringshare_del(selected); return; } - enventor_object_file_set(enventor, selected); + enventor_object_main_file_set(enventor, selected); base_title_set(selected); } else if (is_edj) @@ -507,7 +507,7 @@ fileselector_load_done_cb(void *data, Evas_Object *obj, void *event_info) return; } config_input_path_set(selected); - enventor_object_file_set(base_enventor_get(), selected); + enventor_object_main_file_set(base_enventor_get(), selected); base_title_set(selected); base_console_reset(); fileselector_close(md); diff --git a/src/bin/newfile.c b/src/bin/newfile.c index f8690f1..b03236d 100644 --- a/src/bin/newfile.c +++ b/src/bin/newfile.c @@ -57,7 +57,7 @@ newfile_set(Eina_Bool template_new) EINA_LOG_ERR(_("Cannot find file! \"%s\""), buf); return; } - enventor_object_file_set(base_enventor_get(), path); + enventor_object_main_file_set(base_enventor_get(), path); base_title_set(path); base_console_reset(); file_mgr_reset(); diff --git a/src/lib/Enventor_Legacy.h b/src/lib/Enventor_Legacy.h index aad0368..ee5493e 100644 --- a/src/lib/Enventor_Legacy.h +++ b/src/lib/Enventor_Legacy.h @@ -1,4 +1,6 @@ +typedef struct _Enventor_Item_Data Enventor_Item; + EAPI Evas_Object *enventor_object_add(Evas_Object *parent); -EAPI Eina_Bool enventor_object_file_set(Evas_Object *obj, const char *file); +EAPI Enventor_Item *enventor_object_main_file_set(Evas_Object *obj, const char *file); #include "enventor_object.eo.legacy.h" diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c index 3f176c0..903f3d0 100644 --- a/src/lib/enventor_smart.c +++ b/src/lib/enventor_smart.c @@ -21,6 +21,7 @@ typedef struct _Enventor_Object_Data { EINA_REFCOUNT; Evas_Object *obj; + Eina_List *items; edit_data *ed; Eina_Stringshare *group_name; @@ -35,6 +36,12 @@ typedef struct _Enventor_Object_Data } Enventor_Object_Data; +typedef struct _Enventor_Item_Data +{ + Enventor_Object *enventor; + +} Enventor_Item_Data; + static const Evas_Smart_Cb_Description _smart_callbacks[] = { {SIG_CURSOR_LINE_CHANGED, ""}, {SIG_CURSOR_GROUP_CHANGED, ""}, @@ -192,7 +199,6 @@ _enventor_object_class_constructor(Eo_Class *klass) EOLIAN static void _enventor_object_evas_object_smart_add(Eo *obj, Enventor_Object_Data *pd) { - EINA_REFCOUNT_INIT(pd); pd->obj = obj; elm_widget_sub_object_parent_add(obj); @@ -805,10 +811,25 @@ enventor_object_add(Enventor_Object *parent) return obj; } -EAPI Eina_Bool -enventor_object_file_set(Enventor_Object *obj, const char *file) +EAPI Enventor_Item * +enventor_object_main_file_set(Enventor_Object *obj, const char *file) { - return efl_file_set(obj, file, NULL); + Eina_Bool ret = efl_file_set(obj, file, NULL); + if (!ret) return NULL; + + Enventor_Item *it = calloc(1, sizeof(Enventor_Item)); + if (!it) + { + EINA_LOG_ERR("Failed to allocate Memory!"); + return EINA_FALSE; + } + + it->enventor = obj; + + Enventor_Object_Data *pd = eo_data_scope_get(obj, ENVENTOR_OBJECT_CLASS); + pd->items = eina_list_append(pd->items, it); + + return it; } #include "enventor_object.eo.c"