jackdanielz pushed a commit to branch master.
commit 798541da705c1a41db424c94fe3bb268fedd3b16
Author: Daniel Zaoui <[email protected]>
Date: Fri May 24 16:23:28 2013 +0300
Elementary: Fix scroller APIs to be usable by all the widgets using the
scrollable interface.
---
src/lib/elm_interface_scrollable.c | 30 ++++++++++++++++++++++++++
src/lib/elm_interface_scrollable.h | 28 ++++++++++++++++++++++++
src/lib/elm_scroller.c | 42 ++----------------------------------
src/lib/elm_scroller_eo.h | 44 --------------------------------------
4 files changed, 60 insertions(+), 84 deletions(-)
diff --git a/src/lib/elm_interface_scrollable.c
b/src/lib/elm_interface_scrollable.c
index 0c0b871..e34f17f 100644
--- a/src/lib/elm_interface_scrollable.c
+++ b/src/lib/elm_interface_scrollable.c
@@ -1801,6 +1801,18 @@ _elm_scroll_content_region_show_internal(Evas_Object
*obj,
return EINA_TRUE;
}
+static void
+_elm_scroll_content_region_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+{
+ Evas_Coord *x = va_arg(*list, Evas_Coord *);
+ Evas_Coord *y = va_arg(*list, Evas_Coord *);
+ Evas_Coord *w = va_arg(*list, Evas_Coord *);
+ Evas_Coord *h = va_arg(*list, Evas_Coord *);
+
+ eo_do(obj, elm_scrollable_interface_content_pos_get(x, y));
+ eo_do(obj, elm_scrollable_interface_content_viewport_size_get(w, h));
+}
+
/* Set should be used for calculated positions, for example, when we move
* because of an animation or because this is the correct position after
* constraints. */
@@ -4213,6 +4225,19 @@ _elm_scroll_paging_get(Eo *obj EINA_UNUSED, void *_pd,
va_list *list)
}
static void
+_elm_scroll_page_relative_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+{
+ Evas_Coord pagesize_h, pagesize_v;
+
+ double h_pagerel = va_arg(*list, double);
+ double v_pagerel = va_arg(*list, double);
+
+ eo_do(obj, elm_scrollable_interface_paging_get(NULL, NULL, &pagesize_h,
&pagesize_v));
+
+ eo_do(obj, elm_scrollable_interface_paging_set(h_pagerel, v_pagerel,
pagesize_h, pagesize_v));
+}
+
+static void
_elm_scroll_page_scroll_limit_set(Eo *obj EINA_UNUSED, void *_pd, va_list
*list)
{
Elm_Scrollable_Smart_Interface_Data *sid = _pd;
@@ -4505,6 +4530,7 @@ _elm_scrollable_interface_constructor(Eo_Class *klass)
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_POS_GET),
_elm_scroll_content_pos_get),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_REGION_SHOW),
_elm_scroll_content_region_show),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_REGION_SET),
_elm_scroll_content_region_set),
+
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_REGION_GET),
_elm_scroll_content_region_get),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_SIZE_GET),
_elm_scroll_content_size_get),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_VIEWPORT_SIZE_GET),
_elm_scroll_content_viewport_size_get),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_MIN_LIMIT),
_elm_scroll_content_min_limit),
@@ -4527,6 +4553,7 @@ _elm_scrollable_interface_constructor(Eo_Class *klass)
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_BOUNCE_ALLOW_GET),
_elm_scroll_bounce_allow_get),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_PAGING_SET),
_elm_scroll_paging_set),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_PAGING_GET),
_elm_scroll_paging_get),
+
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_PAGE_RELATIVE_SET),
_elm_scroll_page_relative_set),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_PAGE_SCROLL_LIMIT_SET),
_elm_scroll_page_scroll_limit_set),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_PAGE_SCROLL_LIMIT_GET),
_elm_scroll_page_scroll_limit_get),
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_CURRENT_PAGE_GET),
_elm_scroll_current_page_get),
@@ -4581,6 +4608,7 @@ static const Eo_Op_Description op_desc[] = {
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_POS_GET,
"description here"),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_REGION_SHOW,
"description here"),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_REGION_SET,
"description here"),
+ EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_REGION_GET,
"Get the currently visible content region."),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_SIZE_GET,
"description here"),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_VIEWPORT_SIZE_GET,
"description here"),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_MIN_LIMIT,
"description here"),
@@ -4607,6 +4635,8 @@ static const Eo_Op_Description op_desc[] = {
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_BOUNCE_ALLOW_GET,
"description here"),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_PAGING_SET,
"description here"),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_PAGING_GET,
"description here"),
+ EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_PAGE_RELATIVE_SET,
+ "Set scroll page size relative to viewport size."),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_PAGE_SCROLL_LIMIT_SET,
"Set the maxium of the movable page at a flicking"),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_PAGE_SCROLL_LIMIT_GET,
"Get the maxium of the movable page at a flicking"),
EO_OP_DESCRIPTION(ELM_SCROLLABLE_INTERFACE_SUB_ID_CURRENT_PAGE_GET,
"description here"),
diff --git a/src/lib/elm_interface_scrollable.h
b/src/lib/elm_interface_scrollable.h
index f5a83e9..a0c3821 100644
--- a/src/lib/elm_interface_scrollable.h
+++ b/src/lib/elm_interface_scrollable.h
@@ -176,6 +176,7 @@ enum
ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_POS_GET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_REGION_SHOW,
ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_REGION_SET,
+ ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_REGION_GET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_SIZE_GET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_VIEWPORT_SIZE_GET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_MIN_LIMIT,
@@ -198,6 +199,7 @@ enum
ELM_SCROLLABLE_INTERFACE_SUB_ID_BOUNCE_ALLOW_GET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_PAGING_SET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_PAGING_GET,
+ ELM_SCROLLABLE_INTERFACE_SUB_ID_PAGE_RELATIVE_SET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_PAGE_SCROLL_LIMIT_SET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_PAGE_SCROLL_LIMIT_GET,
ELM_SCROLLABLE_INTERFACE_SUB_ID_CURRENT_PAGE_GET,
@@ -530,6 +532,20 @@ enum
#define elm_scrollable_interface_content_region_set(x, y, w, h)
ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_REGION_SET),
EO_TYPECHECK(Evas_Coord, x), EO_TYPECHECK(Evas_Coord, y),
EO_TYPECHECK(Evas_Coord, w), EO_TYPECHECK(Evas_Coord, h)
/**
+ * @def elm_scrollable_interface_content_region_get
+ * @since 1.8
+ *
+ * No description supplied by the EAPI.
+ *
+ * @param[out] x
+ * @param[out] y
+ * @param[out] w
+ * @param[out] h
+ *
+ */
+#define elm_scrollable_interface_content_region_get(x, y, w, h)
ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_CONTENT_REGION_GET),
EO_TYPECHECK(Evas_Coord *, x), EO_TYPECHECK(Evas_Coord *, y),
EO_TYPECHECK(Evas_Coord *, w), EO_TYPECHECK(Evas_Coord *, h)
+
+/**
* @def elm_scrollable_interface_content_size_get
* @since 1.8
*
@@ -614,6 +630,18 @@ enum
#define elm_scrollable_interface_page_size_get(x, y)
ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_PAGE_SIZE_GET),
EO_TYPECHECK(Evas_Coord *, x), EO_TYPECHECK(Evas_Coord *, y)
/**
+ * @def elm_scrollable_interface_page_relative_set
+ * @since 1.8
+ *
+ * @brief Set scroll page size relative to viewport size.
+ *
+ * @param[in] h_pagerel
+ * @param[in] v_pagerel
+ *
+ */
+#define elm_scrollable_interface_page_relative_set(h_pagerel, v_pagerel)
ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_PAGE_RELATIVE_SET),
EO_TYPECHECK(double, h_pagerel), EO_TYPECHECK(double, v_pagerel)
+
+/**
* @def elm_scrollable_interface_policy_set
* @since 1.8
*
diff --git a/src/lib/elm_scroller.c b/src/lib/elm_scroller.c
index 4b69e79..99d843e 100644
--- a/src/lib/elm_scroller.c
+++ b/src/lib/elm_scroller.c
@@ -988,19 +988,7 @@ elm_scroller_region_get(const Evas_Object *obj,
Evas_Coord *h)
{
ELM_SCROLLABLE_CHECK(obj);
- eo_do((Eo *) obj, elm_obj_scroller_region_get(x, y, w, h));
-}
-
-static void
-_region_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
-{
- Evas_Coord *x = va_arg(*list, Evas_Coord *);
- Evas_Coord *y = va_arg(*list, Evas_Coord *);
- Evas_Coord *w = va_arg(*list, Evas_Coord *);
- Evas_Coord *h = va_arg(*list, Evas_Coord *);
-
- if ((x) || (y)) eo_do((Eo *) obj,
elm_scrollable_interface_content_pos_get(x, y));
- if ((w) || (h)) eo_do((Eo *) obj,
elm_scrollable_interface_content_viewport_size_get(w, h));
+ eo_do((Eo *) obj, elm_scrollable_interface_content_region_get(x, y, w, h));
}
EAPI void
@@ -1009,14 +997,6 @@ elm_scroller_child_size_get(const Evas_Object *obj,
Evas_Coord *h)
{
ELM_SCROLLABLE_CHECK(obj);
- eo_do((Eo *) obj, elm_obj_scroller_child_size_get(w, h));
-}
-
-static void
-_child_size_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
-{
- Evas_Coord *w = va_arg(*list, Evas_Coord *);
- Evas_Coord *h = va_arg(*list, Evas_Coord *);
eo_do((Eo *) obj, elm_scrollable_interface_content_size_get(w, h));
}
@@ -1069,20 +1049,8 @@ elm_scroller_page_relative_set(Evas_Object *obj,
double v_pagerel)
{
ELM_SCROLLABLE_CHECK(obj);
- eo_do(obj, elm_obj_scroller_page_relative_set(h_pagerel, v_pagerel));
-}
-
-static void
-_page_relative_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
-{
- Evas_Coord pagesize_h, pagesize_v;
-
- double h_pagerel = va_arg(*list, double);
- double v_pagerel = va_arg(*list, double);
-
- eo_do(obj, elm_scrollable_interface_paging_get(NULL, NULL, &pagesize_h,
&pagesize_v));
- eo_do(obj, elm_scrollable_interface_paging_set(h_pagerel, v_pagerel,
pagesize_h, pagesize_v));
+ eo_do((Eo *)obj, elm_scrollable_interface_page_relative_set(h_pagerel,
v_pagerel));
}
EAPI void
@@ -1331,9 +1299,6 @@ _class_constructor(Eo_Class *klass)
EO_OP_FUNC(ELM_SCROLLABLE_INTERFACE_ID(ELM_SCROLLABLE_INTERFACE_SUB_ID_PAGE_SIZE_SET),
_page_size_set),
EO_OP_FUNC(ELM_OBJ_SCROLLER_ID(ELM_OBJ_SCROLLER_SUB_ID_CUSTOM_WIDGET_BASE_THEME_SET),
_custom_widget_base_theme_set),
- EO_OP_FUNC(ELM_OBJ_SCROLLER_ID(ELM_OBJ_SCROLLER_SUB_ID_REGION_GET),
_region_get),
-
EO_OP_FUNC(ELM_OBJ_SCROLLER_ID(ELM_OBJ_SCROLLER_SUB_ID_CHILD_SIZE_GET),
_child_size_get),
-
EO_OP_FUNC(ELM_OBJ_SCROLLER_ID(ELM_OBJ_SCROLLER_SUB_ID_PAGE_RELATIVE_SET),
_page_relative_set),
EO_OP_FUNC(ELM_OBJ_SCROLLER_ID(ELM_OBJ_SCROLLER_SUB_ID_PAGE_SCROLL_LIMIT_SET),
_page_scroll_limit_set),
EO_OP_FUNC(ELM_OBJ_SCROLLER_ID(ELM_OBJ_SCROLLER_SUB_ID_PAGE_SCROLL_LIMIT_GET),
_page_scroll_limit_get),
EO_OP_FUNC(ELM_OBJ_SCROLLER_ID(ELM_OBJ_SCROLLER_SUB_ID_PROPAGATE_EVENTS_SET),
_propagate_events_set),
@@ -1347,9 +1312,6 @@ _class_constructor(Eo_Class *klass)
static const Eo_Op_Description op_desc[] = {
EO_OP_DESCRIPTION(ELM_OBJ_SCROLLER_SUB_ID_CUSTOM_WIDGET_BASE_THEME_SET,
"DEPRECATED: Set custom theme elements for the scroller"),
- EO_OP_DESCRIPTION(ELM_OBJ_SCROLLER_SUB_ID_REGION_GET, "Get the currently
visible content region."),
- EO_OP_DESCRIPTION(ELM_OBJ_SCROLLER_SUB_ID_CHILD_SIZE_GET, "Get the size
of the content object."),
- EO_OP_DESCRIPTION(ELM_OBJ_SCROLLER_SUB_ID_PAGE_RELATIVE_SET, "Set scroll
page size relative to viewport size."),
EO_OP_DESCRIPTION(ELM_OBJ_SCROLLER_SUB_ID_PAGE_SCROLL_LIMIT_SET, "Set the
maxium of the movable page at a flicking."),
EO_OP_DESCRIPTION(ELM_OBJ_SCROLLER_SUB_ID_PAGE_SCROLL_LIMIT_GET, "Get the
maxium of the movable page at a flicking."),
EO_OP_DESCRIPTION(ELM_OBJ_SCROLLER_SUB_ID_PROPAGATE_EVENTS_SET, "Set
event propagation on a scroller."),
diff --git a/src/lib/elm_scroller_eo.h b/src/lib/elm_scroller_eo.h
index 18e84fc..ac701c2 100644
--- a/src/lib/elm_scroller_eo.h
+++ b/src/lib/elm_scroller_eo.h
@@ -12,9 +12,6 @@ extern EAPI Eo_Op ELM_OBJ_SCROLLER_BASE_ID;
enum
{
ELM_OBJ_SCROLLER_SUB_ID_CUSTOM_WIDGET_BASE_THEME_SET,
- ELM_OBJ_SCROLLER_SUB_ID_REGION_GET,
- ELM_OBJ_SCROLLER_SUB_ID_CHILD_SIZE_GET,
- ELM_OBJ_SCROLLER_SUB_ID_PAGE_RELATIVE_SET,
ELM_OBJ_SCROLLER_SUB_ID_PAGE_SCROLL_LIMIT_SET,
ELM_OBJ_SCROLLER_SUB_ID_PAGE_SCROLL_LIMIT_GET,
ELM_OBJ_SCROLLER_SUB_ID_PROPAGATE_EVENTS_SET,
@@ -39,47 +36,6 @@ enum
#define elm_obj_scroller_custom_widget_base_theme_set(klass, group)
ELM_OBJ_SCROLLER_ID(ELM_OBJ_SCROLLER_SUB_ID_CUSTOM_WIDGET_BASE_THEME_SET),
EO_TYPECHECK(const char *, klass), EO_TYPECHECK(const char *, group)
/**
- * @def elm_obj_scroller_region_get
- * @since 1.8
- *
- * @brief Get the currently visible content region
- *
- * @param[out] x
- * @param[out] y
- * @param[out] w
- * @param[out] h
- *
- * @see elm_scroller_region_get
- */
-#define elm_obj_scroller_region_get(x, y, w, h)
ELM_OBJ_SCROLLER_ID(ELM_OBJ_SCROLLER_SUB_ID_REGION_GET),
EO_TYPECHECK(Evas_Coord *, x), EO_TYPECHECK(Evas_Coord *, y),
EO_TYPECHECK(Evas_Coord *, w), EO_TYPECHECK(Evas_Coord *, h)
-
-/**
- * @def elm_obj_scroller_child_size_get
- * @since 1.8
- *
- * @brief Get the size of the content object
- *
- * @param[out] w
- * @param[out] h
- *
- * @see elm_scroller_child_size_get
- */
-#define elm_obj_scroller_child_size_get(w, h)
ELM_OBJ_SCROLLER_ID(ELM_OBJ_SCROLLER_SUB_ID_CHILD_SIZE_GET),
EO_TYPECHECK(Evas_Coord *, w), EO_TYPECHECK(Evas_Coord *, h)
-
-/**
- * @def elm_obj_scroller_page_relative_set
- * @since 1.8
- *
- * @brief Set scroll page size relative to viewport size.
- *
- * @param[in] h_pagerel
- * @param[in] v_pagerel
- *
- * @see elm_scroller_page_relative_set
- */
-#define elm_obj_scroller_page_relative_set(h_pagerel, v_pagerel)
ELM_OBJ_SCROLLER_ID(ELM_OBJ_SCROLLER_SUB_ID_PAGE_RELATIVE_SET),
EO_TYPECHECK(double, h_pagerel), EO_TYPECHECK(double, v_pagerel)
-
-/**
* @def elm_obj_scroller_page_scroll_limit_set
* @since 1.8
*
--
------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may