efl_ui_flip: renamed elm_flip to efl_ui_flip and updated the eo class
authorSubhransu Mohanty <sub.mohanty@samsung.com>
Mon, 6 Jun 2016 23:50:26 +0000 (16:50 -0700)
committerCedric BAIL <cedric@osg.samsung.com>
Mon, 6 Jun 2016 23:50:29 +0000 (16:50 -0700)
Reviewers: woohyun, raster, jpeg, cedric

Reviewed By: jpeg, cedric

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D3933

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
src/Makefile_Elementary.am
src/lib/elementary/Makefile.am
src/lib/elementary/efl_ui_flip.c [moved from src/lib/elementary/elm_flip.c with 82% similarity]
src/lib/elementary/efl_ui_flip.eo [moved from src/lib/elementary/elm_flip.eo with 90% similarity]
src/lib/elementary/efl_ui_flip_internal_part.eo [new file with mode: 0644]
src/lib/elementary/efl_ui_flip_legacy.h [new file with mode: 0644]
src/lib/elementary/efl_ui_widget_flip.h [moved from src/lib/elementary/elm_widget_flip.h with 80% similarity]
src/lib/elementary/elm_flip.h
src/lib/elementary/elm_flip_eo.h [deleted file]
src/lib/elementary/elm_flip_legacy.h [deleted file]

index db805c7..a08dab0 100644 (file)
@@ -27,7 +27,8 @@ elm_public_eolian_files = \
        lib/elementary/elm_fileselector.eo \
        lib/elementary/elm_fileselector_button.eo \
        lib/elementary/elm_fileselector_entry.eo \
-       lib/elementary/elm_flip.eo \
+       lib/elementary/efl_ui_flip.eo \
+       lib/elementary/efl_ui_flip_internal_part.eo \
        lib/elementary/elm_flipselector.eo \
        lib/elementary/elm_frame.eo \
        lib/elementary/elm_gengrid.eo \
@@ -210,7 +211,7 @@ includesunstable_HEADERS = \
        lib/elementary/elm_widget_fileselector.h \
        lib/elementary/elm_widget_fileselector_button.h \
        lib/elementary/elm_widget_fileselector_entry.h \
-       lib/elementary/elm_widget_flip.h \
+       lib/elementary/efl_ui_widget_flip.h \
        lib/elementary/elm_widget_flipselector.h \
        lib/elementary/elm_widget_frame.h \
        lib/elementary/elm_widget_gengrid.h \
@@ -369,8 +370,8 @@ includesub_HEADERS = \
        lib/elementary/elm_entry_legacy.h \
        lib/elementary/elm_finger.h \
        lib/elementary/elm_flip.h \
-       lib/elementary/elm_flip_eo.h \
-       lib/elementary/elm_flip_legacy.h \
+       lib/elementary/efl_ui_flip.eo.h \
+       lib/elementary/efl_ui_flip_legacy.h \
        lib/elementary/elm_flipselector.h \
        lib/elementary/elm_flipselector_eo.h \
        lib/elementary/elm_flipselector_legacy.h \
@@ -592,7 +593,7 @@ lib_elementary_libelementary_la_SOURCES = \
        lib/elementary/elm_dbus_menu.c \
        lib/elementary/elm_diskselector.c \
        lib/elementary/elm_entry.c \
-       lib/elementary/elm_flip.c \
+       lib/elementary/efl_ui_flip.c \
        lib/elementary/elm_flipselector.c \
        lib/elementary/elm_font.c \
        lib/elementary/elm_frame.c \
index 51ccc88..364bc85 100644 (file)
@@ -31,7 +31,8 @@ elm_eolian_files = \
        elm_fileselector.eo \
        elm_fileselector_button.eo \
        elm_fileselector_entry.eo \
-       elm_flip.eo \
+       efl_ui_flip.eo \
+       efl_ui_flip_internal_part.eo \
        elm_flipselector.eo \
        elm_frame.eo \
        elm_gengrid.eo \
@@ -181,7 +182,7 @@ includesunstable_HEADERS = \
        elm_widget_fileselector.h \
        elm_widget_fileselector_button.h \
        elm_widget_fileselector_entry.h \
-       elm_widget_flip.h \
+       efl_ui_widget_flip.h \
        elm_widget_flipselector.h \
        elm_widget_frame.h \
        elm_widget_gengrid.h \
@@ -329,8 +330,9 @@ includesub_HEADERS = \
        elm_entry_legacy.h \
        elm_finger.h \
        elm_flip.h \
-       elm_flip_eo.h \
-       elm_flip_legacy.h \
+       efl_ui_flip_legacy.h\
+       efl_ui_flip.eo.h \
+       efl_ui_flip_internal_part.eo.h \
        elm_flipselector.h \
        elm_flipselector_eo.h \
        elm_flipselector_legacy.h \
@@ -541,7 +543,7 @@ libelementary_la_SOURCES = \
        elm_dbus_menu.c \
        elm_diskselector.c \
        elm_entry.c \
-       elm_flip.c \
+       efl_ui_flip.c \
        elm_flipselector.c \
        elm_font.c \
        elm_frame.c \
similarity index 82%
rename from src/lib/elementary/elm_flip.c
rename to src/lib/elementary/efl_ui_flip.c
index adeddd5..748397a 100644 (file)
@@ -6,15 +6,15 @@
 
 #include <Elementary.h>
 #include "elm_priv.h"
-#include "elm_widget_flip.h"
+#include "efl_ui_widget_flip.h"
 #include "elm_widget_container.h"
 
-#include "elm_flip_internal_part.eo.h"
+#include "efl_ui_flip_internal_part.eo.h"
 #include "elm_part_helper.h"
 
-#define MY_CLASS ELM_FLIP_CLASS
+#define MY_CLASS EFL_UI_FLIP_CLASS
 
-#define MY_CLASS_NAME "Elm_Flip"
+#define MY_CLASS_NAME "Efl_Ui_Flip"
 #define MY_CLASS_NAME_LEGACY "elm_flip"
 
 static const char SIG_ANIMATE_BEGIN[] = "animate,begin";
