From f44b41ab29ffc6150ccf9be1103c0085771b098b Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Sun, 22 Feb 2015 23:35:11 +0900 Subject: [PATCH] bin/live_edit: show/hide control points show/hide control points case by case. --- data/themes/default/content.edc | 25 ++++++++++++++++++++++++- src/bin/live_edit.c | 28 +++++++++++++++++++++++++++- 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/data/themes/default/content.edc b/data/themes/default/content.edc index 71a4d6c..75c6341 100644 --- a/data/themes/default/content.edc +++ b/data/themes/default/content.edc @@ -108,9 +108,18 @@ group { name: "part_highlight"; group { name: "ctrl_pt"; parts { + part { name: "clipper"; + type: RECT; + description { state: "default" 0.0; + } + description { state: "hide" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + } + } part { name: "base"; type: RECT; - scale: 1; + clip_to: "clipper"; description { state: "default" 0.0; } description { state: "anim" 0.0; @@ -136,5 +145,19 @@ group { name: "ctrl_pt"; transition: LINEAR 0.5; after: "anim"; } + program { name: "show"; + signal: "elm,state,show"; + source: ""; + action: STATE_SET "default" 0.0; + target: "clipper"; + transition: LINEAR 0.125; + } + program { name: "hide"; + signal: "elm,state,hide"; + source: ""; + action: STATE_SET "hide" 0.0; + target: "clipper"; + transition: LINEAR 0.125; + } } } diff --git a/src/bin/live_edit.c b/src/bin/live_edit.c index 9e1383e..32ad849 100644 --- a/src/bin/live_edit.c +++ b/src/bin/live_edit.c @@ -444,6 +444,10 @@ cp_mouse_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) //Dispatch to actual mouse move call Ctrl_Pt cp = (Ctrl_Pt) evas_object_data_get(obj, "index"); + //Show Control Point + live_data *ld = data; + elm_object_signal_emit(ld->ctrl_pt[cp], "elm,state,show", ""); + switch (cp) { case Ctrl_Pt_Rel1: @@ -471,7 +475,6 @@ cp_mouse_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) cp_right_mouse_move_cb(data, e, obj, event_info); break; } - live_data *ld = data; live_edit_update(ld); } @@ -491,6 +494,11 @@ cp_mouse_up_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, cp_mouse_move_cb); live_data *ld = data; align_lines_hide(ld); + + //Show All Control Points + int i; + for (i = 0; i < Ctrl_Pt_Cnt; i++) + elm_object_signal_emit(ld->ctrl_pt[i], "elm,state,show", ""); } static void @@ -500,6 +508,12 @@ cp_mouse_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_MOVE, cp_mouse_move_cb, data); evas_object_layer_set(obj, EVAS_LAYER_MAX); + + //Hide All Control Points + live_data *ld = data; + int i; + for (i = 0; i < Ctrl_Pt_Cnt; i++) + elm_object_signal_emit(ld->ctrl_pt[i], "elm,state,hide", ""); } static void @@ -649,6 +663,12 @@ layout_mouse_up_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, layout_mouse_move_cb); live_data *ld = data; align_lines_hide(ld); + + //Show hidden control points + elm_object_signal_emit(ld->ctrl_pt[Ctrl_Pt_Top], "elm,state,show", ""); + elm_object_signal_emit(ld->ctrl_pt[Ctrl_Pt_Bottom], "elm,state,show", ""); + elm_object_signal_emit(ld->ctrl_pt[Ctrl_Pt_Left], "elm,state,show", ""); + elm_object_signal_emit(ld->ctrl_pt[Ctrl_Pt_Right], "elm,state,show", ""); } static void @@ -668,6 +688,12 @@ layout_mouse_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_MOVE, layout_mouse_move_cb, data); + + //Hide unnecessary control points + elm_object_signal_emit(ld->ctrl_pt[Ctrl_Pt_Top], "elm,state,hide", ""); + elm_object_signal_emit(ld->ctrl_pt[Ctrl_Pt_Bottom], "elm,state,hide", ""); + elm_object_signal_emit(ld->ctrl_pt[Ctrl_Pt_Left], "elm,state,hide", ""); + elm_object_signal_emit(ld->ctrl_pt[Ctrl_Pt_Right], "elm,state,hide", ""); } static void