1 #ifndef EFL_UI_WIDGET_POPUP_H 2 #define EFL_UI_WIDGET_POPUP_H 3 4 typedef struct _Efl_Ui_Popup_Data Efl_Ui_Popup_Data; 5 struct _Efl_Ui_Popup_Data 6 { 7 Eo *win_parent; 8 Eo *backwall; 9 Efl_Ui_Popup_Align align; 10 Eo *anchor; 11 Efl_Ui_Popup_Align priority[5]; 12 Efl_Ui_Popup_Align used_align; 13 Ecore_Timer *timer; 14 double timeout; 15 Eina_Bool in_calc : 1; 16 }; 17 18 #define EFL_UI_POPUP_DATA_GET_OR_RETURN(o, ptr, ...) \ 19 Efl_Ui_Popup_Data *ptr; \ 20 ptr = efl_data_scope_get(o, EFL_UI_POPUP_CLASS); \ 21 if (EINA_UNLIKELY(!ptr)) \ 22 { \ 23 CRI("no ui popup data for object %p (%s)", \ 24 o, evas_object_type_get(o)); \ 25 return __VA_ARGS__; \ 26 } 27 28 #endif 29