summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2019-12-02 16:25:36 +0100
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2019-12-02 18:30:26 +0100
commit6d2a9ae1f86449d773a103e277f8b7e1c2282a57 (patch)
tree4590a177cbddc1f75974d28e7fe35be2ef01493e
parent509b1c8f6def820f88158a8cd4972685a5bea52b (diff)
downloadefl-6d2a9ae1f86449d773a103e277f8b7e1c2282a57.tar.gz
introduce efl_ui_{pager/scroller}
They are just helpers, so a user does not need to handcreate spotlight managers. This also leaves us the possibility of letting spotlight_managers beeing @beta. ref T7991 Differential Revision: https://phab.enlightenment.org/D10773
-rw-r--r--src/bin/elementary/test_ui_spotlight.c8
-rw-r--r--src/lib/elementary/Efl_Ui.h2
-rw-r--r--src/lib/elementary/efl_ui_pager.c27
-rw-r--r--src/lib/elementary/efl_ui_pager.eo10
-rw-r--r--src/lib/elementary/efl_ui_stack.c27
-rw-r--r--src/lib/elementary/efl_ui_stack.eo10
-rw-r--r--src/lib/elementary/meson.build4
-rw-r--r--src/tests/elementary/spec/efl_test_basics.c4
8 files changed, 85 insertions, 7 deletions
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 <efl_ui_spotlight_manager_scroll.eo.h>
# include <efl_ui_spotlight_manager_stack.eo.h>
# include <efl_ui_spotlight_util.eo.h>
+# include <efl_ui_stack.eo.h>
+# include <efl_ui_pager.eo.h>
# include <efl_ui_navigation_bar.eo.h>
# include <efl_ui_navigation_bar_part.eo.h>
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 <Efl_Ui.h>
+#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 <Efl_Ui.h>
+#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",