[prev in list] [next in list] [prev in thread] [next in thread] 

List:       enlightenment-devel
Subject:    Re: [E-devel] [EGIT] [core/efl] master 08/10: efl_ui_pager: implement unpack_all/clear function
From:       Carsten Haitzler (The Rasterman) <raster () rasterman ! com>
Date:       2019-03-31 0:02:48
Message-ID: 20190331000248.617294e818fff670218f2b97 () rasterman ! com
[Download RAW message or body]

On Fri, 29 Mar 2019 11:18:24 -0400 Mike Blumenkrantz
<michael.blumenkrantz@gmail.com> said:

Indeed - listen to mike here. Please hold these back or in branches and merge
to master once release is done.

The only time a feature is ok is if it's an absolute must to fix bugs.

> Hi,
> 
> As you may be aware, we are currently in a feature freeze. This means that
> there should be absolutely no patches which implement features of any kind
> being merged. Furthermore, this patch breaks the build on OSX.
> 
> Please revert all of these feature patches until after the 1.22 release
> occurs. You should also refrain from landing any further patches
> implementing features during this freeze period without explicit approval
> on the mailing list.
> 
> Feature patches and other large should not be landing in the final week of
> a release cycle.
> 
> 
> Regards,
> Mike
> 
> On Fri, Mar 29, 2019 at 7:15 AM Jaeun Choi <jaeun12.choi@samsung.com> wrote:
> 
> > eunue pushed a commit to branch master.
> >
> >
> > http://git.enlightenment.org/core/efl.git/commit/?id=74c48f029632d2260816b4cb3de6dbb40a29f040
> >
> > commit 74c48f029632d2260816b4cb3de6dbb40a29f040
> > Author: Jaeun Choi <jaeun12.choi@samsung.com>
> > Date:   Fri Mar 29 19:48:58 2019 +0900
> >
> >     efl_ui_pager: implement unpack_all/clear function
> > ---
> >  src/lib/elementary/efl_page_indicator.c         | 13 ++++++-
> >  src/lib/elementary/efl_page_indicator_icon.c    | 20 +++++++++-
> >  src/lib/elementary/efl_page_transition.c        | 11 ++++++
> >  src/lib/elementary/efl_page_transition_scroll.c | 20 ++++++++++
> >  src/lib/elementary/efl_ui_pager.c               | 51
> > ++++++++++++++++++++++---
> >  src/lib/elementary/elm_priv.h                   |  2 +
> >  6 files changed, 109 insertions(+), 8 deletions(-)
> >
> > diff --git a/src/lib/elementary/efl_page_indicator.c
> > b/src/lib/elementary/efl_page_indicator.c
> > index 57cd2bf9f9..6b0be267b2 100644
> > --- a/src/lib/elementary/efl_page_indicator.c
> > +++ b/src/lib/elementary/efl_page_indicator.c
> > @@ -42,6 +42,14 @@ _efl_page_indicator_unpack(Eo *obj EINA_UNUSED,
> >       pd->curr_idx--;
> >  }
> >
> > +EOLIAN static void
> > +_efl_page_indicator_unpack_all(Eo *obj EINA_UNUSED,
> > +                               Efl_Page_Indicator_Data *pd)
> > +{
> > +   pd->cnt = 0;
> > +   pd->curr_idx = -1;
> > +}
> > +
> >  EOLIAN static void
> >  _efl_page_indicator_bind(Eo *obj EINA_UNUSED,
> >                           Efl_Page_Indicator_Data *pd,
> > @@ -72,6 +80,7 @@ EOAPI EFL_VOID_FUNC_BODYV(efl_page_indicator_pack,
> >                            EFL_FUNC_CALL(index), int index)
> >  EOAPI EFL_VOID_FUNC_BODYV(efl_page_indicator_unpack,
> >                            EFL_FUNC_CALL(index), int index)
> > +EOAPI EFL_VOID_FUNC_BODY(efl_page_indicator_unpack_all)
> >
> >  #define EFL_PAGE_INDICATOR_EXTRA_OPS \
> >     EFL_OBJECT_OP_FUNC(efl_page_indicator_update, \
> > @@ -79,6 +88,8 @@ EOAPI EFL_VOID_FUNC_BODYV(efl_page_indicator_unpack,
> >     EFL_OBJECT_OP_FUNC(efl_page_indicator_pack, \
> >                        _efl_page_indicator_pack), \
> >     EFL_OBJECT_OP_FUNC(efl_page_indicator_unpack, \
> > -                      _efl_page_indicator_unpack)
> > +                      _efl_page_indicator_unpack), \
> > +   EFL_OBJECT_OP_FUNC(efl_page_indicator_unpack_all, \
> > +                      _efl_page_indicator_unpack_all)
> >
> >  #include "efl_page_indicator.eo.c"
> > diff --git a/src/lib/elementary/efl_page_indicator_icon.c
> > b/src/lib/elementary/efl_page_indicator_icon.c
> > index 3c9c54e75e..55326cfdd6 100644
> > --- a/src/lib/elementary/efl_page_indicator_icon.c
> > +++ b/src/lib/elementary/efl_page_indicator_icon.c
> > @@ -109,6 +109,22 @@ _efl_page_indicator_icon_unpack(Eo *obj,
> >       }
> >  }
> >
> > +EOLIAN static void
> > +_efl_page_indicator_icon_unpack_all(Eo *obj,
> > +                                    Efl_Page_Indicator_Icon_Data *pd)
> > +{
> > +   Eo *item;
> > +
> > +   EINA_LIST_FREE(pd->items, item)
> > +     {
> > +        efl_del(item);
> > +     }
> > +
> > +   pd->curr = NULL;
> > +
> > +   efl_page_indicator_unpack_all(efl_super(obj, MY_CLASS));
> > +}
> > +
> >  EOLIAN static void
> >  _efl_page_indicator_icon_efl_page_indicator_bind(Eo *obj,
> >
> > Efl_Page_Indicator_Icon_Data *pd,
> > @@ -168,6 +184,8 @@ _efl_page_indicator_icon_efl_page_indicator_bind(Eo
> > *obj,
> >     EFL_OBJECT_OP_FUNC(efl_page_indicator_pack, \
> >                        _efl_page_indicator_icon_pack), \
> >     EFL_OBJECT_OP_FUNC(efl_page_indicator_unpack, \
> > -                      _efl_page_indicator_icon_unpack)
> > +                      _efl_page_indicator_icon_unpack), \
> > +   EFL_OBJECT_OP_FUNC(efl_page_indicator_unpack_all, \
> > +                      _efl_page_indicator_icon_unpack_all)
> >
> >  #include "efl_page_indicator_icon.eo.c"
> > diff --git a/src/lib/elementary/efl_page_transition.c
> > b/src/lib/elementary/efl_page_transition.c
> > index 3740a6996d..f6d73a2c10 100644
> > --- a/src/lib/elementary/efl_page_transition.c
> > +++ b/src/lib/elementary/efl_page_transition.c
> > @@ -71,6 +71,14 @@ _efl_page_transition_pack(Eo *obj EINA_UNUSED,
> >
> >  }
> >
> > +EOLIAN static void
> > +_efl_page_transition_unpack_all(Eo *obj EINA_UNUSED,
> > +                                Efl_Page_Transition_Data *pd EINA_UNUSED,
> > +                                int index EINA_UNUSED)
> > +{
> > +
> > +}
> > +
> >  EOLIAN static void
> >  _efl_page_transition_curr_page_change(Eo *obj EINA_UNUSED,
> >                                        Efl_Page_Transition_Data *pd
> > EINA_UNUSED,
> > @@ -94,6 +102,7 @@ EOAPI EFL_VOID_FUNC_BODYV(efl_page_transition_update,
> >                            EFL_FUNC_CALL(move), double move)
> >  EOAPI EFL_VOID_FUNC_BODYV(efl_page_transition_pack,
> >                            EFL_FUNC_CALL(index), int index)
> > +EOAPI EFL_VOID_FUNC_BODY(efl_page_transition_unpack_all)
> >  EOAPI EFL_VOID_FUNC_BODYV(efl_page_transition_curr_page_change,
> >                            EFL_FUNC_CALL(diff), int diff)
> >  EOAPI EFL_VOID_FUNC_BODYV(efl_page_transition_page_size_set,
> > @@ -109,6 +118,8 @@ EOAPI EFL_FUNC_BODYV(efl_page_transition_loop_set,
> > Eina_Bool, 0,
> >                        _efl_page_transition_update), \
> >     EFL_OBJECT_OP_FUNC(efl_page_transition_pack, \
> >                        _efl_page_transition_pack), \
> > +   EFL_OBJECT_OP_FUNC(efl_page_transition_unpack_all, \
> > +                      _efl_page_transition_unpack_all), \
> >     EFL_OBJECT_OP_FUNC(efl_page_transition_curr_page_change, \
> >                        _efl_page_transition_curr_page_change), \
> >     EFL_OBJECT_OP_FUNC(efl_page_transition_page_size_set, \
> > diff --git a/src/lib/elementary/efl_page_transition_scroll.c
> > b/src/lib/elementary/efl_page_transition_scroll.c
> > index 5c5cb9aa11..ac3c6dab1d 100644
> > --- a/src/lib/elementary/efl_page_transition_scroll.c
> > +++ b/src/lib/elementary/efl_page_transition_scroll.c
> > @@ -412,6 +412,24 @@ _efl_page_transition_scroll_pack(Eo *obj,
> >     _efl_page_transition_scroll_update(obj, pd, 0.0);
> >  }
> >
> > +EOLIAN static void
> > +_efl_page_transition_scroll_unpack_all(Eo *obj EINA_UNUSED,
> > +                                       Efl_Page_Transition_Scroll_Data
> > *pd)
> > +{
> > +   Eina_List *list;
> > +   Page_Info *pi;
> > +
> > +   EINA_LIST_FOREACH(pd->page_infos, list, pi)
> > +     {
> > +        efl_pack_unpack(pi->obj, pi->content);
> > +
> > +        pi->content_num = -1;
> > +        pi->content = NULL;
> > +        pi->visible = EINA_FALSE;
> > +     }
> > +   return EINA_TRUE;
> > +}
> > +
> >  EOLIAN static void
> >  _efl_page_transition_scroll_curr_page_change(Eo *obj EINA_UNUSED,
> >
> > Efl_Page_Transition_Scroll_Data *pd,
> > @@ -656,6 +674,8 @@ _efl_page_transition_scroll_efl_object_invalidate(Eo
> > *obj,
> >                        _efl_page_transition_scroll_update), \
> >     EFL_OBJECT_OP_FUNC(efl_page_transition_pack, \
> >                        _efl_page_transition_scroll_pack), \
> > +   EFL_OBJECT_OP_FUNC(efl_page_transition_unpack_all, \
> > +                      _efl_page_transition_scroll_unpack_all), \
> >     EFL_OBJECT_OP_FUNC(efl_page_transition_curr_page_change, \
> >                        _efl_page_transition_scroll_curr_page_change), \
> >     EFL_OBJECT_OP_FUNC(efl_page_transition_page_size_set, \
> > diff --git a/src/lib/elementary/efl_ui_pager.c
> > b/src/lib/elementary/efl_ui_pager.c
> > index 520398941c..0ce1488d8c 100644
> > --- a/src/lib/elementary/efl_ui_pager.c
> > +++ b/src/lib/elementary/efl_ui_pager.c
> > @@ -784,20 +784,59 @@ _efl_ui_pager_loop_mode_get(const Eo *obj
> > EINA_UNUSED,
> >     return pd->loop;
> >  }
> >
> > +static void
> > +_unpack_all(Efl_Ui_Pager_Data *pd,
> > +            Eina_Bool clear)
> > +{
> > +   Eo *subobj;
> > +
> > +   pd->cnt = 0;
> > +   pd->curr.page = -1;
> > +   pd->curr.pos = 0.0;
> > +
> > +   if (pd->transition)
> > +     {
> > +        efl_page_transition_unpack_all(pd->transition);
> > +     }
> > +   else
> > +     {
> > +        subobj = eina_list_nth(pd->content_list, pd->curr.page);
> > +        efl_pack_unpack(pd->page_box, subobj);
> > +     }
> > +
> > +   if (clear)
> > +     {
> > +        EINA_LIST_FREE(pd->content_list, subobj)
> > +           evas_object_del(subobj);
> > +     }
> > +   else
> > +     {
> > +        EINA_LIST_FREE(pd->content_list, subobj)
> > +           efl_canvas_object_clipper_set(subobj, NULL);
> > +     }
> > +
> > +   if (pd->indicator)
> > +     {
> > +        efl_page_indicator_unpack_all(pd->indicator);
> > +     }
> > +}
> > +
> >  EOLIAN static Eina_Bool
> >  _efl_ui_pager_efl_pack_pack_clear(Eo *obj EINA_UNUSED,
> > -                                  Efl_Ui_Pager_Data *pd EINA_UNUSED)
> > +                                  Efl_Ui_Pager_Data *pd)
> >  {
> > -   ERR("Soon to be implemented");
> > -   return EINA_FALSE;
> > +   _unpack_all(pd, EINA_TRUE);
> > +
> > +   return EINA_TRUE;
> >  }
> >
> >  EOLIAN static Eina_Bool
> >  _efl_ui_pager_efl_pack_unpack_all(Eo *obj EINA_UNUSED,
> > -                                  Efl_Ui_Pager_Data *pd EINA_UNUSED)
> > +                                  Efl_Ui_Pager_Data *pd)
> >  {
> > -   ERR("Soon to be implemented");
> > -   return EINA_FALSE;
> > +   _unpack_all(pd, EINA_FALSE);
> > +
> > +   return EINA_TRUE;
> >  }
> >
> >  static void
> > diff --git a/src/lib/elementary/elm_priv.h b/src/lib/elementary/elm_priv.h
> > index 54c32cf9a6..a1bd8be552 100644
> > --- a/src/lib/elementary/elm_priv.h
> > +++ b/src/lib/elementary/elm_priv.h
> > @@ -875,12 +875,14 @@ EOAPI void
> >  efl_page_transition_page_size_set(Eo *obj, Eina_Size2D sz);
> >  EOAPI void                      efl_page_transition_padding_size_set(Eo
> > *obj, int padding);
> >  EOAPI void                      efl_page_transition_update(Eo *obj,
> > double pos);
> >  EOAPI void                      efl_page_transition_pack(Eo *obj, int
> > index);
> > +EOAPI void                      efl_page_transition_unpack_all(Eo *obj);
> >  EOAPI void                      efl_page_transition_curr_page_change(Eo
> > *obj, int diff);
> >  EOAPI Eina_Bool                 efl_page_transition_loop_set(Eo *obj,
> > Efl_Ui_Pager_Loop loop);
> >
> >  EOAPI void                      efl_page_indicator_update(Eo *obj, double
> > pos);
> >  EOAPI void                      efl_page_indicator_pack(Eo *obj, int
> > index);
> >  EOAPI void                      efl_page_indicator_unpack(Eo *obj, int
> > index);
> > +EOAPI void                      efl_page_indicator_unpack_all(Eo *obj);
> >
> >  Eina_Bool _elm_config_accel_preference_parse(const char *pref,
> > Eina_Stringshare **accel, int *gl_depth, int *gl_stencil, int *gl_msaa);
> >
> >
> > --
> >
> >
> >
> 
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
Carsten Haitzler - raster@rasterman.com



_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic