1 #if LV_BUILD_TEST
2 #include "../lvgl.h"
3 #include "../../lvgl_private.h"
4 
5 #include "unity/unity.h"
6 
setUp(void)7 void setUp(void)
8 {
9     /* Function run before every test */
10     lv_obj_clean(lv_screen_active());
11 }
12 
tearDown(void)13 void tearDown(void)
14 {
15     /* Function run after every test */
16 }
17 
button_create(lv_obj_t * parent,const char * text,int32_t x,int32_t y)18 static void button_create(lv_obj_t * parent, const char * text, int32_t x, int32_t y)
19 {
20     lv_obj_t * btn = lv_button_create(parent);
21     lv_obj_set_grid_cell(btn, LV_GRID_ALIGN_STRETCH, x, 1, LV_GRID_ALIGN_STRETCH, y, 1);
22 
23     lv_obj_t * label = lv_label_create(btn);
24     lv_label_set_text(label, text);
25     lv_obj_center(label);
26 
27 }
28 
test_subgrid_row(void)29 void test_subgrid_row(void)
30 {
31 
32     const int32_t col_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
33     const int32_t row_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
34 
35     lv_obj_t * cont_main = lv_obj_create(lv_screen_active());
36     lv_obj_set_size(cont_main, 700, 300);
37     lv_obj_center(cont_main);
38     lv_obj_set_grid_dsc_array(cont_main, col_dsc, row_dsc);
39 
40     const int32_t col_dsc2[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
41     lv_obj_t * cont_sub = lv_obj_create(cont_main);
42     lv_obj_set_grid_cell(cont_sub, LV_GRID_ALIGN_STRETCH, 1, 2, LV_GRID_ALIGN_STRETCH, 1, 2);
43     lv_obj_set_grid_dsc_array(cont_sub, col_dsc2, NULL);
44     lv_obj_set_style_pad_all(cont_sub, 0, 0);
45 
46     button_create(cont_main, "Main 0,0", 0, 0);
47     button_create(cont_main, "Main 3,3", 3, 3);
48     button_create(cont_main, "Main 2,2", 2, 2);
49     button_create(cont_sub, "Sub 0,0", 0, 0);
50     button_create(cont_sub, "Sub 1,0", 1, 0);
51     button_create(cont_sub, "Sub 2,0", 2, 0);
52     button_create(cont_sub, "Sub 3,0", 3, 0);
53     button_create(cont_sub, "Sub 1,1", 1, 1);
54     button_create(cont_sub, "Sub 0,1", 0, 1);
55 
56     TEST_ASSERT_EQUAL_SCREENSHOT("subgrid_row.png");
57 }
58 
test_subgrid_col(void)59 void test_subgrid_col(void)
60 {
61 
62     const int32_t col_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
63     const int32_t row_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
64 
65     lv_obj_t * cont_main = lv_obj_create(lv_screen_active());
66     lv_obj_set_size(cont_main, 700, 300);
67     lv_obj_center(cont_main);
68     lv_obj_set_grid_dsc_array(cont_main, col_dsc, row_dsc);
69 
70     const int32_t row_dsc2[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
71     lv_obj_t * cont_sub = lv_obj_create(cont_main);
72     lv_obj_set_grid_cell(cont_sub, LV_GRID_ALIGN_STRETCH, 1, 2, LV_GRID_ALIGN_STRETCH, 1, 2);
73     lv_obj_set_grid_dsc_array(cont_sub, NULL, row_dsc2);
74     lv_obj_set_style_pad_all(cont_sub, 0, 0);
75 
76     button_create(cont_main, "Main 0,0", 0, 0);
77     button_create(cont_main, "Main 3,3", 3, 3);
78     button_create(cont_main, "Main 2,2", 2, 2);
79     button_create(cont_sub, "Sub 0,0", 0, 0);
80     button_create(cont_sub, "Sub 0,1", 0, 1);
81     button_create(cont_sub, "Sub 0,2", 0, 2);
82     button_create(cont_sub, "Sub 0,3", 0, 3);
83     button_create(cont_sub, "Sub 1,0", 1, 0);
84     button_create(cont_sub, "Sub 1,1", 1, 1);
85 
86     TEST_ASSERT_EQUAL_SCREENSHOT("subgrid_col.png");
87 }
88 
89 #endif
90