From 6f4f87d4be9ffc7591a30fadecf8eb03315cb986 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 21 Oct 2011 00:45:19 +0000 Subject: [PATCH] create and use ELM_WIDGET_ITEM for elm widget structs to ensure location/name SVN revision: 64218 --- src/lib/elc_ctxpopup.c | 2 +- src/lib/elc_hoversel.c | 2 +- src/lib/elc_naviframe.c | 2 +- src/lib/elm_diskselector.c | 2 +- src/lib/elm_flipselector.c | 2 +- src/lib/elm_gengrid.c | 2 +- src/lib/elm_genlist.c | 2 +- src/lib/elm_index.c | 2 +- src/lib/elm_list.c | 2 +- src/lib/elm_menu.c | 2 +- src/lib/elm_segment_control.c | 2 +- src/lib/elm_slideshow.c | 2 +- src/lib/elm_toolbar.c | 2 +- src/lib/elm_widget.h | 11 +++-------- 14 files changed, 16 insertions(+), 21 deletions(-) diff --git a/src/lib/elc_ctxpopup.c b/src/lib/elc_ctxpopup.c index 7231b74..bb21e4b 100644 --- a/src/lib/elc_ctxpopup.c +++ b/src/lib/elc_ctxpopup.c @@ -6,7 +6,7 @@ typedef struct _Elm_Ctxpopup_Item Elm_Ctxpopup_Item; struct _Elm_Ctxpopup_Item { - Elm_Widget_Item base; + ELM_WIDGET_ITEM; const char *label; Evas_Object *icon; Evas_Smart_Cb func; diff --git a/src/lib/elc_hoversel.c b/src/lib/elc_hoversel.c index 50ddba2..493fd41 100644 --- a/src/lib/elc_hoversel.c +++ b/src/lib/elc_hoversel.c @@ -14,7 +14,7 @@ struct _Widget_Data struct _Elm_Hoversel_Item { - Elm_Widget_Item base; + ELM_WIDGET_ITEM; const char *label; const char *icon_file; const char *icon_group; diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c index 45eff14..aac8561 100644 --- a/src/lib/elc_naviframe.c +++ b/src/lib/elc_naviframe.c @@ -33,7 +33,7 @@ struct _Elm_Naviframe_Text_Item_Pair struct _Elm_Naviframe_Item { - Elm_Widget_Item base; + ELM_WIDGET_ITEM; EINA_INLIST; Eina_Inlist *content_list; Eina_Inlist *text_list; diff --git a/src/lib/elm_diskselector.c b/src/lib/elm_diskselector.c index b9ee05c..13579ea 100644 --- a/src/lib/elm_diskselector.c +++ b/src/lib/elm_diskselector.c @@ -41,7 +41,7 @@ struct _Widget_Data struct _Elm_Diskselector_Item { - Elm_Widget_Item base; + ELM_WIDGET_ITEM; Eina_List *node; Evas_Object *icon; const char *label; diff --git a/src/lib/elm_flipselector.c b/src/lib/elm_flipselector.c index 7168b35..13c503f 100644 --- a/src/lib/elm_flipselector.c +++ b/src/lib/elm_flipselector.c @@ -26,7 +26,7 @@ struct _Elm_Flipselector_Item { - Elm_Widget_Item base; + ELM_WIDGET_ITEM; const char *label; Evas_Smart_Cb func; void *data; diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c index d447495..ceba53d 100644 --- a/src/lib/elm_gengrid.c +++ b/src/lib/elm_gengrid.c @@ -16,7 +16,7 @@ struct _Elm_Gengrid_Item { - Elm_Widget_Item base; + ELM_WIDGET_ITEM; EINA_INLIST; Evas_Object *spacer; const Elm_Gengrid_Item_Class *itc; diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index b9c7c92..f26d37b 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c @@ -16,7 +16,7 @@ typedef struct _Item_Cache Item_Cache; struct _Elm_Genlist_Item { - Elm_Widget_Item base; + ELM_WIDGET_ITEM; EINA_INLIST; Widget_Data *wd; const Elm_Genlist_Item_Class *itc; diff --git a/src/lib/elm_index.c b/src/lib/elm_index.c index fba1729..45a0404 100644 --- a/src/lib/elm_index.c +++ b/src/lib/elm_index.c @@ -21,7 +21,7 @@ struct _Widget_Data struct _Elm_Index_Item { - Elm_Widget_Item base; + ELM_WIDGET_ITEM; const char *letter; int level; Eina_Bool selected : 1; diff --git a/src/lib/elm_list.c b/src/lib/elm_list.c index e6139fc..1af5329 100644 --- a/src/lib/elm_list.c +++ b/src/lib/elm_list.c @@ -32,7 +32,7 @@ struct _Widget_Data struct _Elm_List_Item { - Elm_Widget_Item base; + ELM_WIDGET_ITEM; Widget_Data *wd; Eina_List *node; const char *label; diff --git a/src/lib/elm_menu.c b/src/lib/elm_menu.c index 02d85ba..1168574 100644 --- a/src/lib/elm_menu.c +++ b/src/lib/elm_menu.c @@ -5,7 +5,7 @@ typedef struct _Widget_Data Widget_Data; struct _Elm_Menu_Item { - Elm_Widget_Item base; + ELM_WIDGET_ITEM; Elm_Menu_Item *parent; Evas_Object *content; const char *icon_str; diff --git a/src/lib/elm_segment_control.c b/src/lib/elm_segment_control.c index fc0b7ce..9238ddd 100644 --- a/src/lib/elm_segment_control.c +++ b/src/lib/elm_segment_control.c @@ -15,7 +15,7 @@ struct _Widget_Data struct _Elm_Segment_Item { - Elm_Widget_Item base; + ELM_WIDGET_ITEM; Evas_Object *icon; const char *label; int seg_index; diff --git a/src/lib/elm_slideshow.c b/src/lib/elm_slideshow.c index 06247f8..7e2d363 100644 --- a/src/lib/elm_slideshow.c +++ b/src/lib/elm_slideshow.c @@ -5,7 +5,7 @@ typedef struct _Widget_Data Widget_Data; struct _Elm_Slideshow_Item { - Elm_Widget_Item base; + ELM_WIDGET_ITEM; Eina_List *l, *l_built; diff --git a/src/lib/elm_toolbar.c b/src/lib/elm_toolbar.c index 35b231e..e6fa564 100644 --- a/src/lib/elm_toolbar.c +++ b/src/lib/elm_toolbar.c @@ -27,7 +27,7 @@ struct _Widget_Data struct _Elm_Toolbar_Item { - Elm_Widget_Item base; + ELM_WIDGET_ITEM; EINA_INLIST; const char *label; const char *icon_str; diff --git a/src/lib/elm_widget.h b/src/lib/elm_widget.h index 9a68ea5..f347b5d 100644 --- a/src/lib/elm_widget.h +++ b/src/lib/elm_widget.h @@ -240,6 +240,7 @@ EAPI void _elm_access_object_register(Evas_Object *obj, Evas_Object EAPI void _elm_access_item_register(Elm_Widget_Item *item, Evas_Object *hoverobj); EAPI Eina_Bool _elm_access_2nd_click_timeout(Evas_Object *obj); +#define ELM_WIDGET_ITEM Elm_Widget_Item base /**< put this as the first member in your widget item struct */ struct _Elm_Widget_Item { /* ef1 ~~ efl, el3 ~~ elm */ @@ -264,14 +265,14 @@ struct _Elm_Widget_Item struct _Elm_Object_Item { - Elm_Widget_Item it; + ELM_WIDGET_ITEM; }; #define ELM_NEW(t) calloc(1, sizeof(t)) #define ELM_OBJ_ITEM_CHECK_OR_RETURN(it, ...) \ ELM_WIDGET_ITEM_CHECK_OR_RETURN((Elm_Widget_Item *) (it), __VA_ARGS__); \ - ELM_CHECK_WIDTYPE(it->it.widget, widtype) __VA_ARGS__; + ELM_CHECK_WIDTYPE(it->base.widget, widtype) __VA_ARGS__; EAPI Eina_Bool elm_widget_api_check(int ver); EAPI Evas_Object *elm_widget_add(Evas *evas); @@ -621,12 +622,6 @@ EAPI void elm_widget_tree_dot_dump(const Evas_Object *top, FILE *out #define elm_widget_item_signal_emit_hook_set(item, func) \ _elm_widget_item_signal_emit_hook_set((Elm_Widget_Item *)item, (Elm_Widget_On_Signal_Emit_Cb)func) -/** - * Cast and ensure the given pointer is an Elm_Widget_Item or return NULL. - */ -#define ELM_WIDGET_ITEM(item) \ - (((item) && (EINA_MAGIC_CHECK(item, ELM_WIDGET_ITEM_MAGIC))) ? \ - ((Elm_Widget_Item *)(item)) : NULL) #define ELM_WIDGET_ITEM_CHECK_OR_RETURN(item, ...) \ do { \ -- 2.7.4