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