forked from enlightenment/enventor
file_tab: ++implementation.
This commit is contained in:
parent
247c1e67ae
commit
c8749390d8
|
@ -91,9 +91,15 @@ base_file_tab_toggle(Eina_Bool toggle)
|
|||
if (toggle) config_file_tab_set(!config_file_tab_get());
|
||||
|
||||
if (config_file_tab_get())
|
||||
elm_object_signal_emit(bd->layout, "elm,state,file_tab,show", "");
|
||||
{
|
||||
file_tab_disabled_set(EINA_FALSE);
|
||||
elm_object_signal_emit(bd->layout, "elm,state,file_tab,show", "");
|
||||
}
|
||||
else
|
||||
elm_object_signal_emit(bd->layout, "elm,state,file_tab,hide", "");
|
||||
{
|
||||
file_tab_disabled_set(EINA_TRUE);
|
||||
elm_object_signal_emit(bd->layout, "elm,state,file_tab,hide", "");
|
||||
}
|
||||
}
|
||||
|
||||
void base_file_browser_toggle(Eina_Bool toggle)
|
||||
|
|
|
@ -53,9 +53,7 @@ warning_replace_btn_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
file_mgr_data *fmd = data;
|
||||
Enventor_Item *it = enventor_object_main_file_set(base_enventor_get(),
|
||||
config_input_path_get());
|
||||
base_text_editor_set(it);
|
||||
facade_main_file_set(config_input_path_get());
|
||||
warning_close(fmd);
|
||||
}
|
||||
|
||||
|
|
|
@ -3,12 +3,13 @@
|
|||
typedef struct file_tab_s
|
||||
{
|
||||
Evas_Object *list;
|
||||
Evas_Object *out_box;
|
||||
Evas_Object *box;
|
||||
Elm_Object_Item *selected_it; //list selected item
|
||||
} file_data;
|
||||
|
||||
typedef struct file_tab_it_s
|
||||
{
|
||||
Enventor_Item *it;
|
||||
Enventor_Item *enventor_it;
|
||||
file_data *fd;
|
||||
|
||||
} file_tab_it;
|
||||
|
@ -63,9 +64,31 @@ Eina_Bool file_tab_it_selected_set(Enventor_Item *enventor_it)
|
|||
EINA_LIST_FOREACH(list, l, it)
|
||||
{
|
||||
file_tab_it *fti = elm_object_item_data_get(it);
|
||||
if (fti->it != enventor_it) continue;
|
||||
if (fti->enventor_it != enventor_it) continue;
|
||||
elm_list_item_selected_set(it, EINA_TRUE);
|
||||
fd->selected_it = it;
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
fd->selected_it = NULL;
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
void file_tab_clear(void)
|
||||
{
|
||||
file_data *fd = g_fd;
|
||||
if (!fd) return;
|
||||
|
||||
Eina_List *list = (Eina_List*) elm_list_items_get(fd->list);
|
||||
Eina_List *l;
|
||||
Elm_Object_Item *it;
|
||||
|
||||
EINA_LIST_FOREACH(list, l, it)
|
||||
{
|
||||
file_tab_it *fti = elm_object_item_data_get(it);
|
||||
free(fti);
|
||||
}
|
||||
elm_list_clear(fd->list);
|
||||
}
|
||||
|
||||
Eina_Bool file_tab_it_add(Enventor_Item *enventor_it)
|
||||
|
@ -102,7 +125,7 @@ Eina_Bool file_tab_it_add(Enventor_Item *enventor_it)
|
|||
goto err;
|
||||
}
|
||||
|
||||
fti->it = enventor_it;
|
||||
fti->enventor_it = enventor_it;
|
||||
|
||||
elm_list_item_append(fd->list, filename, NULL, NULL, NULL, fti);
|
||||
elm_list_go(fd->list);
|
||||
|
@ -116,6 +139,23 @@ err:
|
|||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
void
|
||||
file_tab_disabled_set(Eina_Bool disabled)
|
||||
{
|
||||
file_data *fd = g_fd;
|
||||
if (!fd) return;
|
||||
elm_object_disabled_set(fd->box, disabled);
|
||||
|
||||
if (disabled) return;
|
||||
|
||||
//Re-select item. This is a little tricky.
|
||||
//When we disable a list, its selected item is dismissed.
|
||||
//So, we manually select the item when list is enabled again.
|
||||
if (!fd->selected_it) return;
|
||||
elm_list_item_selected_set(fd->selected_it, EINA_FALSE);
|
||||
elm_list_item_selected_set(fd->selected_it, EINA_TRUE);
|
||||
}
|
||||
|
||||
Evas_Object *
|
||||
file_tab_init(Evas_Object *parent)
|
||||
{
|
||||
|
@ -128,19 +168,19 @@ file_tab_init(Evas_Object *parent)
|
|||
g_fd = fd;
|
||||
|
||||
//Outer Box
|
||||
Evas_Object *out_box = elm_box_add(parent);
|
||||
elm_box_padding_set(out_box, ELM_SCALE_SIZE(3), 0);
|
||||
elm_box_horizontal_set(out_box, EINA_TRUE);
|
||||
Evas_Object *box = elm_box_add(parent);
|
||||
elm_box_padding_set(box, ELM_SCALE_SIZE(3), 0);
|
||||
elm_box_horizontal_set(box, EINA_TRUE);
|
||||
|
||||
//Left Button
|
||||
Evas_Object *left_btn = elm_button_add(out_box);
|
||||
Evas_Object *left_btn = elm_button_add(box);
|
||||
elm_object_style_set(left_btn, ENVENTOR_NAME);
|
||||
elm_object_focus_allow_set(left_btn, EINA_FALSE);
|
||||
evas_object_size_hint_weight_set(left_btn, 0, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(left_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_smart_callback_add(left_btn, "clicked", left_btn_clicked_cb, fd);
|
||||
evas_object_show(left_btn);
|
||||
elm_box_pack_end(out_box, left_btn);
|
||||
elm_box_pack_end(box, left_btn);
|
||||
|
||||
//Left Button Icon
|
||||
Evas_Object *img1 = elm_image_add(left_btn);
|
||||
|
@ -148,15 +188,15 @@ file_tab_init(Evas_Object *parent)
|
|||
elm_object_content_set(left_btn, img1);
|
||||
|
||||
//Right Button
|
||||
Evas_Object *right_btn = elm_button_add(out_box);
|
||||
Evas_Object *right_btn = elm_button_add(box);
|
||||
elm_object_style_set(right_btn, ENVENTOR_NAME);
|
||||
elm_object_focus_allow_set(left_btn, EINA_FALSE);
|
||||
elm_object_focus_allow_set(right_btn, EINA_FALSE);
|
||||
evas_object_size_hint_weight_set(right_btn, 0, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(right_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_smart_callback_add(right_btn, "clicked",
|
||||
right_btn_clicked_cb, fd);
|
||||
evas_object_show(right_btn);
|
||||
elm_box_pack_end(out_box, right_btn);
|
||||
elm_box_pack_end(box, right_btn);
|
||||
|
||||
//Right Button Icon
|
||||
Evas_Object *img2 = elm_image_add(right_btn);
|
||||
|
@ -164,8 +204,9 @@ file_tab_init(Evas_Object *parent)
|
|||
elm_object_content_set(right_btn, img2);
|
||||
|
||||
//List
|
||||
Evas_Object *list = elm_list_add(out_box);
|
||||
Evas_Object *list = elm_list_add(box);
|
||||
elm_object_style_set(list, ENVENTOR_NAME);
|
||||
elm_object_focus_allow_set(list, EINA_FALSE);
|
||||
elm_list_horizontal_set(list, EINA_TRUE);
|
||||
elm_scroller_policy_set(list, ELM_SCROLLER_POLICY_OFF,
|
||||
ELM_SCROLLER_POLICY_OFF);
|
||||
|
@ -173,12 +214,12 @@ file_tab_init(Evas_Object *parent)
|
|||
EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(list);
|
||||
elm_box_pack_end(out_box, list);
|
||||
elm_box_pack_end(box, list);
|
||||
|
||||
fd->out_box = out_box;
|
||||
fd->box = box;
|
||||
fd->list = list;
|
||||
|
||||
return out_box;
|
||||
return box;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -187,7 +228,7 @@ file_tab_term(void)
|
|||
file_data *fd = g_fd;
|
||||
if (!fd) return;
|
||||
|
||||
evas_object_del(fd->out_box);
|
||||
evas_object_del(fd->box);
|
||||
|
||||
free(fd);
|
||||
g_fd = NULL;
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include "common.h"
|
||||
|
||||
const char *DEFAULT_EDC_FORMAT = "enventor_XXXXXX.edc";
|
||||
|
@ -8,3 +12,19 @@ void mem_fail_msg(void)
|
|||
{
|
||||
EINA_LOG_ERR("Failed to allocate Memory!");
|
||||
}
|
||||
|
||||
Enventor_Item *facade_main_file_set(const char *path)
|
||||
{
|
||||
Enventor_Item *it = enventor_object_main_file_set(base_enventor_get(), path);
|
||||
if (!it) return NULL;
|
||||
|
||||
file_tab_clear();
|
||||
file_tab_it_add(it);
|
||||
file_tab_it_selected_set(it);
|
||||
|
||||
base_text_editor_set(it);
|
||||
base_title_set(path);
|
||||
base_console_reset();
|
||||
|
||||
return it;
|
||||
}
|
||||
|
|
|
@ -592,14 +592,8 @@ enventor_setup(app_data *ad)
|
|||
|
||||
enventor_common_setup(enventor);
|
||||
|
||||
ad->main_it =
|
||||
enventor_object_main_file_set(enventor, config_input_path_get());
|
||||
file_tab_it_add(ad->main_it);
|
||||
file_tab_it_selected_set(ad->main_it);
|
||||
|
||||
base_enventor_set(enventor);
|
||||
base_text_editor_set(ad->main_it);
|
||||
base_title_set(config_input_path_get());
|
||||
ad->main_it = facade_main_file_set(config_input_path_get());
|
||||
base_live_view_set(enventor_object_live_view_get(enventor));
|
||||
}
|
||||
|
||||
|
|
|
@ -356,9 +356,7 @@ fileselector_save_done_cb(void *data, Evas_Object *obj, void *event_info)
|
|||
eina_stringshare_del(selected);
|
||||
return;
|
||||
}
|
||||
Enventor_Item *it = enventor_object_main_file_set(enventor, selected);
|
||||
base_text_editor_set(it);
|
||||
base_title_set(selected);
|
||||
facade_main_file_set(selected);
|
||||
}
|
||||
else if (is_edj)
|
||||
{
|
||||
|
@ -432,11 +430,7 @@ fileselector_load_done_cb(void *data, Evas_Object *obj, void *event_info)
|
|||
return;
|
||||
}
|
||||
config_input_path_set(selected);
|
||||
Enventor_Item *it = enventor_object_main_file_set(base_enventor_get(),
|
||||
selected);
|
||||
base_text_editor_set(it);
|
||||
base_title_set(selected);
|
||||
base_console_reset();
|
||||
facade_main_file_set(selected);
|
||||
fileselector_close(md);
|
||||
menu_close(md);
|
||||
file_mgr_reset();
|
||||
|
|
|
@ -57,11 +57,7 @@ newfile_set(Eina_Bool template_new)
|
|||
EINA_LOG_ERR(_("Cannot find file! \"%s\""), buf);
|
||||
return;
|
||||
}
|
||||
Enventor_Item *eit =
|
||||
enventor_object_main_file_set(base_enventor_get(), path);
|
||||
base_text_editor_set(eit);
|
||||
base_title_set(path);
|
||||
base_console_reset();
|
||||
facade_main_file_set(path);
|
||||
file_mgr_reset();
|
||||
}
|
||||
|
||||
|
|
|
@ -2,3 +2,5 @@ Evas_Object *file_tab_init(Evas_Object *parent);
|
|||
void file_tab_term(void);
|
||||
Eina_Bool file_tab_it_add(Enventor_Item *it);
|
||||
Eina_Bool file_tab_it_selected_set(Enventor_Item *enventor_it);
|
||||
void file_tab_disabled_set(Eina_Bool disabled);
|
||||
void file_tab_clear(void);
|
||||
|
|
|
@ -3,3 +3,4 @@ extern char EDJE_PATH[PATH_MAX];
|
|||
extern Eina_Prefix *PREFIX;
|
||||
extern const char *ENVENTOR_NAME;
|
||||
void mem_fail_msg(void);
|
||||
Enventor_Item *facade_main_file_set(const char *path);
|
||||
|
|
Loading…
Reference in New Issue