From a13770890b7873984a0bb30aba4c12e17b654754 Mon Sep 17 00:00:00 2001 From: Rajeev Ranjan Date: Tue, 7 Dec 2010 14:29:59 +0530 Subject: [PATCH] [src/lib/elm_slidingdrawer.c] ECoding compliance for Sliding Drawer. --- src/lib/elm_slidingdrawer.c | 360 ++++++++++++++++++++++++-------------------- 1 file changed, 200 insertions(+), 160 deletions(-) diff --git a/src/lib/elm_slidingdrawer.c b/src/lib/elm_slidingdrawer.c index 92e469c..db8dd83 100644 --- a/src/lib/elm_slidingdrawer.c +++ b/src/lib/elm_slidingdrawer.c @@ -5,8 +5,6 @@ * This is a slidingdrawer. */ - - #include #include "elm_priv.h" @@ -14,94 +12,121 @@ typedef struct _Widget_Data Widget_Data; struct _Widget_Data { - Evas_Object *parent; - Evas_Object *base; - Evas_Object *handler; - Evas_Object *dragable_rect; - Elm_SlidingDrawer_Pos pos; - double max_drag_w; - double max_drag_h; - Elm_SlidingDrawer_Drag_Value value; + Evas_Object *parent; + Evas_Object *base; + Evas_Object *handler; + Evas_Object *dragable_rect; + Elm_SlidingDrawer_Pos pos; + double max_drag_w; + double max_drag_h; + Elm_SlidingDrawer_Drag_Value value; }; static const char *widtype = NULL; + static void _del_hook(Evas_Object *obj); + static void _theme_hook(Evas_Object *obj); + static void _sizing_eval(Evas_Object *obj); -static void _parent_resize(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _drag_cb(void *data, Evas_Object *obj, const char *emission, const char *source); -static void _up_cb(void *data, Evas_Object *obj, const char *emission, const char *source); -static void _down_cb(void *data, Evas_Object *obj, const char *emission, const char *source); + +static void _parent_resize(void *data, Evas * e, Evas_Object *obj, + void *event_info); +static void _drag_cb(void *data, Evas_Object *obj, const char *emission, + const char *source); +static void _up_cb(void *data, Evas_Object *obj, const char *emission, + const char *source); +static void _down_cb(void *data, Evas_Object *obj, const char *emission, + const char *source); static void _del_hook(Evas_Object *obj) { Widget_Data *wd = (Widget_Data *) elm_widget_data_get(obj); - evas_object_event_callback_del(wd->parent, EVAS_CALLBACK_RESIZE, _parent_resize); + + evas_object_event_callback_del(wd->parent, EVAS_CALLBACK_RESIZE, + _parent_resize); free(wd); } -static void +static void _theme_hook(Evas_Object *obj) { - Widget_Data *wd = (Widget_Data *) elm_widget_data_get(obj); - elm_slidingdrawer_pos_set(obj, wd->pos); + Widget_Data *wd = (Widget_Data *) elm_widget_data_get(obj); + + elm_slidingdrawer_pos_set(obj, wd->pos); } static void -_parent_resize(void *data, Evas *e, Evas_Object *obj, void *event_info) +_parent_resize(void *data, Evas * e, Evas_Object *obj, void *event_info) { - _sizing_eval(data); + _sizing_eval(data); } -static void -_drag_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +static void +_drag_cb(void *data, Evas_Object *obj, const char *emission, + const char *source) { - Widget_Data *wd = elm_widget_data_get(data); - edje_object_part_drag_value_get(wd->base, "elm.dragable.handler", &wd->value.x, &wd->value.y); - evas_object_smart_callback_call(data, "mouse,move", (void*) &wd->value); + Widget_Data *wd = elm_widget_data_get(data); + + edje_object_part_drag_value_get(wd->base, "elm.dragable.handler", + &wd->value.x, &wd->value.y); + evas_object_smart_callback_call(data, "mouse,move", (void *)&wd->value); } static void _up_cb(void *data, Evas_Object *obj, const char *emission, const char *source) { - Widget_Data *wd = elm_widget_data_get(data); - edje_object_part_drag_value_get(wd->base, "elm.dragable.handler", &wd->value.x, &wd->value.y); - evas_object_smart_callback_call(data, "mouse,up", (void*) &wd->value); + Widget_Data *wd = elm_widget_data_get(data); + + edje_object_part_drag_value_get(wd->base, "elm.dragable.handler", + &wd->value.x, &wd->value.y); + evas_object_smart_callback_call(data, "mouse,up", (void *)&wd->value); } static void -_down_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +_down_cb(void *data, Evas_Object *obj, const char *emission, + const char *source) { - Widget_Data *wd = elm_widget_data_get(data); - edje_object_part_drag_value_get(wd->base, "elm.dragable.handler", &wd->value.x, &wd->value.y); - evas_object_smart_callback_call(data, "mouse,down", (void*) &wd->value); + Widget_Data *wd = elm_widget_data_get(data); + + edje_object_part_drag_value_get(wd->base, "elm.dragable.handler", + &wd->value.x, &wd->value.y); + evas_object_smart_callback_call(data, "mouse,down", (void *)&wd->value); } static void _sizing_eval(Evas_Object *obj) { - Widget_Data *wd; - Evas_Coord x, y, w, h; - const Evas_Object *part; + Widget_Data *wd; + + Evas_Coord x, y, w, h; + + const Evas_Object *part; - wd = elm_widget_data_get(obj); + wd = elm_widget_data_get(obj); - evas_object_geometry_get(wd->parent, &x, &y, &w, &h); - evas_object_move(obj, x, y); - evas_object_resize(obj, w, h); + evas_object_geometry_get(wd->parent, &x, &y, &w, &h); + evas_object_move(obj, x, y); + evas_object_resize(obj, w, h); - evas_object_size_hint_max_set(wd->dragable_rect, ((double) w) * wd->max_drag_w, ((double) h) * wd->max_drag_h); + evas_object_size_hint_max_set(wd->dragable_rect, + ((double)w) * wd->max_drag_w, + ((double)h) * wd->max_drag_h); - part = edje_object_part_object_get(wd->base, "elm.dragable.handler"); - - if((wd->pos == ELM_SLIDINGDRAWER_TOP) || (wd->pos == ELM_SLIDINGDRAWER_BOTTOM)) { - edje_object_size_min_get(part, NULL, &h); - }else { - edje_object_size_min_get(part, &w, NULL); - } + part = edje_object_part_object_get(wd->base, "elm.dragable.handler"); - evas_object_size_hint_min_set(wd->handler, w, h); + if ((wd->pos == ELM_SLIDINGDRAWER_TOP) + || (wd->pos == ELM_SLIDINGDRAWER_BOTTOM)) + { + edje_object_size_min_get(part, NULL, &h); + } + else + { + edje_object_size_min_get(part, &w, NULL); + } + + evas_object_size_hint_min_set(wd->handler, w, h); } /** @@ -115,17 +140,19 @@ _sizing_eval(Evas_Object *obj) EAPI Evas_Object * elm_slidingdrawer_content_unset(Evas_Object *obj) { - ELM_CHECK_WIDTYPE(obj, widtype) NULL; - Widget_Data *wd; - Evas_Object *content; + ELM_CHECK_WIDTYPE(obj, widtype) NULL; + Widget_Data *wd; + + Evas_Object *content; - wd = elm_widget_data_get(obj); + wd = elm_widget_data_get(obj); - content = edje_object_part_swallow_get(wd->base, "elm.swallow.content"); - if(!content) return NULL; - edje_object_part_unswallow(wd->base, content); - elm_widget_sub_object_del(obj, content); - return content; + content = edje_object_part_swallow_get(wd->base, "elm.swallow.content"); + if (!content) + return NULL; + edje_object_part_unswallow(wd->base, content); + elm_widget_sub_object_del(obj, content); + return content; } /** @@ -137,27 +164,30 @@ elm_slidingdrawer_content_unset(Evas_Object *obj) * @ingroup SlidingDrawer */ EAPI void -elm_slidingdrawer_content_set (Evas_Object *obj, Evas_Object *content) +elm_slidingdrawer_content_set(Evas_Object *obj, Evas_Object *content) { - ELM_CHECK_WIDTYPE(obj, widtype); + ELM_CHECK_WIDTYPE(obj, widtype); - Widget_Data *wd; - Evas_Object *prev_content; + Widget_Data *wd; - if (!content) return; + Evas_Object *prev_content; - wd = elm_widget_data_get(obj); - elm_widget_sub_object_add(obj, content); + if (!content) + return; - prev_content = edje_object_part_swallow_get(wd->base, "elm.swallow.content"); - if(prev_content) { - edje_object_part_unswallow(wd->base, prev_content); - elm_widget_sub_object_del(obj, prev_content); - evas_object_del(prev_content); - } - - edje_object_part_swallow (wd->base, "elm.swallow.content", content); -} + wd = elm_widget_data_get(obj); + elm_widget_sub_object_add(obj, content); + + prev_content = edje_object_part_swallow_get(wd->base, "elm.swallow.content"); + if (prev_content) + { + edje_object_part_unswallow(wd->base, prev_content); + elm_widget_sub_object_del(obj, prev_content); + evas_object_del(prev_content); + } + + edje_object_part_swallow(wd->base, "elm.swallow.content", content); + } /** * Set the position of SlidingDrawer @@ -170,29 +200,33 @@ elm_slidingdrawer_content_set (Evas_Object *obj, Evas_Object *content) EAPI void elm_slidingdrawer_pos_set(Evas_Object *obj, Elm_SlidingDrawer_Pos pos) { - ELM_CHECK_WIDTYPE(obj, widtype); - - Widget_Data *wd = elm_widget_data_get(obj); - - switch(pos) - { - case ELM_SLIDINGDRAWER_BOTTOM: - _elm_theme_object_set(obj, wd->base, "slidingdrawer", "bottom", elm_widget_style_get(obj)); - break; - case ELM_SLIDINGDRAWER_LEFT: - _elm_theme_object_set(obj, wd->base, "slidingdrawer", "left", elm_widget_style_get(obj)); - break; - case ELM_SLIDINGDRAWER_RIGHT: - _elm_theme_object_set(obj, wd->base, "slidingdrawer", "right", elm_widget_style_get(obj)); - break; - case ELM_SLIDINGDRAWER_TOP: - _elm_theme_object_set(obj, wd->base, "slidingdrawer", "top", elm_widget_style_get(obj)); - break; - } - - edje_object_part_drag_value_set(wd->base, "elm.dragable.handler", 0, 0); - wd->pos = pos; - _sizing_eval(obj); + ELM_CHECK_WIDTYPE(obj, widtype); + + Widget_Data *wd = elm_widget_data_get(obj); + + switch (pos) + { + case ELM_SLIDINGDRAWER_BOTTOM: + _elm_theme_object_set(obj, wd->base, "slidingdrawer", "bottom", + elm_widget_style_get(obj)); + break; + case ELM_SLIDINGDRAWER_LEFT: + _elm_theme_object_set(obj, wd->base, "slidingdrawer", "left", + elm_widget_style_get(obj)); + break; + case ELM_SLIDINGDRAWER_RIGHT: + _elm_theme_object_set(obj, wd->base, "slidingdrawer", "right", + elm_widget_style_get(obj)); + break; + case ELM_SLIDINGDRAWER_TOP: + _elm_theme_object_set(obj, wd->base, "slidingdrawer", "top", + elm_widget_style_get(obj)); + break; + } + + edje_object_part_drag_value_set(wd->base, "elm.dragable.handler", 0, 0); + wd->pos = pos; + _sizing_eval(obj); } /** @@ -207,10 +241,11 @@ elm_slidingdrawer_pos_set(Evas_Object *obj, Elm_SlidingDrawer_Pos pos) EAPI void elm_slidingdrawer_drag_value_set(Evas_Object *obj, double dx, double dy) { - ELM_CHECK_WIDTYPE(obj, widtype); - Widget_Data *wd; - wd = elm_widget_data_get(obj); - edje_object_part_drag_value_set(wd->base, "elm.dragable.handler", dx, dy); + ELM_CHECK_WIDTYPE(obj, widtype); + Widget_Data *wd; + + wd = elm_widget_data_get(obj); + edje_object_part_drag_value_set(wd->base, "elm.dragable.handler", dx, dy); } /** @@ -223,19 +258,18 @@ elm_slidingdrawer_drag_value_set(Evas_Object *obj, double dx, double dy) * @ingroup SlidingDrawer */ EAPI void -elm_slidingdrawer_max_drag_value_set(Evas_Object *obj, double dw, double dh) +elm_slidingdrawer_max_drag_value_set(Evas_Object *obj, double dw, double dh) { - ELM_CHECK_WIDTYPE(obj, widtype); - Widget_Data *wd; + ELM_CHECK_WIDTYPE(obj, widtype); + Widget_Data *wd; - wd = elm_widget_data_get(obj); - wd->max_drag_w = dw; - wd->max_drag_h = dh; - _sizing_eval(obj); + wd = elm_widget_data_get(obj); + wd->max_drag_w = dw; + wd->max_drag_h = dh; + _sizing_eval(obj); } - /** * Add a new slidingdrawer object to the parent. * @@ -247,56 +281,62 @@ elm_slidingdrawer_max_drag_value_set(Evas_Object *obj, double dw, double dh) EAPI Evas_Object * elm_slidingdrawer_add(Evas_Object *parent) { - Evas_Object *obj; - Evas *e; - Widget_Data *wd; - - wd = ELM_NEW(Widget_Data); - if(!wd) return NULL; - - ELM_SET_WIDTYPE(widtype, "slidingdrawer"); - - wd->max_drag_w = 1; - wd->max_drag_h = 1; - - wd->parent = parent; - e = evas_object_evas_get(parent); - - if(!e) return NULL; - - //widget - obj = elm_widget_add(e); - elm_widget_type_set(obj, "slidingdrawer"); - elm_widget_can_focus_set(obj, EINA_FALSE); - elm_widget_sub_object_add(parent, obj); - elm_widget_data_set(obj, wd); - elm_widget_del_hook_set(obj, _del_hook); - elm_widget_theme_hook_set(obj, _theme_hook); - - //base - wd->base = edje_object_add(e); - _elm_theme_object_set(obj, wd->base, "slidingdrawer", "bottom", "default"); - edje_object_signal_callback_add(wd->base, "drag", "*", _drag_cb, obj); - edje_object_signal_callback_add(wd->base, "mouse,up,*", "*", _up_cb, obj); - edje_object_signal_callback_add(wd->base, "mouse,down,*", "*", _down_cb, obj); - elm_widget_sub_object_add(obj, wd->base); - elm_widget_resize_object_set(obj, wd->base); - - //dragable_rect - wd->dragable_rect = evas_object_rectangle_add(e); - elm_widget_sub_object_add(obj, wd->dragable_rect); - edje_object_part_swallow(wd->base, "elm.swallow.dragable_rect", wd->dragable_rect); - - //handler - wd->handler = evas_object_rectangle_add(e); - elm_widget_sub_object_add(obj, wd->handler); - evas_object_color_set(wd->handler, 0, 0, 0, 0); - edje_object_part_swallow(wd->base, "elm.dragable.handler", wd->handler); - - evas_object_event_callback_add(parent, EVAS_CALLBACK_RESIZE, _parent_resize, obj); - - _sizing_eval(obj); - - return obj; -} + Evas_Object *obj; + + Evas *e; + + Widget_Data *wd; + + wd = ELM_NEW(Widget_Data); + if (!wd) + return NULL; + + ELM_SET_WIDTYPE(widtype, "slidingdrawer"); + + wd->max_drag_w = 1; + wd->max_drag_h = 1; + wd->parent = parent; + e = evas_object_evas_get(parent); + + if (!e) + return NULL; + + //widget + obj = elm_widget_add(e); + elm_widget_type_set(obj, "slidingdrawer"); + elm_widget_can_focus_set(obj, EINA_FALSE); + elm_widget_sub_object_add(parent, obj); + elm_widget_data_set(obj, wd); + elm_widget_del_hook_set(obj, _del_hook); + elm_widget_theme_hook_set(obj, _theme_hook); + + //base + wd->base = edje_object_add(e); + _elm_theme_object_set(obj, wd->base, "slidingdrawer", "bottom", "default"); + edje_object_signal_callback_add(wd->base, "drag", "*", _drag_cb, obj); + edje_object_signal_callback_add(wd->base, "mouse,up,*", "*", _up_cb, obj); + edje_object_signal_callback_add(wd->base, "mouse,down,*", "*", _down_cb, + obj); + elm_widget_sub_object_add(obj, wd->base); + elm_widget_resize_object_set(obj, wd->base); + + //dragable_rect + wd->dragable_rect = evas_object_rectangle_add(e); + elm_widget_sub_object_add(obj, wd->dragable_rect); + edje_object_part_swallow(wd->base, "elm.swallow.dragable_rect", + wd->dragable_rect); + + //handler + wd->handler = evas_object_rectangle_add(e); + elm_widget_sub_object_add(obj, wd->handler); + evas_object_color_set(wd->handler, 0, 0, 0, 0); + edje_object_part_swallow(wd->base, "elm.dragable.handler", wd->handler); + + evas_object_event_callback_add(parent, EVAS_CALLBACK_RESIZE, _parent_resize, + obj); + + _sizing_eval(obj); + + return obj; +} -- 2.7.4