1 #ifndef EFL_UI_WIDGET_FRAME_H 2 #define EFL_UI_WIDGET_FRAME_H 3 4 #include "Elementary.h" 5 6 /* DO NOT USE THIS HEADER UNLESS YOU ARE PREPARED FOR BREAKING OF YOUR 7 * CODE. THIS IS ELEMENTARY'S INTERNAL WIDGET API (for now) AND IS NOT 8 * FINAL. CALL elm_widget_api_check(ELM_INTERNAL_API_VERSION) TO CHECK 9 * IT AT RUNTIME. 10 */ 11 12 /** 13 * @addtogroup Widget 14 * @{ 15 * 16 * @section elm-frame-class The Elementary Frame Class 17 * 18 * Elementary, besides having the @ref Frame widget, exposes its 19 * foundation -- the Elementary Frame Class -- in order to create other 20 * widgets which are a frame with some more logic on top. 21 */ 22 23 /** 24 * Base layout smart data extended with frame instance data. 25 */ 26 typedef struct _Efl_Ui_Frame_Data Efl_Ui_Frame_Data; 27 struct _Efl_Ui_Frame_Data 28 { 29 Eina_Bool collapsed : 1; 30 Eina_Bool collapsible : 1; 31 Eina_Bool anim : 1; 32 }; 33 34 /** 35 * @} 36 */ 37 38 #define EFL_UI_FRAME_DATA_GET(o, sd) \ 39 Efl_Ui_Frame_Data * sd = efl_data_scope_get(o, EFL_UI_FRAME_CLASS) 40 41 #define EFL_UI_FRAME_DATA_GET_OR_RETURN(o, ptr) \ 42 EFL_UI_FRAME_DATA_GET(o, ptr); \ 43 if (EINA_UNLIKELY(!ptr)) \ 44 { \ 45 ERR("No widget data for object %p (%s)", \ 46 o, evas_object_type_get(o)); \ 47 return; \ 48 } 49 50 #define EFL_UI_FRAME_DATA_GET_OR_RETURN_VAL(o, ptr, val) \ 51 EFL_UI_FRAME_DATA_GET(o, ptr); \ 52 if (EINA_UNLIKELY(!ptr)) \ 53 { \ 54 ERR("No widget data for object %p (%s)", \ 55 o, evas_object_type_get(o)); \ 56 return val; \ 57 } 58 59 #define EFL_UI_FRAME_CHECK(obj) \ 60 if (EINA_UNLIKELY(!efl_isa((obj), EFL_UI_FRAME_CLASS))) \ 61 return 62 63 #endif 64