aboutsummaryrefslogtreecommitdiff
path: root/demos/flex_layout/lv_demo_flex_layout_main.h
blob: bd3514cdb56ee7a6908ca80c28d5179f000aa294 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/**
 * @file lv_demo_flex_layout_main.h
 *
 */

#ifndef LV_DEMO_FLEX_LAYOUT_MAIN_H
#define LV_DEMO_FLEX_LAYOUT_MAIN_H

#ifdef __cplusplus
extern "C" {
#endif

/*********************
 *      INCLUDES
 *********************/

#include "../../lvgl.h"

/*********************
 *      DEFINES
 *********************/

#ifndef ARRAY_SIZE
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
#endif

/**********************
 *      TYPEDEFS
 **********************/
typedef struct {
    lv_obj_t * root;
    lv_obj_t * obj_cur;
    lv_style_t obj_def_style;
    lv_style_t obj_checked_style;

    struct {
        lv_obj_t * cont;

        struct {
            lv_obj_t * view;

            struct {
                lv_obj_t * tab;
                lv_obj_t * ddlist_flow;
                lv_obj_t * checkbox_scrl;
            } flex;

            struct {
                lv_obj_t * tab;
                lv_obj_t * ddlist_align_main;
                lv_obj_t * ddlist_align_cross;
                lv_obj_t * ddlist_align_track;
            } align;

            struct {
                lv_obj_t * tab;
                lv_obj_t * group_width_and_height;
                lv_obj_t * spinbox_width;
                lv_obj_t * spinbox_height;
                lv_obj_t * group_width_and_height_min;
                lv_obj_t * spinbox_min_width;
                lv_obj_t * spinbox_min_height;
                lv_obj_t * group_width_and_height_max;
                lv_obj_t * spinbox_max_width;
                lv_obj_t * spinbox_max_height;
                lv_obj_t * spinbox_pad_top;
                lv_obj_t * spinbox_pad_bottom;
                lv_obj_t * spinbox_pad_left;
                lv_obj_t * spinbox_pad_right;
                lv_obj_t * spinbox_pad_column;
                lv_obj_t * spinbox_pad_row;
                lv_obj_t * spinbox_flex_grow;
            } layout;
        } tab;

        struct {
            lv_obj_t * cont;
            lv_obj_t * add;
            lv_obj_t * remove;
        } btn;

    } ctrl_pad;
} view_t;

/**********************
 * GLOBAL PROTOTYPES
 **********************/

void view_create(lv_obj_t * par, view_t * ui);
void view_ctrl_pad_create(lv_obj_t * par, view_t * ui);
lv_obj_t * obj_child_node_create(lv_obj_t * par, view_t * ui);

void ctrl_pad_attach(view_t * ui);
void ctrl_pad_obj_update(lv_obj_t * obj, view_t * ui);
void flex_loader_obj_update(lv_obj_t * obj, view_t * ui);
void flex_loader_attach(view_t * ui);

/**********************
 *      MACROS
 **********************/

#ifdef __cplusplus
} /*extern "C"*/
#endif

#endif /*LV_DEMO_FLEX_LAYOUT_MAIN_H*/