diff --git a/src/bin/elementary/test_ui_spotlight.c b/src/bin/elementary/test_ui_spotlight.c index 281b55e510..f38dfca754 100644 --- a/src/bin/elementary/test_ui_spotlight.c +++ b/src/bin/elementary/test_ui_spotlight.c @@ -881,12 +881,10 @@ test_ui_spotlight_stack(void *data EINA_UNUSED, efl_file_load(efl_added), efl_content_set(efl_part(panes, "second"), efl_added)); - spotlight = efl_add(EFL_UI_SPOTLIGHT_CONTAINER_CLASS, layout, + spotlight = efl_add(EFL_UI_STACK_CLASS, layout, efl_content_set(efl_part(layout, "pager"), efl_added), efl_ui_spotlight_size_set(efl_added, EINA_SIZE2D(200, 300))); - efl_ui_spotlight_manager_set(spotlight, efl_new(EFL_UI_SPOTLIGHT_MANAGER_STACK_CLASS)); - efl_add(EFL_UI_BUTTON_CLASS, layout, efl_text_set(efl_added, "Pop"), efl_event_callback_add(efl_added, @@ -1073,12 +1071,10 @@ test_ui_spotlight_scroll(void *data EINA_UNUSED, efl_file_load(efl_added), efl_content_set(efl_part(panes, "second"), efl_added)); - spotlight = efl_add(EFL_UI_SPOTLIGHT_CONTAINER_CLASS, layout, + spotlight = efl_add(EFL_UI_PAGER_CLASS, layout, efl_content_set(efl_part(layout, "pager"), efl_added), efl_ui_spotlight_size_set(efl_added, EINA_SIZE2D(200, 300))); - efl_ui_spotlight_manager_set(spotlight, efl_new(EFL_UI_SPOTLIGHT_MANAGER_SCROLL_CLASS)); - efl_add(EFL_UI_BUTTON_CLASS, layout, efl_text_set(efl_added, "Prev"), efl_event_callback_add(efl_added, diff --git a/src/lib/elementary/Efl_Ui.h b/src/lib/elementary/Efl_Ui.h index b3b07b5181..9bcac0b509 100644 --- a/src/lib/elementary/Efl_Ui.h +++ b/src/lib/elementary/Efl_Ui.h @@ -273,6 +273,8 @@ typedef Eo Efl_Ui_Spotlight_Indicator; # include # include # include +# include +# include # include # include diff --git a/src/lib/elementary/efl_ui_pager.c b/src/lib/elementary/efl_ui_pager.c new file mode 100644 index 0000000000..8ac5a429cc --- /dev/null +++ b/src/lib/elementary/efl_ui_pager.c @@ -0,0 +1,27 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif + +#include +#include "elm_priv.h" + +#define MY_CLASS EFL_UI_PAGER_CLASS + +typedef struct { + +} Efl_Ui_Pager_Data; + +EOLIAN static Efl_Object * +_efl_ui_pager_efl_object_constructor(Eo *obj, Efl_Ui_Pager_Data *sd EINA_UNUSED) +{ + Eo *scroller; + + obj = efl_constructor(efl_super(obj, MY_CLASS)); + + scroller = efl_new(EFL_UI_SPOTLIGHT_MANAGER_SCROLL_CLASS); + efl_ui_spotlight_manager_set(obj, scroller); + + return obj; +} + +#include "efl_ui_pager.eo.c" diff --git a/src/lib/elementary/efl_ui_pager.eo b/src/lib/elementary/efl_ui_pager.eo new file mode 100644 index 0000000000..08840922e8 --- /dev/null +++ b/src/lib/elementary/efl_ui_pager.eo @@ -0,0 +1,10 @@ +class @beta Efl.Ui.Pager extends Efl.Ui.Spotlight.Container +{ + [[A spotlight with predefined @Efl.Ui.Spotlight.Container.spotlight_manager + + The container will slide in the content sideways, the old content will slide out. + ]] + implements { + Efl.Object.constructor; + } +} diff --git a/src/lib/elementary/efl_ui_stack.c b/src/lib/elementary/efl_ui_stack.c new file mode 100644 index 0000000000..e1769b7603 --- /dev/null +++ b/src/lib/elementary/efl_ui_stack.c @@ -0,0 +1,27 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif + +#include +#include "elm_priv.h" + +#define MY_CLASS EFL_UI_STACK_CLASS + +typedef struct { + +} Efl_Ui_Stack_Data; + +EOLIAN static Efl_Object * +_efl_ui_stack_efl_object_constructor(Eo *obj, Efl_Ui_Stack_Data *sd EINA_UNUSED) +{ + Eo *stack; + + obj = efl_constructor(efl_super(obj, MY_CLASS)); + + stack = efl_new(EFL_UI_SPOTLIGHT_MANAGER_STACK_CLASS); + efl_ui_spotlight_manager_set(obj, stack); + + return obj; +} + +#include "efl_ui_stack.eo.c" diff --git a/src/lib/elementary/efl_ui_stack.eo b/src/lib/elementary/efl_ui_stack.eo new file mode 100644 index 0000000000..bdaaeed9a2 --- /dev/null +++ b/src/lib/elementary/efl_ui_stack.eo @@ -0,0 +1,10 @@ +class @beta Efl.Ui.Stack extends Efl.Ui.Spotlight.Container +{ + [[A spotlight with predefined @Efl.Ui.Spotlight.Container.spotlight_manager + + The container will alpha-blend the new content over the old content. + ]] + implements { + Efl.Object.constructor; + } +} diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build index e9aaa55f57..cd88ccebf4 100644 --- a/src/lib/elementary/meson.build +++ b/src/lib/elementary/meson.build @@ -188,6 +188,8 @@ pub_eo_files = [ 'efl_ui_collection_view.eo', 'efl_ui_collection_view_focus_manager.eo', 'efl_ui_grid_view.eo', + 'efl_ui_pager.eo', + 'efl_ui_stack.eo', ] foreach eo_file : pub_eo_files @@ -944,6 +946,8 @@ elementary_src = [ 'efl_ui_select_model.c', 'efl_ui_view_model.c', 'efl_ui_collection_view.c', + 'efl_ui_pager.c', + 'efl_ui_stack.c' ] elementary_deps = [emile, eo, efl, edje, ethumb, ethumb_client, emotion, ecore_imf, ecore_con, eldbus, efreet, efreet_mime, efreet_trash, eio, atspi, dl, intl] diff --git a/src/tests/elementary/spec/efl_test_basics.c b/src/tests/elementary/spec/efl_test_basics.c index 1db6a17651..c40ffcd80b 100644 --- a/src/tests/elementary/spec/efl_test_basics.c +++ b/src/tests/elementary/spec/efl_test_basics.c @@ -46,7 +46,9 @@ "Efl.Ui.Relative_Container", "Efl.Ui.Animation_View", "Efl.Ui.Table", - "Efl.Ui.Flip" + "Efl.Ui.Flip", + "Efl.Ui.Stack", + "Efl.Ui.Pager" ], "custom-mapping" : { "Efl.Ui.Grid" : "EFL_UI_GRID_DEFAULT_ITEM_CLASS",