1 #ifndef EFL_UI_CHECK_PRIVATE_H 2 #define EFL_UI_CHECK_PRIVATE_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-check-class The Elementary Check Class 17 * 18 * Elementary, besides having the @ref Check widget, exposes its 19 * foundation -- the Elementary Check Class -- in order to create other 20 * widgets which are a check with some more logic on top. 21 */ 22 23 /** 24 * Base layout smart data extended with check instance data. 25 */ 26 typedef struct _Efl_Ui_Check_Data Efl_Ui_Check_Data; 27 struct _Efl_Ui_Check_Data 28 { 29 Eina_Bool *statep; 30 Eina_Bool selected; 31 Eina_Bool legacy_changed_emitted_unselect : 1; 32 Eina_Bool legacy_changed_emitted_select : 1; 33 }; 34 35 /** 36 * @} 37 */ 38 39 #define EFL_UI_CHECK_DATA_GET(o, sd) \ 40 Efl_Ui_Check_Data * sd = efl_data_scope_get(o, EFL_UI_CHECK_CLASS) 41 42 #define EFL_UI_CHECK_DATA_GET_OR_RETURN(o, ptr) \ 43 EFL_UI_CHECK_DATA_GET(o, ptr); \ 44 if (EINA_UNLIKELY(!ptr)) \ 45 { \ 46 ERR("No widget data for object %p (%s)", \ 47 o, evas_object_type_get(o)); \ 48 return; \ 49 } 50 51 #define EFL_UI_CHECK_DATA_GET_OR_RETURN_VAL(o, ptr, val) \ 52 EFL_UI_CHECK_DATA_GET(o, ptr); \ 53 if (EINA_UNLIKELY(!ptr)) \ 54 { \ 55 ERR("No widget data for object %p (%s)", \ 56 o, evas_object_type_get(o)); \ 57 return val; \ 58 } 59 60 #define EFL_UI_CHECK_CHECK(obj) \ 61 if (EINA_UNLIKELY(!efl_isa((obj), ELM_CHECK_CLASS))) \ 62 return 63 64 #endif 65