elementary: move macro that should only be used in Elm_Widget inside it.

Note: this was introduced during the move to EO, so no backport.


SVN revision: 80230
This commit is contained in:
Cedric BAIL 2012-12-05 10:59:36 +00:00
parent 5bd109a655
commit 668e2a4588
4 changed files with 40 additions and 38 deletions

View File

@ -27,7 +27,7 @@ _elm_grid_smart_focus_next(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
if (ret) *ret = EINA_FALSE;
Eina_Bool int_ret;
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
/* Focus chain */
/* TODO: Change this to use other chain */
@ -74,7 +74,7 @@ _elm_grid_smart_focus_direction(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
if (ret) *ret = EINA_FALSE;
Eina_Bool int_ret;
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
/* Focus chain */
/* TODO: Change this to use other chain */
@ -103,7 +103,7 @@ _elm_grid_smart_focus_direction(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
static void
_mirrored_set(Evas_Object *obj, Eina_Bool rtl)
{
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
evas_object_grid_mirrored_set(wd->resize_obj, rtl);
}
@ -144,7 +144,7 @@ _elm_grid_smart_del(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
Eina_List *l;
Evas_Object *child;
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
/* let's make our grid object the *last* to be processed, since it
* may (smart) parent other sub objects here */
@ -194,7 +194,7 @@ _size_set(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);
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
evas_object_grid_size_set(wd->resize_obj, w, h);
}
@ -214,7 +214,7 @@ _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 *);
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
evas_object_grid_size_get(wd->resize_obj, w, h);
}
@ -241,7 +241,7 @@ _pack(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);
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
elm_widget_sub_object_add(obj, subobj);
evas_object_grid_pack(wd->resize_obj, subobj, x, y, w, h);
@ -260,7 +260,7 @@ _unpack(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
{
Evas_Object *subobj = va_arg(*list, Evas_Object *);
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
elm_widget_sub_object_del(obj, subobj);
evas_object_grid_unpack(wd->resize_obj, subobj);
@ -282,7 +282,7 @@ _clear(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
Eina_List *chld;
Evas_Object *o;
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
if (!clear)
{
@ -304,7 +304,7 @@ elm_grid_pack_set(Evas_Object *subobj,
Evas_Object *obj = elm_widget_parent_widget_get(subobj);
ELM_GRID_CHECK(obj);
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
evas_object_grid_pack(wd->resize_obj, subobj, x, y, w, h);
}
@ -319,7 +319,7 @@ elm_grid_pack_get(Evas_Object *subobj,
Evas_Object *obj = elm_widget_parent_widget_get(subobj);
ELM_GRID_CHECK(obj);
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
evas_object_grid_pack_get
(wd->resize_obj, subobj, x, y, w, h);

View File

@ -28,7 +28,7 @@ _elm_table_smart_focus_next(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
Eina_List *(*list_free)(Eina_List *list);
void *(*list_data_get)(const Eina_List *list);
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
/* Focus chain */
/* TODO: Change this to use other chain */
@ -76,7 +76,7 @@ _elm_table_smart_focus_direction(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
Eina_List *(*list_free)(Eina_List *list);
void *(*list_data_get)(const Eina_List *list);
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
/* Focus chain */
/* TODO: Change this to use other chain */
@ -107,7 +107,7 @@ _elm_table_smart_focus_direction(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
static void
_mirrored_set(Evas_Object *obj, Eina_Bool rtl)
{
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
evas_object_table_mirrored_set(wd->resize_obj, rtl);
}
@ -134,7 +134,7 @@ _sizing_eval(Evas_Object *obj)
Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1;
Evas_Coord w, h;
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
evas_object_size_hint_min_get
(wd->resize_obj, &minw, &minh);
@ -200,7 +200,7 @@ _elm_table_smart_del(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
Eina_List *l;
Evas_Object *child;
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
evas_object_event_callback_del_full
(wd->resize_obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
@ -252,7 +252,7 @@ static void
_homogeneous_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
{
Eina_Bool homogeneous = va_arg(*list, int);
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
evas_object_table_homogeneous_set
(wd->resize_obj, homogeneous);
@ -271,7 +271,7 @@ static void
_homogeneous_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
{
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
*ret = evas_object_table_homogeneous_get(wd->resize_obj);
}
@ -289,7 +289,7 @@ _padding_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
{
Evas_Coord horizontal = va_arg(*list, Evas_Coord);
Evas_Coord vertical = va_arg(*list, Evas_Coord);
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
evas_object_table_padding_set
(wd->resize_obj, horizontal, vertical);
@ -309,7 +309,7 @@ _padding_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
{
Evas_Coord *horizontal = va_arg(*list, Evas_Coord *);
Evas_Coord *vertical = va_arg(*list, Evas_Coord *);
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
evas_object_table_padding_get
(wd->resize_obj, horizontal, vertical);
@ -335,7 +335,7 @@ _pack(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
int y = va_arg(*list, int);
int w = va_arg(*list, int);
int h = va_arg(*list, int);
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
elm_widget_sub_object_add(obj, subobj);
evas_object_table_pack(wd->resize_obj, subobj, x, y, w, h);
@ -353,7 +353,7 @@ static void
_unpack(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
{
Evas_Object *subobj = va_arg(*list, Evas_Object *);
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
elm_widget_sub_object_del(obj, subobj);
evas_object_table_unpack(wd->resize_obj, subobj);
@ -381,7 +381,7 @@ _pack_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
int w = va_arg(*list, int);
int h = va_arg(*list, int);
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
evas_object_table_pack(wd->resize_obj, subobj, x, y, w, h);
}
@ -408,7 +408,7 @@ _pack_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
int *h = va_arg(*list, int *);
unsigned short ix, iy, iw, ih;
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
evas_object_table_pack_get
(wd->resize_obj, subobj, &ix, &iy, &iw, &ih);
@ -430,7 +430,7 @@ static void
_clear(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
{
Eina_Bool clear = va_arg(*list, int);
ELM_WIDGET_DATA_GET(obj, wd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
evas_object_table_clear(wd->resize_obj, clear);
}

View File

@ -9,6 +9,15 @@ EAPI Eo_Op ELM_WIDGET_BASE_ID = EO_NOOP;
#define MY_CLASS_NAME "elm_widget"
#define ELM_WIDGET_DATA_GET_NO_INST(o, wd) \
wd = (o && eo_isa(o, ELM_OBJ_WIDGET_CLASS) ? \
eo_data_get(o, ELM_OBJ_WIDGET_CLASS) : \
NULL)
#define ELM_WIDGET_DATA_GET(o, wd) \
Elm_Widget_Smart_Data *wd; \
ELM_WIDGET_DATA_GET_NO_INST(o, wd)
#define API_ENTRY \
ELM_WIDGET_DATA_GET(obj, sd); \
if ((!sd) || (!_elm_widget_is(obj)))

View File

@ -737,22 +737,15 @@ EAPI Eina_List *elm_widget_scrollable_children_get(Evas_Object *obj);
EAPI void elm_widget_tree_dump(const Evas_Object *top);
EAPI void elm_widget_tree_dot_dump(const Evas_Object *top, FILE *output);
#define ELM_WIDGET_DATA_GET_NO_INST(o, wd) \
wd = (o && eo_isa(o, ELM_OBJ_WIDGET_CLASS) ? \
eo_data_get(o, ELM_OBJ_WIDGET_CLASS) : \
NULL)
#define ELM_WIDGET_DATA_GET(o, wd) \
Elm_Widget_Smart_Data *wd; \
ELM_WIDGET_DATA_GET_NO_INST(o, wd)
#define ELM_WIDGET_DATA_GET_OR_RETURN(o, ptr) \
ELM_WIDGET_DATA_GET(o, ptr); \
if (!ptr) \
Elm_Widget_Smart_Data *ptr; \
ptr = (o && eo_isa(o, ELM_OBJ_WIDGET_CLASS) ? \
eo_data_get(o, ELM_OBJ_WIDGET_CLASS) : \
NULL); \
if (!ptr) \
{ \
CRITICAL("no widget data for object %p (%s)", \
o, evas_object_type_get(o)); \
o, evas_object_type_get(o)); \
return; \
}