jaehyun pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=0f3740630e8af2caa78845028d93e725287facdc

commit 0f3740630e8af2caa78845028d93e725287facdc
Author: Jaehyun Cho <jae_hyun....@samsung.com>
Date:   Thu Apr 28 17:51:09 2016 +0900

    file_browser: Add refresh button.
    
    When refresh button is clicked, then all directories in file browser are
    updated.
---
 src/bin/file_browser.c | 42 ++++++++++++++++++++++++++++++++++++++----
 1 file changed, 38 insertions(+), 4 deletions(-)

diff --git a/src/bin/file_browser.c b/src/bin/file_browser.c
index d64aecf..c74975a 100644
--- a/src/bin/file_browser.c
+++ b/src/bin/file_browser.c
@@ -24,7 +24,10 @@ typedef struct file_browser_s
    brows_file *col_edc;   //collections edc
    brows_file *workspace; //workspace directory
 
+   Evas_Object *box;
    Evas_Object *genlist;
+   Evas_Object *button;
+
    Elm_Genlist_Item_Class *itc;
    Elm_Genlist_Item_Class *group_itc;
 
@@ -379,11 +382,27 @@ file_browser_edc_file_set(const char *edc_file)
    bd->col_edc = edc;
 }
 
+static void
+btn_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED,
+               void *event_info EINA_UNUSED)
+{
+   brows_data *bd = data;
+   if (!bd) return;
+
+   if (bd->workspace_group_it)
+     elm_object_item_del(bd->workspace_group_it);
+
+   brows_file_free(bd->workspace);
+   bd->workspace = NULL;
+
+   file_browser_workspace_set(config_workspace_path_get());
+}
+
 Evas_Object *
 file_browser_init(Evas_Object *parent)
 {
    brows_data *bd = g_bd;
-   if (bd) return bd->genlist;
+   if (bd) return bd->box;
 
    bd = calloc(1, sizeof(brows_data));
    if (!bd)
@@ -393,7 +412,11 @@ file_browser_init(Evas_Object *parent)
      }
    g_bd = bd;
 
-   Evas_Object *genlist = elm_genlist_add(parent);
+   Evas_Object *box = elm_box_add(parent);
+
+   Evas_Object *genlist = elm_genlist_add(box);
+   evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, 
EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
    elm_object_focus_allow_set(genlist, EINA_FALSE);
 
    evas_object_smart_callback_add(genlist, "expand,request", gl_exp_req, NULL);
@@ -402,6 +425,9 @@ file_browser_init(Evas_Object *parent)
    evas_object_smart_callback_add(genlist, "expanded", gl_exp, bd);
    evas_object_smart_callback_add(genlist, "contracted", gl_con, NULL);
 
+   evas_object_show(genlist);
+   elm_box_pack_end(box, genlist);
+
    //Item Class
    Elm_Genlist_Item_Class *itc;
    itc = elm_genlist_item_class_new();
@@ -417,9 +443,17 @@ file_browser_init(Evas_Object *parent)
    group_itc->func.text_get = gl_group_text_get_cb;
    bd->group_itc = group_itc;
 
+   Evas_Object *button = elm_button_add(box);
+   evas_object_smart_callback_add(button, "clicked", btn_clicked_cb, bd);
+   elm_object_text_set(button, "Refresh");
+   evas_object_show(button);
+   elm_box_pack_end(box, button);
+
+   bd->box = box;
    bd->genlist = genlist;
+   bd->button = button;
 
-   return genlist;
+   return box;
 }
 
 void
@@ -434,7 +468,7 @@ file_browser_term(void)
    elm_genlist_item_class_free(bd->itc);
    elm_genlist_item_class_free(bd->group_itc);
 
-   evas_object_del(bd->genlist);
+   evas_object_del(bd->box);
 
    free(bd);
    g_bd = NULL;

-- 


Reply via email to