From 955b762eccebf72b65acfc39e53deaf7896b30fb Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Fri, 22 Apr 2016 19:31:07 +0900 Subject: [PATCH] edc_navigator: provide a program launch button. Now launching program by double clicking the program part in the code is removed! This was not intuitive. --- data/themes/default/images.edc | 2 ++ data/themes/default/images/Makefile.am | 1 + data/themes/default/images/navi_play.png | Bin 0 -> 312 bytes src/bin/edc_navigator.c | 39 +++++++++++++++++++---- src/bin/main.c | 13 -------- src/lib/edc_editor.c | 22 ++----------- src/lib/edj_viewer.c | 2 -- src/lib/enventor_main.c | 1 - src/lib/enventor_object.eo | 6 +++- src/lib/enventor_private.h | 1 - src/lib/enventor_smart.c | 9 +++++- 11 files changed, 52 insertions(+), 44 deletions(-) create mode 100644 data/themes/default/images/navi_play.png diff --git a/data/themes/default/images.edc b/data/themes/default/images.edc index cf18c1c..3a09b0c 100644 --- a/data/themes/default/images.edc +++ b/data/themes/default/images.edc @@ -36,6 +36,7 @@ images { image: "navi_state.png" COMP; image: "navi_program.png" COMP; image: "navi_unknown.png" COMP; + image: "navi_play.png" COMP; } #define ICON_GROUP(_group_name, _image_path) \ @@ -85,5 +86,6 @@ ICON_GROUP("navi_spacer", "navi_spacer.png") ICON_GROUP("navi_state", "navi_state.png") ICON_GROUP("navi_program", "navi_program.png") ICON_GROUP("navi_unknown", "navi_unknown.png") +ICON_GROUP("navi_play", "navi_play.png") #undef ICON_GROUP diff --git a/data/themes/default/images/Makefile.am b/data/themes/default/images/Makefile.am index 77bcd3b..9aada26 100644 --- a/data/themes/default/images/Makefile.am +++ b/data/themes/default/images/Makefile.am @@ -84,4 +84,5 @@ EXTRA_DIST = \ navi_unknown.png \ navi_state.png \ navi_program.png \ + navi_play.png \ bg_demo.png diff --git a/data/themes/default/images/navi_play.png b/data/themes/default/images/navi_play.png new file mode 100644 index 0000000000000000000000000000000000000000..28788561d01f37cb6146db74b880881bb1de0582 GIT binary patch literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VTavfC3&Vd9T(EcfWS|IVfk$L9 z0|U1(2s1Lwnj--eWH0gbb!C6RBE}`G!*Xal$bh4sE{-7D5Pf?vLMab1hrwnM>?qj%R`XVPNod^>bP0l+XkK Dm*RPn literal 0 HcmV?d00001 diff --git a/src/bin/edc_navigator.c b/src/bin/edc_navigator.c index 6e9ca9d..9b301e5 100644 --- a/src/bin/edc_navigator.c +++ b/src/bin/edc_navigator.c @@ -712,6 +712,20 @@ gl_state_content_get_cb(void *data EINA_UNUSED, Evas_Object *obj, /* Program Related */ +static void +program_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + program_it *pit = data; + Evas_Object *enventor = base_enventor_get(); + enventor_object_program_run(enventor, pit->name); + + if (!config_stats_bar_get()) return; + + char buf[256]; + snprintf(buf, sizeof(buf),_("Program Run: \"%s\""), pit->name); + stats_info_msg_update(buf); +} + static char * gl_program_text_get_cb(void *data, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED) @@ -724,15 +738,26 @@ static Evas_Object * gl_program_content_get_cb(void *data EINA_UNUSED, Evas_Object *obj, const char *part) { - if (strcmp("elm.swallow.icon", part)) return NULL; + if (!strcmp("elm.swallow.icon", part)) + { + Evas_Object *image = elm_image_add(obj); + elm_image_file_set(image, EDJE_PATH, "navi_state"); + return image; + } - Evas_Object *image = elm_image_add(obj); - elm_image_file_set(image, EDJE_PATH, "navi_state"); - - return image; + //play/stop button + program_it *pit = data; + Evas_Object *btn = elm_button_add(obj); + evas_object_smart_callback_add(btn, "clicked", program_btn_clicked_cb, + pit); +/* + Evas_Object *img = elm_image_add(btn); + elm_image_file_set(img, EDJE_PATH, "navi_play"); + elm_object_content_set(btn, img); +*/ + return btn; } - static void gl_program_selected_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) @@ -1261,6 +1286,8 @@ edc_navigator_group_update(const char *cur_group) navi_data *nd = g_nd; if (!nd) return; + //FIXME: This function is unnecessarily called... why? + //Cancel item selection if group was not indicated. if (!cur_group) navigator_item_deselect(nd); diff --git a/src/bin/main.c b/src/bin/main.c index 30582dc..3d1e2c5 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -462,17 +462,6 @@ enventor_live_view_cursor_moved_cb(void *data EINA_UNUSED, base_edc_navigator_deselect(); } -static void -enventor_program_run_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, - void *event_info) -{ - if (!config_stats_bar_get()) return; - const char *program = event_info; - char buf[256]; - snprintf(buf, sizeof(buf),_("Program Run: \"%s\""), program); - stats_info_msg_update(buf); -} - static void enventor_ctxpopup_activated_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, @@ -564,8 +553,6 @@ enventor_setup(app_data *ad) enventor_live_view_resized_cb, ad); evas_object_smart_callback_add(enventor, "live_view,updated", enventor_live_view_updated_cb, ad); - evas_object_smart_callback_add(enventor, "program,run", - enventor_program_run_cb, ad); evas_object_smart_callback_add(enventor, "ctxpopup,activated", enventor_ctxpopup_activated_cb, ad); evas_object_smart_callback_add(enventor, "ctxpopup,changed", diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index 7d739a1..a62e947 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -724,18 +724,6 @@ candidate_list_show(edit_data *ed, char *text, char *cur, char *selected) elm_object_tree_focus_allow_set(ed->layout, EINA_FALSE); } -static void -program_run(edit_data *ed, char *cur) -{ - char *program = parser_name_get(ed->pd, cur); - if (program) - { - view_data *vd = edj_mgr_view_get(NULL); - view_program_run(vd, program); - free(program); - } -} - static void edit_cursor_double_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) @@ -764,13 +752,9 @@ edit_cursor_double_clicked_cb(void *data, Evas_Object *obj, * Because right now any text inside quotes that placed after selection is * recognized as name. */ - if (!strcmp(selected, "program")) - { - program_run(ed, cur); - } - else if ((!strncmp(selected, "image", 5)) || //5: sizeof("image") - (!strcmp(selected, "normal")) || - (!strcmp(selected, "tween"))) + if ((!strncmp(selected, "image", 5)) || //5: sizeof("image") + (!strcmp(selected, "normal")) || + (!strcmp(selected, "tween"))) { int x, y; evas_pointer_output_xy_get(evas_object_evas_get(ed->en_edit), &x, &y); diff --git a/src/lib/edj_viewer.c b/src/lib/edj_viewer.c index acf562c..139c6fa 100644 --- a/src/lib/edj_viewer.c +++ b/src/lib/edj_viewer.c @@ -670,8 +670,6 @@ view_program_run(view_data *vd, const char *program) if (!program || !vd->layout) return; if (!vd->file_set_finished) return; edje_edit_program_run(vd->layout, program); - evas_object_smart_callback_call(vd->enventor, SIG_PROGRAM_RUN, - (void*)program); } void diff --git a/src/lib/enventor_main.c b/src/lib/enventor_main.c index e5e4a79..40b1ad5 100644 --- a/src/lib/enventor_main.c +++ b/src/lib/enventor_main.c @@ -16,7 +16,6 @@ const char SIG_LIVE_VIEW_CURSOR_MOVED[] = "live_view,cursor,moved"; const char SIG_LIVE_VIEW_RESIZED[] = "live_view,resized"; const char SIG_MAX_LINE_CHANGED[] = "max_line,changed"; const char SIG_COMPILE_ERROR[] = "compile,error"; -const char SIG_PROGRAM_RUN[] = "program,run"; const char SIG_CTXPOPUP_CHANGED[] = "ctxpopup,changed"; const char SIG_CTXPOPUP_DISMISSED[] = "ctxpopup,dismissed"; const char SIG_CTXPOPUP_ACTIVATED[] = "ctxpopup,activated"; diff --git a/src/lib/enventor_object.eo b/src/lib/enventor_object.eo index ed52c83..a903c27 100644 --- a/src/lib/enventor_object.eo +++ b/src/lib/enventor_object.eo @@ -185,6 +185,11 @@ class Enventor.Object (Elm.Widget, Efl.File) { @in line: int; } } + program_run { + params { + @in program: const(char) *; + } + } syntax_color_set { params { @in color_type: Enventor_Syntax_Color_Type; @@ -300,7 +305,6 @@ class Enventor.Object (Elm.Widget, Efl.File) { live_view,resized; max_line,changed; compile,error; - program,run; ctxpopup,activated; ctxpopup,changed; ctxpopup,dismissed; diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h index a87b9ae..39baefc 100644 --- a/src/lib/enventor_private.h +++ b/src/lib/enventor_private.h @@ -51,7 +51,6 @@ extern const char SIG_LIVE_VIEW_LOADED[]; extern const char SIG_LIVE_VIEW_UPDATED[]; extern const char SIG_LIVE_VIEW_CURSOR_MOVED[]; extern const char SIG_LIVE_VIEW_RESIZED[]; -extern const char SIG_PROGRAM_RUN[]; extern const char SIG_CTXPOPUP_CHANGED[]; extern const char SIG_CTXPOPUP_DISMISSED[]; extern const char SIG_CTXPOPUP_ACTIVATED[]; diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c index 820e611..0cd58f5 100644 --- a/src/lib/enventor_smart.c +++ b/src/lib/enventor_smart.c @@ -44,7 +44,6 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = { {SIG_LIVE_VIEW_UPDATED, ""}, {SIG_MAX_LINE_CHANGED, ""}, {SIG_COMPILE_ERROR, ""}, - {SIG_PROGRAM_RUN, ""}, {SIG_CTXPOPUP_CHANGED, ""}, {SIG_CTXPOPUP_DISMISSED, ""}, {SIG_CTXPOPUP_ACTIVATED, ""}, @@ -779,6 +778,14 @@ _enventor_object_undo(Eo *obj EINA_UNUSED, Enventor_Object_Data *pd) return edit_redoundo(pd->ed, EINA_TRUE); } +EOLIAN static void +_enventor_object_program_run(Eo *obj EINA_UNUSED, + Enventor_Object_Data *pd, + const char *program) +{ + view_program_run(VIEW_DATA, program); +} + /*****************************************************************************/ /* Externally accessible calls */ /*****************************************************************************/