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 (toggle) config_file_tab_set(!config_file_tab_get());
|
||||||
|
|
||||||
if (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
|
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)
|
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)
|
void *event_info EINA_UNUSED)
|
||||||
{
|
{
|
||||||
file_mgr_data *fmd = data;
|
file_mgr_data *fmd = data;
|
||||||
Enventor_Item *it = enventor_object_main_file_set(base_enventor_get(),
|
facade_main_file_set(config_input_path_get());
|
||||||
config_input_path_get());
|
|
||||||
base_text_editor_set(it);
|
|
||||||
warning_close(fmd);
|
warning_close(fmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,13 @@
|
||||||
typedef struct file_tab_s
|
typedef struct file_tab_s
|
||||||
{
|
{
|
||||||
Evas_Object *list;
|
Evas_Object *list;
|
||||||
Evas_Object *out_box;
|
Evas_Object *box;
|
||||||
|
Elm_Object_Item *selected_it; //list selected item
|
||||||
} file_data;
|
} file_data;
|
||||||
|
|
||||||
typedef struct file_tab_it_s
|
typedef struct file_tab_it_s
|
||||||
{
|
{
|
||||||
Enventor_Item *it;
|
Enventor_Item *enventor_it;
|
||||||
file_data *fd;
|
file_data *fd;
|
||||||
|
|
||||||
} file_tab_it;
|
} file_tab_it;
|
||||||
|
@ -63,9 +64,31 @@ Eina_Bool file_tab_it_selected_set(Enventor_Item *enventor_it)
|
||||||
EINA_LIST_FOREACH(list, l, it)
|
EINA_LIST_FOREACH(list, l, it)
|
||||||
{
|
{
|
||||||
file_tab_it *fti = elm_object_item_data_get(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);
|
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)
|
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;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
fti->it = enventor_it;
|
fti->enventor_it = enventor_it;
|
||||||
|
|
||||||
elm_list_item_append(fd->list, filename, NULL, NULL, NULL, fti);
|
elm_list_item_append(fd->list, filename, NULL, NULL, NULL, fti);
|
||||||
elm_list_go(fd->list);
|
elm_list_go(fd->list);
|
||||||
|
@ -116,6 +139,23 @@ err:
|
||||||
return EINA_FALSE;
|
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 *
|
Evas_Object *
|
||||||
file_tab_init(Evas_Object *parent)
|
file_tab_init(Evas_Object *parent)
|
||||||
{
|
{
|
||||||
|
@ -128,19 +168,19 @@ file_tab_init(Evas_Object *parent)
|
||||||
g_fd = fd;
|
g_fd = fd;
|
||||||
|
|
||||||
//Outer Box
|
//Outer Box
|
||||||
Evas_Object *out_box = elm_box_add(parent);
|
Evas_Object *box = elm_box_add(parent);
|
||||||
elm_box_padding_set(out_box, ELM_SCALE_SIZE(3), 0);
|
elm_box_padding_set(box, ELM_SCALE_SIZE(3), 0);
|
||||||
elm_box_horizontal_set(out_box, EINA_TRUE);
|
elm_box_horizontal_set(box, EINA_TRUE);
|
||||||
|
|
||||||
//Left Button
|
//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_style_set(left_btn, ENVENTOR_NAME);
|
||||||
elm_object_focus_allow_set(left_btn, EINA_FALSE);
|
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_weight_set(left_btn, 0, EVAS_HINT_EXPAND);
|
||||||
evas_object_size_hint_align_set(left_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
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_smart_callback_add(left_btn, "clicked", left_btn_clicked_cb, fd);
|
||||||
evas_object_show(left_btn);
|
evas_object_show(left_btn);
|
||||||
elm_box_pack_end(out_box, left_btn);
|
elm_box_pack_end(box, left_btn);
|
||||||
|
|
||||||
//Left Button Icon
|
//Left Button Icon
|
||||||
Evas_Object *img1 = elm_image_add(left_btn);
|
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);
|
elm_object_content_set(left_btn, img1);
|
||||||
|
|
||||||
//Right Button
|
//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_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_weight_set(right_btn, 0, EVAS_HINT_EXPAND);
|
||||||
evas_object_size_hint_align_set(right_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
evas_object_size_hint_align_set(right_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
evas_object_smart_callback_add(right_btn, "clicked",
|
evas_object_smart_callback_add(right_btn, "clicked",
|
||||||
right_btn_clicked_cb, fd);
|
right_btn_clicked_cb, fd);
|
||||||
evas_object_show(right_btn);
|
evas_object_show(right_btn);
|
||||||
elm_box_pack_end(out_box, right_btn);
|
elm_box_pack_end(box, right_btn);
|
||||||
|
|
||||||
//Right Button Icon
|
//Right Button Icon
|
||||||
Evas_Object *img2 = elm_image_add(right_btn);
|
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);
|
elm_object_content_set(right_btn, img2);
|
||||||
|
|
||||||
//List
|
//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_style_set(list, ENVENTOR_NAME);
|
||||||
|
elm_object_focus_allow_set(list, EINA_FALSE);
|
||||||
elm_list_horizontal_set(list, EINA_TRUE);
|
elm_list_horizontal_set(list, EINA_TRUE);
|
||||||
elm_scroller_policy_set(list, ELM_SCROLLER_POLICY_OFF,
|
elm_scroller_policy_set(list, ELM_SCROLLER_POLICY_OFF,
|
||||||
ELM_SCROLLER_POLICY_OFF);
|
ELM_SCROLLER_POLICY_OFF);
|
||||||
|
@ -173,12 +214,12 @@ file_tab_init(Evas_Object *parent)
|
||||||
EVAS_HINT_EXPAND);
|
EVAS_HINT_EXPAND);
|
||||||
evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
evas_object_show(list);
|
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;
|
fd->list = list;
|
||||||
|
|
||||||
return out_box;
|
return box;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -187,7 +228,7 @@ file_tab_term(void)
|
||||||
file_data *fd = g_fd;
|
file_data *fd = g_fd;
|
||||||
if (!fd) return;
|
if (!fd) return;
|
||||||
|
|
||||||
evas_object_del(fd->out_box);
|
evas_object_del(fd->box);
|
||||||
|
|
||||||
free(fd);
|
free(fd);
|
||||||
g_fd = NULL;
|
g_fd = NULL;
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
const char *DEFAULT_EDC_FORMAT = "enventor_XXXXXX.edc";
|
const char *DEFAULT_EDC_FORMAT = "enventor_XXXXXX.edc";
|
||||||
|
@ -8,3 +12,19 @@ void mem_fail_msg(void)
|
||||||
{
|
{
|
||||||
EINA_LOG_ERR("Failed to allocate Memory!");
|
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);
|
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_enventor_set(enventor);
|
||||||
base_text_editor_set(ad->main_it);
|
ad->main_it = facade_main_file_set(config_input_path_get());
|
||||||
base_title_set(config_input_path_get());
|
|
||||||
base_live_view_set(enventor_object_live_view_get(enventor));
|
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);
|
eina_stringshare_del(selected);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Enventor_Item *it = enventor_object_main_file_set(enventor, selected);
|
facade_main_file_set(selected);
|
||||||
base_text_editor_set(it);
|
|
||||||
base_title_set(selected);
|
|
||||||
}
|
}
|
||||||
else if (is_edj)
|
else if (is_edj)
|
||||||
{
|
{
|
||||||
|
@ -432,11 +430,7 @@ fileselector_load_done_cb(void *data, Evas_Object *obj, void *event_info)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
config_input_path_set(selected);
|
config_input_path_set(selected);
|
||||||
Enventor_Item *it = enventor_object_main_file_set(base_enventor_get(),
|
facade_main_file_set(selected);
|
||||||
selected);
|
|
||||||
base_text_editor_set(it);
|
|
||||||
base_title_set(selected);
|
|
||||||
base_console_reset();
|
|
||||||
fileselector_close(md);
|
fileselector_close(md);
|
||||||
menu_close(md);
|
menu_close(md);
|
||||||
file_mgr_reset();
|
file_mgr_reset();
|
||||||
|
|
|
@ -57,11 +57,7 @@ newfile_set(Eina_Bool template_new)
|
||||||
EINA_LOG_ERR(_("Cannot find file! \"%s\""), buf);
|
EINA_LOG_ERR(_("Cannot find file! \"%s\""), buf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Enventor_Item *eit =
|
facade_main_file_set(path);
|
||||||
enventor_object_main_file_set(base_enventor_get(), path);
|
|
||||||
base_text_editor_set(eit);
|
|
||||||
base_title_set(path);
|
|
||||||
base_console_reset();
|
|
||||||
file_mgr_reset();
|
file_mgr_reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,3 +2,5 @@ Evas_Object *file_tab_init(Evas_Object *parent);
|
||||||
void file_tab_term(void);
|
void file_tab_term(void);
|
||||||
Eina_Bool file_tab_it_add(Enventor_Item *it);
|
Eina_Bool file_tab_it_add(Enventor_Item *it);
|
||||||
Eina_Bool file_tab_it_selected_set(Enventor_Item *enventor_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 Eina_Prefix *PREFIX;
|
||||||
extern const char *ENVENTOR_NAME;
|
extern const char *ENVENTOR_NAME;
|
||||||
void mem_fail_msg(void);
|
void mem_fail_msg(void);
|
||||||
|
Enventor_Item *facade_main_file_set(const char *path);
|
||||||
|
|
Loading…
Reference in New Issue