From: Rajeev Ranjan Date: Wed, 5 Jan 2011 15:12:39 +0000 (+0530) Subject: [button,panes] Merged and updated the Button and Panes. X-Git-Tag: REL_I9200_20110603-1~522 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=40d98ab6974634000a8cbfb6e799f9887d51e6d5;p=framework%2Fuifw%2Felementary.git [button,panes] Merged and updated the Button and Panes. --- diff --git a/data/themes/default.edc b/data/themes/default.edc index 617092a..caf9b51 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -707,6 +707,7 @@ collections { part { name: "button_image"; mouse_events: 1; description { state: "default" 0.0; + min: 15 15; image { normal: "bt_base2.png"; border: 7 7 7 7; @@ -741,7 +742,7 @@ collections { fixed: 1 0; visible: 1; aspect: 1.0 1.0; - aspect_preference: VERTICAL; +// aspect_preference: VERTICAL; rel2.offset: 4 -5; } description { state: "icononly" 0.0; @@ -749,10 +750,10 @@ collections { fixed: 0 0; visible: 1; align: 0.5 0.5; - aspect: 1.0 1.0; +// aspect: 1.0 1.0; rel2.offset: -5 -5; rel2.relative: 1.0 1.0; - aspect_preference: VERTICAL; +// aspect_preference: VERTICAL; } } part { @@ -774,6 +775,7 @@ collections { size: 10; min: 0 0; align: 0.5 0.5; + text_class: "button"; } } description { state: "visible" 0.0; @@ -839,7 +841,6 @@ collections { } description { state: "clicked" 0.0; inherit: "default" 0.0; - visible: 1; color: 255 255 255 255; } } @@ -871,11 +872,27 @@ collections { program { name: "button_unclick"; signal: "mouse,up,1"; - source: "over2"; + source: "over3"; action: SIGNAL_EMIT "elm,action,unpress" ""; after: "button_unclick_anim"; } program { + name: "button_pressed_anim"; + signal: "elm,anim,activate"; + source: "elm"; + action: STATE_SET "clicked" 0.0; + target: "button_image"; + target: "over3"; + after: "button_unpressed_anim"; + } + program { + name: "button_unpressed_anim"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.5; + target: "button_image"; + target: "over3"; + } + program { name: "button_unclick_anim"; action: STATE_SET "default" 0.0; target: "button_image"; @@ -897,7 +914,7 @@ collections { } program { name: "button_unclick3"; - signal: "mouse,up,1"; + signal: "mouse,clicked,1"; source: "over2"; action: SIGNAL_EMIT "elm,action,click" ""; } @@ -1096,6 +1113,7 @@ collections { size: 10; min: 0 0; align: 0.5 0.5; + text_class: "button"; } } description { state: "visible" 0.0; @@ -1377,6 +1395,7 @@ collections { size: 10; min: 0 0; align: 0.5 0.5; + text_class: "button"; } } description { state: "visible" 0.0; @@ -1483,6 +1502,7 @@ collections { part { name: "button_image"; mouse_events: 1; description { state: "default" 0.0; + min: 15 15; color: 255 255 255 0; image { normal: "bt_base2.png"; @@ -1557,6 +1577,7 @@ collections { size: 10; min: 0 0; align: 0.5 0.5; + text_class: "button"; } } description { state: "visible" 0.0; @@ -23798,13 +23819,16 @@ collections { image: "arrow_right.png" COMP; image: "arrow_left.png" COMP; } + script { + public state_pair = 0; //0:both content are not set, 1:both content are set + } parts { part { name: "whole"; type: RECT; - mouse_events: 0; + mouse_events: 1; description { state: "default" 0.0; @@ -23873,8 +23897,8 @@ collections { y: 0 0 0; } description { state: "default" 0.0; - max: 15 9999; - min: 15 100; + max: 0 999; + min: 0 100; rel1.relative: 0.0 0.5; rel2.relative: 1.0 0.5; image { @@ -23883,11 +23907,21 @@ collections { } image.middle: SOLID; } + description { state: "default" 0.1; + inherit: "default" 0.0; + max: 15 999; + min: 15 100; + } description { state: "clicked" 0.0; inherit: "default" 0.0; image.normal: "bt_base1.png"; image.middle: SOLID; } + description { state: "clicked" 0.1; + inherit: "default" 0.1; + image.normal: "bt_base1.png"; + image.middle: SOLID; + } description { state: "disabled" 0.0; inherit: "default" 0.0; image { @@ -23895,6 +23929,13 @@ collections { border: 4 4 4 4; } } + description { state: "disabled" 0.1; + inherit: "default" 0.1; + image { + normal: "bt_dis_base.png"; + border: 4 4 4 4; + } + } } part { name: "over1"; mouse_events: 0; @@ -23955,6 +23996,7 @@ collections { //Arrow part { name: "arrow_right"; + mouse_events: 0; description { state: "default" 0.0; min: 45 45; max: 45 45; @@ -23987,6 +24029,7 @@ collections { } part { name: "arrow_left"; + mouse_events: 0; description { state: "default" 0.0; min: 45 45; max: 45 45; @@ -24017,6 +24060,18 @@ collections { rel2.offset: (-45/2 - 20) 45/2; } } + part { name: "movement.decider"; + mouse_events: 1; + description { state: "default" 0.0; + rel1.to: "elm.bar"; + rel2.to: "elm.bar"; + visible: 0; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } } programs { @@ -24030,8 +24085,12 @@ collections { } program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "elm.bar"; + script { + if(get_int(state_pair) == 1) + set_state(PART:"elm.bar", "clicked", 0.1); + else + set_state(PART:"elm.bar", "clicked", 0.0); + } } program { name: "button_unclick"; @@ -24043,8 +24102,12 @@ collections { } program { name: "button_unclick_anim"; - action: STATE_SET "default" 0.0; - target: "elm.bar"; + script { + if(get_int(state_pair) == 1) + set_state(PART:"elm.bar", "default", 0.1); + else + set_state(PART:"elm.bar", "default", 0.0); + } } program { name: "button_click2"; @@ -24113,6 +24176,48 @@ collections { target: "arrow_left"; transition: DECELERATE 0.4; } + //fix the pane + program { + name: "panes_fixed"; + signal: "elm.panes.fixed"; + source: "elm"; + action: STATE_SET "disabled" 0.0; + target: "movement.decider"; + target: "elm.bar"; + } + //allow the movement by interaction + program { + name: "panes_unfixed"; + signal: "elm.panes.unfixed"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "movement.decider"; + target: "elm.bar"; + } + program { + name: "panes_pair"; + signal: "elm.panes.pair"; + source: "elm"; + script { + new st[31]; + new Float:vl; + set_int(state_pair, 1); + get_state(PART:"elm.bar", st, 30, vl); + set_state(PART:"elm.bar", st, 0.1); + } + } + program { + name: "panes_unpair"; + signal: "elm.panes.unpair"; + source: "elm"; + script { + new st[31]; + new Float:vl; + set_int(state_pair, 0); + get_state(PART:"elm.bar", st, 30, vl); + set_state(PART:"elm.bar", st, 0.0); + } + } } } @@ -24129,13 +24234,16 @@ collections { image: "arrow_up.png" COMP; image: "arrow_down.png" COMP; } + script { + public state_pair = 0; //0:both content are not set, 1:both content are set + } parts { part { name: "whole"; type: RECT; - mouse_events: 0; + mouse_events: 1; description { state: "default" 0.0; @@ -24204,8 +24312,8 @@ collections { y: 1 1 1; } description { state: "default" 0.0; - max: 999 15; - min: 100 15; + max: 999 0; + min: 100 0; rel1.relative: 0.5 0.0; rel2.relative: 0.5 1.0; image { @@ -24214,11 +24322,21 @@ collections { } image.middle: SOLID; } + description { state: "default" 0.1; + inherit: "default" 0.0; + max: 999 15; + min: 100 15; + } description { state: "clicked" 0.0; inherit: "default" 0.0; image.normal: "bt_base1.png"; image.middle: SOLID; } + description { state: "clicked" 0.1; + inherit: "default" 0.1; + image.normal: "bt_base1.png"; + image.middle: SOLID; + } description { state: "disabled" 0.0; inherit: "default" 0.0; image { @@ -24226,6 +24344,13 @@ collections { border: 4 4 4 4; } } + description { state: "disabled" 0.1; + inherit: "default" 0.1; + image { + normal: "bt_dis_base.png"; + border: 4 4 4 4; + } + } } part { name: "over1"; mouse_events: 0; @@ -24348,6 +24473,19 @@ collections { rel2.offset: 45/2 (-45/2 - 20); } } + part { + name: "movement.decider"; + mouse_events: 1; + description { state: "default" 0.0; + rel1.to: "elm.bar"; + rel2.to: "elm.bar"; + visible: 0; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } } programs { @@ -24359,11 +24497,15 @@ collections { after: "button_click_anim"; after: "arrow_anim_start"; } - program { - name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "elm.bar"; - } + program { + name: "button_click_anim"; + script { + if(get_int(state_pair) == 1) + set_state(PART:"elm.bar", "clicked", 0.1); + else + set_state(PART:"elm.bar", "clicked", 0.0); + } + } program { name: "button_unclick"; signal: "mouse,up,1"; @@ -24372,11 +24514,15 @@ collections { after: "button_unclick_anim"; after: "arrow_anim_stop"; } - program { - name: "button_unclick_anim"; - action: STATE_SET "default" 0.0; - target: "elm.bar"; - } + program { + name: "button_unclick_anim"; + script { + if(get_int(state_pair) == 1) + set_state(PART:"elm.bar", "default", 0.1); + else + set_state(PART:"elm.bar", "default", 0.0); + } + } program { name: "button_click2"; signal: "mouse,down,1"; @@ -24444,6 +24590,48 @@ collections { target: "arrow_left"; transition: DECELERATE 0.4; } + //fix the pane + program { + name: "panes_fixed"; + signal: "elm.panes.fixed"; + source: "elm"; + action: STATE_SET "disabled" 0.0; + target: "movement.decider"; + target: "elm.bar"; + } + //allow the movement by interaction + program { + name: "panes_unfixed"; + signal: "elm.panes.unfixed"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "movement.decider"; + target: "elm.bar"; + } + program { + name: "panes_pair"; + signal: "elm.panes.pair"; + source: "elm"; + script { + new st[31]; + new Float:vl; + set_int(state_pair, 1); + get_state(PART:"elm.bar", st, 30, vl); + set_state(PART:"elm.bar", st, 0.1); + } + } + program { + name: "panes_unpair"; + signal: "elm.panes.unpair"; + source: "elm"; + script { + new st[31]; + new Float:vl; + set_int(state_pair, 0); + get_state(PART:"elm.bar", st, 30, vl); + set_state(PART:"elm.bar", st, 0.0); + } + } } } diff --git a/src/bin/test_button.c b/src/bin/test_button.c index ea07666..caf9a05 100644 --- a/src/bin/test_button.c +++ b/src/bin/test_button.c @@ -1,21 +1,40 @@ #include +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif #ifndef ELM_LIB_QUICKLAUNCH static void -_bt_repeated(void *data, Evas_Object *obj, void *event_info) +_bt_repeated(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__) +{ + static int count; + char buf[16]; + + snprintf(buf, sizeof(buf), "count=%d", count++); + if (count >= 10000) + count = 0; + elm_button_label_set(obj, buf); +} + +static void +_bt_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) +{ + int param = (int)(data); + + printf("clicked event on Button:%d\n", param); +} + +static void +_bt_unpressed(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - static int count; - char buf[16]; + int param = (int)(data); - snprintf(buf, sizeof(buf), "count=%d", count++); - if (count >= 10000) - count = 0; - elm_button_label_set(obj, buf); + printf("unpressed event on Button:%d\n", param); } void -test_button(void *data, Evas_Object *obj, void *event_info) +test_button(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - Evas_Object *win, *bg, *bx, *ic, *bt; + Evas_Object *win, *bg, *scr, *bx, *ic, *bt; char buf[PATH_MAX]; win = elm_win_add(NULL, "buttons", ELM_WIN_BASIC); @@ -27,9 +46,16 @@ test_button(void *data, Evas_Object *obj, void *event_info) evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(bg); + scr = elm_scroller_add(win); + elm_scroller_bounce_set(scr, EINA_FALSE, EINA_TRUE); + elm_scroller_policy_set(scr, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO); + elm_win_resize_object_add(win, scr); + evas_object_show(scr); + evas_object_size_hint_weight_set(scr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + bx = elm_box_add(win); evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_win_resize_object_add(win, bx); + elm_scroller_content_set(scr, bx); evas_object_show(bx); ic = elm_icon_add(win); @@ -39,17 +65,21 @@ test_button(void *data, Evas_Object *obj, void *event_info) bt = elm_button_add(win); elm_button_label_set(bt, "Icon sized to button"); elm_button_icon_set(bt, ic); + evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)1); + evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)1); elm_box_pack_end(bx, bt); evas_object_show(bt); evas_object_show(ic); - ic = elm_icon_add(win); + ic = elm_icon_add(bx); snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR); elm_icon_file_set(ic, buf, NULL); elm_icon_scale_set(ic, 0, 0); bt = elm_button_add(win); elm_button_label_set(bt, "Icon no scale"); elm_button_icon_set(bt, ic); + evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)2); + evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)2); elm_box_pack_end(bx, bt); evas_object_show(bt); evas_object_show(ic); @@ -62,6 +92,8 @@ test_button(void *data, Evas_Object *obj, void *event_info) elm_button_label_set(bt, "Disabled Button"); elm_button_icon_set(bt, ic); elm_object_disabled_set(bt, 1); + evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)3); + evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)3); elm_box_pack_end(bx, bt); evas_object_show(bt); evas_object_show(ic); @@ -73,12 +105,16 @@ test_button(void *data, Evas_Object *obj, void *event_info) bt = elm_button_add(win); elm_button_icon_set(bt, ic); elm_object_disabled_set(bt, 1); + evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)4); + evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)4); elm_box_pack_end(bx, bt); evas_object_show(bt); evas_object_show(ic); bt = elm_button_add(win); elm_button_label_set(bt, "Label Only"); + evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)5); + evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)5); elm_box_pack_end(bx, bt); evas_object_smart_callback_add(bt, "repeated", _bt_repeated, NULL); elm_button_autorepeat_set(bt, 1); @@ -92,14 +128,17 @@ test_button(void *data, Evas_Object *obj, void *event_info) elm_icon_scale_set(ic, 0, 0); bt = elm_button_add(win); elm_button_icon_set(bt, ic); + evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)6); + evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)6); elm_box_pack_end(bx, bt); evas_object_show(bt); evas_object_show(ic); - bt = elm_button_add(win); elm_object_style_set(bt, "anchor"); elm_button_label_set(bt, "Anchor style"); + evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)7); + evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)7); elm_box_pack_end(bx, bt); evas_object_show(bt); @@ -110,11 +149,12 @@ test_button(void *data, Evas_Object *obj, void *event_info) bt = elm_button_add(win); elm_object_style_set(bt, "anchor"); elm_button_icon_set(bt, ic); + evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)8); + evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)8); elm_box_pack_end(bx, bt); evas_object_show(bt); evas_object_show(ic); - ic = elm_icon_add(win); snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR); elm_icon_file_set(ic, buf, NULL); @@ -123,10 +163,12 @@ test_button(void *data, Evas_Object *obj, void *event_info) elm_object_style_set(bt, "anchor"); elm_button_icon_set(bt, ic); elm_object_disabled_set(bt, 1); + evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)9); + evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)9); elm_box_pack_end(bx, bt); evas_object_show(bt); evas_object_show(ic); - + evas_object_resize(win, 320, 480); evas_object_show(win); } #endif diff --git a/src/bin/test_panes.c b/src/bin/test_panes.c index 44db9a7..b0800d6 100644 --- a/src/bin/test_panes.c +++ b/src/bin/test_panes.c @@ -1,29 +1,32 @@ #include +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif #ifndef ELM_LIB_QUICKLAUNCH static double size = 0.0; static void -_press(void *data, Evas_Object *obj, void *event_info) +_press(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { printf("press\n"); } static void -_unpress(void *data, Evas_Object *obj, void *event_info) +_unpress(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__) { printf("unpress, size : %f\n", elm_panes_content_left_size_get(obj)); } static void -_clicked(void *data, Evas_Object *obj, void *event_info) +_clicked(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { printf("clicked\n"); } static void -_clicked_double(void *data, Evas_Object *obj, void *event_info) +_clicked_double(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__) { printf("clicked double\n"); if(elm_panes_content_left_size_get(obj) > 0) @@ -37,7 +40,7 @@ _clicked_double(void *data, Evas_Object *obj, void *event_info) void -test_panes(void *data, Evas_Object *obj, void *event_info) +test_panes(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { Evas_Object *win, *bg, *panes, *panes_h, *bt; @@ -48,6 +51,7 @@ test_panes(void *data, Evas_Object *obj, void *event_info) bg = elm_bg_add(win); elm_win_resize_object_add(win, bg); evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_focus_highlight_enabled_set(win, EINA_TRUE); evas_object_show(bg); panes = elm_panes_add(win); diff --git a/src/lib/Elementary.h.in b/src/lib/Elementary.h.in index 2258feb..b78ee48 100644 --- a/src/lib/Elementary.h.in +++ b/src/lib/Elementary.h.in @@ -621,6 +621,7 @@ extern "C" { EAPI void elm_box_unpack_all(Evas_Object *obj); /* smart callbacks called: */ + typedef enum { UIControlStateDefault, @@ -630,17 +631,34 @@ extern "C" { UIControlStateReserved } UIControlState; - EAPI Evas_Object *elm_button_add(Evas_Object *parent); - EAPI void elm_button_label_set(Evas_Object *obj, const char *label); + /* button */ + EAPI Evas_Object *elm_button_add(Evas_Object *parent) EINA_ARG_NONNULL(1); + EAPI void elm_button_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1); EAPI void elm_button_label_set_for_state(Evas_Object *obj, const char *label, UIControlState state); - EAPI const char *elm_button_label_get(const Evas_Object *obj); + EAPI const char *elm_button_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); EAPI const char *elm_button_label_get_for_state(const Evas_Object *obj, UIControlState state); - EAPI void elm_button_icon_set(Evas_Object *obj, Evas_Object *icon); - EAPI Evas_Object *elm_button_icon_get(const Evas_Object *obj); - EAPI void elm_button_autorepeat_set(Evas_Object *obj, Eina_Bool on); - EAPI void elm_button_autorepeat_initial_timeout_set(Evas_Object *obj, double t); - EAPI void elm_button_autorepeat_gap_timeout_set(Evas_Object *obj, double t); + EAPI void elm_button_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1); + EAPI Evas_Object *elm_button_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); + EAPI Evas_Object *elm_button_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1); + EAPI void elm_button_autorepeat_set(Evas_Object *obj, Eina_Bool on) EINA_ARG_NONNULL(1); + EAPI Eina_Bool elm_button_autorepeat_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); + EAPI void elm_button_autorepeat_initial_timeout_set(Evas_Object *obj, double t) EINA_ARG_NONNULL(1); + EAPI double elm_button_autorepeat_initial_timeout_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); + EAPI void elm_button_autorepeat_gap_timeout_set(Evas_Object *obj, double t) EINA_ARG_NONNULL(1); + EAPI double elm_button_autorepeat_gap_timeout_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); + /* available styles: + * default + * anchor + * hoversel_vertical + * hoversel_vertical_entry + */ + /* smart callbacks called: + * "clicked" - the user clicked the button + * "repeated" - the user pressed the button without releasing it + * "unpressed" - when the button is unpressed (released) + */ + /* fileselector */ EAPI Evas_Object *elm_fileselector_button_add(Evas_Object *parent); EAPI void elm_fileselector_button_label_set(Evas_Object *obj, const char *label); EAPI const char *elm_fileselector_button_label_get(const Evas_Object *obj); @@ -663,17 +681,6 @@ extern "C" { EAPI void elm_fileselector_button_selected_set(Evas_Object *obj, const char *path); EAPI const char *elm_fileselector_button_selected_get(const Evas_Object *obj); - /* available styles: - * default - * anchor - * hoversel_vertical - * hoversel_vertical_entry - */ - /* smart callbacks called: - * "clicked" - the user clicked the button - * "repeated" - the user pressed the button without releasing it - * "unpressed" - when the button is unpressed (released) - */ typedef enum _Elm_Scroller_Policy { @@ -1898,20 +1905,19 @@ extern "C" { * Update the minimun height of the bar in the theme. No minimun should be set in the vertical theme * Add events (move, start ...) */ - EAPI Evas_Object *elm_panes_add(Evas_Object *parent); - EAPI void elm_panes_content_left_set(Evas_Object *obj, Evas_Object *content); - EAPI void elm_panes_content_right_set(Evas_Object *obj, Evas_Object *content); - EAPI Evas_Object *elm_panes_content_left_get(const Evas_Object *obj); - EAPI Evas_Object *elm_panes_content_right_get(const Evas_Object *obj); - EAPI Evas_Object *elm_panes_content_left_unset(Evas_Object *obj); - EAPI Evas_Object *elm_panes_content_right_unset(Evas_Object *obj); - EAPI double elm_panes_content_left_size_get(const Evas_Object *obj); - EAPI void elm_panes_content_left_size_set(Evas_Object *obj, double size); - EAPI void elm_panes_horizontal_set(Evas_Object *obj, Eina_Bool horizontal); - EAPI Eina_Bool elm_panes_horizontal_get(const Evas_Object *obj); - EAPI void elm_panes_fixed_set(Evas_Object *obj, Eina_Bool fixed); - EAPI Eina_Bool elm_panes_fixed_get(const Evas_Object *obj); - + EAPI Evas_Object *elm_panes_add(Evas_Object *parent) EINA_ARG_NONNULL(1); + EAPI void elm_panes_content_left_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1); + EAPI void elm_panes_content_right_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1); + EAPI Evas_Object *elm_panes_content_left_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); + EAPI Evas_Object *elm_panes_content_right_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); + EAPI Evas_Object *elm_panes_content_left_unset(Evas_Object *obj) EINA_ARG_NONNULL(1); + EAPI Evas_Object *elm_panes_content_right_unset(Evas_Object *obj) EINA_ARG_NONNULL(1); + EAPI double elm_panes_content_left_size_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); + EAPI void elm_panes_content_left_size_set(Evas_Object *obj, double size) EINA_ARG_NONNULL(1); + EAPI void elm_panes_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) EINA_ARG_NONNULL(1); + EAPI Eina_Bool elm_panes_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); + EAPI void elm_panes_fixed_set(Evas_Object *obj, Eina_Bool fixed) EINA_ARG_NONNULL(1); + EAPI Eina_Bool elm_panes_fixed_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); /* flip */ typedef enum _Elm_Flip_Mode { diff --git a/src/lib/elm_button.c b/src/lib/elm_button.c index 514570b..160035e 100644 --- a/src/lib/elm_button.c +++ b/src/lib/elm_button.c @@ -43,6 +43,11 @@ static void _signal_clicked(void *data, Evas_Object *obj, const char *emission, static void _signal_pressed(void *data, Evas_Object *obj, const char *emission, const char *source); static void _signal_unpressed(void *data, Evas_Object *obj, const char *emission, const char *source); static void _on_focus_hook(void *data, Evas_Object *obj); +static void _activate(Evas_Object *obj); +static void _activate_hook(Evas_Object *obj); +static Eina_Bool _event_hook(Evas_Object *obj, Evas_Object *src, + Evas_Callback_Type type, void *event_info); + static void _set_label(Evas_Object *obj, const char *label); static void _signal_default_text_set(void *data, Evas_Object *obj, const char *emission, const char *source); @@ -56,6 +61,25 @@ static const Evas_Smart_Cb_Description _signals[] = { {NULL, NULL} }; +static Eina_Bool +_event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type type, void *event_info) +{ + if (type != EVAS_CALLBACK_KEY_DOWN) return EINA_FALSE; + Evas_Event_Key_Down *ev = event_info; + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd) return EINA_FALSE; + if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE; + if (elm_widget_disabled_get(obj)) return EINA_FALSE; + if ((strcmp(ev->keyname, "Return")) && + (strcmp(ev->keyname, "KP_Enter")) && + (strcmp(ev->keyname, "space"))) + return EINA_FALSE; + _activate(obj); + ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; + edje_object_signal_emit(wd->btn, "elm,anim,activate", "elm"); + return EINA_TRUE; +} + static void _del_hook(Evas_Object *obj) { @@ -80,8 +104,8 @@ _on_focus_hook(void *data __UNUSED__, Evas_Object *obj) { _set_label(obj, wd->statelabel[FOCUSED]); } - edje_object_signal_emit(wd->btn, "elm,action,focus", "elm"); - evas_object_focus_set(wd->btn, EINA_TRUE); + edje_object_signal_emit(wd->btn, "elm,action,focus", "elm"); + evas_object_focus_set(wd->btn, EINA_TRUE); } else { @@ -91,8 +115,8 @@ _on_focus_hook(void *data __UNUSED__, Evas_Object *obj) else _set_label(obj, wd->label); #endif - edje_object_signal_emit(wd->btn, "elm,action,unfocus", "elm"); - evas_object_focus_set(wd->btn, EINA_FALSE); + edje_object_signal_emit(wd->btn, "elm,action,unfocus", "elm"); + evas_object_focus_set(wd->btn, EINA_FALSE); } } @@ -100,27 +124,29 @@ static void _theme_hook(Evas_Object *obj) { Widget_Data *wd = elm_widget_data_get(obj); + const char *str; if (!wd) return; _elm_theme_object_set(obj, wd->btn, "button", "base", elm_widget_style_get(obj)); - if (wd->icon) edje_object_part_swallow(wd->btn, "elm.swallow.content", wd->icon); - if (wd->label) edje_object_signal_emit(wd->btn, "elm,state,text,visible", "elm"); else - edje_object_signal_emit(wd->btn, "elm,state,text,hidden", "elm"); - + edje_object_signal_emit(wd->btn, "elm,state,text,hidden", "elm"); if (wd->icon) edje_object_signal_emit(wd->btn, "elm,state,icon,visible", "elm"); else edje_object_signal_emit(wd->btn, "elm,state,icon,hidden", "elm"); - edje_object_part_text_set(wd->btn, "elm.text", wd->label); if (elm_object_disabled_get(obj)) edje_object_signal_emit(wd->btn, "elm,state,disabled", "elm"); edje_object_message_signal_process(wd->btn); edje_object_scale_set(wd->btn, elm_widget_scale_get(obj) * _elm_config->scale); + str = edje_object_data_get(wd->btn, "focus_highlight"); + if ((str) && (!strcmp(str, "on"))) + elm_widget_highlight_in_theme_set(obj, EINA_TRUE); + else + elm_widget_highlight_in_theme_set(obj, EINA_FALSE); _sizing_eval(obj); } @@ -150,6 +176,30 @@ _disable_hook(Evas_Object *obj) } static void +_signal_emit_hook(Evas_Object *obj, const char *emission, const char *source) +{ + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd) return; + edje_object_signal_emit(wd->btn, emission, source); +} + +static void +_signal_callback_add_hook(Evas_Object *obj, const char *emission, const char *source, void (*func_cb) (void *data, Evas_Object *o, const char *emission, const char *source), void *data) +{ + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd) return; + edje_object_signal_callback_add(wd->btn, emission, source, func_cb, data); +} + +static void +_signal_callback_del_hook(Evas_Object *obj, const char *emission, const char *source, void (*func_cb) (void *data, Evas_Object *o, const char *emission, const char *source), void *data) +{ + Widget_Data *wd = elm_widget_data_get(obj); + edje_object_signal_callback_del_full(wd->btn, emission, source, func_cb, + data); +} + +static void _sizing_eval(Evas_Object *obj) { Widget_Data *wd = elm_widget_data_get(obj); @@ -185,27 +235,39 @@ _sub_del(void *data __UNUSED__, Evas_Object *obj, void *event_info) if (!wd) return; if (sub == wd->icon) { - edje_object_signal_emit(wd->btn, "elm,state,icon,hidden", "elm"); - evas_object_event_callback_del_full(sub, EVAS_CALLBACK_CHANGED_SIZE_HINTS, + edje_object_signal_emit(wd->btn, "elm,state,icon,hidden", "elm"); + evas_object_event_callback_del_full(sub, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, obj); - wd->icon = NULL; - edje_object_message_signal_process(wd->btn); - _sizing_eval(obj); + wd->icon = NULL; + edje_object_message_signal_process(wd->btn); + _sizing_eval(obj); } } static void -_signal_clicked(void *data, Evas_Object *obj, const char *emission, const char *source) +_activate(Evas_Object *obj) { - Widget_Data *wd = elm_widget_data_get(data); + Widget_Data *wd = elm_widget_data_get(obj); if (!wd) return; if (wd->timer) { - ecore_timer_del(wd->timer); - wd->timer = NULL; + ecore_timer_del(wd->timer); + wd->timer = NULL; } wd->repeating = EINA_FALSE; - evas_object_smart_callback_call(data, SIG_CLICKED, NULL); + evas_object_smart_callback_call(obj, SIG_CLICKED, NULL); +} + +static void +_activate_hook(Evas_Object *obj) +{ + _activate(obj); +} + +static void +_signal_clicked(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__) +{ + _activate(data); } static Eina_Bool @@ -217,9 +279,10 @@ _autorepeat_send(void *data) evas_object_smart_callback_call(data, SIG_REPEATED, NULL); if (!wd->repeating) { - wd->timer = NULL; - return ECORE_CALLBACK_CANCEL; + wd->timer = NULL; + return ECORE_CALLBACK_CANCEL; } + return ECORE_CALLBACK_RENEW; } @@ -247,12 +310,12 @@ _signal_pressed(void *data, Evas_Object *obj __UNUSED__, const char *emission __ { _set_label(data, wd->statelabel[HIGHLIGHTED]); } - if (wd->autorepeat && !wd->repeating) + if ((wd->autorepeat) && (!wd->repeating)) { - if (wd->ar_threshold <= 0.0) - _autorepeat_initial_send(data); /* call immediately */ - else - wd->timer = ecore_timer_add(wd->ar_threshold, _autorepeat_initial_send, data); + if (wd->ar_threshold <= 0.0) + _autorepeat_initial_send(data); /* call immediately */ + else + wd->timer = ecore_timer_add(wd->ar_threshold, _autorepeat_initial_send, data); } } @@ -284,8 +347,8 @@ _signal_unpressed(void *data, Evas_Object *obj __UNUSED__, const char *emission if (wd->timer) { - ecore_timer_del(wd->timer); - wd->timer = NULL; + ecore_timer_del(wd->timer); + wd->timer = NULL; } wd->repeating = EINA_FALSE; evas_object_smart_callback_call(data, SIG_UNPRESSED, NULL); @@ -305,18 +368,26 @@ elm_button_add(Evas_Object *parent) Evas *e; Widget_Data *wd; + EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); + wd = ELM_NEW(Widget_Data); e = evas_object_evas_get(parent); + if (!e) return NULL; obj = elm_widget_add(e); ELM_SET_WIDTYPE(widtype, "button"); elm_widget_type_set(obj, "button"); - elm_widget_can_focus_set(obj, EINA_TRUE); elm_widget_sub_object_add(parent, obj); elm_widget_on_focus_hook_set( obj, _on_focus_hook, NULL ); elm_widget_data_set(obj, wd); elm_widget_del_hook_set(obj, _del_hook); elm_widget_theme_hook_set(obj, _theme_hook); elm_widget_disable_hook_set(obj, _disable_hook); + elm_widget_can_focus_set(obj, EINA_TRUE); + elm_widget_activate_hook_set(obj, _activate_hook); + elm_widget_event_hook_set(obj, _event_hook); + elm_widget_signal_emit_hook_set(obj, _signal_emit_hook); + elm_widget_signal_callback_add_hook_set(obj, _signal_callback_add_hook); + elm_widget_signal_callback_del_hook_set(obj, _signal_callback_del_hook); wd->btn = edje_object_add(e); _elm_theme_object_set(obj, wd->btn, "button", "base", "default"); @@ -340,7 +411,7 @@ elm_button_add(Evas_Object *parent) evas_object_smart_callback_add(obj, "sub-object-del", _sub_del, obj); - _sizing_eval(obj); + _theme_hook(obj); // TODO: convert Elementary to subclassing of Evas_Smart_Class // TODO: and save some bytes, making descriptions per-class and not instance! @@ -470,6 +541,8 @@ elm_button_label_get_for_state(const Evas_Object *obj, UIControlState state) * Set the icon used for the button * * Once the icon object is set, a previously set one will be deleted + * If you want to keep that old content object, use the + * elm_button_icon_unset() function. * * @param[in] obj The button object * @param[in] icon The image for the button @@ -487,12 +560,12 @@ elm_button_icon_set(Evas_Object *obj, Evas_Object *icon) wd->icon = icon; if (icon) { - elm_widget_sub_object_add(obj, icon); - evas_object_event_callback_add(icon, EVAS_CALLBACK_CHANGED_SIZE_HINTS, - _changed_size_hints, obj); - edje_object_part_swallow(wd->btn, "elm.swallow.content", icon); - edje_object_signal_emit(wd->btn, "elm,state,icon,visible", "elm"); - edje_object_message_signal_process(wd->btn); + elm_widget_sub_object_add(obj, icon); + evas_object_event_callback_add(icon, EVAS_CALLBACK_CHANGED_SIZE_HINTS, + _changed_size_hints, obj); + edje_object_part_swallow(wd->btn, "elm.swallow.content", icon); + edje_object_signal_emit(wd->btn, "elm,state,icon,visible", "elm"); + edje_object_message_signal_process(wd->btn); } _sizing_eval(obj); } @@ -500,8 +573,9 @@ elm_button_icon_set(Evas_Object *obj, Evas_Object *icon) /** * Get the icon used for the button * + * Return the icon object which is set for this widget. * @param[in] obj The button object - * @return The image for the button + * @return The icon object that is being used * * @ingroup Button */ @@ -515,6 +589,30 @@ elm_button_icon_get(const Evas_Object *obj) } /** + * Unset the icon used for the button + * + * Unparent and return the icon object which was set for this widget. + * + * @param[in] obj The button object + * @return The icon object that was being used + * + * @ingroup Button + */ +EAPI Evas_Object * +elm_button_icon_unset(Evas_Object *obj) +{ + ELM_CHECK_WIDTYPE(obj, widtype) NULL; + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd) return NULL; + if (!wd->icon) return NULL; + Evas_Object *icon = wd->icon; + elm_widget_sub_object_del(obj, wd->icon); + edje_object_part_unswallow(wd->btn, wd->icon); + wd->icon = NULL; + return icon; +} + +/** * Turn on/off the autorepeat event generated when the user keeps pressing on the button * * @param[in] obj The button object @@ -538,6 +636,23 @@ elm_button_autorepeat_set(Evas_Object *obj, Eina_Bool on) } /** + * Get if autorepeat event is on + * + * @param obj The button object + * @return If autorepeat is on + * + * @ingroup Button + */ +EAPI Eina_Bool +elm_button_autorepeat_get(const Evas_Object *obj) +{ + ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE; + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd) return EINA_FALSE; + return wd->autorepeat; +} + +/** * Set the initial timeout before the autorepeat event is generated * * @param[in] obj The button object @@ -554,13 +669,30 @@ elm_button_autorepeat_initial_timeout_set(Evas_Object *obj, double t) if (wd->ar_threshold == t) return; if (wd->timer) { - ecore_timer_del(wd->timer); - wd->timer = NULL; + ecore_timer_del(wd->timer); + wd->timer = NULL; } wd->ar_threshold = t; } /** + * Get the initial timeout before the autorepeat event is generated + * + * @param[in] obj The button object + * @return Timeout + * + * @ingroup Button + */ +EAPI double +elm_button_autorepeat_initial_timeout_get(const Evas_Object *obj) +{ + ELM_CHECK_WIDTYPE(obj, widtype) 0.0; + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd) return 0.0; + return wd->ar_threshold; +} + +/** * Set the interval between each generated autorepeat event * * @param[in] obj The button object @@ -577,5 +709,22 @@ elm_button_autorepeat_gap_timeout_set(Evas_Object *obj, double t) if (wd->ar_interval == t) return; wd->ar_interval = t; - if (wd->repeating && wd->timer) ecore_timer_interval_set(wd->timer, t); + if ((wd->repeating) && (wd->timer)) ecore_timer_interval_set(wd->timer, t); +} + +/** + * Get the interval between each generated autorepeat event + * + * @param[in] obj The button object + * @return Interval + * + * @ingroup Button + */ +EAPI double +elm_button_autorepeat_gap_timeout_get(const Evas_Object *obj) +{ + ELM_CHECK_WIDTYPE(obj, widtype) 0.0; + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd) return 0.0; + return wd->ar_interval; } diff --git a/src/lib/elm_panes.c b/src/lib/elm_panes.c index 5c770a2..1347d8a 100644 --- a/src/lib/elm_panes.c +++ b/src/lib/elm_panes.c @@ -15,15 +15,15 @@ struct _Widget_Data struct { - Evas_Object *left; - Evas_Object *right; + Evas_Object *left; + Evas_Object *right; } contents; struct { - int x_diff; - int y_diff; - Eina_Bool move; + int x_diff; + int y_diff; + Eina_Bool move; } move; Eina_Bool clicked_double; @@ -42,6 +42,7 @@ _del_hook(Evas_Object *obj) { Widget_Data *wd = elm_widget_data_get(obj); if (!wd) return; + if (wd->panes) evas_object_del(wd->panes); free(wd); } @@ -71,6 +72,52 @@ _theme_hook(Evas_Object *obj) elm_panes_content_left_size_set(obj, size); } +static Eina_Bool +_elm_panes_focus_next_hook(const Evas_Object *obj, Elm_Focus_Direction dir, Evas_Object **next) +{ + Widget_Data *wd = elm_widget_data_get(obj); + + if (!wd) + return EINA_FALSE; + + double w, h; + edje_object_part_drag_value_get(wd->panes, "elm.bar", &w, &h); + if (((wd->horizontal) && ( h == 0.0 )) || ((!wd->horizontal) && ( w == 0.0 ))) + return elm_widget_focus_next_get(wd->contents.right, dir, next); + + Evas_Object *chain[2]; + + /* Direction */ + if (dir == ELM_FOCUS_PREVIOUS) + { + chain[0] = wd->contents.right; + chain[1] = wd->contents.left; + } + else if (dir == ELM_FOCUS_NEXT) + { + chain[0] = wd->contents.left; + chain[1] = wd->contents.right; + } + else + return EINA_FALSE; + + unsigned char i = elm_widget_focus_get(chain[1]); + + if (elm_widget_focus_next_get(chain[i], dir, next)) + return EINA_TRUE; + + i = !i; + + Evas_Object *to_focus; + if (elm_widget_focus_next_get(chain[i], dir, &to_focus)) + { + *next = to_focus; + return !!i; + } + + return EINA_FALSE; +} + static void _sizing_eval(Evas_Object *obj) { @@ -93,16 +140,17 @@ _sub_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __ if (!wd) return; if (sub == wd->contents.left) { - evas_object_event_callback_del_full(sub, EVAS_CALLBACK_CHANGED_SIZE_HINTS, + evas_object_event_callback_del_full(sub, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, obj); - wd->contents.left = NULL; - _sizing_eval(obj); + wd->contents.left = NULL; + _sizing_eval(obj); } else if (sub == wd->contents.right) { - evas_object_event_callback_del_full(sub, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, obj); - wd->contents.right= NULL; - _sizing_eval(obj); + evas_object_event_callback_del_full(sub, EVAS_CALLBACK_CHANGED_SIZE_HINTS, + _changed_size_hints, obj); + wd->contents.right= NULL; + _sizing_eval(obj); } } @@ -134,8 +182,8 @@ _unpress(void *data, Evas_Object *obj __UNUSED__ , const char *emission __UNUSED if (wd->clicked_double) { - evas_object_smart_callback_call(data, "clicked,double", NULL); - wd->clicked_double = EINA_FALSE; + evas_object_smart_callback_call(data, "clicked,double", NULL); + wd->clicked_double = EINA_FALSE; } } @@ -158,14 +206,16 @@ elm_panes_add(Evas_Object *parent) wd = ELM_NEW(Widget_Data); e = evas_object_evas_get(parent); + if (!e) return NULL; obj = elm_widget_add(e); ELM_SET_WIDTYPE(widtype, "panes"); - elm_widget_type_set(obj, widtype); + elm_widget_type_set(obj, "panes"); elm_widget_can_focus_set(obj, EINA_FALSE); elm_widget_sub_object_add(parent, obj); elm_widget_data_set(obj, wd); elm_widget_del_hook_set(obj, _del_hook); elm_widget_theme_hook_set(obj, _theme_hook); + elm_widget_focus_next_hook_set(obj, _elm_panes_focus_next_hook); wd->contents.left = NULL; wd->contents.right = NULL; @@ -212,19 +262,19 @@ elm_panes_content_left_set(Evas_Object *obj, Evas_Object *content) Widget_Data *wd = elm_widget_data_get(obj); if (wd->contents.left) { - evas_object_del(wd->contents.left); - wd->contents.left = NULL; + evas_object_del(wd->contents.left); + wd->contents.left = NULL; } if (content) { - elm_widget_sub_object_add(obj, content); - wd->contents.left = content; - edje_object_part_swallow(wd->panes, "elm.swallow.left", content); + wd->contents.left = content; + elm_widget_sub_object_add(obj, content); + edje_object_part_swallow(wd->panes, "elm.swallow.left", content); if (wd->contents.right) - edje_object_signal_emit(wd->panes, "panes_pair", "elm"); + edje_object_signal_emit(wd->panes, "elm.panes.pair", "elm"); } else - edje_object_signal_emit(wd->panes, "panes_unpair", "elm"); + edje_object_signal_emit(wd->panes, "elm.panes.unpair", "elm"); } /** @@ -246,19 +296,19 @@ elm_panes_content_right_set(Evas_Object *obj, Evas_Object *content) Widget_Data *wd = elm_widget_data_get(obj); if (wd->contents.right) { - evas_object_del(wd->contents.right); - wd->contents.right = NULL; + evas_object_del(wd->contents.right); + wd->contents.right = NULL; } if (content) { - elm_widget_sub_object_add(obj, content); - wd->contents.right = content; - edje_object_part_swallow(wd->panes, "elm.swallow.right", content); + wd->contents.right = content; + elm_widget_sub_object_add(obj, content); + edje_object_part_swallow(wd->panes, "elm.swallow.right", content); if (wd->contents.left) - edje_object_signal_emit(wd->panes, "panes_pair", "elm"); + edje_object_signal_emit(wd->panes, "elm.panes.pair", "elm"); } else - edje_object_signal_emit(wd->panes, "panes_unpair", "elm"); + edje_object_signal_emit(wd->panes, "elm.panes.unpair", "elm"); } /** @@ -266,7 +316,7 @@ elm_panes_content_right_set(Evas_Object *obj, Evas_Object *content) * * Return the left/top content object which is set for this widget. * - * @param[in] obj The pane object + * @param[in] obj The panes object * @return The left/top content object that is being used * * @ingroup Panes @@ -284,8 +334,8 @@ elm_panes_content_left_get(const Evas_Object *obj) * * Return the right/bottom content object which is set for this widget. * - * @param[in] obj The pane object - * @return The Evas Object set as a right/bottom content of the pane + * @param[in] obj The panes object + * @return The right/bottom content object that is being used * * @ingroup Panes */ @@ -311,18 +361,15 @@ EAPI Evas_Object * elm_panes_content_left_unset(Evas_Object *obj) { ELM_CHECK_WIDTYPE(obj, widtype) NULL; - Widget_Data *wd = NULL; - Evas_Object *content = NULL; - - wd = elm_widget_data_get(obj); + Widget_Data *wd = elm_widget_data_get(obj); if (!wd) return NULL; if (!wd->contents.left) return NULL; - content = wd->contents.left; + Evas_Object *content = wd->contents.left; edje_object_part_unswallow(wd->panes, content); elm_widget_sub_object_del(obj, content); evas_object_hide(content); wd->contents.left = NULL; - edje_object_signal_emit(wd->panes, "panes_unpair", "elm"); + edje_object_signal_emit(wd->panes, "elm.panes.unpair", "elm"); return content; } @@ -340,19 +387,15 @@ EAPI Evas_Object * elm_panes_content_right_unset(Evas_Object *obj) { ELM_CHECK_WIDTYPE(obj, widtype) NULL; - Widget_Data *wd = NULL; - Evas_Object *content = NULL; - - wd = elm_widget_data_get(obj); + Widget_Data *wd = elm_widget_data_get(obj); if (!wd) return NULL; if (!wd->contents.right) return NULL; - - content = wd->contents.right; + Evas_Object *content = wd->contents.right; edje_object_part_unswallow(wd->panes, content); elm_widget_sub_object_del(obj, content); evas_object_hide(content); wd->contents.right = NULL; - edje_object_signal_emit(wd->panes, "panes_unpair", "elm"); + edje_object_signal_emit(wd->panes, "elm.panes.unpair", "elm"); return content; } @@ -450,9 +493,9 @@ elm_panes_fixed_set(Evas_Object *obj, Eina_Bool fixed) Widget_Data *wd = elm_widget_data_get(obj); wd->fixed = fixed; if (wd->fixed == EINA_TRUE) - edje_object_signal_emit(wd->panes, "elm.fixed", "movement.decider"); + edje_object_signal_emit(wd->panes, "elm.panes.fixed", "elm"); else - edje_object_signal_emit(wd->panes, "elm.unfixed", "movement.decider"); + edje_object_signal_emit(wd->panes, "elm.panes.unfixed", "elm"); } /**