forked from enlightenment/enventor
live_edit: revise code
This commit is contained in:
parent
bbfc446455
commit
de81c39a0d
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue