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:
parent
e70197ff49
commit
955b762ecc
|
@ -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
|
||||
|
|
|
@ -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 |
|
@ -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);
|
||||
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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[];
|
||||
|
|
|
@ -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 */
|
||||
/*****************************************************************************/
|
||||
|
|
Loading…
Reference in New Issue