elm_scorller: supporting mirrored UI mode
authorWonki Kim <wonki_.kim@samsung.com>
Fri, 4 Nov 2016 06:54:05 +0000 (15:54 +0900)
committerJunsuChoi <jsuya.choi@samsung.com>
Thu, 17 Nov 2016 08:07:49 +0000 (17:07 +0900)
if mirrored mode is set, calculate position by flipping x axis internally
current page getter will be horizontally flipped

Change-Id: I28a2ab2a42b63a929f541996f52669bff8e3a7e4
Signed-off-by: Wonki Kim <wonki_.kim@samsung.com>
src/lib/elm_interface_scrollable.c
src/lib/elm_scroller.c

index 3532280..c8c9eea 100644 (file)
@@ -4719,8 +4719,11 @@ EOLIAN static void
 _elm_interface_scrollable_current_page_get(Eo *obj EINA_UNUSED, Elm_Scrollable_Smart_Interface_Data *sid, int *pagenumber_h, int *pagenumber_v)
 {
    Evas_Coord x, y;
+   Evas_Coord last_x;
 
    eo_do(sid->obj, elm_interface_scrollable_content_pos_get(&x, &y));
+   eo_do(sid->obj, elm_interface_scrollable_last_page_get(&last_x, 0));
+
    if (pagenumber_h)
      {
         if (sid->pagesize_h > 0)
@@ -4749,6 +4752,9 @@ _elm_interface_scrollable_current_page_get(Eo *obj EINA_UNUSED, Elm_Scrollable_S
         else
           *pagenumber_v = 0;
      }
+
+   if (sid->is_mirrored)
+     *pagenumber_h = last_x - *pagenumber_h;
 }
 
 EOLIAN static void
index 994e637..2f133b8 100644 (file)
@@ -910,6 +910,8 @@ _elm_scroller_evas_object_smart_add(Eo *obj, Elm_Scroller_Data *priv)
    evas_object_size_hint_min_set(obj, minw, minh);
    evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, _resize_cb, obj);
 
+   _mirrored_set(obj, elm_widget_mirrored_get(obj));
+
    eo_do(obj,
          elm_interface_scrollable_edge_left_cb_set(_edge_left_cb),
          elm_interface_scrollable_edge_right_cb_set(_edge_right_cb),