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.
This commit is contained in:
Hermet Park 2016-04-22 19:31:07 +09:00
parent e70197ff49
commit 955b762ecc
11 changed files with 52 additions and 44 deletions

View File

@ -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

View File

@ -84,4 +84,5 @@ EXTRA_DIST = \
navi_unknown.png \
navi_state.png \
navi_program.png \
navi_play.png \
bg_demo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 B

View File

@ -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);

View File

@ -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",

View File

@ -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);

View File

@ -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

View File

@ -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";

View File

@ -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;

View File

@ -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[];

View File

@ -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 */
/*****************************************************************************/