1 /** 2 * @file lv_xml_widget.h 3 * 4 */ 5 6 #ifndef LV_XML_WIDGET_H 7 #define LV_XML_WIDGET_H 8 9 #ifdef __cplusplus 10 extern "C" { 11 #endif 12 13 /********************* 14 * INCLUDES 15 *********************/ 16 #include "../../misc/lv_types.h" 17 #if LV_USE_XML 18 19 #include "lv_xml.h" 20 #include "lv_xml_utils.h" 21 22 /********************** 23 * TYPEDEFS 24 **********************/ 25 26 typedef void * (*lv_xml_widget_create_cb_t)(lv_xml_parser_state_t * state, const char ** parent_attrs); 27 typedef void (*lv_xml_widget_apply_cb_t)(lv_xml_parser_state_t * state, const char ** parent_attrs); 28 29 typedef struct _lv_widget_processor_t { 30 const char * name; 31 lv_xml_widget_create_cb_t create_cb; 32 lv_xml_widget_apply_cb_t apply_cb; 33 struct _lv_widget_processor_t * next; 34 } lv_widget_processor_t; 35 36 /********************** 37 * GLOBAL PROTOTYPES 38 **********************/ 39 40 lv_result_t lv_xml_widget_register(const char * name, lv_xml_widget_create_cb_t create_cb, 41 lv_xml_widget_apply_cb_t apply_cb); 42 43 lv_widget_processor_t * lv_xml_widget_get_processor(const char * name); 44 45 /********************** 46 * MACROS 47 **********************/ 48 49 #endif /* LV_USE_XML */ 50 51 #ifdef __cplusplus 52 } /*extern "C"*/ 53 #endif 54 55 #endif /*LV_XML_WIDGET_H*/ 56 57 58