@@ -27,6 +27,8 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = {
 
 static Eina_Bool _flip(Evas_Object *obj);
 
+static void _update_front_back(Eo *obj, Efl_Ui_Flip_Data *sd);
+
 static void
 _slice_free(Slice *sl)
 {
@@ -35,7 +37,7 @@ _slice_free(Slice *sl)
 }
 
 static void
-_state_slices_clear(Elm_Flip_Data *sd)
+_state_slices_clear(Efl_Ui_Flip_Data *sd)
 {
    int i, j, num;
 
@@ -69,7 +71,7 @@ _sizing_eval(Evas_Object *obj)
    Evas_Coord maxw = -1, maxh = -1, maxw2 = -1, maxh2 = -1;
    int fingx = 0, fingy = 0;
 
-   ELM_FLIP_DATA_GET(obj, sd);
+   EFL_UI_FLIP_DATA_GET(obj, sd);
 
    if (sd->front.content)
      evas_object_size_hint_min_get(sd->front.content, &minw, &minh);
@@ -97,7 +99,7 @@ _sizing_eval(Evas_Object *obj)
 }
 
 EOLIAN static Eina_Bool
-_elm_flip_elm_widget_theme_apply(Eo *obj, Elm_Flip_Data *sd EINA_UNUSED)
+_efl_ui_flip_elm_widget_theme_apply(Eo *obj, Efl_Ui_Flip_Data *sd EINA_UNUSED)
 {
    Eina_Bool int_ret = EINA_FALSE;
    int_ret = elm_obj_widget_theme_apply(eo_super(obj, MY_CLASS));
@@ -109,13 +111,13 @@ _elm_flip_elm_widget_theme_apply(Eo *obj, Elm_Flip_Data *sd EINA_UNUSED)
 }
 
 EOLIAN static Eina_Bool
-_elm_flip_elm_widget_focus_next_manager_is(Eo *obj EINA_UNUSED, Elm_Flip_Data *_pd EINA_UNUSED)
+_efl_ui_flip_elm_widget_focus_next_manager_is(Eo *obj EINA_UNUSED, Efl_Ui_Flip_Data *_pd EINA_UNUSED)
 {
    return EINA_TRUE;
 }
 
 EOLIAN static Eina_Bool
-_elm_flip_elm_widget_focus_next(Eo *obj EINA_UNUSED, Elm_Flip_Data *sd, Elm_Focus_Direction dir, Evas_Object **next, Elm_Object_Item **next_item)
+_efl_ui_flip_elm_widget_focus_next(Eo *obj EINA_UNUSED, Efl_Ui_Flip_Data *sd, Elm_Focus_Direction dir, Evas_Object **next, Elm_Object_Item **next_item)
 {
 
    /* attempt to cycle focus on in sub-items */
@@ -126,7 +128,7 @@ _elm_flip_elm_widget_focus_next(Eo *obj EINA_UNUSED, Elm_Flip_Data *sd, Elm_Focu
 }
 
 EOLIAN static Eina_Bool
-_elm_flip_elm_widget_focus_direction_manager_is(Eo *obj EINA_UNUSED, Elm_Flip_Data *_pd EINA_UNUSED)
+_efl_ui_flip_elm_widget_focus_direction_manager_is(Eo *obj EINA_UNUSED, Efl_Ui_Flip_Data *_pd EINA_UNUSED)
 {
    if (!elm_widget_can_focus_get(obj))
      return EINA_TRUE;
@@ -135,7 +137,7 @@ _elm_flip_elm_widget_focus_direction_manager_is(Eo *obj EINA_UNUSED, Elm_Flip_Da
 }
 
 EOLIAN static Eina_Bool
-_elm_flip_elm_widget_focus_direction(Eo *obj, Elm_Flip_Data *sd, const Evas_Object *base, double degree, Evas_Object **direction, Elm_Object_Item **direction_item, double *weight)
+_efl_ui_flip_elm_widget_focus_direction(Eo *obj, Efl_Ui_Flip_Data *sd, const Evas_Object *base, double degree, Evas_Object **direction, Elm_Object_Item **direction_item, double *weight)
 {
    Eina_Bool ret;
 
@@ -167,7 +169,7 @@ _changed_size_hints_cb(void *data,
 }
 
 EOLIAN static Eina_Bool
-_elm_flip_elm_widget_sub_object_add(Eo *obj, Elm_Flip_Data *_pd EINA_UNUSED, Evas_Object *sobj)
+_efl_ui_flip_elm_widget_sub_object_add(Eo *obj, Efl_Ui_Flip_Data *_pd EINA_UNUSED, Evas_Object *sobj)
 {
    Eina_Bool int_ret = EINA_FALSE;
 
@@ -186,7 +188,7 @@ _elm_flip_elm_widget_sub_object_add(Eo *obj, Elm_Flip_Data *_pd EINA_UNUSED, Eva
 }
 
 EOLIAN static Eina_Bool
-_elm_flip_elm_widget_sub_object_del(Eo *obj, Elm_Flip_Data *sd, Evas_Object *sobj)
+_efl_ui_flip_elm_widget_sub_object_del(Eo *obj, Efl_Ui_Flip_Data *sd, Evas_Object *sobj)
 {
    Eina_Bool int_ret = EINA_FALSE;
 
@@ -238,7 +240,7 @@ _slice_new(Evas_Object *container_obj,
 }
 
 static void
-_slice_apply(Elm_Flip_Data *sd,
+_slice_apply(Efl_Ui_Flip_Data *sd,
              Slice *sl,
              Evas_Coord x EINA_UNUSED,
              Evas_Coord y EINA_UNUSED,
@@ -295,7 +297,7 @@ _slice_apply(Elm_Flip_Data *sd,
 }
 
 static void
-_slice_3d(Elm_Flip_Data *sd EINA_UNUSED,
+_slice_3d(Efl_Ui_Flip_Data *sd EINA_UNUSED,
           Slice *sl,
           Evas_Coord x,
           Evas_Coord y,
@@ -323,7 +325,7 @@ _slice_3d(Elm_Flip_Data *sd EINA_UNUSED,
 }
 
 static void
-_slice_light(Elm_Flip_Data *sd EINA_UNUSED,
+_slice_light(Efl_Ui_Flip_Data *sd EINA_UNUSED,
              Slice *sl,
              Evas_Coord x,
              Evas_Coord y,
@@ -359,7 +361,7 @@ _slice_light(Elm_Flip_Data *sd EINA_UNUSED,
 }
 
 static void
-_slice_xyz(Elm_Flip_Data *sd EINA_UNUSED,
+_slice_xyz(Efl_Ui_Flip_Data *sd EINA_UNUSED,
            Slice *sl,
            double xx1,
            double yy1,
@@ -381,7 +383,7 @@ _slice_xyz(Elm_Flip_Data *sd EINA_UNUSED,
 }
 
 static void
-_slice_uv(Elm_Flip_Data *sd EINA_UNUSED,
+_slice_uv(Efl_Ui_Flip_Data *sd EINA_UNUSED,
           Slice *sl,
           double u1,
           double v1,
@@ -509,7 +511,7 @@ _slice_obj_vert_color_merge(Slice *s1,
 static int
 _state_update(Evas_Object *obj)
 {
-   Elm_Flip_Data *sd = eo_data_scope_get(obj, MY_CLASS);
+   Efl_Ui_Flip_Data *sd = eo_data_scope_get(obj, MY_CLASS);
    Slice *sl;
    Vertex3 *tvo, *tvol;
    Evas_Object *front, *back;
@@ -871,7 +873,7 @@ _state_update(Evas_Object *obj)
 }
 
 static void
-_state_end(Elm_Flip_Data *sd)
+_state_end(Efl_Ui_Flip_Data *sd)
 {
    _state_slices_clear(sd);
 }
@@ -879,7 +881,7 @@ _state_end(Elm_Flip_Data *sd)
 static void
 _flip_show_hide(Evas_Object *obj)
 {
-   ELM_FLIP_DATA_GET(obj, sd);
+   EFL_UI_FLIP_DATA_GET(obj, sd);
    if (elm_flip_front_visible_get(obj))
      {
         if (sd->pageflip)
@@ -970,7 +972,7 @@ _flip_do(Evas_Object *obj,
    Evas_Coord cx, cy, px, py, foc;
    int lx, ly, lz, lr, lg, lb, lar, lag, lab;
 
-   ELM_FLIP_DATA_GET(obj, sd);
+   EFL_UI_FLIP_DATA_GET(obj, sd);
 
    mf = evas_map_new(4);
    evas_map_smooth_set(mf, EINA_FALSE);
@@ -1166,7 +1168,7 @@ _flip_do(Evas_Object *obj,
 static void
 _show_hide(Evas_Object *obj)
 {
-   ELM_FLIP_DATA_GET(obj, sd);
+   EFL_UI_FLIP_DATA_GET(obj, sd);
    Evas_Coord x, y, w, h;
    if (!sd) return;
 
@@ -1205,7 +1207,7 @@ _configure(Evas_Object *obj)
    Evas_Coord x, y, w, h;
    Evas_Coord fsize;
 
-   ELM_FLIP_DATA_GET(obj, sd);
+   EFL_UI_FLIP_DATA_GET(obj, sd);
    _show_hide(obj);
    evas_object_geometry_get(obj, &x, &y, &w, &h);
    // FIXME: manual flip wont get fixed
@@ -1247,7 +1249,7 @@ _flip(Evas_Object *obj)
    double t;
    Evas_Coord w, h;
 
-   ELM_FLIP_DATA_GET(obj, sd);
+   EFL_UI_FLIP_DATA_GET(obj, sd);
 
    t = ecore_loop_time_get() - sd->start;
 
@@ -1335,7 +1337,10 @@ _flip(Evas_Object *obj)
           sd->state = sd->next_state;
         _configure(obj);
         _flip_show_hide(obj);
-        eo_event_callback_call(obj, ELM_FLIP_EVENT_ANIMATE_DONE, NULL);
+        eo_event_callback_call(obj, EFL_UI_FLIP_EVENT_ANIMATE_DONE, NULL);
+
+        // update the new front and back object.
+        _update_front_back(obj, sd);
 
         return ECORE_CALLBACK_CANCEL;
      }
@@ -1372,7 +1377,7 @@ _animate(void *data)
 
 static double
 _pos_get(Evas_Object *obj,
-         Elm_Flip_Data *sd,
+         Efl_Ui_Flip_Data *sd,
          int *rev,
          Elm_Flip_Mode *m)
 {
@@ -1382,8 +1387,8 @@ _pos_get(Evas_Object *obj,
    evas_object_geometry_get(obj, &x, &y, &w, &h);
    switch (sd->intmode)
      {
-      case ELM_FLIP_INTERACTION_ROTATE:
-      case ELM_FLIP_INTERACTION_CUBE:
+      case EFL_UI_FLIP_INTERACTION_ROTATE:
+      case EFL_UI_FLIP_INTERACTION_CUBE:
       {
          if (sd->dir == ELM_FLIP_DIRECTION_LEFT)
            {
@@ -1415,9 +1420,9 @@ _pos_get(Evas_Object *obj,
          if ((sd->dir == ELM_FLIP_DIRECTION_LEFT) ||
              (sd->dir == ELM_FLIP_DIRECTION_RIGHT))
            {
-              if (sd->intmode == ELM_FLIP_INTERACTION_ROTATE)
+              if (sd->intmode == EFL_UI_FLIP_INTERACTION_ROTATE)
                 *m = ELM_FLIP_ROTATE_Y_CENTER_AXIS;
-              else if (sd->intmode == ELM_FLIP_INTERACTION_CUBE)
+              else if (sd->intmode == EFL_UI_FLIP_INTERACTION_CUBE)
                 {
                    if (*rev)
                      *m = ELM_FLIP_CUBE_LEFT;
@@ -1427,9 +1432,9 @@ _pos_get(Evas_Object *obj,
            }
          else
            {
-              if (sd->intmode == ELM_FLIP_INTERACTION_ROTATE)
+              if (sd->intmode == EFL_UI_FLIP_INTERACTION_ROTATE)
                 *m = ELM_FLIP_ROTATE_X_CENTER_AXIS;
-              else if (sd->intmode == ELM_FLIP_INTERACTION_CUBE)
+              else if (sd->intmode == EFL_UI_FLIP_INTERACTION_CUBE)
                 {
                    if (*rev)
                      *m = ELM_FLIP_CUBE_UP;
@@ -1449,7 +1454,7 @@ static Eina_Bool
 _event_anim(void *data,
             double pos)
 {
-   Elm_Flip_Data *sd = data;
+   Efl_Ui_Flip_Data *sd = data;
    double p;
 
    p = ecore_animator_pos_map(pos, ECORE_POS_MAP_ACCELERATE, 0.0, 0.0);
@@ -1477,11 +1482,11 @@ _event_anim(void *data,
      }
    switch (sd->intmode)
      {
-      case ELM_FLIP_INTERACTION_NONE:
+      case EFL_UI_FLIP_INTERACTION_NONE:
         break;
 
-      case ELM_FLIP_INTERACTION_ROTATE:
-      case ELM_FLIP_INTERACTION_CUBE:
+      case EFL_UI_FLIP_INTERACTION_ROTATE:
+      case EFL_UI_FLIP_INTERACTION_CUBE:
           {
              Elm_Flip_Mode m = ELM_FLIP_ROTATE_X_CENTER_AXIS;
              int rev = 0;
@@ -1490,7 +1495,7 @@ _event_anim(void *data,
           }
         break;
 
-      case ELM_FLIP_INTERACTION_PAGE:
+      case EFL_UI_FLIP_INTERACTION_PAGE:
         sd->pageflip = EINA_TRUE;
         _configure(sd->obj);
         _state_update(sd->obj);
@@ -1517,7 +1522,7 @@ _event_anim(void *data,
    _configure(sd->obj);
    sd->animator = NULL;
    eo_event_callback_call
-     (sd->obj, ELM_FLIP_EVENT_ANIMATE_DONE, NULL);
+     (sd->obj, EFL_UI_FLIP_EVENT_ANIMATE_DONE, NULL);
 
    return ECORE_CALLBACK_CANCEL;
 }
@@ -1527,20 +1532,20 @@ _update_job(void *data)
 {
    Elm_Flip_Mode m = ELM_FLIP_ROTATE_X_CENTER_AXIS;
    Evas_Object *obj = data;
-   Elm_Flip_Data *sd = eo_data_scope_get(obj, MY_CLASS);
+   Efl_Ui_Flip_Data *sd = eo_data_scope_get(obj, MY_CLASS);
    int rev = 0;
    double p;
 
    sd->job = NULL;
    switch (sd->intmode)
      {
-      case ELM_FLIP_INTERACTION_ROTATE:
-      case ELM_FLIP_INTERACTION_CUBE:
+      case EFL_UI_FLIP_INTERACTION_ROTATE:
+      case EFL_UI_FLIP_INTERACTION_CUBE:
         p = _pos_get(obj, sd, &rev, &m);
         _flip_do(obj, p, m, 1, rev);
         break;
 
-      case ELM_FLIP_INTERACTION_PAGE:
+      case EFL_UI_FLIP_INTERACTION_PAGE:
         sd->pageflip = EINA_TRUE;
         _configure(obj);
         _state_update(obj);
@@ -1561,7 +1566,7 @@ _down_cb(void *data,
    Evas_Object *fl = data;
    Evas_Coord x, y, w, h;
 
-   ELM_FLIP_DATA_GET(fl, sd);
+   EFL_UI_FLIP_DATA_GET(fl, sd);
 
    if (ev->button != 1) return;
    if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
@@ -1588,7 +1593,7 @@ _up_cb(void *data,
    Evas_Coord x, y, w, h;
    double tm = 0.5;
 
-   ELM_FLIP_DATA_GET(fl, sd);
+   EFL_UI_FLIP_DATA_GET(fl, sd);
 
    if (ev->button != 1) return;
    if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
@@ -1646,7 +1651,7 @@ _move_cb(void *data,
    Evas_Object *fl = data;
    Evas_Coord x, y, w, h;
 
-   ELM_FLIP_DATA_GET(fl, sd);
+   EFL_UI_FLIP_DATA_GET(fl, sd);
    if (!sd->mouse_down) return;
    if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
    evas_object_geometry_get(data, &x, &y, &w, &h);
@@ -1688,7 +1693,7 @@ _move_cb(void *data,
              else return;
 
              sd->started = EINA_TRUE;
-             if (sd->intmode == ELM_FLIP_INTERACTION_PAGE)
+             if (sd->intmode == EFL_UI_FLIP_INTERACTION_PAGE)
                sd->pageflip = EINA_TRUE;
              _flip_show_hide(data);
              evas_smart_objects_calculate(evas_object_evas_get(data));
@@ -1703,7 +1708,7 @@ _move_cb(void *data,
              evas_smart_objects_calculate(evas_object_evas_get(data));
              _configure(fl);
              // FIXME: end hack
-             eo_event_callback_call(fl, ELM_FLIP_EVENT_ANIMATE_BEGIN, NULL);
+             eo_event_callback_call(fl, EFL_UI_FLIP_EVENT_ANIMATE_BEGIN, NULL);
           }
         else return;
      }
@@ -1721,7 +1726,7 @@ _flip_content_set(Evas_Object *obj,
    int i;
    Evas_Object **cont;
 
-   ELM_FLIP_DATA_GET(obj, sd);
+   EFL_UI_FLIP_DATA_GET(obj, sd);
 
    cont = front ? &(sd->front.content) : &(sd->back.content);
 
@@ -1745,7 +1750,7 @@ _flip_content_set(Evas_Object *obj,
    _configure(obj);
    _sizing_eval(obj);
 
-   if (sd->intmode != ELM_FLIP_INTERACTION_NONE)
+   if (sd->intmode != EFL_UI_FLIP_INTERACTION_NONE)
      {
         for (i = 0; i < 4; i++)
           evas_object_raise(sd->event[i]);
@@ -1761,7 +1766,7 @@ _flip_content_unset(Evas_Object *obj,
    Evas_Object *content;
    Evas_Object **cont;
 
-   ELM_FLIP_DATA_GET(obj, sd);
+   EFL_UI_FLIP_DATA_GET(obj, sd);
 
    cont = front ? &(sd->front.content) : &(sd->back.content);
 
@@ -1774,7 +1779,7 @@ _flip_content_unset(Evas_Object *obj,
 }
 
 static Eina_Bool
-_elm_flip_content_set(Eo *obj, Elm_Flip_Data *_pd EINA_UNUSED, const char *part, Evas_Object *content)
+_efl_ui_flip_content_set(Eo *obj, Efl_Ui_Flip_Data *_pd EINA_UNUSED, const char *part, Evas_Object *content)
 {
    if (!part || !strcmp(part, "front"))
       return _flip_content_set(obj, content, EINA_TRUE);
@@ -1784,7 +1789,7 @@ _elm_flip_content_set(Eo *obj, Elm_Flip_Data *_pd EINA_UNUSED, const char *part,
 }
 
 static Evas_Object*
-_elm_flip_content_get(Eo *obj EINA_UNUSED, Elm_Flip_Data *sd, const char *part)
+_efl_ui_flip_content_get(Eo *obj EINA_UNUSED, Efl_Ui_Flip_Data *sd, const char *part)
 {
    if (!part || !strcmp(part, "front"))
       return sd->front.content;
@@ -1794,7 +1799,7 @@ _elm_flip_content_get(Eo *obj EINA_UNUSED, Elm_Flip_Data *sd, const char *part)
 }
 
 static Evas_Object*
-_elm_flip_content_unset(Eo *obj EINA_UNUSED, Elm_Flip_Data *_pd EINA_UNUSED, const char *part)
+_efl_ui_flip_content_unset(Eo *obj EINA_UNUSED, Efl_Ui_Flip_Data *_pd EINA_UNUSED, const char *part)
 {
    if (!part || !strcmp(part, "front"))
       return _flip_content_unset(obj, EINA_TRUE);
@@ -1804,7 +1809,7 @@ _elm_flip_content_unset(Eo *obj EINA_UNUSED, Elm_Flip_Data *_pd EINA_UNUSED, con
 }
 
 EOLIAN static void
-_elm_flip_evas_object_smart_add(Eo *obj, Elm_Flip_Data *priv)
+_efl_ui_flip_evas_object_smart_add(Eo *obj, Efl_Ui_Flip_Data *priv)
 {
    evas_obj_smart_add(eo_super(obj, MY_CLASS));
    elm_widget_sub_object_parent_add(obj);
@@ -1839,7 +1844,7 @@ _elm_flip_evas_object_smart_add(Eo *obj, Elm_Flip_Data *priv)
 
    priv->state = EINA_TRUE;
    priv->next_state = EINA_TRUE;
-   priv->intmode = ELM_FLIP_INTERACTION_NONE;
+   priv->intmode = EFL_UI_FLIP_INTERACTION_NONE;
 
    elm_widget_can_focus_set(obj, EINA_FALSE);
 
@@ -1847,7 +1852,7 @@ _elm_flip_evas_object_smart_add(Eo *obj, Elm_Flip_Data *priv)
 }
 
 EOLIAN static void
-_elm_flip_evas_object_smart_del(Eo *obj, Elm_Flip_Data *sd)
+_efl_ui_flip_evas_object_smart_del(Eo *obj, Efl_Ui_Flip_Data *sd)
 {
    ecore_animator_del(sd->animator);
    _state_slices_clear(sd);
@@ -1864,7 +1869,7 @@ elm_flip_add(Evas_Object *parent)
 }
 
 EOLIAN static Eo *
-_elm_flip_eo_base_constructor(Eo *obj, Elm_Flip_Data *sd)
+_efl_ui_flip_eo_base_constructor(Eo *obj, Efl_Ui_Flip_Data *sd)
 {
    obj = eo_constructor(eo_super(obj, MY_CLASS));
    sd->obj = obj;
@@ -1877,7 +1882,7 @@ _elm_flip_eo_base_constructor(Eo *obj, Elm_Flip_Data *sd)
 }
 
 EOLIAN static Eina_Bool
-_elm_flip_front_visible_get(Eo *obj EINA_UNUSED, Elm_Flip_Data *sd)
+_efl_ui_flip_front_visible_get(Eo *obj EINA_UNUSED, Efl_Ui_Flip_Data *sd)
 {
    return sd->state;
 }
@@ -1895,7 +1900,7 @@ elm_flip_perspective_set(Evas_Object *obj,
 
 static void
 _internal_elm_flip_go_to(Evas_Object *obj,
-                Elm_Flip_Data *sd,
+                Efl_Ui_Flip_Data *sd,
                 Eina_Bool front,
                 Elm_Flip_Mode mode)
 {
@@ -1923,7 +1928,7 @@ _internal_elm_flip_go_to(Evas_Object *obj,
    evas_smart_objects_calculate(evas_object_evas_get(obj));
    _configure(obj);
    // FIXME: end hack
-   eo_event_callback_call(obj, ELM_FLIP_EVENT_ANIMATE_BEGIN, NULL);
+   eo_event_callback_call(obj, EFL_UI_FLIP_EVENT_ANIMATE_BEGIN, NULL);
 
    // set focus to the content object when flip go to is called
    if (elm_object_focus_get(obj))
@@ -1934,7 +1939,7 @@ _internal_elm_flip_go_to(Evas_Object *obj,
 }
 
 EOLIAN static void
-_elm_flip_go_to(Eo *obj, Elm_Flip_Data *sd, Eina_Bool front, Elm_Flip_Mode mode)
+_efl_ui_flip_go_to(Eo *obj, Efl_Ui_Flip_Data *sd, Eina_Bool front, Elm_Flip_Mode mode)
 {
    if (sd->next_state == front) return;
 
@@ -1942,13 +1947,13 @@ _elm_flip_go_to(Eo *obj, Elm_Flip_Data *sd, Eina_Bool front, Elm_Flip_Mode mode)
 }
 
 EOLIAN static void
-_elm_flip_go(Eo *obj, Elm_Flip_Data *sd, Elm_Flip_Mode mode)
+_efl_ui_flip_go(Eo *obj, Efl_Ui_Flip_Data *sd, Elm_Flip_Mode mode)
 {
    _internal_elm_flip_go_to(obj, sd, !sd->state, mode);
 }
 
 static void
-_event_rect_create(Eo *obj, Elm_Flip_Data *sd, int i)
+_event_rect_create(Eo *obj, Efl_Ui_Flip_Data *sd, int i)
 {
    Evas_Object *clip;
    Evas *e;
@@ -1973,7 +1978,7 @@ _event_rect_create(Eo *obj, Elm_Flip_Data *sd, int i)
 }
 
 EOLIAN static void
-_elm_flip_interaction_set(Eo *obj, Elm_Flip_Data *sd, Elm_Flip_Interaction mode)
+_efl_ui_flip_interaction_set(Eo *obj, Efl_Ui_Flip_Data *sd, Efl_Ui_Flip_Interaction mode)
 {
    int i;
 
@@ -1983,7 +1988,7 @@ _elm_flip_interaction_set(Eo *obj, Elm_Flip_Data *sd, Elm_Flip_Interaction mode)
 
    for (i = 0; i < 4; i++)
      {
-        if (sd->intmode == ELM_FLIP_INTERACTION_NONE)
+        if (sd->intmode == EFL_UI_FLIP_INTERACTION_NONE)
           ELM_SAFE_FREE(sd->event[i], evas_object_del);
         else if (sd->dir_enabled[i])
           {
@@ -1997,14 +2002,14 @@ _elm_flip_interaction_set(Eo *obj, Elm_Flip_Data *sd, Elm_Flip_Interaction mode)
    _configure(obj);
 }
 
-EOLIAN static Elm_Flip_Interaction
-_elm_flip_interaction_get(Eo *obj EINA_UNUSED, Elm_Flip_Data *sd)
+EOLIAN static Efl_Ui_Flip_Interaction
+_efl_ui_flip_interaction_get(Eo *obj EINA_UNUSED, Efl_Ui_Flip_Data *sd)
 {
    return sd->intmode;
 }
 
 EOLIAN static void
-_elm_flip_interaction_direction_enabled_set(Eo *obj, Elm_Flip_Data *sd, Elm_Flip_Direction dir, Eina_Bool enabled)
+_efl_ui_flip_interaction_direction_enabled_set(Eo *obj, Efl_Ui_Flip_Data *sd, Efl_Orient dir, Eina_Bool enabled)
 {
    int i = (int) dir;
    int area;
@@ -2013,7 +2018,7 @@ _elm_flip_interaction_direction_enabled_set(Eo *obj, Elm_Flip_Data *sd, Elm_Flip
    enabled = !!enabled;
    if (sd->dir_enabled[i] == enabled) return;
    sd->dir_enabled[i] = enabled;
-   if (sd->intmode == ELM_FLIP_INTERACTION_NONE) return;
+   if (sd->intmode == EFL_UI_FLIP_INTERACTION_NONE) return;
 
    area = (i & 0x2) | (i ^ 0x1); // up <-> down, left <-> right
    if (enabled && (sd->dir_hitsize[area] >= 0.0))
@@ -2027,13 +2032,13 @@ _elm_flip_interaction_direction_enabled_set(Eo *obj, Elm_Flip_Data *sd, Elm_Flip
 }
 
 EOLIAN static Eina_Bool
-_elm_flip_interaction_direction_enabled_get(Eo *obj EINA_UNUSED, Elm_Flip_Data *sd, Elm_Flip_Direction dir)
+_efl_ui_flip_interaction_direction_enabled_get(Eo *obj EINA_UNUSED, Efl_Ui_Flip_Data *sd, Efl_Orient dir)
 {
    return sd->dir_enabled[(int) dir];
 }
 
 EOLIAN static void
-_elm_flip_interaction_direction_hitsize_set(Eo *obj, Elm_Flip_Data *sd, Elm_Flip_Direction dir, double hitsize)
+_efl_ui_flip_interaction_direction_hitsize_set(Eo *obj, Efl_Ui_Flip_Data *sd, Efl_Orient dir, double hitsize)
 {
    int i = (int) dir;
 
@@ -2055,28 +2060,254 @@ _elm_flip_interaction_direction_hitsize_set(Eo *obj, Elm_Flip_Data *sd, Elm_Flip
    _configure(obj);
 }
 
+static void
+_update_front_back(Eo *obj, Efl_Ui_Flip_Data *pd)
+{
+   int count, index;
+   Efl_Gfx *content;
+
+   count = eina_list_count(pd->content_list);
+   if (count <= 2) return;
+
+   // update the next state object
+   content = _flip_content_unset(obj, !pd->state);
+   evas_object_hide(content);
+   content = pd->state ? pd->front.content : pd->back.content;
+   index = eina_list_data_idx(pd->content_list, content);
+   index = (index == count-1) ? 0 : index + 1;
+   content = eina_list_nth(pd->content_list, index);
+   evas_object_show(content);
+   _flip_content_set(obj, content, !pd->state);
+}
+
+static void
+_content_added(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx *content)
+{
+   evas_object_smart_member_add(content, obj);
+
+   if (!pd->front.content)
+     {
+        _flip_content_set(obj, content, EINA_TRUE);
+        return;
+     }
+   if (!pd->back.content)
+     {
+        _flip_content_set(obj, content, EINA_FALSE);
+        return;
+     }
+}
+
+static void
+_content_removed(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx *content)
+{
+   Efl_Gfx *back_face, *cur_face, *face;
+   int index, count;
+   Eina_Bool state;
+
+   evas_object_smart_member_del(content);
+   // if its not the front or back object just return. 
+   if ((pd->front.content != content) ||
+       (pd->back.content != content))
+     return;
+
+   cur_face = pd->state ? pd->front.content : pd->back.content;
+   back_face = pd->state ? pd->back.content : pd->front.content;
+
+   if (cur_face == content)
+     {
+        face = back_face;
+        state = EINA_TRUE;
+     }
+   else
+     {
+        face = cur_face;
+        state = EINA_FALSE;
+     }
+
+   _flip_content_unset(obj, state);
+
+   count = eina_list_count(pd->content_list);
+   if (count == 1) return;
+
+   _flip_content_unset(obj, state);
+   index = eina_list_data_idx(pd->content_list, face);
+   index = (index == count-1) ? 0 : index + 1;
+   _flip_content_set(obj, eina_list_nth(pd->content_list, index), state);
+}
+
 EOLIAN static double
-_elm_flip_interaction_direction_hitsize_get(Eo *obj EINA_UNUSED, Elm_Flip_Data *sd, Elm_Flip_Direction dir)
+_efl_ui_flip_interaction_direction_hitsize_get(Eo *obj EINA_UNUSED, Efl_Ui_Flip_Data *sd, Efl_Orient dir)
 {
    int i = (int) dir;
 
    return sd->dir_hitsize[i];
 }
 
+EOLIAN static Eina_Iterator *
+_efl_ui_flip_efl_container_content_iterate(Eo *obj EINA_UNUSED, Efl_Ui_Flip_Data *pd)
+{
+   return eina_list_iterator_new(pd->content_list);
+}
+
+EOLIAN static int
+_efl_ui_flip_efl_container_content_count(Eo *obj EINA_UNUSED, Efl_Ui_Flip_Data *pd)
+{
+   return eina_list_count(pd->content_list);
+}
+
+EOLIAN static Eina_Bool
+_efl_ui_flip_efl_container_content_remove(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx *content)
+{
+   pd->content_list = eina_list_remove(pd->content_list, content);
+   _content_removed(obj, pd, content);
+   return EINA_TRUE;
+}
+
+EOLIAN static Eina_Bool
+_efl_ui_flip_efl_pack_unpack(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx *subobj)
+{
+   pd->content_list = eina_list_remove(pd->content_list, subobj);
+   _content_removed(obj, pd, subobj);
+   return EINA_TRUE;
+}
+
+EOLIAN static Eina_Bool
+_efl_ui_flip_efl_pack_pack(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx *subobj)
+{
+   pd->content_list = eina_list_append(pd->content_list, subobj);
+   _content_added(obj, pd, subobj);
+   return EINA_TRUE;
+}
+
+EOLIAN static Eina_Bool
+_efl_ui_flip_efl_pack_linear_pack_begin(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx *subobj)
+{
+   pd->content_list = eina_list_prepend(pd->content_list, subobj);
+   _content_added(obj, pd, subobj);
+
+   return EINA_TRUE;
+}
+
+EOLIAN static Eina_Bool
+_efl_ui_flip_efl_pack_linear_pack_end(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx *subobj)
+{
+   pd->content_list = eina_list_append(pd->content_list, subobj);
+   _content_added(obj, pd, subobj);
+   return EINA_TRUE;
+}
+
+EOLIAN static Eina_Bool
+_efl_ui_flip_efl_pack_linear_pack_before(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx *subobj, const Efl_Gfx *existing)
+{
+   pd->content_list = eina_list_prepend_relative(pd->content_list, subobj, existing);
+   _content_added(obj, pd, subobj);
+   return EINA_TRUE;
+}
+
+EOLIAN static Eina_Bool
+_efl_ui_flip_efl_pack_linear_pack_after(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx *subobj, const Efl_Gfx *existing)
+{
+   pd->content_list = eina_list_append_relative(pd->content_list, subobj, existing);
+   _content_added(obj, pd, subobj);
+   return EINA_TRUE;
+}
+
+EOLIAN static Eina_Bool
+_efl_ui_flip_efl_pack_linear_pack_at(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx *subobj, int index)
+{
+   Efl_Gfx *existing = NULL;
+   existing = eina_list_nth(pd->content_list, index);
+   pd->content_list = eina_list_prepend_relative(pd->content_list, subobj, existing);
+   _content_added(obj, pd, subobj);
+   return EINA_TRUE;
+}
+
+EOLIAN static Efl_Gfx *
+_efl_ui_flip_efl_pack_linear_pack_content_get(Eo *obj EINA_UNUSED, Efl_Ui_Flip_Data *pd, int index)
+{
+   return eina_list_nth(pd->content_list, index);
+}
+
+EOLIAN static Efl_Gfx *
+_efl_ui_flip_efl_pack_linear_pack_unpack_at(Eo *obj, Efl_Ui_Flip_Data *pd, int index)
+{
+   Efl_Gfx *content = eina_list_nth(pd->content_list ,index);
+
+   pd->content_list = eina_list_remove(pd->content_list, content);
+   _content_removed(obj, pd, content);
+   return content;
+}
+
+EOLIAN static int
+_efl_ui_flip_efl_pack_linear_pack_index_get(Eo *obj EINA_UNUSED, Efl_Ui_Flip_Data *pd, const Efl_Gfx *subobj)
+{
+   return eina_list_data_idx(pd->content_list, (void *)subobj);
+}
+
 static void
-_elm_flip_class_constructor(Eo_Class *klass)
+_efl_ui_flip_class_constructor(Eo_Class *klass)
 {
    evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
 }
 
+static Efl_Orient
+_to_efl_orientation(Elm_Flip_Direction dir)
+{
+   Efl_Orient res;
+   switch (dir)
+      {
+        case ELM_FLIP_DIRECTION_RIGHT:
+           res = EFL_ORIENT_RIGHT;
+           break;
+        case ELM_FLIP_DIRECTION_DOWN:
+           res = EFL_ORIENT_DOWN;
+           break;
+        case ELM_FLIP_DIRECTION_LEFT:
+           res = EFL_ORIENT_LEFT;
+           break;
+        default:
+           res = EFL_ORIENT_UP;
+           break;
+      }
+   return res;
+}
+
+EAPI void 
+elm_flip_interaction_direction_hitsize_set(Efl_Ui_Flip *obj, Elm_Flip_Direction dir, double hitsize)
+{
+   Efl_Orient orient = _to_efl_orientation(dir);
+   efl_ui_flip_interaction_direction_hitsize_set((Efl_Ui_Flip *)obj, orient, hitsize);
+}
+
+EAPI double 
+elm_flip_interaction_direction_hitsize_get(Efl_Ui_Flip *obj, Elm_Flip_Direction dir)
+{
+   Efl_Orient orient = _to_efl_orientation(dir);
+   return efl_ui_flip_interaction_direction_hitsize_get((Efl_Ui_Flip *)obj, orient);
+}
+
+EOAPI void 
+elm_flip_interaction_direction_enabled_set(Efl_Ui_Flip *obj, Elm_Flip_Direction dir, Eina_Bool enabled)
+{
+   Efl_Orient orient = _to_efl_orientation(dir);
+   efl_ui_flip_interaction_direction_enabled_set((Efl_Ui_Flip *)obj, orient, enabled);
+}
+
+EOAPI Eina_Bool 
+elm_flip_interaction_direction_enabled_get(Efl_Ui_Flip *obj, Elm_Flip_Direction dir)
+{
+   Efl_Orient orient = _to_efl_orientation(dir);
+   return efl_ui_flip_interaction_direction_enabled_get((Efl_Ui_Flip *)obj, orient);
+}
+
 /* Efl.Part begin */
 
-ELM_PART_IMPLEMENT(elm_flip, ELM_FLIP, Elm_Flip_Data, Elm_Part_Data)
-ELM_PART_IMPLEMENT_CONTENT_SET(elm_flip, ELM_FLIP, Elm_Flip_Data, Elm_Part_Data)
-ELM_PART_IMPLEMENT_CONTENT_GET(elm_flip, ELM_FLIP, Elm_Flip_Data, Elm_Part_Data)
-ELM_PART_IMPLEMENT_CONTENT_UNSET(elm_flip, ELM_FLIP, Elm_Flip_Data, Elm_Part_Data)
-#include "elm_flip_internal_part.eo.c"
+ELM_PART_IMPLEMENT(efl_ui_flip, EFL_UI_FLIP, Efl_Ui_Flip_Data, Elm_Part_Data)
+ELM_PART_IMPLEMENT_CONTENT_SET(efl_ui_flip, EFL_UI_FLIP, Efl_Ui_Flip_Data, Elm_Part_Data)
+ELM_PART_IMPLEMENT_CONTENT_GET(efl_ui_flip, EFL_UI_FLIP, Efl_Ui_Flip_Data, Elm_Part_Data)
+ELM_PART_IMPLEMENT_CONTENT_UNSET(efl_ui_flip, EFL_UI_FLIP, Efl_Ui_Flip_Data, Elm_Part_Data)
+#include "efl_ui_flip_internal_part.eo.c"
 
 /* Efl.Part end */
 
-#include "elm_flip.eo.c"
+#include "efl_ui_flip.eo.c"
similarity index 90%
rename from src/lib/elementary/elm_flip.eo
rename to src/lib/elementary/efl_ui_flip.eo
index 9edc6de..cd9b972 100644 (file)
@@ -1,7 +1,7 @@
-enum Elm.Flip.Mode
+enum Efl.Ui.Flip.Mode
 {
    [[]]
-   legacy: elm_flip;
+   legacy: efl_ui_flip;
    rotate_y_center_axis,
    rotate_x_center_axis,
    rotate_xz_center_axis,
@@ -16,7 +16,7 @@ enum Elm.Flip.Mode
    page_down
 }
 
-enum Elm.Flip.Interaction
+enum Efl.Ui.Flip.Interaction
 {
    [[]]
    none,
@@ -25,19 +25,9 @@ enum Elm.Flip.Interaction
    page
 }
 
-enum Elm.Flip.Direction
-{
-   up = 0, [[Allows interaction with the top of the widget]]
-   down, [[Allows interaction with the bottom of the widget]]
-   left, [[Allows interaction with the left portion of the widget]]
-   right [[Allows interaction with the right portion of the widget]]
-}
-
-class Elm.Flip (Elm.Widget, Efl.Part)
+class Efl.Ui.Flip (Elm.Widget, Efl.Pack.Linear, Efl.Part)
 {
    legacy_prefix: elm_flip;
-   eo_prefix: elm_obj_flip;
-   event_prefix: elm_flip;
    methods {
       @property interaction {
          set {
@@ -64,7 +54,7 @@ class Elm.Flip (Elm.Widget, Efl.Part)
             [[Get the interactive flip mode.]]
          }
          values {
-            mode: Elm.Flip.Interaction; [[The interactive flip mode to use.]]
+            mode: Efl.Ui.Flip.Interaction; [[The interactive flip mode to use.]]
          }
       }
       @property front_visible {
@@ -93,16 +83,18 @@ class Elm.Flip (Elm.Widget, Efl.Part)
 
            See also @.interaction.set.
          ]]
+         legacy: null;
          params {
-            @in dir: Elm.Flip.Direction; [[The hit area to set.]]
+            @in dir: Efl.Orient; [[The hit area to set.]]
             @in hitsize: double; [[The amount of that dimension (0.0 to 1.0) to use.]]
          }
       }
       interaction_direction_hitsize_get {
          [[Get the amount of the flip that is sensitive to interactive flip.]]
          return: double; [[The size set for that direction.]]
+         legacy: null;
          params {
-            @in dir: Elm.Flip.Direction; [[The direction to check.]]
+            @in dir: Efl.Orient; [[The direction to check.]]
          }
       }
       interaction_direction_enabled_set {
@@ -117,16 +109,18 @@ class Elm.Flip (Elm.Widget, Efl.Part)
            @.interaction_direction_hitsize_set. By default, a minimum
            hit area will be created on the opposite edge of the flip.
          ]]
+         legacy: null;
          params {
-            @in dir: Elm.Flip.Direction; [[The direction to change.]]
+            @in dir: Efl.Orient; [[The direction to change.]]
             @in enabled: bool; [[If that direction is enabled or not.]]
          }
       }
       interaction_direction_enabled_get {
          [[Get the enabled state of that flip direction.]]
          return: bool; [[If that direction is enabled or not.]]
+         legacy: null;
          params {
-            @in dir: Elm.Flip.Direction; [[The direction to check.]]
+            @in dir: Efl.Orient; [[The direction to check.]]
          }
       }
       go {
@@ -174,7 +168,7 @@ class Elm.Flip (Elm.Widget, Efl.Part)
           * @image latex elm_flip.eps width=\textwidth
          */
          params {
-            @in mode: Elm.Flip.Mode; [[The mode type.]]
+            @in mode: Efl.Ui.Flip.Mode; [[The mode type.]]
          }
       }
       go_to {
@@ -224,7 +218,7 @@ class Elm.Flip (Elm.Widget, Efl.Part)
          params {
             @in front: bool; [[If $true, makes front visible, otherwise
                                makes back.]]
-            @in mode: Elm.Flip.Mode; [[The mode type.]]
+            @in mode: Efl.Ui.Flip.Mode; [[The mode type.]]
          }
       }
    }
@@ -240,7 +234,20 @@ class Elm.Flip (Elm.Widget, Efl.Part)
       Elm.Widget.focus_next_manager_is;
       Elm.Widget.focus_next;
       Elm.Widget.sub_object_del;
+      Efl.Container.content_iterate;
+      Efl.Container.content_count;
+      Efl.Container.content_remove;
       Efl.Part.part;
+      Efl.Pack.unpack;
+      Efl.Pack.pack;
+      Efl.Pack.Linear.pack_begin;
+      Efl.Pack.Linear.pack_end;
+      Efl.Pack.Linear.pack_before;
+      Efl.Pack.Linear.pack_after;
+      Efl.Pack.Linear.pack_at;
+      Efl.Pack.Linear.pack_content_get;
+      Efl.Pack.Linear.pack_unpack_at;
+      Efl.Pack.Linear.pack_index_get;
    }
    events {
       animate,begin;
diff --git a/src/lib/elementary/efl_ui_flip_internal_part.eo b/src/lib/elementary/efl_ui_flip_internal_part.eo
new file mode 100644 (file)
index 0000000..3f95d5f
--- /dev/null
@@ -0,0 +1,10 @@
+class Efl.Ui.Flip.Internal.Part (Eo.Base, Efl.Container)
+{
+   data: Elm_Part_Data;
+   implements {
+      Eo.Base.destructor;
+      Efl.Container.content.set;
+      Efl.Container.content.get;
+      Efl.Container.content_unset;
+   }
+}
\ No newline at end of file
diff --git a/src/lib/elementary/efl_ui_flip_legacy.h b/src/lib/elementary/efl_ui_flip_legacy.h
new file mode 100644 (file)
index 0000000..4e76e49
--- /dev/null
@@ -0,0 +1,124 @@
+
+typedef Efl_Ui_Flip_Interaction       Elm_Flip_Interaction;
+
+#define ELM_FLIP_INTERACTION_NONE     EFL_UI_FLIP_INTERACTION_NONE
+#define ELM_FLIP_INTERACTION_ROTATE   EFL_UI_FLIP_INTERACTION_ROTATE
+#define ELM_FLIP_INTERACTION_CUBE     EFL_UI_FLIP_INTERACTION_CUBE
+#define ELM_FLIP_INTERACTION_PAGE     EFL_UI_FLIP_INTERACTION_PAGE
+
+
+typedef Efl_Ui_Flip_Mode                  Elm_Flip_Mode;
+
+#define ELM_FLIP_ROTATE_Y_CENTER_AXIS     EFL_UI_FLIP_ROTATE_Y_CENTER_AXIS
+#define ELM_FLIP_ROTATE_X_CENTER_AXIS     EFL_UI_FLIP_ROTATE_X_CENTER_AXIS
+#define ELM_FLIP_ROTATE_XZ_CENTER_AXIS    EFL_UI_FLIP_ROTATE_XZ_CENTER_AXIS
+#define ELM_FLIP_ROTATE_YZ_CENTER_AXIS    EFL_UI_FLIP_ROTATE_YZ_CENTER_AXIS
+#define ELM_FLIP_CUBE_LEFT                EFL_UI_FLIP_CUBE_LEFT
+#define ELM_FLIP_CUBE_RIGHT               EFL_UI_FLIP_CUBE_RIGHT
+#define ELM_FLIP_CUBE_UP                  EFL_UI_FLIP_CUBE_UP
+#define ELM_FLIP_CUBE_DOWN                EFL_UI_FLIP_CUBE_DOWN
+#define ELM_FLIP_PAGE_LEFT                EFL_UI_FLIP_PAGE_LEFT
+#define ELM_FLIP_PAGE_RIGHT               EFL_UI_FLIP_PAGE_RIGHT
+#define ELM_FLIP_PAGE_UP                  EFL_UI_FLIP_PAGE_UP
+#define ELM_FLIP_PAGE_DOWN                EFL_UI_FLIP_PAGE_DOWN
+
+typedef enum
+{
+  ELM_FLIP_DIRECTION_UP = 0, /** Allows interaction with the top of the widget
+                              */
+  ELM_FLIP_DIRECTION_DOWN, /** Allows interaction with the bottom of the widget
+                            */
+  ELM_FLIP_DIRECTION_LEFT, /** Allows interaction with the left portion of the
+                            * widget */
+  ELM_FLIP_DIRECTION_RIGHT /** Allows interaction with the right portion of the
+                            * widget */
+} Elm_Flip_Direction;
+
+/**
+ * @brief Set the amount of the flip that is sensitive to interactive flip.
+ *
+ * Set the amount of the flip that is sensitive to interactive flip, with 0
+ * representing no area in the flip and 1 representing the entire flip. There
+ * is however a consideration to be made in that the area will never be smaller
+ * than the finger size set (as set in your Elementary configuration), and
+ * dragging must always start from the opposite half of the flip (eg. right
+ * half of the flip when dragging to the left).
+ *
+ * @note The @c dir parameter is not actually related to the direction of the
+ * drag, it only refers to the area in the flip where interaction can occur
+ * (top, bottom, left, right).
+ *
+ * Negative values of @c hitsize will disable this hit area.
+ *
+ * See also @ref elm_flip_interaction_set.
+ *
+ * @param[in] hitsize The amount of that dimension (0.0 to 1.0) to use.
+ *
+ * @ingroup Efl_Ui_Flip
+ */
+EAPI void elm_flip_interaction_direction_hitsize_set(Efl_Ui_Flip *obj, Elm_Flip_Direction dir, double hitsize);
+
+/**
+ * @brief Get the amount of the flip that is sensitive to interactive flip.
+ *
+ * @param[in] dir The direction to check.
+ *
+ * @return The size set for that direction.
+ *
+ * @ingroup Efl_Ui_Flip
+ */
+EAPI double elm_flip_interaction_direction_hitsize_get(Efl_Ui_Flip *obj, Elm_Flip_Direction dir);
+
+/**
+ * @brief Set which directions of the flip respond to interactive flip
+ *
+ * By default all directions are disabled, so you may want to enable the
+ * desired directions for flipping if you need interactive flipping. You must
+ * call this function once for each direction that should be enabled.
+ *
+ * You can also set the appropriate hit area size by calling
+ * @ref efl_ui_flip_interaction_direction_hitsize_set. By default, a minimum
+ * hit area will be created on the opposite edge of the flip.
+ *
+ * @param[in] enabled If that direction is enabled or not.
+ *
+ * @ingroup Efl_Ui_Flip
+ */
+EOAPI void elm_flip_interaction_direction_enabled_set(Efl_Ui_Flip *obj, Elm_Flip_Direction dir, Eina_Bool enabled);
+
+/**
+ * @brief Get the enabled state of that flip direction.
+ *
+ * @param[in] dir The direction to check.
+ *
+ * @return If that direction is enabled or not.
+ *
+ * @ingroup Efl_Ui_Flip
+ */
+EOAPI Eina_Bool elm_flip_interaction_direction_enabled_get(Efl_Ui_Flip *obj, Elm_Flip_Direction dir);
+
+/**
+ * @brief Add a new flip to the parent
+ *
+ * @param parent The parent object
+ * @return The new object or NULL if it cannot be created
+ *
+ * @ingroup Elm_Flip
+ */
+EAPI Evas_Object *elm_flip_add(Evas_Object *parent);
+
+/**
+ * @brief Set flip perspective
+ *
+ * @param obj The flip object
+ * @param foc The coordinate to set the focus on
+ * @param x The X coordinate
+ * @param y The Y coordinate
+ *
+ * @warning This function currently does nothing.
+ *
+ * @ingroup Elm_Flip
+ */
+EAPI void                 elm_flip_perspective_set(Evas_Object *obj, Evas_Coord foc, Evas_Coord x, Evas_Coord y);
+
+#include "efl_ui_flip.eo.legacy.h"
similarity index 80%
rename from src/lib/elementary/elm_widget_flip.h
rename to src/lib/elementary/efl_ui_widget_flip.h
index c1140c7..616214f 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef ELM_WIDGET_FLIP_H
-#define ELM_WIDGET_FLIP_H
+#ifndef EFL_UI_WIDGET_FLIP_H
+#define EFL_UI_WIDGET_FLIP_H
 
 #include "Elementary.h"
 
@@ -25,8 +25,8 @@ typedef struct _Slice               Slice;
 /**
  * Base widget smart data extended with flip instance data.
  */
-typedef struct _Elm_Flip_Data Elm_Flip_Data;
-struct _Elm_Flip_Data
+typedef struct _Efl_Ui_Flip_Data Efl_Ui_Flip_Data;
+struct _Efl_Ui_Flip_Data
 {
    Evas_Object          *obj;
    Evas_Object          *clip;
@@ -36,11 +36,13 @@ struct _Elm_Flip_Data
       Evas_Object *content, *clip;
    } front, back;
 
+   Eina_List            *content_list;
+
    Ecore_Animator       *animator;
    double                start, len;
    Ecore_Job            *job;
    Evas_Coord            down_x, down_y, x, y, ox, oy, w, h;
-   Elm_Flip_Interaction  intmode;
+   Efl_Ui_Flip_Interaction  intmode;
    Elm_Flip_Mode         mode;
    int                   dir;
    double                dir_hitsize[4];
@@ -81,11 +83,11 @@ struct _Vertex3
  * @}
  */
 
-#define ELM_FLIP_DATA_GET(o, sd) \
-  Elm_Flip_Data * sd = eo_data_scope_get(o, ELM_FLIP_CLASS)
+#define EFL_UI_FLIP_DATA_GET(o, sd) \
+  Efl_Ui_Flip_Data * sd = eo_data_scope_get(o, EFL_UI_FLIP_CLASS)
 
-#define ELM_FLIP_DATA_GET_OR_RETURN(o, ptr)          \
-  ELM_FLIP_DATA_GET(o, ptr);                         \
+#define EFL_UI_FLIP_DATA_GET_OR_RETURN(o, ptr)          \
+  EFL_UI_FLIP_DATA_GET(o, ptr);                         \
   if (EINA_UNLIKELY(!ptr))                           \
     {                                                \
        CRI("No widget data for object %p (%s)",      \
@@ -93,8 +95,8 @@ struct _Vertex3
        return;                                       \
     }
 
-#define ELM_FLIP_DATA_GET_OR_RETURN_VAL(o, ptr, val) \
-  ELM_FLIP_DATA_GET(o, ptr);                         \
+#define EFL_UI_FLIP_DATA_GET_OR_RETURN_VAL(o, ptr, val) \
+  EFL_UI_FLIP_DATA_GET(o, ptr);                         \
   if (EINA_UNLIKELY(!ptr))                           \
     {                                                \
        CRI("No widget data for object %p (%s)",      \
@@ -103,7 +105,7 @@ struct _Vertex3
     }
 
 #define ELM_FLIP_CHECK(obj)                              \
-  if (EINA_UNLIKELY(!eo_isa((obj), ELM_FLIP_CLASS))) \
+  if (EINA_UNLIKELY(!eo_isa((obj), EFL_UI_FLIP_CLASS))) \
     return
 
 #endif
index 3bdbdd8..2e20296 100644 (file)
  */
 
 #ifdef EFL_EO_API_SUPPORT
-#include "elm_flip_eo.h"
+#include "efl_ui_flip.eo.h"
 #endif
 #ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elm_flip_legacy.h"
+#include "efl_ui_flip_legacy.h"
 #endif
 /**
  * @}
diff --git a/src/lib/elementary/elm_flip_eo.h b/src/lib/elementary/elm_flip_eo.h
deleted file mode 100644 (file)
index 171f8ad..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include "elm_flip.eo.h"
\ No newline at end of file
diff --git a/src/lib/elementary/elm_flip_legacy.h b/src/lib/elementary/elm_flip_legacy.h
deleted file mode 100644 (file)
index 23f3b78..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * @brief Add a new flip to the parent
- *
- * @param parent The parent object
- * @return The new object or NULL if it cannot be created
- *
- * @ingroup Elm_Flip
- */
-EAPI Evas_Object *elm_flip_add(Evas_Object *parent);
-
-/**
- * @brief Set flip perspective
- *
- * @param obj The flip object
- * @param foc The coordinate to set the focus on
- * @param x The X coordinate
- * @param y The Y coordinate
- *
- * @warning This function currently does nothing.
- *
- * @ingroup Elm_Flip
- */
-EAPI void                 elm_flip_perspective_set(Evas_Object *obj, Evas_Coord foc, Evas_Coord x, Evas_Coord y);
-
-#include "elm_flip.eo.legacy.h"