xref: /OK3568_Linux_fs/app/lvgl_demo/rk_demo/setting/wallpaper_ui.c (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <stdint.h>
4 #include <time.h>
5 #include <unistd.h>
6 
7 #include <lvgl/lvgl.h>
8 
9 #include "main.h"
10 #include "ui_resource.h"
11 
12 static lv_obj_t * bg;
13 
14 static lv_obj_t * area_screen_timeout;
15 static lv_obj_t * area_locked_screen;
16 static lv_obj_t * area_wallpaper;
17 
18 static char *wallpapers[4] = {
19     WALLPAPER_0,
20     WALLPAPER_1,
21     WALLPAPER_2,
22     WALLPAPER_3,
23 };
24 
menu_wallpaper_init(lv_obj_t * parent)25 lv_obj_t * menu_wallpaper_init(lv_obj_t * parent)
26 {
27     lv_obj_t * obj;
28     lv_obj_t * area_depart;
29 
30     bg = lv_obj_create(parent);
31     lv_obj_remove_style_all(bg);
32     lv_obj_set_size(bg, lv_pct(100), LV_SIZE_CONTENT);
33     lv_obj_set_flex_flow(bg, LV_FLEX_FLOW_COLUMN);
34     lv_obj_center(bg);
35 
36     area_screen_timeout = lv_obj_create(bg);
37     lv_obj_set_size(area_screen_timeout, lv_pct(100), LV_SIZE_CONTENT);
38     obj = lv_label_create(area_screen_timeout);
39     lv_label_set_text(obj, "锁屏时间");
40     lv_obj_add_style(obj, &style_txt_m, LV_PART_MAIN);
41     obj = lv_dropdown_create(area_screen_timeout);
42     lv_obj_add_style(obj, &style_txt_s, LV_PART_MAIN);
43     lv_dropdown_set_options(obj, "60s\n120s\n5mins\nNever");
44     lv_dropdown_set_selected(obj, 3);
45     lv_obj_align(obj, LV_ALIGN_RIGHT_MID, 0, 0);
46 
47     area_locked_screen = lv_obj_create(bg);
48     lv_obj_set_size(area_locked_screen, lv_pct(100), LV_SIZE_CONTENT);
49     lv_obj_set_flex_flow(area_locked_screen, LV_FLEX_FLOW_COLUMN);
50 
51     obj = lv_label_create(area_locked_screen);
52     lv_label_set_text(obj, "锁屏");
53     lv_obj_add_style(obj, &style_txt_m, LV_PART_MAIN);
54     lv_obj_align(obj, LV_ALIGN_TOP_LEFT, 0, 0);
55 
56     area_depart = lv_obj_create(area_locked_screen);
57     lv_obj_remove_style_all(area_depart);
58     lv_obj_set_size(area_depart, lv_pct(100), LV_SIZE_CONTENT);
59     lv_obj_set_flex_flow(area_depart, LV_FLEX_FLOW_ROW);
60     lv_obj_set_style_pad_column(area_depart, 10, 0);
61     for (int i = 0; i < 4; i++)
62     {
63         obj = lv_img_create(area_depart);
64         lv_obj_set_size(obj, 160, 120);
65         lv_img_set_src(obj, wallpapers[i]);
66     }
67 
68     area_wallpaper = lv_obj_create(bg);
69     lv_obj_set_size(area_wallpaper, lv_pct(100), LV_SIZE_CONTENT);
70     lv_obj_set_flex_flow(area_wallpaper, LV_FLEX_FLOW_COLUMN);
71 
72     obj = lv_label_create(area_wallpaper);
73     lv_label_set_text(obj, "壁纸");
74     lv_obj_add_style(obj, &style_txt_m, LV_PART_MAIN);
75     lv_obj_align(obj, LV_ALIGN_TOP_LEFT, 0, 0);
76 
77     area_depart = lv_obj_create(area_wallpaper);
78     lv_obj_remove_style_all(area_depart);
79     lv_obj_set_size(area_depart, lv_pct(100), LV_SIZE_CONTENT);
80     lv_obj_set_flex_flow(area_depart, LV_FLEX_FLOW_ROW);
81     lv_obj_set_style_pad_column(area_depart, 10, 0);
82     for (int i = 0; i < 4; i++)
83     {
84         obj = lv_img_create(area_depart);
85         lv_obj_set_size(obj, 160, 120);
86         lv_img_set_src(obj, wallpapers[i]);
87     }
88 
89     return bg;
90 }
91 
menu_wallpaper_deinit(void)92 void menu_wallpaper_deinit(void)
93 {
94     lv_obj_del(bg);
95     bg = NULL;
96 }
97 
98