hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=de81c39a0db8b67892e24075b06f9f90a4d7e1ca
commit de81c39a0db8b67892e24075b06f9f90a4d7e1ca Author: ChunEon Park <[email protected]> Date: Wed Aug 13 18:20:42 2014 +0900 live_edit: revise code --- data/themes/default/layout_common.edc | 3 +- src/bin/live_edit.c | 58 ++++++++++++++++------------------- src/bin/main.c | 1 - src/bin/template.c | 48 ++++++++++------------------- 4 files changed, 44 insertions(+), 66 deletions(-) diff --git a/data/themes/default/layout_common.edc b/data/themes/default/layout_common.edc index bc78420..2947030 100644 --- a/data/themes/default/layout_common.edc +++ b/data/themes/default/layout_common.edc @@ -1318,7 +1318,7 @@ group { name: "search_layout"; #define REL_SIZE 70 35 #define INFO_SIZE 130 50 -group { name: "viewer_layout_dragable_container"; +group { name: "live_edit_layout"; parts { part { name: "bg"; type: RECT; @@ -1512,7 +1512,6 @@ group { name: "viewer_layout"; } part { name: "elm.swallow.live_edit"; type: SWALLOW; - repeat_events: 1; description { state: "default" 0.0; } } diff --git a/src/bin/live_edit.c b/src/bin/live_edit.c index 62deb4e..1c777cd 100644 --- a/src/bin/live_edit.c +++ b/src/bin/live_edit.c @@ -48,18 +48,18 @@ static const char *LIVE_EDIT_NEW_PART_DATA_STR = static const char *LIVE_EDIT_NEW_PART_REL_STR = " %.2f %.2f"; static void -live_edit_current_part_values_update(live_data *ld, Evas_Object *layout) +cur_part_value_update(live_data *ld, Evas_Object *edje) { Evas_Coord x, y, w, h; Evas_Coord view_w, view_h; config_view_size_get(&view_w, &view_h); - edje_object_part_geometry_get(layout, "new_part_bg", &x, &y, &w, &h); + edje_object_part_geometry_get(edje, "new_part_bg", &x, &y, &w, &h); - ld->cur_part_data->rel1_x = (float)x/view_w; - ld->cur_part_data->rel1_y = (float)y/view_h; - ld->cur_part_data->rel2_x = (float)(x + w)/view_w; - ld->cur_part_data->rel2_y = (float)(y + h)/view_h; + ld->cur_part_data->rel1_x = ((float) x) / ((float) view_w); + ld->cur_part_data->rel1_y = ((float) y) / ((float) view_h); + ld->cur_part_data->rel2_x = ((float) (x + w)) / ((float) view_w); + ld->cur_part_data->rel2_y = ((float) (y + h)) / ((float) view_h); ld->cur_part_data->x = x; ld->cur_part_data->y = y; ld->cur_part_data->w = w; @@ -67,11 +67,11 @@ live_edit_current_part_values_update(live_data *ld, Evas_Object *layout) } static Evas_Object * -create_dragable_container(live_data *led) +create_live_edit_layout() { Evas_Object *viewer_layout = edj_mgr_obj_get(); Evas_Object *layout = elm_layout_add(viewer_layout); - elm_layout_file_set(layout, EDJE_PATH, "viewer_layout_dragable_container"); + elm_layout_file_set(layout, EDJE_PATH, "live_edit_layout"); evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_part_content_set(viewer_layout, "elm.swallow.live_edit", layout); @@ -79,11 +79,11 @@ create_dragable_container(live_data *led) } static void -live_edit_part_info_update(live_data *ld) +part_info_update(live_data *ld) { Evas_Object *layout = elm_layout_edje_get(ld->layout); - live_edit_current_part_values_update(ld, layout); + cur_part_value_update(ld, layout); char part_info[LIVE_EDIT_NEW_PART_DATA_MAX_LEN]; @@ -107,24 +107,19 @@ live_edit_part_info_update(live_data *ld) } static void -live_edit_part_geometry_changed_cb(void *data, +dragable_geometry_changed_cb(void *data, Evas_Object *obj EINA_UNUSED, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { //TODO: recalc on viewport size changed - live_edit_part_info_update(data); + live_data *ld = data; + part_info_update(ld); } static void live_edit_reset(live_data *ld) { - edje_object_signal_callback_del(elm_layout_edje_get(ld->layout), - "drag", "rel1.dragable", - live_edit_part_geometry_changed_cb); - edje_object_signal_callback_del(elm_layout_edje_get(ld->layout), - "drag", "rel2.dragable", - live_edit_part_geometry_changed_cb); ecore_event_handler_del(ld->key_down_handler); ld->key_down_handler = NULL; @@ -133,7 +128,7 @@ live_edit_reset(live_data *ld) } static Eina_Bool -drag_n_drop_mode_toggle_cb(void *data, int type EINA_UNUSED, void *ev) +key_down_cb(void *data, int type EINA_UNUSED, void *ev) { Ecore_Event_Key *event = ev; live_data *ld = data; @@ -155,22 +150,22 @@ drag_n_drop_mode_toggle_cb(void *data, int type EINA_UNUSED, void *ev) } static void -setup_layout(live_data *ld) +live_edit_layer_set(live_data *ld) { ld->key_down_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, - drag_n_drop_mode_toggle_cb, + key_down_cb, ld); - Evas_Object *layout = create_dragable_container(ld); - ld->layout = layout; - + Evas_Object *layout = create_live_edit_layout(); + edje_object_signal_callback_add(elm_layout_edje_get(layout), "drag", "rel1.dragable", - live_edit_part_geometry_changed_cb, ld); + dragable_geometry_changed_cb, ld); edje_object_signal_callback_add(elm_layout_edje_get(layout), "drag", "rel2.dragable", - live_edit_part_geometry_changed_cb, ld); - - live_edit_part_info_update(ld); + dragable_geometry_changed_cb, ld); + part_info_update(ld); + + ld->layout = layout; } static void @@ -179,8 +174,7 @@ menu_it_selected_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) live_data *ld = data; const Elm_Object_Item *it = event_info; ld->cur_part_data->type = elm_menu_item_index_get(it); - setup_layout(ld); - + live_edit_layer_set(ld); evas_object_del(ld->menu); ld->menu = NULL; } @@ -279,8 +273,8 @@ void live_edit_term() { live_data *ld = g_ld; - if (ld->menu) evas_object_del(ld->menu); - if (ld->layout) live_edit_reset(ld); + evas_object_del(ld->menu); + live_edit_reset(ld); free(ld->cur_part_data); free(ld); g_ld = NULL; diff --git a/src/bin/main.c b/src/bin/main.c index 87ab9e1..33221cb 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -422,7 +422,6 @@ config_update_cb(void *data) base_statusbar_toggle(EINA_FALSE); edit_part_highlight_toggle(ad->ed, EINA_FALSE); view_dummy_toggle(VIEW_DATA, EINA_FALSE); - if (config_live_edit_get()) live_edit_toggle(); //previous build was failed, Need to rebuild then reload the edj. if (edj_mgr_reload_need_get()) diff --git a/src/bin/template.c b/src/bin/template.c index b535bc5..19f323b 100644 --- a/src/bin/template.c +++ b/src/bin/template.c @@ -26,21 +26,6 @@ template_part_first_line_get(void) return (const char *) buf; } -static const char * -template_part_relative_line_get(char rel_no, float relative_x, float relative_y) -{ - if ((rel_no != 1) && (rel_no != 2)) - return NULL; - - static char buf[40]; - int i; - - snprintf(buf, sizeof(buf), " rel%d.relative: %.2f %.2f;<br/>", - rel_no, relative_x, relative_y); - - return (const char *) buf; -} - void template_insert(edit_data *ed) { @@ -244,28 +229,30 @@ internal_template_part_insert(edit_data *ed, break; } - // insert the first line of the part block with generated name. + //Insert first line of the part block with generated name. elm_entry_entry_insert(edit_entry, p); const char *first_line = template_part_first_line_get(); elm_entry_entry_insert(edit_entry, first_line); edit_line_increase(ed, 1); - // insert the body of the part + //Insert part body int i; for (i = 0; i < line_cnt; i++) { elm_entry_entry_insert(edit_entry, p); elm_entry_entry_insert(edit_entry, t[i]); - //Incease line by (line count - 1) - edit_line_increase(ed, 1); } - // insert relatives + //Insert relatives elm_entry_entry_insert(edit_entry, p); - elm_entry_entry_insert(edit_entry, template_part_relative_line_get(1, rel1_x, rel1_y)); + + snprintf(buf, sizeof(buf), " rel1.relative: %.2f %.2f;<br/>",rel1_x, + rel2_y); + elm_entry_entry_insert(edit_entry, buf); elm_entry_entry_insert(edit_entry, p); - elm_entry_entry_insert(edit_entry, template_part_relative_line_get(2, rel2_x, rel2_y)); - edit_line_increase(ed, 2); + snprintf(buf, sizeof(buf), " rel2.relative: %.2f %.2f;<br/>",rel1_x, + rel2_y); + elm_entry_entry_insert(edit_entry, buf); // insert the tale of the part that contains closing brackets t = (char **) &TEMPLATE_PART_TALE; @@ -273,9 +260,11 @@ internal_template_part_insert(edit_data *ed, { elm_entry_entry_insert(edit_entry, p); elm_entry_entry_insert(edit_entry, t[i]); - edit_line_increase(ed, 1); } + //part name + line count + relatives + tail line + edit_line_increase(ed, (1 + line_cnt + 2 + TEMPLATE_PART_TALE_LINE_CNT)); + int cursor_pos2 = elm_entry_cursor_pos_get(edit_entry); edit_redoundo_region_push(ed, cursor_pos1, cursor_pos2); @@ -288,15 +277,12 @@ internal_template_part_insert(edit_data *ed, } void -template_live_edit_part_insert(edit_data *ed, Edje_Part_Type type, - float rel1_x, float rel1_y, - float rel2_x, float rel2_y, +template_live_edit_part_insert(edit_data *ed, Edje_Part_Type type, float rel1_x, + float rel1_y, float rel2_x, float rel2_y, const Eina_Stringshare *group_name) { - internal_template_part_insert(ed, type, - rel1_x, rel1_y, rel2_x, rel2_y, - TEMPLATE_PART_INSERT_LIVE_EDIT, - group_name); + internal_template_part_insert(ed, type, rel1_x, rel1_y, rel2_x, rel2_y, + TEMPLATE_PART_INSERT_LIVE_EDIT, group_name); } void --
