1 #ifndef EFL_UI_ITEM_PRIVATE_H 2 #define EFL_UI_ITEM_PRIVATE_H 3 4 #include "Elementary.h" 5 6 typedef struct _Efl_Ui_Item_Data 7 { 8 // Eo Objects 9 Eo *container; /* Parent Widget */ 10 Efl_Ui_Item *parent; 11 12 // Boolean Data 13 Eina_Bool selected : 1; /* State for item selected */ 14 Eina_Bool locked : 1; 15 } Efl_Ui_Item_Data; 16 17 18 #define EFL_UI_ITEM_DATA_GET(o, pd) \ 19 Efl_Ui_Item_Data * pd = efl_data_scope_safe_get(o, EFL_UI_ITEM_CLASS) 20 21 #define EFL_UI_ITEM_DATA_GET_OR_RETURN(o, ptr, ...) \ 22 EFL_UI_ITEM_DATA_GET(o, ptr); \ 23 if (EINA_UNLIKELY(!ptr)) \ 24 { \ 25 ERR("No widget data for object %p (%s)", \ 26 o, evas_object_type_get(o)); \ 27 return __VA_ARGS__; \ 28 } 29 30 #define EFL_UI_ITEM_CHECK_OR_RETURN(obj, ...) \ 31 if (EINA_UNLIKELY(!efl_isa((obj), EFL_UI_ITEM_CLASS))) \ 32 return __VA_ARGS__; 33 34 #endif 35