1 /**
2  * @file lv_demo_flex_layout_main.h
3  *
4  */
5 
6 #ifndef LV_DEMO_FLEX_LAYOUT_MAIN_H
7 #define LV_DEMO_FLEX_LAYOUT_MAIN_H
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 /*********************
14  *      INCLUDES
15  *********************/
16 
17 #include "../../lvgl.h"
18 
19 /*********************
20  *      DEFINES
21  *********************/
22 
23 #ifndef ARRAY_SIZE
24 #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
25 #endif
26 
27 /**********************
28  *      TYPEDEFS
29  **********************/
30 typedef struct {
31     lv_obj_t * root;
32     lv_obj_t * obj_cur;
33     lv_style_t obj_def_style;
34     lv_style_t obj_checked_style;
35 
36     struct {
37         lv_obj_t * cont;
38 
39         struct {
40             lv_obj_t * view;
41 
42             struct {
43                 lv_obj_t * tab;
44                 lv_obj_t * ddlist_flow;
45                 lv_obj_t * checkbox_scrl;
46             } flex;
47 
48             struct {
49                 lv_obj_t * tab;
50                 lv_obj_t * ddlist_align_main;
51                 lv_obj_t * ddlist_align_cross;
52                 lv_obj_t * ddlist_align_track;
53             } align;
54 
55             struct {
56                 lv_obj_t * tab;
57                 lv_obj_t * group_width_and_height;
58                 lv_obj_t * spinbox_width;
59                 lv_obj_t * spinbox_height;
60                 lv_obj_t * group_width_and_height_min;
61                 lv_obj_t * spinbox_min_width;
62                 lv_obj_t * spinbox_min_height;
63                 lv_obj_t * group_width_and_height_max;
64                 lv_obj_t * spinbox_max_width;
65                 lv_obj_t * spinbox_max_height;
66                 lv_obj_t * spinbox_pad_top;
67                 lv_obj_t * spinbox_pad_bottom;
68                 lv_obj_t * spinbox_pad_left;
69                 lv_obj_t * spinbox_pad_right;
70                 lv_obj_t * spinbox_pad_column;
71                 lv_obj_t * spinbox_pad_row;
72                 lv_obj_t * spinbox_flex_grow;
73             } layout;
74         } tab;
75 
76         struct {
77             lv_obj_t * cont;
78             lv_obj_t * add;
79             lv_obj_t * remove;
80         } btn;
81 
82     } ctrl_pad;
83 } view_t;
84 
85 /**********************
86  * GLOBAL PROTOTYPES
87  **********************/
88 
89 void view_create(lv_obj_t * par, view_t * ui);
90 void view_ctrl_pad_create(lv_obj_t * par, view_t * ui);
91 lv_obj_t * obj_child_node_create(lv_obj_t * par, view_t * ui);
92 
93 void ctrl_pad_attach(view_t * ui);
94 void ctrl_pad_obj_update(lv_obj_t * obj, view_t * ui);
95 void flex_loader_obj_update(lv_obj_t * obj, view_t * ui);
96 void flex_loader_attach(view_t * ui);
97 
98 /**********************
99  *      MACROS
100  **********************/
101 
102 #ifdef __cplusplus
103 } /*extern "C"*/
104 #endif
105 
106 #endif /*LV_DEMO_FLEX_LAYOUT_MAIN_H*/
107