From: Enlightenment S. <no-...@en...> - 2010-02-10 14:38:31
|
Log: From: ?\236?\157?\180?\236?\131?\129?\236?\167?\132 <ls...@sa...> Patch for rotate with resize (some formatting fixed too like ecore patch) Author: raster Date: 2010-02-10 06:38:08 -0800 (Wed, 10 Feb 2010) New Revision: 46047 Modified: trunk/TMP/st/elementary/src/bin/test_win_state.c trunk/TMP/st/elementary/src/lib/Elementary.h.in trunk/TMP/st/elementary/src/lib/elm_win.c Modified: trunk/TMP/st/elementary/src/bin/test_win_state.c =================================================================== --- trunk/TMP/st/elementary/src/bin/test_win_state.c 2010-02-10 14:35:07 UTC (rev 46046) +++ trunk/TMP/st/elementary/src/bin/test_win_state.c 2010-02-10 14:38:08 UTC (rev 46047) @@ -6,6 +6,8 @@ int mode, onoff; } Testitem; +static int rotate_with_resize = 0; + static void my_bt_38_alpha_on(void *data, Evas_Object *obj, void *event_info) { @@ -25,11 +27,21 @@ } static void +my_ck_38_resize(void *data, Evas_Object *obj, void *event_info) +{ + Evas_Object *win = data; + rotate_with_resize = elm_check_state_get(obj); +} + +static void my_bt_38_rot_0(void *data, Evas_Object *obj, void *event_info) { Evas_Object *win = data; Evas_Object *bg = evas_object_data_get(win, "bg"); - elm_win_rotation_set(win, 0); + if (rotate_with_resize) + elm_win_rotation_with_resize_set(win, 0); + else + elm_win_rotation_set(win, 0); } static void @@ -37,7 +49,10 @@ { Evas_Object *win = data; Evas_Object *bg = evas_object_data_get(win, "bg"); - elm_win_rotation_set(win, 90); + if (rotate_with_resize) + elm_win_rotation_with_resize_set(win, 90); + else + elm_win_rotation_set(win, 90); } static void @@ -45,7 +60,10 @@ { Evas_Object *win = data; Evas_Object *bg = evas_object_data_get(win, "bg"); - elm_win_rotation_set(win, 180); + if (rotate_with_resize) + elm_win_rotation_with_resize_set(win, 180); + else + elm_win_rotation_set(win, 180); } static void @@ -53,7 +71,10 @@ { Evas_Object *win = data; Evas_Object *bg = evas_object_data_get(win, "bg"); - elm_win_rotation_set(win, 270); + if (rotate_with_resize) + elm_win_rotation_with_resize_set(win, 270); + else + elm_win_rotation_set(win, 270); } static void @@ -87,7 +108,7 @@ void test_win_state(void *data, Evas_Object *obj, void *event_info) { - Evas_Object *win, *bg, *sl, *bx, *bx2, *bt; + Evas_Object *win, *bg, *sl, *bx, *bx2, *bt, *ck; static Testitem tit[3]; int i; @@ -156,6 +177,15 @@ elm_box_pack_end(bx, bx2); evas_object_show(bx2); + ck = elm_check_add(win); + elm_check_label_set(ck, "resize"); + elm_check_state_set(ck, rotate_with_resize); + evas_object_smart_callback_add(ck, "changed", my_ck_38_resize, win); + evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(ck, 0.02, 0.99); + evas_object_show(ck); + elm_box_pack_end(bx, ck); + bx2 = elm_box_add(win); elm_box_horizontal_set(bx2, 1); elm_box_homogenous_set(bx2, 1); Modified: trunk/TMP/st/elementary/src/lib/Elementary.h.in =================================================================== --- trunk/TMP/st/elementary/src/lib/Elementary.h.in 2010-02-10 14:35:07 UTC (rev 46046) +++ trunk/TMP/st/elementary/src/lib/Elementary.h.in 2010-02-10 14:38:08 UTC (rev 46047) @@ -269,6 +269,7 @@ EAPI void elm_win_layer_set(Evas_Object *obj, int layer); EAPI int elm_win_layer_get(Evas_Object *obj); EAPI void elm_win_rotation_set(Evas_Object *obj, int rotation); + EAPI void elm_win_rotation_with_resize_set(Evas_Object *obj, int rotation); EAPI int elm_win_rotation_get(Evas_Object *obj); EAPI void elm_win_sticky_set(Evas_Object *obj, Eina_Bool sticky); EAPI Eina_Bool elm_win_sticky_get(Evas_Object *obj); Modified: trunk/TMP/st/elementary/src/lib/elm_win.c =================================================================== --- trunk/TMP/st/elementary/src/lib/elm_win.c 2010-02-10 14:35:07 UTC (rev 46046) +++ trunk/TMP/st/elementary/src/lib/elm_win.c 2010-02-10 14:38:08 UTC (rev 46047) @@ -775,6 +775,22 @@ _elm_win_xwin_update(win); } +EAPI void +elm_win_rotation_with_resize_set(Evas_Object *obj, int rotation) +{ + Elm_Win *win; + if (strcmp(elm_widget_type_get(obj), "win")) return; + win = elm_widget_data_get(obj); + if (!win) return; + if (win->rot == rotation) return; + win->rot = rotation; + ecore_evas_rotation_with_resize_set(win->ee, rotation); + evas_object_size_hint_min_set(obj, -1, -1); + evas_object_size_hint_max_set(obj, -1, -1); + _elm_win_eval_subobjs(obj); + _elm_win_xwin_update(win); +} + EAPI int elm_win_rotation_get(Evas_Object *obj) { |