enventor - now user run the program instantly by double click the "program" keyword.
This commit is contained in:
parent
18b0268170
commit
1ed8b1ba79
|
@ -18,6 +18,7 @@ struct editor_s
|
||||||
stats_data *sd;
|
stats_data *sd;
|
||||||
config_data *cd;
|
config_data *cd;
|
||||||
parser_data *pd;
|
parser_data *pd;
|
||||||
|
view_data *vd;
|
||||||
menu_data *md;
|
menu_data *md;
|
||||||
|
|
||||||
int line_max;
|
int line_max;
|
||||||
|
@ -34,6 +35,12 @@ struct editor_s
|
||||||
Eina_Bool ctrl_pressed : 1;
|
Eina_Bool ctrl_pressed : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void
|
||||||
|
edit_vd_set(edit_data *ed, view_data *vd)
|
||||||
|
{
|
||||||
|
ed->vd = vd;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
indent_space_get(edit_data *ed)
|
indent_space_get(edit_data *ed)
|
||||||
{
|
{
|
||||||
|
@ -441,14 +448,26 @@ edit_cursor_double_clicked_cb(void *data, Evas_Object *obj,
|
||||||
char *text = elm_entry_markup_to_utf8(str);
|
char *text = elm_entry_markup_to_utf8(str);
|
||||||
char *cur = strstr(text, selected);
|
char *cur = strstr(text, selected);
|
||||||
|
|
||||||
//Get the attribute values
|
//If the selected text is "program" then just launch the program.
|
||||||
attr_value * attr = parser_attribute_get(ed->pd, text, cur);
|
if (!strcmp(selected, "program"))
|
||||||
if (!attr) goto end;
|
{
|
||||||
|
char *prog = parser_program_name_get(ed->pd, cur);
|
||||||
int x, y;
|
if (prog)
|
||||||
evas_pointer_output_xy_get(evas_object_evas_get(obj), &x, &y);
|
{
|
||||||
edit_attr_candidate_show(ed, attr, x, y, selected);
|
view_program_run(ed->vd, prog);
|
||||||
|
free(prog);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Show the candidates list.
|
||||||
|
else
|
||||||
|
{
|
||||||
|
attr_value * attr = parser_attribute_get(ed->pd, text, cur);
|
||||||
|
if (!attr) goto end;
|
||||||
|
|
||||||
|
int x, y;
|
||||||
|
evas_pointer_output_xy_get(evas_object_evas_get(obj), &x, &y);
|
||||||
|
edit_attr_candidate_show(ed, attr, x, y, selected);
|
||||||
|
}
|
||||||
end:
|
end:
|
||||||
free(text);
|
free(text);
|
||||||
}
|
}
|
||||||
|
|
|
@ -156,6 +156,23 @@ parser_type_init(parser_data *pd)
|
||||||
pd->attrs = eina_inlist_append(pd->attrs, (Eina_Inlist *) attr);
|
pd->attrs = eina_inlist_append(pd->attrs, (Eina_Inlist *) attr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *parser_program_name_get(parser_data *pd EINA_UNUSED, const char *cur)
|
||||||
|
{
|
||||||
|
if (!cur) return;
|
||||||
|
|
||||||
|
char *p = (char *) cur;
|
||||||
|
char *end;
|
||||||
|
|
||||||
|
p = strstr(p, "name");
|
||||||
|
if (!p) return NULL;
|
||||||
|
p = strstr(p, "\"");
|
||||||
|
if (!p) return NULL;
|
||||||
|
p++;
|
||||||
|
end = strstr(p, "\"");
|
||||||
|
if (!end) return NULL;
|
||||||
|
return strndup(p, (end - p));
|
||||||
|
}
|
||||||
|
|
||||||
attr_value *
|
attr_value *
|
||||||
parser_attribute_get(parser_data *pd, const char *text, const char *cur)
|
parser_attribute_get(parser_data *pd, const char *text, const char *cur)
|
||||||
{
|
{
|
||||||
|
|
|
@ -255,7 +255,7 @@ view_obj_get(view_data *vd)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
view_program_signal_emit(view_data *vd, const char *program)
|
view_program_run(view_data *vd, const char *program)
|
||||||
{
|
{
|
||||||
if (!program || !vd->layout) return;
|
if (!program || !vd->layout) return;
|
||||||
edje_edit_program_run(vd->layout, program);
|
edje_edit_program_run(vd->layout, program);
|
||||||
|
|
|
@ -390,11 +390,6 @@ main_key_down_cb(void *data, int type EINA_UNUSED, void *ev)
|
||||||
statusbar_toggle(ad);
|
statusbar_toggle(ad);
|
||||||
return ECORE_CALLBACK_DONE;
|
return ECORE_CALLBACK_DONE;
|
||||||
}
|
}
|
||||||
if (!strcmp(event->keyname, "F7"))
|
|
||||||
{
|
|
||||||
view_program_signal_emit(ad->vd, "test");
|
|
||||||
return ECORE_CALLBACK_DONE;
|
|
||||||
}
|
|
||||||
//Setting
|
//Setting
|
||||||
if (!strcmp(event->keyname, "F12"))
|
if (!strcmp(event->keyname, "F12"))
|
||||||
{
|
{
|
||||||
|
@ -604,6 +599,7 @@ init(app_data *ad, int argc, char **argv)
|
||||||
statusbar_set(ad, ad->cd);
|
statusbar_set(ad, ad->cd);
|
||||||
edc_edit_set(ad, ad->sd, ad->cd);
|
edc_edit_set(ad, ad->sd, ad->cd);
|
||||||
edc_view_set(ad, ad->cd, ad->sd);
|
edc_view_set(ad, ad->cd, ad->sd);
|
||||||
|
edit_vd_set(ad->ed, ad->vd);
|
||||||
ad->md = menu_init(ad->win, ad->ed, ad->cd, ad->vd, menu_close_cb, ad);
|
ad->md = menu_init(ad->win, ad->ed, ad->cd, ad->vd, menu_close_cb, ad);
|
||||||
|
|
||||||
ad->edc_monitor = eio_monitor_add(config_edc_path_get(ad->cd));
|
ad->edc_monitor = eio_monitor_add(config_edc_path_get(ad->cd));
|
||||||
|
|
|
@ -16,3 +16,5 @@ void edit_cur_part_update(edit_data *ed);
|
||||||
void edit_font_size_update(edit_data *ed, Eina_Bool msg);
|
void edit_font_size_update(edit_data *ed, Eina_Bool msg);
|
||||||
void edit_template_insert(edit_data *ed);
|
void edit_template_insert(edit_data *ed);
|
||||||
void edit_template_part_insert(edit_data *ed, Edje_Part_Type type);
|
void edit_template_part_insert(edit_data *ed, Edje_Part_Type type);
|
||||||
|
void edit_vd_set(edit_data *ed, view_data *vd);
|
||||||
|
|
||||||
|
|
|
@ -10,5 +10,4 @@ Eina_Bool parser_type_name_compare(parser_data *pd, const char *str);
|
||||||
const char *parser_markup_escape(parser_data *pd EINA_UNUSED, const char *str);
|
const char *parser_markup_escape(parser_data *pd EINA_UNUSED, const char *str);
|
||||||
attr_value *parser_attribute_get(parser_data *pd, const char *text, const char *cur);
|
attr_value *parser_attribute_get(parser_data *pd, const char *text, const char *cur);
|
||||||
const char * parser_paragh_name_get(parser_data *pd, Evas_Object *entry);
|
const char * parser_paragh_name_get(parser_data *pd, Evas_Object *entry);
|
||||||
|
char *parser_program_name_get(parser_data *pd, const char *cur);
|
||||||
|
|
||||||
|
|
|
@ -7,5 +7,5 @@ void view_part_highlight_set(view_data *vd, const char *part_name);
|
||||||
Eina_Bool view_reload_need_get(view_data *vd);
|
Eina_Bool view_reload_need_get(view_data *vd);
|
||||||
void view_reload_need_set(view_data *vd, Eina_Bool reload);
|
void view_reload_need_set(view_data *vd, Eina_Bool reload);
|
||||||
void view_dummy_toggle(view_data *vd, Eina_Bool msg);
|
void view_dummy_toggle(view_data *vd, Eina_Bool msg);
|
||||||
void view_program_signal_emit(view_data *vd, const char *program);
|
void view_program_run(view_data *vd, const char *program);
|
||||||
|
|
||||||
|
|
|
@ -140,7 +140,7 @@ const char *TEMPLATE_DESC[TEMPLATE_DESC_LINE_CNT] =
|
||||||
" fixed: 0 0;<br/>",
|
" fixed: 0 0;<br/>",
|
||||||
" min: 0 0;<br/>",
|
" min: 0 0;<br/>",
|
||||||
" visible: 1;<br/>",
|
" visible: 1;<br/>",
|
||||||
" image.normal: \"logo.png\";<br/>",
|
" //image.normal: \"logo.png\";<br/>",
|
||||||
" //aspect: 1 1;<br/>",
|
" //aspect: 1 1;<br/>",
|
||||||
"}",
|
"}",
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue