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