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