├── card-ui.png
├── .gitignore
├── .vscode
└── extensions.json
├── test
└── README
├── README.md
├── src
├── ui_events.c
├── ui.h
├── ui_helpers.h
├── ui_img_wifi_png.c
├── ui_helpers.c
├── ui_img_web_png.c
├── ui_img_554157408.c
├── ui_img_email_png.c
├── ui_img_globe_png.c
├── ui_img_1127648905.c
├── ui_img_1276322231.c
├── ui_img_1668805065.c
├── ui_img_twitter_png.c
├── ui_img_led_control_png.c
├── main.cpp
└── ui.c
├── LICENSE
├── lib
├── README
├── FT6336U
│ ├── FT6336U.h
│ └── FT6336U.cpp
└── lv_conf.h
├── platformio.ini
└── include
└── README
/card-ui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fbiego/digital_card/HEAD/card-ui.png
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .pio
2 | .vscode/.browse.c_cpp.db*
3 | .vscode/c_cpp_properties.json
4 | .vscode/launch.json
5 | .vscode/ipch
6 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // See http://go.microsoft.com/fwlink/?LinkId=827846
3 | // for the documentation about the extensions.json format
4 | "recommendations": [
5 | "platformio.platformio-ide"
6 | ],
7 | "unwantedRecommendations": [
8 | "ms-vscode.cpptools-extension-pack"
9 | ]
10 | }
11 |
--------------------------------------------------------------------------------
/test/README:
--------------------------------------------------------------------------------
1 |
2 | This directory is intended for PlatformIO Test Runner and project tests.
3 |
4 | Unit Testing is a software testing method by which individual units of
5 | source code, sets of one or more MCU program modules together with associated
6 | control data, usage procedures, and operating procedures, are tested to
7 | determine whether they are fit for use. Unit testing finds problems early
8 | in the development cycle.
9 |
10 | More information about PlatformIO Unit Testing:
11 | - https://docs.platformio.org/en/latest/advanced/unit-testing/index.html
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # digital_card
2 | A digital business card UI demo for the WT32-SC01 module
3 |
4 | ### Video
5 | [`Youtube`](https://youtu.be/I7Ylnpz09-c)
6 |
7 | ### BLE Launcher app
8 |
9 |
10 |
11 |
12 | ### Screenshot
13 | [](https://youtu.be/I7Ylnpz09-c)
14 |
--------------------------------------------------------------------------------
/src/ui_events.c:
--------------------------------------------------------------------------------
1 | // SquareLine LVGL GENERATED FILE
2 | // EDITOR VERSION: SquareLine Studio 1.1.0
3 | // LVGL VERSION: 8.2
4 | // PROJECT: card
5 |
6 | #include "ui.h"
7 |
8 | // void onClickEmail(lv_event_t * e)
9 | // {
10 | // // Your code here
11 | // }
12 |
13 | // void onClickWebsite(lv_event_t * e)
14 | // {
15 | // // Your code here
16 | // }
17 |
18 | // void onClickTwitter(lv_event_t * e)
19 | // {
20 | // // Your code here
21 | // }
22 |
23 | // void onClickCall(lv_event_t * e)
24 | // {
25 | // // Your code here
26 | // }
27 |
28 | // void onBrightnessChange(lv_event_t * e)
29 | // {
30 | // // Your code here
31 | // }
32 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Felix Biego
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/lib/README:
--------------------------------------------------------------------------------
1 |
2 | This directory is intended for project specific (private) libraries.
3 | PlatformIO will compile them to static libraries and link into executable file.
4 |
5 | The source code of each library should be placed in a an own separate directory
6 | ("lib/your_library_name/[here are source files]").
7 |
8 | For example, see a structure of the following two libraries `Foo` and `Bar`:
9 |
10 | |--lib
11 | | |
12 | | |--Bar
13 | | | |--docs
14 | | | |--examples
15 | | | |--src
16 | | | |- Bar.c
17 | | | |- Bar.h
18 | | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html
19 | | |
20 | | |--Foo
21 | | | |- Foo.c
22 | | | |- Foo.h
23 | | |
24 | | |- README --> THIS FILE
25 | |
26 | |- platformio.ini
27 | |--src
28 | |- main.c
29 |
30 | and a contents of `src/main.c`:
31 | ```
32 | #include
33 | #include
34 |
35 | int main (void)
36 | {
37 | ...
38 | }
39 |
40 | ```
41 |
42 | PlatformIO Library Dependency Finder will find automatically dependent
43 | libraries scanning project source files.
44 |
45 | More information about PlatformIO Library Dependency Finder
46 | - https://docs.platformio.org/page/librarymanager/ldf.html
47 |
--------------------------------------------------------------------------------
/platformio.ini:
--------------------------------------------------------------------------------
1 | ; PlatformIO Project Configuration File
2 | ;
3 | ; Build options: build flags, source filter
4 | ; Upload options: custom upload port, speed and extra flags
5 | ; Library options: dependencies, extra library storages
6 | ; Advanced options: extra scripting
7 | ;
8 | ; Please visit documentation for the other options and examples
9 | ; https://docs.platformio.org/page/projectconf.html
10 |
11 | [env:wt32-sc01]
12 | platform = espressif32
13 | board = esp-wrover-kit
14 | framework = arduino
15 | board_build.partitions = no_ota.csv
16 | lib_deps =
17 | fbiego/ESP32Time@^2.0.0
18 | bblanchon/ArduinoJson@^6.19.4
19 | lvgl/lvgl@^8.3.1
20 | lovyan03/LovyanGFX@^0.4.18
21 | build_flags =
22 | -DBOARD_HAS_PSRAM
23 | -mfix-esp32-psram-cache-issue
24 | -I lib
25 | -D LV_MEM_SIZE="(64U * 1024U)"
26 |
27 | [env:wt32-sc01-plus]
28 | platform = espressif32
29 | board = esp32-s3-devkitc-1
30 | framework = arduino
31 | board_build.partitions = default_8MB.csv
32 | board_build.mcu = esp32s3
33 | board_build.f_cpu = 240000000L
34 | lib_deps =
35 | fbiego/ESP32Time@^2.0.0
36 | bblanchon/ArduinoJson@^6.19.4
37 | lvgl/lvgl@^8.3.1
38 | lovyan03/LovyanGFX@^0.4.18
39 | build_flags =
40 | -DBOARD_HAS_PSRAM
41 | -mfix-esp32-psram-cache-issue
42 | -I lib
43 | -D PLUS=1
44 | -D LV_MEM_SIZE="(96U * 1024U)"
--------------------------------------------------------------------------------
/include/README:
--------------------------------------------------------------------------------
1 |
2 | This directory is intended for project header files.
3 |
4 | A header file is a file containing C declarations and macro definitions
5 | to be shared between several project source files. You request the use of a
6 | header file in your project source file (C, C++, etc) located in `src` folder
7 | by including it, with the C preprocessing directive `#include'.
8 |
9 | ```src/main.c
10 |
11 | #include "header.h"
12 |
13 | int main (void)
14 | {
15 | ...
16 | }
17 | ```
18 |
19 | Including a header file produces the same results as copying the header file
20 | into each source file that needs it. Such copying would be time-consuming
21 | and error-prone. With a header file, the related declarations appear
22 | in only one place. If they need to be changed, they can be changed in one
23 | place, and programs that include the header file will automatically use the
24 | new version when next recompiled. The header file eliminates the labor of
25 | finding and changing all the copies as well as the risk that a failure to
26 | find one copy will result in inconsistencies within a program.
27 |
28 | In C, the usual convention is to give header files names that end with `.h'.
29 | It is most portable to use only letters, digits, dashes, and underscores in
30 | header file names, and at most one dot.
31 |
32 | Read more about using header files in official GCC documentation:
33 |
34 | * Include Syntax
35 | * Include Operation
36 | * Once-Only Headers
37 | * Computed Includes
38 |
39 | https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html
40 |
--------------------------------------------------------------------------------
/src/ui.h:
--------------------------------------------------------------------------------
1 | // SquareLine LVGL GENERATED FILE
2 | // EDITOR VERSION: SquareLine Studio 1.1.0
3 | // LVGL VERSION: 8.2
4 | // PROJECT: card
5 |
6 | #ifndef _CARD_UI_H
7 | #define _CARD_UI_H
8 |
9 | #ifdef __cplusplus
10 | extern "C" {
11 | #endif
12 |
13 | #if defined __has_include
14 | #if __has_include("lvgl.h")
15 | #include "lvgl.h"
16 | #elif __has_include("lvgl/lvgl.h")
17 | #include "lvgl/lvgl.h"
18 | #else
19 | #include "lvgl.h"
20 | #endif
21 | #else
22 | #include "lvgl.h"
23 | #endif
24 |
25 | void ui_event_mainScreen(lv_event_t * e);
26 | extern lv_obj_t * ui_mainScreen;
27 | extern lv_obj_t * ui_nameLabel;
28 | extern lv_obj_t * ui_aboutLabel;
29 | void ui_event_emailPanel(lv_event_t * e);
30 | extern lv_obj_t * ui_emailPanel;
31 | extern lv_obj_t * ui_emailIcon;
32 | extern lv_obj_t * ui_emailText;
33 | void ui_event_websitePanel(lv_event_t * e);
34 | extern lv_obj_t * ui_websitePanel;
35 | extern lv_obj_t * ui_websiteIcon;
36 | extern lv_obj_t * ui_websiteText;
37 | void ui_event_twitterPanel(lv_event_t * e);
38 | extern lv_obj_t * ui_twitterPanel;
39 | extern lv_obj_t * ui_twitterIcon;
40 | extern lv_obj_t * ui_twitterText;
41 | void ui_event_phonePanel(lv_event_t * e);
42 | extern lv_obj_t * ui_phonePanel;
43 | extern lv_obj_t * ui_phoneIcon;
44 | extern lv_obj_t * ui_phoneText;
45 | extern lv_obj_t * ui_alertPanel;
46 | extern lv_obj_t * ui_connectIcon;
47 | void ui_event_clockScreen(lv_event_t * e);
48 | extern lv_obj_t * ui_clockScreen;
49 | extern lv_obj_t * ui_clockPanel;
50 | extern lv_obj_t * ui_hour1;
51 | extern lv_obj_t * ui_hour2;
52 | extern lv_obj_t * ui_minute1;
53 | extern lv_obj_t * ui_minute2;
54 | extern lv_obj_t * ui_second1;
55 | extern lv_obj_t * ui_second2;
56 | extern lv_obj_t * ui_label1;
57 | extern lv_obj_t * ui_label2;
58 | extern lv_obj_t * ui_dateText;
59 | extern lv_obj_t * ui_weatherIcon;
60 | extern lv_obj_t * ui_weatherTemp;
61 | extern lv_obj_t * ui_weatherLocation;
62 | void ui_event_brightnessSlider(lv_event_t * e);
63 | extern lv_obj_t * ui_brightnessSlider;
64 | extern lv_obj_t * ui_brightnessIcon;
65 |
66 | void onClickEmail(lv_event_t * e);
67 | void onClickWebsite(lv_event_t * e);
68 | void onClickTwitter(lv_event_t * e);
69 | void onClickCall(lv_event_t * e);
70 | void onBrightnessChange(lv_event_t * e);
71 |
72 | LV_IMG_DECLARE(ui_img_236433794); // assets\flx-bg_480x320.png
73 | LV_IMG_DECLARE(ui_img_email_png); // assets\email.png
74 | LV_IMG_DECLARE(ui_img_web_png); // assets\web.png
75 | LV_IMG_DECLARE(ui_img_1668805065); // assets\twitter (1).png
76 | LV_IMG_DECLARE(ui_img_1276322231); // assets\phone-call.png
77 | LV_IMG_DECLARE(ui_img_wifi_png); // assets\wifi.png
78 | LV_IMG_DECLARE(ui_img_zero_64_png); // assets\zero_64.png
79 | LV_IMG_DECLARE(ui_img_one_64_png); // assets\one_64.png
80 | LV_IMG_DECLARE(ui_img_three_64_png); // assets\three_64.png
81 | LV_IMG_DECLARE(ui_img_seven_64_png); // assets\seven_64.png
82 | LV_IMG_DECLARE(ui_img_two_64_png); // assets\two_64.png
83 | LV_IMG_DECLARE(ui_img_five_64_png); // assets\five_64.png
84 | LV_IMG_DECLARE(ui_img_1127648905); // assets\cloudy-day.png
85 | LV_IMG_DECLARE(ui_img_led_control_png); // assets\led_control.png
86 |
87 |
88 |
89 |
90 | void ui_init(void);
91 |
92 | #ifdef __cplusplus
93 | } /*extern "C"*/
94 | #endif
95 |
96 | #endif
97 |
--------------------------------------------------------------------------------
/src/ui_helpers.h:
--------------------------------------------------------------------------------
1 | // SquareLine LVGL GENERATED FILE
2 | // EDITOR VERSION: SquareLine Studio 1.1.0
3 | // LVGL VERSION: 8.2
4 | // PROJECT: card
5 |
6 | #ifndef _CARD_UI_HELPERS_H
7 | #define _CARD_UI_HELPERS_H
8 |
9 | #include "ui.h"
10 |
11 | #define _UI_TEMPORARY_STRING_BUFFER_SIZE 32
12 | #define _UI_BAR_PROPERTY_VALUE 0
13 | #define _UI_BAR_PROPERTY_VALUE_WITH_ANIM 1
14 | void _ui_bar_set_property(lv_obj_t * target, int id, int val);
15 |
16 | #define _UI_BASIC_PROPERTY_POSITION_X 0
17 | #define _UI_BASIC_PROPERTY_POSITION_Y 1
18 | #define _UI_BASIC_PROPERTY_WIDTH 2
19 | #define _UI_BASIC_PROPERTY_HEIGHT 3
20 | void _ui_basic_set_property(lv_obj_t * target, int id, int val);
21 |
22 | #define _UI_DROPDOWN_PROPERTY_SELECTED 0
23 | void _ui_dropdown_set_property(lv_obj_t * target, int id, int val);
24 |
25 | #define _UI_IMAGE_PROPERTY_IMAGE 0
26 | void _ui_image_set_property(lv_obj_t * target, int id, uint8_t * val);
27 |
28 | #define _UI_LABEL_PROPERTY_TEXT 0
29 | void _ui_label_set_property(lv_obj_t * target, int id, char * val);
30 |
31 | #define _UI_ROLLER_PROPERTY_SELECTED 0
32 | #define _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM 1
33 | void _ui_roller_set_property(lv_obj_t * target, int id, int val);
34 |
35 | #define _UI_SLIDER_PROPERTY_VALUE 0
36 | #define _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM 1
37 | void _ui_slider_set_property(lv_obj_t * target, int id, int val);
38 |
39 | void _ui_screen_change(lv_obj_t * target, lv_scr_load_anim_t fademode, int spd, int delay);
40 |
41 | void _ui_arc_increment(lv_obj_t * target, int val);
42 |
43 | void _ui_bar_increment(lv_obj_t * target, int val, int anm);
44 |
45 | void _ui_slider_increment(lv_obj_t * target, int val, int anm);
46 |
47 | #define _UI_MODIFY_FLAG_ADD 0
48 | #define _UI_MODIFY_FLAG_REMOVE 1
49 | #define _UI_MODIFY_FLAG_TOGGLE 2
50 | void _ui_flag_modify(lv_obj_t * target, int32_t flag, int value);
51 |
52 | #define _UI_MODIFY_STATE_ADD 0
53 | #define _UI_MODIFY_STATE_REMOVE 1
54 | #define _UI_MODIFY_STATE_TOGGLE 2
55 | void _ui_state_modify(lv_obj_t * target, int32_t state, int value);
56 |
57 | void _ui_opacity_set(lv_obj_t * target, int val);
58 |
59 | void _ui_anim_callback_set_x(lv_anim_t * a, int32_t v);
60 |
61 | void _ui_anim_callback_set_y(lv_anim_t * a, int32_t v);
62 |
63 | void _ui_anim_callback_set_width(lv_anim_t * a, int32_t v);
64 |
65 | void _ui_anim_callback_set_height(lv_anim_t * a, int32_t v);
66 |
67 | void _ui_anim_callback_set_opacity(lv_anim_t * a, int32_t v);
68 |
69 | void _ui_anim_callback_set_image_zoom(lv_anim_t * a, int32_t v);
70 |
71 | void _ui_anim_callback_set_image_angle(lv_anim_t * a, int32_t v);
72 |
73 | int32_t _ui_anim_callback_get_x(lv_anim_t * a);
74 |
75 | int32_t _ui_anim_callback_get_y(lv_anim_t * a);
76 |
77 | int32_t _ui_anim_callback_get_width(lv_anim_t * a);
78 |
79 | int32_t _ui_anim_callback_get_height(lv_anim_t * a);
80 |
81 | int32_t _ui_anim_callback_get_opacity(lv_anim_t * a);
82 |
83 | int32_t _ui_anim_callback_get_image_zoom(lv_anim_t * a);
84 |
85 | int32_t _ui_anim_callback_get_image_angle(lv_anim_t * a);
86 |
87 | void _ui_arc_set_text_value(lv_obj_t * trg, lv_obj_t * src, char * prefix, char * postfix);
88 |
89 | void _ui_slider_set_text_value(lv_obj_t * trg, lv_obj_t * src, char * prefix, char * postfix);
90 |
91 | void _ui_checked_set_text_value(lv_obj_t * trg, lv_obj_t * src, char * txt_on, char * txt_off);
92 |
93 |
94 | #endif
95 |
--------------------------------------------------------------------------------
/src/ui_img_wifi_png.c:
--------------------------------------------------------------------------------
1 | // SquareLine LVGL GENERATED FILE
2 | // EDITOR VERSION: SquareLine Studio 1.1.0
3 | // LVGL VERSION: 8.2
4 | // PROJECT: card
5 |
6 | #include "ui.h"
7 |
8 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
9 | #define LV_ATTRIBUTE_MEM_ALIGN
10 | #endif
11 |
12 | // IMAGE DATA: assets\wifi.png
13 | const LV_ATTRIBUTE_MEM_ALIGN uint8_t ui_img_wifi_png_data[] = {
14 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1B, 0xFF, 0xFF, 0x65, 0xFF, 0xFF, 0x86, 0xFF, 0xFF, 0xA0, 0xFF, 0xFF, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x45, 0xFF, 0xFF, 0xC4, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xCE, 0xFF, 0xFF, 0xB4, 0xFF, 0xFF, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x11, 0xFF, 0xFF, 0xB3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xB2, 0xFF, 0xFF, 0x4A, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x23, 0xFF, 0xFF, 0xD9, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0A, 0xFF, 0xFF, 0x40, 0xFF, 0xFF, 0x5B, 0xFF, 0xFF, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x11, 0xFF, 0xFF, 0xD9, 0xFF, 0xFF, 0xCA, 0xFF, 0xFF, 0x17, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x22, 0xFF, 0xFF, 0xA3, 0xFF, 0xFF, 0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xB3, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0x17, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x5A, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xD7, 0xFF, 0xFF, 0x65, 0xFF, 0xFF, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x45, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3D, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x5A, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0x8C, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x15, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
16 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC4, 0xFF, 0xFF, 0xB2, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x22, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0x8C, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x06, 0xFF, 0xFF, 0x7B, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1B, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0x49, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xA3, 0xFF, 0xFF, 0xD7, 0xFF, 0xFF, 0x04, 0xFF, 0xFF, 0x05, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0x86, 0xFF, 0xFF, 0x40, 0xFF, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x65, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0x0A, 0xFF, 0xFF, 0xF6, 0xFF, 0xFF, 0x64, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x7B, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0xCD, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1B, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x16, 0xFF, 0xFF, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
17 | 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xA0, 0xFF, 0xFF, 0xB4, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x5A, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x14, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x40, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x16, 0xFF, 0xFF, 0xF4, 0xFF, 0xFF, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x41, 0xFF, 0xFF, 0x41, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1D, 0xFF, 0xFF, 0x65, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x02, 0xFF, 0xFF, 0x76, 0xFF, 0xFF, 0x09, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0D, 0xFF, 0xFF, 0xD9, 0xFF, 0xFF, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
18 | };
19 | const lv_img_dsc_t ui_img_wifi_png = {
20 | .header.always_zero = 0,
21 | .header.w = 16,
22 | .header.h = 16,
23 | .data_size = sizeof(ui_img_wifi_png_data),
24 | .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
25 | .data = ui_img_wifi_png_data
26 | };
27 |
28 |
--------------------------------------------------------------------------------
/src/ui_helpers.c:
--------------------------------------------------------------------------------
1 | // SquareLine LVGL GENERATED FILE
2 | // EDITOR VERSION: SquareLine Studio 1.1.0
3 | // LVGL VERSION: 8.2
4 | // PROJECT: card
5 |
6 | #include "ui_helpers.h"
7 |
8 | void _ui_bar_set_property(lv_obj_t * target, int id, int val)
9 | {
10 | if(id == _UI_BAR_PROPERTY_VALUE_WITH_ANIM) lv_bar_set_value(target, val, LV_ANIM_ON);
11 | if(id == _UI_BAR_PROPERTY_VALUE) lv_bar_set_value(target, val, LV_ANIM_OFF);
12 | }
13 |
14 | void _ui_basic_set_property(lv_obj_t * target, int id, int val)
15 | {
16 | if(id == _UI_BASIC_PROPERTY_POSITION_X) lv_obj_set_x(target, val);
17 | if(id == _UI_BASIC_PROPERTY_POSITION_Y) lv_obj_set_y(target, val);
18 | if(id == _UI_BASIC_PROPERTY_WIDTH) lv_obj_set_width(target, val);
19 | if(id == _UI_BASIC_PROPERTY_HEIGHT) lv_obj_set_height(target, val);
20 | }
21 |
22 |
23 | void _ui_dropdown_set_property(lv_obj_t * target, int id, int val)
24 | {
25 | if(id == _UI_DROPDOWN_PROPERTY_SELECTED) lv_dropdown_set_selected(target, val);
26 | }
27 |
28 | void _ui_image_set_property(lv_obj_t * target, int id, uint8_t * val)
29 | {
30 | if(id == _UI_IMAGE_PROPERTY_IMAGE) lv_img_set_src(target, val);
31 | }
32 |
33 | void _ui_label_set_property(lv_obj_t * target, int id, char * val)
34 | {
35 | if(id == _UI_LABEL_PROPERTY_TEXT) lv_label_set_text(target, val);
36 | }
37 |
38 |
39 | void _ui_roller_set_property(lv_obj_t * target, int id, int val)
40 | {
41 | if(id == _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM) lv_roller_set_selected(target, val, LV_ANIM_ON);
42 | if(id == _UI_ROLLER_PROPERTY_SELECTED) lv_roller_set_selected(target, val, LV_ANIM_OFF);
43 | }
44 |
45 | void _ui_slider_set_property(lv_obj_t * target, int id, int val)
46 | {
47 | if(id == _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM) lv_slider_set_value(target, val, LV_ANIM_ON);
48 | if(id == _UI_SLIDER_PROPERTY_VALUE) lv_slider_set_value(target, val, LV_ANIM_OFF);
49 | }
50 |
51 |
52 | void _ui_screen_change(lv_obj_t * target, lv_scr_load_anim_t fademode, int spd, int delay)
53 | {
54 | lv_scr_load_anim(target, fademode, spd, delay, false);
55 | }
56 |
57 | void _ui_arc_increment(lv_obj_t * target, int val)
58 | {
59 | int old = lv_arc_get_value(target);
60 | lv_arc_set_value(target, old + val);
61 | }
62 |
63 | void _ui_bar_increment(lv_obj_t * target, int val, int anm)
64 | {
65 | int old = lv_bar_get_value(target);
66 | lv_bar_set_value(target, old + val, anm);
67 | }
68 |
69 | void _ui_slider_increment(lv_obj_t * target, int val, int anm)
70 | {
71 | int old = lv_slider_get_value(target);
72 | lv_slider_set_value(target, old + val, anm);
73 | }
74 |
75 | void _ui_flag_modify(lv_obj_t * target, int32_t flag, int value)
76 | {
77 | if(value == _UI_MODIFY_FLAG_TOGGLE) {
78 | if(lv_obj_has_flag(target, flag)) lv_obj_clear_flag(target, flag);
79 | else lv_obj_add_flag(target, flag);
80 | }
81 | else if(value == _UI_MODIFY_FLAG_ADD) lv_obj_add_flag(target, flag);
82 | else lv_obj_clear_flag(target, flag);
83 | }
84 | void _ui_state_modify(lv_obj_t * target, int32_t state, int value)
85 | {
86 | if(value == _UI_MODIFY_STATE_TOGGLE) {
87 | if(lv_obj_has_state(target, state)) lv_obj_clear_state(target, state);
88 | else lv_obj_add_state(target, state);
89 | }
90 | else if(value == _UI_MODIFY_STATE_ADD) lv_obj_add_state(target, state);
91 | else lv_obj_clear_state(target, state);
92 | }
93 |
94 | void _ui_opacity_set(lv_obj_t * target, int val)
95 | {
96 | lv_obj_set_style_opa(target, val, 0);
97 | }
98 |
99 | void _ui_anim_callback_set_x(lv_anim_t * a, int32_t v)
100 | {
101 | lv_obj_set_x((lv_obj_t *)a->user_data, v);
102 | }
103 |
104 | void _ui_anim_callback_set_y(lv_anim_t * a, int32_t v)
105 | {
106 | lv_obj_set_y((lv_obj_t *)a->user_data, v);
107 | }
108 |
109 | void _ui_anim_callback_set_width(lv_anim_t * a, int32_t v)
110 | {
111 | lv_obj_set_width((lv_obj_t *)a->user_data, v);
112 | }
113 |
114 | void _ui_anim_callback_set_height(lv_anim_t * a, int32_t v)
115 | {
116 | lv_obj_set_height((lv_obj_t *)a->user_data, v);
117 | }
118 |
119 | void _ui_anim_callback_set_opacity(lv_anim_t * a, int32_t v)
120 | {
121 | lv_obj_set_style_opa((lv_obj_t *)a->user_data, v, 0);
122 | }
123 |
124 | void _ui_anim_callback_set_image_zoom(lv_anim_t * a, int32_t v)
125 | {
126 | lv_img_set_zoom((lv_obj_t *)a->user_data, v);
127 | }
128 |
129 | void _ui_anim_callback_set_image_angle(lv_anim_t * a, int32_t v)
130 | {
131 | lv_img_set_angle((lv_obj_t *)a->user_data, v);
132 | }
133 |
134 |
135 | int32_t _ui_anim_callback_get_x(lv_anim_t * a)
136 | {
137 | return lv_obj_get_x_aligned((lv_obj_t *)a->user_data);
138 | }
139 |
140 | int32_t _ui_anim_callback_get_y(lv_anim_t * a)
141 | {
142 | return lv_obj_get_y_aligned((lv_obj_t *)a->user_data);
143 | }
144 |
145 | int32_t _ui_anim_callback_get_width(lv_anim_t * a)
146 | {
147 | return lv_obj_get_width((lv_obj_t *)a->user_data);
148 | }
149 |
150 | int32_t _ui_anim_callback_get_height(lv_anim_t * a)
151 | {
152 | return lv_obj_get_height((lv_obj_t *)a->user_data);
153 | }
154 |
155 | int32_t _ui_anim_callback_get_opacity(lv_anim_t * a)
156 | {
157 | return lv_obj_get_style_opa((lv_obj_t *)a->user_data, 0);
158 | }
159 |
160 | int32_t _ui_anim_callback_get_image_zoom(lv_anim_t * a)
161 | {
162 | return lv_img_get_zoom((lv_obj_t *)a->user_data);
163 | }
164 |
165 | int32_t _ui_anim_callback_get_image_angle(lv_anim_t * a)
166 | {
167 | return lv_img_get_angle((lv_obj_t *)a->user_data);
168 | }
169 |
170 | void _ui_arc_set_text_value(lv_obj_t * trg, lv_obj_t * src, char * prefix, char * postfix)
171 | {
172 | char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE];
173 | lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_arc_get_value(src), postfix);
174 | lv_label_set_text(trg, buf);
175 | }
176 |
177 | void _ui_slider_set_text_value(lv_obj_t * trg, lv_obj_t * src, char * prefix, char * postfix)
178 | {
179 | char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE];
180 | lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_slider_get_value(src), postfix);
181 | lv_label_set_text(trg, buf);
182 | }
183 | void _ui_checked_set_text_value(lv_obj_t * trg, lv_obj_t * src, char * txt_on, char * txt_off)
184 | {
185 | if(lv_obj_has_state(src, LV_STATE_CHECKED)) lv_label_set_text(trg, txt_on);
186 | else lv_label_set_text(trg, txt_off);
187 | }
188 |
189 |
190 |
--------------------------------------------------------------------------------
/lib/FT6336U/FT6336U.h:
--------------------------------------------------------------------------------
1 | /**************************************************************************/
2 | /*!
3 | @file FT6336U.h
4 | Author: Atsushi Sasaki(https://github.com/aselectroworks)
5 | License: MIT (see LICENSE)
6 | */
7 | /**************************************************************************/
8 |
9 | #ifndef _FT6336U_H
10 | #define _FT6336U_H
11 |
12 | #include
13 | #include
14 | #include
15 |
16 | #define I2C_ADDR_FT6336U 0x38
17 |
18 | // Touch Parameter
19 | #define FT6336U_PRES_DOWN 0x2
20 | #define FT6336U_COORD_UD 0x1
21 |
22 | // Registers
23 | #define FT6336U_ADDR_DEVICE_MODE 0x00
24 | typedef enum {
25 | working_mode = 0b000,
26 | factory_mode = 0b100,
27 | } DEVICE_MODE_Enum;
28 | #define FT6336U_ADDR_GESTURE_ID 0x01
29 | #define FT6336U_ADDR_TD_STATUS 0x02
30 |
31 | #define FT6336U_ADDR_TOUCH1_EVENT 0x03
32 | #define FT6336U_ADDR_TOUCH1_ID 0x05
33 | #define FT6336U_ADDR_TOUCH1_X 0x03
34 | #define FT6336U_ADDR_TOUCH1_Y 0x05
35 | #define FT6336U_ADDR_TOUCH1_WEIGHT 0x07
36 | #define FT6336U_ADDR_TOUCH1_MISC 0x08
37 |
38 | #define FT6336U_ADDR_TOUCH2_EVENT 0x09
39 | #define FT6336U_ADDR_TOUCH2_ID 0x0B
40 | #define FT6336U_ADDR_TOUCH2_X 0x09
41 | #define FT6336U_ADDR_TOUCH2_Y 0x0B
42 | #define FT6336U_ADDR_TOUCH2_WEIGHT 0x0D
43 | #define FT6336U_ADDR_TOUCH2_MISC 0x0E
44 |
45 | #define FT6336U_ADDR_THRESHOLD 0x80
46 | #define FT6336U_ADDR_FILTER_COE 0x85
47 | #define FT6336U_ADDR_CTRL 0x86
48 | typedef enum {
49 | keep_active_mode = 0,
50 | switch_to_monitor_mode = 1,
51 | } CTRL_MODE_Enum;
52 | #define FT6336U_ADDR_TIME_ENTER_MONITOR 0x87
53 | #define FT6336U_ADDR_ACTIVE_MODE_RATE 0x88
54 | #define FT6336U_ADDR_MONITOR_MODE_RATE 0x89
55 |
56 | #define FT6336U_ADDR_RADIAN_VALUE 0x91
57 | #define FT6336U_ADDR_OFFSET_LEFT_RIGHT 0x92
58 | #define FT6336U_ADDR_OFFSET_UP_DOWN 0x93
59 | #define FT6336U_ADDR_DISTANCE_LEFT_RIGHT 0x94
60 | #define FT6336U_ADDR_DISTANCE_UP_DOWN 0x95
61 | #define FT6336U_ADDR_DISTANCE_ZOOM 0x96
62 |
63 | #define FT6336U_ADDR_LIBRARY_VERSION_H 0xA1
64 | #define FT6336U_ADDR_LIBRARY_VERSION_L 0xA2
65 | #define FT6336U_ADDR_CHIP_ID 0xA3
66 | #define FT6336U_ADDR_G_MODE 0xA4
67 | typedef enum {
68 | pollingMode = 0,
69 | triggerMode = 1,
70 | } G_MODE_Enum;
71 | #define FT6336U_ADDR_POWER_MODE 0xA5
72 | #define FT6336U_ADDR_FIRMARE_ID 0xA6
73 | #define FT6336U_ADDR_FOCALTECH_ID 0xA8
74 | #define FT6336U_ADDR_RELEASE_CODE_ID 0xAF
75 | #define FT6336U_ADDR_STATE 0xBC
76 |
77 | // Function Specific Type
78 | typedef enum {
79 | touch = 0,
80 | stream,
81 | release,
82 | } TouchStatusEnum;
83 | typedef struct {
84 | TouchStatusEnum status;
85 | uint16_t x;
86 | uint16_t y;
87 | } TouchPointType;
88 | typedef struct {
89 | uint8_t touch_count;
90 | TouchPointType tp[2];
91 | } FT6336U_TouchPointType;
92 |
93 |
94 | // Uncomment to enable debug messages
95 | //#define FT6336U_DEBUG
96 |
97 | // Define where debug output will be printed
98 | #define DEBUG_PRINTER Serial
99 |
100 | // Setup debug printing macros
101 | #ifdef FT6336U_DEBUG
102 | #define DEBUG_PRINT(...) \
103 | { \
104 | DEBUG_PRINTER.print(__VA_ARGS__); \
105 | }
106 | #define DEBUG_PRINTLN(...) \
107 | { \
108 | DEBUG_PRINTER.println(__VA_ARGS__); \
109 | }
110 | #else
111 | #define DEBUG_PRINT(...) \
112 | { \
113 | }
114 | #define DEBUG_PRINTLN(...) \
115 | { \
116 | }
117 | #endif
118 |
119 | /**************************************************************************/
120 | /*!
121 | @brief FT6336U I2C CTP controller driver
122 | */
123 | /**************************************************************************/
124 | class FT6336U
125 | {
126 | public:
127 | FT6336U(uint8_t rst_n, uint8_t int_n);
128 | #if defined(ESP32) || defined(ESP8266)
129 | FT6336U(int8_t sda, int8_t scl, uint8_t rst_n, uint8_t int_n);
130 | #endif
131 | virtual ~FT6336U();
132 |
133 | void begin(void);
134 |
135 | uint8_t read_device_mode(void);
136 | void write_device_mode(DEVICE_MODE_Enum);
137 | uint8_t read_gesture_id(void);
138 | uint8_t read_td_status(void);
139 | uint8_t read_touch_number(void);
140 | uint16_t read_touch1_x(void);
141 | uint16_t read_touch1_y(void);
142 | uint8_t read_touch1_event(void);
143 | uint8_t read_touch1_id(void);
144 | uint8_t read_touch1_weight(void);
145 | uint8_t read_touch1_misc(void);
146 | uint16_t read_touch2_x(void);
147 | uint16_t read_touch2_y(void);
148 | uint8_t read_touch2_event(void);
149 | uint8_t read_touch2_id(void);
150 | uint8_t read_touch2_weight(void);
151 | uint8_t read_touch2_misc(void);
152 |
153 | // Mode Parameter Register
154 | uint8_t read_touch_threshold(void);
155 | uint8_t read_filter_coefficient(void);
156 | uint8_t read_ctrl_mode(void);
157 | void write_ctrl_mode(CTRL_MODE_Enum mode);
158 | uint8_t read_time_period_enter_monitor(void);
159 | uint8_t read_active_rate(void);
160 | uint8_t read_monitor_rate(void);
161 |
162 | // Gestrue Parameter Register
163 | uint8_t read_radian_value(void);
164 | void write_radian_value(uint8_t val);
165 | uint8_t read_offset_left_right(void);
166 | void write_offset_left_right(uint8_t val);
167 | uint8_t read_offset_up_down(void);
168 | void write_offset_up_down(uint8_t val);
169 | uint8_t read_distance_left_right(void);
170 | void write_distance_left_right(uint8_t val);
171 | uint8_t read_distance_up_down(void);
172 | void write_distance_up_down(uint8_t val);
173 | uint8_t read_distance_zoom(void);
174 | void write_distance_zoom(uint8_t val);
175 |
176 | // System Information
177 | uint16_t read_library_version(void);
178 | uint8_t read_chip_id(void);
179 | uint8_t read_g_mode(void);
180 | void write_g_mode(G_MODE_Enum mode);
181 | uint8_t read_pwrmode(void);
182 | uint8_t read_firmware_id(void);
183 | uint8_t read_focaltech_id(void);
184 | uint8_t read_release_code_id(void);
185 | uint8_t read_state(void);
186 |
187 | // Scan Function
188 | FT6336U_TouchPointType scan(void);
189 |
190 | private:
191 | int8_t sda = -1;
192 | int8_t scl = -1;
193 | uint8_t rst_n = -1;
194 | uint8_t int_n = -1;
195 |
196 | uint8_t readByte(uint8_t addr);
197 | void writeByte(uint8_t addr, uint8_t data);
198 |
199 | FT6336U_TouchPointType touchPoint;
200 | };
201 | #endif
202 |
--------------------------------------------------------------------------------
/lib/FT6336U/FT6336U.cpp:
--------------------------------------------------------------------------------
1 | /**************************************************************************/
2 | /*!
3 | @file FT6336U.cpp
4 | Author: Atsushi Sasaki (https://github.com/aselectroworks)
5 | License: MIT (see LICENSE)
6 | */
7 | /**************************************************************************/
8 |
9 | #include "FT6336U.h"
10 |
11 | #include
12 |
13 | FT6336U::FT6336U(uint8_t rst_n, uint8_t int_n)
14 | : rst_n(rst_n), int_n(int_n) {
15 | }
16 | #if defined(ESP32) || defined(ESP8266)
17 | FT6336U::FT6336U(int8_t sda, int8_t scl, uint8_t rst_n, uint8_t int_n)
18 | : sda(sda), scl(scl), rst_n(rst_n), int_n(int_n) {
19 | }
20 | #endif
21 | FT6336U::~FT6336U() {
22 | }
23 |
24 |
25 | void FT6336U::begin(void) {
26 | // Initialize I2C
27 | #if defined(ESP32) || defined(ESP8266)
28 | if(sda != -1 && scl != -1) {
29 | Wire.begin(sda, scl);
30 | }
31 | else {
32 | Wire.begin();
33 | }
34 | #else
35 | Wire.begin();
36 | #endif
37 | // Int Pin Configuration
38 | pinMode(int_n, INPUT);
39 | // Reset Pin Configuration
40 | pinMode(rst_n, OUTPUT);
41 | digitalWrite(rst_n, LOW);
42 | delay(10);
43 | digitalWrite(rst_n, HIGH);
44 | delay(500);
45 | }
46 | uint8_t FT6336U::read_device_mode(void) {
47 | return (readByte(FT6336U_ADDR_DEVICE_MODE) & 0x70) >> 4;
48 | }
49 | void FT6336U::write_device_mode(DEVICE_MODE_Enum mode) {
50 | writeByte(FT6336U_ADDR_DEVICE_MODE, (mode & 0x07) << 4);
51 | }
52 | uint8_t FT6336U::read_gesture_id(void) {
53 | return readByte(FT6336U_ADDR_GESTURE_ID);
54 | }
55 | uint8_t FT6336U::read_td_status(void) {
56 | return readByte(FT6336U_ADDR_TD_STATUS);
57 | }
58 | uint8_t FT6336U::read_touch_number(void) {
59 | return readByte(FT6336U_ADDR_TD_STATUS) & 0x0F;
60 | }
61 | // Touch 1 functions
62 | uint16_t FT6336U::read_touch1_x(void) {
63 | uint8_t read_buf[2];
64 | read_buf[0] = readByte(FT6336U_ADDR_TOUCH1_X);
65 | read_buf[1] = readByte(FT6336U_ADDR_TOUCH1_X + 1);
66 | return ((read_buf[0] & 0x0f) << 8) | read_buf[1];
67 | }
68 | uint16_t FT6336U::read_touch1_y(void) {
69 | uint8_t read_buf[2];
70 | read_buf[0] = readByte(FT6336U_ADDR_TOUCH1_Y);
71 | read_buf[1] = readByte(FT6336U_ADDR_TOUCH1_Y + 1);
72 | return ((read_buf[0] & 0x0f) << 8) | read_buf[1];
73 | }
74 | uint8_t FT6336U::read_touch1_event(void) {
75 | return readByte(FT6336U_ADDR_TOUCH1_EVENT) >> 6;
76 | }
77 | uint8_t FT6336U::read_touch1_id(void) {
78 | return readByte(FT6336U_ADDR_TOUCH1_ID) >> 4;
79 | }
80 | uint8_t FT6336U::read_touch1_weight(void) {
81 | return readByte(FT6336U_ADDR_TOUCH1_WEIGHT);
82 | }
83 | uint8_t FT6336U::read_touch1_misc(void) {
84 | return readByte(FT6336U_ADDR_TOUCH1_MISC) >> 4;
85 | }
86 | // Touch 2 functions
87 | uint16_t FT6336U::read_touch2_x(void) {
88 | uint8_t read_buf[2];
89 | read_buf[0] = readByte(FT6336U_ADDR_TOUCH2_X);
90 | read_buf[1] = readByte(FT6336U_ADDR_TOUCH2_X + 1);
91 | return ((read_buf[0] & 0x0f) << 8) | read_buf[1];
92 | }
93 | uint16_t FT6336U::read_touch2_y(void) {
94 | uint8_t read_buf[2];
95 | read_buf[0] = readByte(FT6336U_ADDR_TOUCH2_Y);
96 | read_buf[1] = readByte(FT6336U_ADDR_TOUCH2_Y + 1);
97 | return ((read_buf[0] & 0x0f) << 8) | read_buf[1];
98 | }
99 | uint8_t FT6336U::read_touch2_event(void) {
100 | return readByte(FT6336U_ADDR_TOUCH2_EVENT) >> 6;
101 | }
102 | uint8_t FT6336U::read_touch2_id(void) {
103 | return readByte(FT6336U_ADDR_TOUCH2_ID) >> 4;
104 | }
105 | uint8_t FT6336U::read_touch2_weight(void) {
106 | return readByte(FT6336U_ADDR_TOUCH2_WEIGHT);
107 | }
108 | uint8_t FT6336U::read_touch2_misc(void) {
109 | return readByte(FT6336U_ADDR_TOUCH2_MISC) >> 4;
110 | }
111 |
112 | // Mode Parameter Register
113 | uint8_t FT6336U::read_touch_threshold(void) {
114 | return readByte(FT6336U_ADDR_THRESHOLD);
115 | }
116 | uint8_t FT6336U::read_filter_coefficient(void) {
117 | return readByte(FT6336U_ADDR_FILTER_COE);
118 | }
119 | uint8_t FT6336U::read_ctrl_mode(void) {
120 | return readByte(FT6336U_ADDR_CTRL);
121 | }
122 | void FT6336U::write_ctrl_mode(CTRL_MODE_Enum mode) {
123 | writeByte(FT6336U_ADDR_CTRL, mode);
124 | }
125 | uint8_t FT6336U::read_time_period_enter_monitor(void) {
126 | return readByte(FT6336U_ADDR_TIME_ENTER_MONITOR);
127 | }
128 | uint8_t FT6336U::read_active_rate(void) {
129 | return readByte(FT6336U_ADDR_ACTIVE_MODE_RATE);
130 | }
131 | uint8_t FT6336U::read_monitor_rate(void) {
132 | return readByte(FT6336U_ADDR_MONITOR_MODE_RATE);
133 | }
134 |
135 | // Gesture Parameters
136 | uint8_t FT6336U::read_radian_value(void) {
137 | return readByte(FT6336U_ADDR_RADIAN_VALUE);
138 | }
139 | void FT6336U::write_radian_value(uint8_t val) {
140 | writeByte(FT6336U_ADDR_RADIAN_VALUE, val);
141 | }
142 | uint8_t FT6336U::read_offset_left_right(void) {
143 | return readByte(FT6336U_ADDR_OFFSET_LEFT_RIGHT);
144 | }
145 | void FT6336U::write_offset_left_right(uint8_t val) {
146 | writeByte(FT6336U_ADDR_OFFSET_LEFT_RIGHT, val);
147 | }
148 | uint8_t FT6336U::read_offset_up_down(void) {
149 | return readByte(FT6336U_ADDR_OFFSET_UP_DOWN);
150 | }
151 | void FT6336U::write_offset_up_down(uint8_t val) {
152 | writeByte(FT6336U_ADDR_OFFSET_UP_DOWN, val);
153 | }
154 | uint8_t FT6336U::read_distance_left_right(void) {
155 | return readByte(FT6336U_ADDR_DISTANCE_LEFT_RIGHT);
156 | }
157 | void FT6336U::write_distance_left_right(uint8_t val) {
158 | writeByte(FT6336U_ADDR_DISTANCE_LEFT_RIGHT, val);
159 | }
160 | uint8_t FT6336U::read_distance_up_down(void) {
161 | return readByte(FT6336U_ADDR_DISTANCE_UP_DOWN);
162 | }
163 | void FT6336U::write_distance_up_down(uint8_t val) {
164 | writeByte(FT6336U_ADDR_DISTANCE_UP_DOWN, val);
165 | }
166 | uint8_t FT6336U::read_distance_zoom(void) {
167 | return readByte(FT6336U_ADDR_DISTANCE_ZOOM);
168 | }
169 | void FT6336U::write_distance_zoom(uint8_t val) {
170 | writeByte(FT6336U_ADDR_DISTANCE_ZOOM, val);
171 | }
172 |
173 |
174 | // System Information
175 | uint16_t FT6336U::read_library_version(void) {
176 | uint8_t read_buf[2];
177 | read_buf[0] = readByte(FT6336U_ADDR_LIBRARY_VERSION_H);
178 | read_buf[1] = readByte(FT6336U_ADDR_LIBRARY_VERSION_L);
179 | return ((read_buf[0] & 0x0f) << 8) | read_buf[1];
180 | }
181 | uint8_t FT6336U::read_chip_id(void) {
182 | return readByte(FT6336U_ADDR_CHIP_ID);
183 | }
184 | uint8_t FT6336U::read_g_mode(void) {
185 | return readByte(FT6336U_ADDR_G_MODE);
186 | }
187 | void FT6336U::write_g_mode(G_MODE_Enum mode){
188 | writeByte(FT6336U_ADDR_G_MODE, mode);
189 | }
190 | uint8_t FT6336U::read_pwrmode(void) {
191 | return readByte(FT6336U_ADDR_POWER_MODE);
192 | }
193 | uint8_t FT6336U::read_firmware_id(void) {
194 | return readByte(FT6336U_ADDR_FIRMARE_ID);
195 | }
196 | uint8_t FT6336U::read_focaltech_id(void) {
197 | return readByte(FT6336U_ADDR_FOCALTECH_ID);
198 | }
199 | uint8_t FT6336U::read_release_code_id(void) {
200 | return readByte(FT6336U_ADDR_RELEASE_CODE_ID);
201 | }
202 | uint8_t FT6336U::read_state(void) {
203 | return readByte(FT6336U_ADDR_STATE);
204 | }
205 |
206 |
207 | //coordinate diagram(FPC downwards)
208 | ////y ////////////////////264x176
209 | //
210 | //
211 | //x
212 | //
213 | //
214 | FT6336U_TouchPointType FT6336U::scan(void){
215 | touchPoint.touch_count = read_td_status();
216 |
217 | if(touchPoint.touch_count == 0) {
218 | touchPoint.tp[0].status = release;
219 | touchPoint.tp[1].status = release;
220 | }
221 | else if(touchPoint.touch_count == 1) {
222 | uint8_t id1 = read_touch1_id(); // id1 = 0 or 1
223 | touchPoint.tp[id1].status = (touchPoint.tp[id1].status == release) ? touch : stream;
224 | touchPoint.tp[id1].x = read_touch1_x();
225 | touchPoint.tp[id1].y = read_touch1_y();
226 | touchPoint.tp[~id1 & 0x01].status = release;
227 | }
228 | else {
229 | uint8_t id1 = read_touch1_id(); // id1 = 0 or 1
230 | touchPoint.tp[id1].status = (touchPoint.tp[id1].status == release) ? touch : stream;
231 | touchPoint.tp[id1].x = read_touch1_x();
232 | touchPoint.tp[id1].y = read_touch1_y();
233 | uint8_t id2 = read_touch2_id(); // id2 = 0 or 1(~id1 & 0x01)
234 | touchPoint.tp[id2].status = (touchPoint.tp[id2].status == release) ? touch : stream;
235 | touchPoint.tp[id2].x = read_touch2_x();
236 | touchPoint.tp[id2].y = read_touch2_y();
237 | }
238 |
239 | return touchPoint;
240 |
241 | }
242 |
243 |
244 | // Private Function
245 | uint8_t FT6336U::readByte(uint8_t addr) {
246 | uint8_t rdData = 0;
247 | uint8_t rdDataCount;
248 | do {
249 | Wire.beginTransmission(I2C_ADDR_FT6336U);
250 | Wire.write(addr);
251 | Wire.endTransmission(false); // Restart
252 | delay(10);
253 | rdDataCount = Wire.requestFrom(I2C_ADDR_FT6336U, 1);
254 | } while(rdDataCount == 0);
255 | while(Wire.available()) {
256 | rdData = Wire.read();
257 | }
258 | return rdData;
259 |
260 | }
261 | void FT6336U::writeByte(uint8_t addr, uint8_t data) {
262 | DEBUG_PRINTLN("")
263 | DEBUG_PRINT("writeI2C reg 0x")
264 | DEBUG_PRINT(addr, HEX)
265 | DEBUG_PRINT(" -> 0x") DEBUG_PRINTLN(data, HEX)
266 |
267 | Wire.beginTransmission(I2C_ADDR_FT6336U);
268 | Wire.write(addr);
269 | Wire.write(data);
270 | Wire.endTransmission();
271 | }
272 |
--------------------------------------------------------------------------------
/src/ui_img_web_png.c:
--------------------------------------------------------------------------------
1 | // SquareLine LVGL GENERATED FILE
2 | // EDITOR VERSION: SquareLine Studio 1.1.0
3 | // LVGL VERSION: 8.2
4 | // PROJECT: card
5 |
6 | #include "ui.h"
7 |
8 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
9 | #define LV_ATTRIBUTE_MEM_ALIGN
10 | #endif
11 |
12 | // IMAGE DATA: assets\web.png
13 | const LV_ATTRIBUTE_MEM_ALIGN uint8_t ui_img_web_png_data[] = {
14 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x49, 0xFF, 0xFF, 0x9C, 0xFF, 0xFF, 0x1E, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0x61, 0xFF, 0xFF, 0x60, 0xFF, 0xFF, 0x06, 0xFF, 0xFF, 0x1E, 0xFF, 0xFF, 0x9B, 0xFF, 0xFF, 0x48, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x22, 0xFF, 0xFF, 0xBD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x54, 0xFF, 0xFF, 0x05, 0xFF, 0xFF, 0xB3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xB9, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0x56,
15 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC6, 0xFF, 0xFF, 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x5A, 0xFF, 0xFF, 0xF5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x82, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x81, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0xFF, 0xFF, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x5C, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x51, 0xFF, 0xFF, 0x14, 0xFF, 0xFF, 0xF2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0x16, 0xFF, 0xFF, 0x53, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x2E, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEC, 0xFF, 0xFF, 0x04,
16 | 0xFF, 0xFF, 0x72, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6F, 0xFF, 0xFF, 0x05, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xC8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAC, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xBE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBC, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x19, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x41, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x42, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x19, 0x00, 0x00, 0x00,
17 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x27, 0xFF, 0xFF, 0x56, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x55, 0xFF, 0xFF, 0x27, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x02, 0xFF, 0xFF, 0x23, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x18, 0xFF, 0xFF, 0x67, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
18 | 0xFF, 0xFF, 0x66, 0xFF, 0xFF, 0x17, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x21, 0xFF, 0xFF, 0x39, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0x78, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x37, 0xFF, 0xFF, 0x37, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x76, 0xFF, 0xFF, 0x09, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x36, 0xFF, 0xFF, 0x22, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x18, 0xFF, 0xFF, 0x66,
19 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x65, 0xFF, 0xFF, 0x18, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x21, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x28, 0xFF, 0xFF, 0x55, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x54, 0xFF, 0xFF, 0x29, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
20 | 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x14, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x3B, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x72, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x72, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x3A, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAE, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xBD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBB, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x2D, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0x05, 0xFF, 0xFF, 0x71, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6E,
21 | 0xFF, 0xFF, 0x05, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x59, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x52, 0xFF, 0xFF, 0x14, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0x15, 0xFF, 0xFF, 0x53, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x58, 0xFF, 0xFF, 0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0xFF, 0xFF, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x2D, 0xFF, 0xFF, 0xC5, 0xFF, 0xFF, 0xFF,
22 | 0xFF, 0xFF, 0x55, 0xFF, 0xFF, 0x05, 0xFF, 0xFF, 0xB3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xB8, 0xFF, 0xFF, 0x06, 0xFF, 0xFF, 0x57, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC4, 0xFF, 0xFF, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x46, 0xFF, 0xFF, 0x9A, 0xFF, 0xFF, 0x1E, 0xFF, 0xFF, 0x06, 0xFF, 0xFF, 0x60, 0xFF, 0xFF, 0x5F, 0xFF, 0xFF, 0x06, 0xFF, 0xFF, 0x1E, 0xFF, 0xFF, 0x9A, 0xFF, 0xFF, 0x46, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
23 | };
24 | const lv_img_dsc_t ui_img_web_png = {
25 | .header.always_zero = 0,
26 | .header.w = 24,
27 | .header.h = 24,
28 | .data_size = sizeof(ui_img_web_png_data),
29 | .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
30 | .data = ui_img_web_png_data
31 | };
32 |
33 |
--------------------------------------------------------------------------------
/src/ui_img_554157408.c:
--------------------------------------------------------------------------------
1 | // SquareLine LVGL GENERATED FILE
2 | // EDITOR VERSION: SquareLine Studio 1.1.0
3 | // LVGL VERSION: 8.2
4 | // PROJECT: card
5 |
6 | #include "ui.h"
7 |
8 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
9 | #define LV_ATTRIBUTE_MEM_ALIGN
10 | #endif
11 |
12 | // IMAGE DATA: assets\email (1).png
13 | const LV_ATTRIBUTE_MEM_ALIGN uint8_t ui_img_554157408_data[] = {
14 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0x75, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x75, 0xFF, 0xFF, 0x4B, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x94, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x93, 0xFF, 0xFF, 0xF4, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
16 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1B, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x18, 0xFF, 0xFF, 0xD6, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0x8B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x68, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x18, 0xFF, 0xFF, 0xD6, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0x24, 0xFF, 0xFF, 0x68, 0xFF, 0xFF, 0xFF,
17 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x68, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x20, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x17, 0xFF, 0xFF, 0xD6, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0x24, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x68, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x20, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x17, 0xFF, 0xFF, 0xD5, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x68, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x24, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x17,
18 | 0xFF, 0xFF, 0xD5, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x68, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x25, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0xD9, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x17, 0xFF, 0xFF, 0xD5, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x68, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x25, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x17, 0xFF, 0xFF, 0xD5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0xFF, 0xFF, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x68, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x25, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0xD9,
19 | 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0xD9, 0xFF, 0xFF, 0x1A, 0xFF, 0xFF, 0x17, 0xFF, 0xFF, 0xD5, 0xFF, 0xFF, 0xE8, 0xFF, 0xFF, 0x40, 0xFF, 0xFF, 0xD5, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x68, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x24, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0xD8, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x27, 0xFF, 0xFF, 0xE5, 0xFF, 0xFF, 0xEE, 0xFF, 0xFF, 0xEE, 0xFF, 0xFF, 0xE5, 0xFF, 0xFF, 0x27, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1A, 0xFF, 0xFF, 0xD8, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x68, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x68, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x24, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xD9, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1A, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0x86, 0xFF, 0xFF, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1A, 0xFF, 0xFF, 0xD9, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0x24, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x68, 0xFF, 0xFF, 0xFF,
20 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x68, 0xFF, 0xFF, 0x20, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x17, 0xFF, 0xFF, 0xD5, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0x24, 0xFF, 0xFF, 0x68, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x17, 0xFF, 0xFF, 0xD6, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0x8B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
21 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1B, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0x93, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x92, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x4A, 0xFF, 0xFF, 0x75, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x75, 0xFF, 0xFF, 0x49, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
22 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
23 | };
24 | const lv_img_dsc_t ui_img_554157408 = {
25 | .header.always_zero = 0,
26 | .header.w = 24,
27 | .header.h = 24,
28 | .data_size = sizeof(ui_img_554157408_data),
29 | .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
30 | .data = ui_img_554157408_data
31 | };
32 |
33 |
--------------------------------------------------------------------------------
/src/ui_img_email_png.c:
--------------------------------------------------------------------------------
1 | // SquareLine LVGL GENERATED FILE
2 | // EDITOR VERSION: SquareLine Studio 1.1.0
3 | // LVGL VERSION: 8.2
4 | // PROJECT: card
5 |
6 | #include "ui.h"
7 |
8 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
9 | #define LV_ATTRIBUTE_MEM_ALIGN
10 | #endif
11 |
12 | // IMAGE DATA: assets\email.png
13 | const LV_ATTRIBUTE_MEM_ALIGN uint8_t ui_img_email_png_data[] = {
14 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x39, 0xFF, 0xFF, 0x75, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x75, 0xFF, 0xFF, 0x39, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0A, 0xFF, 0xFF, 0x20, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0x24, 0xFF, 0xFF, 0x0A, 0xFF, 0xFF, 0xCE, 0xFF, 0xFF, 0x1D, 0xFF, 0xFF, 0x24, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
16 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0x29, 0xFF, 0xFF, 0x1D, 0xFF, 0xFF, 0xCE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0x20, 0xFF, 0xFF, 0x25, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0x29, 0xFF, 0xFF, 0x1C, 0xFF, 0xFF, 0xDB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0x20, 0xFF, 0xFF, 0x25, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0x29, 0xFF, 0xFF, 0x1C, 0xFF, 0xFF, 0xDB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
17 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0x20, 0xFF, 0xFF, 0x25, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0xFF, 0xFF, 0x29, 0xFF, 0xFF, 0x1C, 0xFF, 0xFF, 0xDB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0xFF, 0xFF, 0x1B, 0xFF, 0xFF, 0x25, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0xFF, 0xFF, 0x2A, 0xFF, 0xFF, 0x18, 0xFF, 0xFF, 0xD6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0x1B, 0xFF, 0xFF, 0x25, 0xFF, 0xFF, 0xE5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8,
18 | 0xFF, 0xFF, 0x2A, 0xFF, 0xFF, 0x18, 0xFF, 0xFF, 0xD6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0x1B, 0xFF, 0xFF, 0x27, 0xFF, 0xFF, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xFF, 0xFF, 0x27, 0xFF, 0xFF, 0x18, 0xFF, 0xFF, 0xD6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0x1B, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x26, 0xFF, 0xFF, 0xE5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0xFF, 0xFF, 0x2A, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x17, 0xFF, 0xFF, 0xD6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0x1B, 0xFF, 0xFF, 0x26,
19 | 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0x1B, 0xFF, 0xFF, 0x26, 0xFF, 0xFF, 0xE5, 0xFF, 0xFF, 0xE9, 0xFF, 0xFF, 0x2B, 0xFF, 0xFF, 0x17, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0x2A, 0xFF, 0xFF, 0x18, 0xFF, 0xFF, 0xD6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0x1B, 0xFF, 0xFF, 0x25, 0xFF, 0xFF, 0xE5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0x1B, 0xFF, 0xFF, 0x11, 0xFF, 0xFF, 0x11, 0xFF, 0xFF, 0x17, 0xFF, 0xFF, 0xD5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0xFF, 0xFF, 0x2A, 0xFF, 0xFF, 0x18, 0xFF, 0xFF, 0xD6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0xFF, 0xFF, 0x1B, 0xFF, 0xFF, 0x26, 0xFF, 0xFF, 0xE5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE5, 0xFF, 0xFF, 0x78, 0xFF, 0xFF, 0x79, 0xFF, 0xFF, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE5, 0xFF, 0xFF, 0x26, 0xFF, 0xFF, 0x18, 0xFF, 0xFF, 0xD6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
20 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0x20, 0xFF, 0xFF, 0x25, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0xFF, 0xFF, 0x2A, 0xFF, 0xFF, 0x1C, 0xFF, 0xFF, 0xDB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0x20, 0xFF, 0xFF, 0x25, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0xFF, 0xFF, 0x29, 0xFF, 0xFF, 0x1C, 0xFF, 0xFF, 0xDB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCE, 0xFF, 0xFF, 0x1D, 0xFF, 0xFF, 0x25, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
21 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0x29, 0xFF, 0xFF, 0x1D, 0xFF, 0xFF, 0xCE, 0xFF, 0xFF, 0x0A, 0xFF, 0xFF, 0x24, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0x29, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x39, 0xFF, 0xFF, 0x75, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x75, 0xFF, 0xFF, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
22 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
23 | };
24 | const lv_img_dsc_t ui_img_email_png = {
25 | .header.always_zero = 0,
26 | .header.w = 24,
27 | .header.h = 24,
28 | .data_size = sizeof(ui_img_email_png_data),
29 | .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
30 | .data = ui_img_email_png_data
31 | };
32 |
33 |
--------------------------------------------------------------------------------
/src/ui_img_globe_png.c:
--------------------------------------------------------------------------------
1 | // SquareLine LVGL GENERATED FILE
2 | // EDITOR VERSION: SquareLine Studio 1.1.0
3 | // LVGL VERSION: 8.2
4 | // PROJECT: card
5 |
6 | #include "ui.h"
7 |
8 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
9 | #define LV_ATTRIBUTE_MEM_ALIGN
10 | #endif
11 |
12 | // IMAGE DATA: assets\globe.png
13 | const LV_ATTRIBUTE_MEM_ALIGN uint8_t ui_img_globe_png_data[] = {
14 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1E, 0xFF, 0xFF, 0x6C, 0xFF, 0xFF, 0xB7, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0xF4, 0xFF, 0xFF, 0xF4, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0xB6, 0xFF, 0xFF, 0x6C, 0xFF, 0xFF, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1D, 0xFF, 0xFF, 0x9B, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0xF2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0x9A, 0xFF, 0xFF, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x4D, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xCE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0x14, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0x14, 0xFF, 0xFF, 0xC4, 0xFF, 0xFF, 0xFF,
15 | 0xFF, 0xFF, 0xCE, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x6D, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xCC, 0xFF, 0xFF, 0x2C, 0xFF, 0xFF, 0xDD, 0xFF, 0xFF, 0xDE, 0xFF, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xC3, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0E, 0xFF, 0xFF, 0xDE, 0xFF, 0xFF, 0xDD, 0xFF, 0xFF, 0x2C, 0xFF, 0xFF, 0xCC, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x4D, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x92, 0xFF, 0xFF, 0x6E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x4B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6E, 0xFF, 0xFF, 0x92, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1D, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xCB, 0xFF, 0xFF, 0x95, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xDC,
16 | 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xDC, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x95, 0xFF, 0xFF, 0xCC, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x9B, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0x24, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x6B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0x95, 0xFF, 0xFF, 0x68, 0xFF, 0xFF, 0xD6, 0xFF, 0xFF, 0xD6, 0xFF, 0xFF, 0x68, 0xFF, 0xFF, 0x96, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6B, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x26, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x9A, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1E, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x66, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x78, 0xFF, 0xFF, 0xB5, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xB5, 0xFF, 0xFF, 0x78, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x93, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0x1E,
17 | 0xFF, 0xFF, 0x6D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x9E, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x22, 0xFF, 0xFF, 0xD0, 0xFF, 0xFF, 0xD0, 0xFF, 0xFF, 0x22, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x29, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6C, 0xFF, 0xFF, 0xB7, 0xFF, 0xFF, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC6, 0xFF, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0xB5, 0xFF, 0xFF, 0xDC, 0xFF, 0xFF, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xD9, 0xFF, 0xFF, 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
18 | 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAE, 0xFF, 0xFF, 0xD7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAC, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xE2, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xE6, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xE6, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xE2, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xE2, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xE6, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xE6, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xBB, 0xFF, 0xFF, 0xE2, 0xFF, 0xFF, 0xF2, 0xFF, 0xFF, 0xDB, 0xFF, 0xFF, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xD8, 0xFF, 0xFF, 0xAE, 0x00, 0x00, 0x00,
19 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xB0, 0xFF, 0xFF, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAC, 0xFF, 0xFF, 0xD9, 0xFF, 0xFF, 0xB5, 0xFF, 0xFF, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xDB, 0xFF, 0xFF, 0xB4, 0xFF, 0xFF, 0x6B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x9E, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x22, 0xFF, 0xFF, 0xD0, 0xFF, 0xFF, 0xD0, 0xFF, 0xFF, 0x22, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x29, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6B,
20 | 0xFF, 0xFF, 0x1D, 0xFF, 0xFF, 0xFA, 0xFF, 0xFF, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x66, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x78, 0xFF, 0xFF, 0xB6, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xB6, 0xFF, 0xFF, 0x78, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x94, 0xFF, 0xFF, 0xFA, 0xFF, 0xFF, 0x1D, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x99, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0x25, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x6B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0x94, 0xFF, 0xFF, 0x67, 0xFF, 0xFF, 0xD6, 0xFF, 0xFF, 0xD6, 0xFF, 0xFF, 0x67, 0xFF, 0xFF, 0x95, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6B, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x26, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1C, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xCC, 0xFF, 0xFF, 0x95, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xDC, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x03,
21 | 0xFF, 0xFF, 0xDD, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x95, 0xFF, 0xFF, 0xCC, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x93, 0xFF, 0xFF, 0x6E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6D, 0xFF, 0xFF, 0x93, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x6D, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xCC, 0xFF, 0xFF, 0x2D, 0xFF, 0xFF, 0xDD, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xC3, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xDC, 0xFF, 0xFF, 0x2D, 0xFF, 0xFF, 0xCC, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xCF,
22 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC4, 0xFF, 0xFF, 0x14, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0x15, 0xFF, 0xFF, 0xC5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCE, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1C, 0xFF, 0xFF, 0x9A, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF2, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0xF2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0xFF, 0xFF, 0x98, 0xFF, 0xFF, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1E, 0xFF, 0xFF, 0x6B, 0xFF, 0xFF, 0xB6, 0xFF, 0xFF, 0xD9, 0xFF, 0xFF, 0xF4, 0xFF, 0xFF, 0xF4, 0xFF, 0xFF, 0xD8, 0xFF, 0xFF, 0xB5, 0xFF, 0xFF, 0x6A, 0xFF, 0xFF, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
23 | };
24 | const lv_img_dsc_t ui_img_globe_png = {
25 | .header.always_zero = 0,
26 | .header.w = 24,
27 | .header.h = 24,
28 | .data_size = sizeof(ui_img_globe_png_data),
29 | .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
30 | .data = ui_img_globe_png_data
31 | };
32 |
33 |
--------------------------------------------------------------------------------
/src/ui_img_1127648905.c:
--------------------------------------------------------------------------------
1 | // SquareLine LVGL GENERATED FILE
2 | // EDITOR VERSION: SquareLine Studio 1.1.0
3 | // LVGL VERSION: 8.2
4 | // PROJECT: card
5 |
6 | #include "ui.h"
7 |
8 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
9 | #define LV_ATTRIBUTE_MEM_ALIGN
10 | #endif
11 |
12 | // IMAGE DATA: assets\cloudy-day.png
13 | const LV_ATTRIBUTE_MEM_ALIGN uint8_t ui_img_1127648905_data[] = {
14 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x53, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x60, 0xFF, 0xFF, 0xFF,
15 | 0xFF, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xB5, 0xFF, 0xFF, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x25, 0xFF, 0xFF, 0xA0, 0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0C, 0xFF, 0xFF, 0xB5, 0xFF, 0xFF, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x86, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6D, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1E, 0xFF, 0xFF, 0x66, 0xFF, 0xFF, 0x75, 0xFF, 0xFF, 0x56, 0xFF, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAF, 0xFF, 0xFF, 0xFA, 0xFF, 0xFF, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
16 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x6D, 0xFF, 0xFF, 0x3B, 0xFF, 0xFF, 0x89, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEE, 0xFF, 0xFF, 0x52, 0xFF, 0xFF, 0x64, 0xFF, 0xFF, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x89, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xD1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
17 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x66, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x66, 0xFF, 0xFF, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x18, 0xFF, 0xFF, 0xAD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x35, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0C, 0xFF, 0xFF, 0x7A, 0xFF, 0xFF, 0xC4, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xA2, 0xFF, 0xFF, 0x32, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
18 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0x15, 0xFF, 0xFF, 0x0D, 0xFF, 0xFF, 0x22, 0xFF, 0xFF, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x15, 0xFF, 0xFF, 0xD5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0x62, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x64, 0xFF, 0xFF, 0x7A, 0xFF, 0xFF, 0xAD, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xA9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0x24, 0xFF, 0xFF, 0x02, 0xFF, 0xFF, 0x09, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x22, 0xFF, 0xFF, 0xCC, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x11, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
19 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xB8, 0xFF, 0xFF, 0x23, 0xFF, 0xFF, 0x0E, 0xFF, 0xFF, 0x21, 0xFF, 0xFF, 0x96, 0xFF, 0xFF, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x31, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0x0C, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x82, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x16, 0xFF, 0xFF, 0xA4, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x74, 0xFF, 0xFF, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
20 | 0xFF, 0xFF, 0x17, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xB7, 0xFF, 0xFF, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xEE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
21 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF2, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xBD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x3C, 0xFF, 0xFF, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
22 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x4A, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x02, 0xFF, 0xFF, 0x2D, 0xFF, 0xFF, 0x44, 0xFF, 0xFF, 0x44, 0xFF, 0xFF, 0x44, 0xFF, 0xFF, 0x44, 0xFF, 0xFF, 0x44, 0xFF, 0xFF, 0x44, 0xFF, 0xFF, 0x44, 0xFF, 0xFF, 0x44, 0xFF, 0xFF, 0x44, 0xFF, 0xFF, 0x44, 0xFF, 0xFF, 0x44, 0xFF, 0xFF, 0x44, 0xFF, 0xFF, 0x44, 0xFF, 0xFF, 0x3C, 0xFF, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
23 | };
24 | const lv_img_dsc_t ui_img_1127648905 = {
25 | .header.always_zero = 0,
26 | .header.w = 24,
27 | .header.h = 24,
28 | .data_size = sizeof(ui_img_1127648905_data),
29 | .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
30 | .data = ui_img_1127648905_data
31 | };
32 |
33 |
--------------------------------------------------------------------------------
/src/ui_img_1276322231.c:
--------------------------------------------------------------------------------
1 | // SquareLine LVGL GENERATED FILE
2 | // EDITOR VERSION: SquareLine Studio 1.1.0
3 | // LVGL VERSION: 8.2
4 | // PROJECT: card
5 |
6 | #include "ui.h"
7 |
8 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
9 | #define LV_ATTRIBUTE_MEM_ALIGN
10 | #endif
11 |
12 | // IMAGE DATA: assets\phone-call.png
13 | const LV_ATTRIBUTE_MEM_ALIGN uint8_t ui_img_1276322231_data[] = {
14 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0x9B, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xD1, 0xFF, 0xFF, 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x06, 0xFF, 0xFF, 0xB2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0xFF, 0xFF, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xB5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0xFF, 0xFF, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
16 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xD6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0xFF, 0xFF, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xFF, 0xFF, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
17 | 0xFF, 0xFF, 0x4A, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xDB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x63, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
18 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0xFF, 0xFF, 0xCD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x34, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x7D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
19 | 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x2A, 0xFF, 0xFF, 0x55, 0xFF, 0xFF, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x02, 0xFF, 0xFF, 0xB6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x5E, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x11, 0xFF, 0xFF, 0xD3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8E, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xE5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0xFF, 0xFF, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
20 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1A, 0xFF, 0xFF, 0xDE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xFF, 0xFF, 0x8B, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0xFF, 0xFF, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x23, 0xFF, 0xFF, 0xDE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0xFF, 0xFF, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1A, 0xFF, 0xFF, 0xD3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
21 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xD1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x11, 0xFF, 0xFF, 0xB5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x02, 0xFF, 0xFF, 0x7D, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
22 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x30, 0xFF, 0xFF, 0xCB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAC, 0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0xFF, 0xFF, 0x67, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAC, 0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x05, 0xFF, 0xFF, 0x50, 0xFF, 0xFF, 0xA3, 0xFF, 0xFF, 0xDA, 0xFF, 0xFF, 0xF5, 0xFF, 0xFF, 0xDB, 0xFF, 0xFF, 0x78, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
23 | };
24 | const lv_img_dsc_t ui_img_1276322231 = {
25 | .header.always_zero = 0,
26 | .header.w = 24,
27 | .header.h = 24,
28 | .data_size = sizeof(ui_img_1276322231_data),
29 | .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
30 | .data = ui_img_1276322231_data
31 | };
32 |
33 |
--------------------------------------------------------------------------------
/src/ui_img_1668805065.c:
--------------------------------------------------------------------------------
1 | // SquareLine LVGL GENERATED FILE
2 | // EDITOR VERSION: SquareLine Studio 1.1.0
3 | // LVGL VERSION: 8.2
4 | // PROJECT: card
5 |
6 | #include "ui.h"
7 |
8 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
9 | #define LV_ATTRIBUTE_MEM_ALIGN
10 | #endif
11 |
12 | // IMAGE DATA: assets\twitter (1).png
13 | const LV_ATTRIBUTE_MEM_ALIGN uint8_t ui_img_1668805065_data[] = {
14 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x40, 0xFF, 0xFF, 0x99,
15 | 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xA4, 0xFF, 0xFF, 0x59, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0D, 0xFF, 0xFF, 0x12, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x61, 0xFF, 0xFF, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x02, 0xFF, 0xFF, 0x9C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC4, 0xFF, 0xFF, 0x4D, 0xFF, 0xFF, 0x91, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xFF, 0xFF, 0xE2, 0xFF, 0xFF, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x7C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0x3B, 0xFF, 0xFF, 0x30, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xFF, 0xFF, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
16 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x09, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xFF, 0xFF, 0xEA, 0xFF, 0xFF, 0x42, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA4, 0xFF, 0xFF, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x3C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x98, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xA1, 0xFF, 0xFF, 0x4B, 0xFF, 0xFF, 0x0C, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x44, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
17 | 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1C, 0xFF, 0xFF, 0xEC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xD9, 0xFF, 0xFF, 0xCD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xA8, 0xFF, 0xFF, 0x91, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xD6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
18 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x02, 0xFF, 0xFF, 0xA8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x6C, 0xFF, 0xFF, 0xD7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
19 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x19, 0xFF, 0xFF, 0xD7, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
20 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1D, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x97, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0B, 0xFF, 0xFF, 0x6B, 0xFF, 0xFF, 0xE8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
21 | 0xFF, 0xFF, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x3D, 0xFF, 0xFF, 0x6C, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xB4, 0xFF, 0xFF, 0xF2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE9, 0xFF, 0xFF, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x02, 0xFF, 0xFF, 0x5B, 0xFF, 0xFF, 0xC6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0x7B, 0xFF, 0xFF, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x24, 0xFF, 0xFF, 0x61, 0xFF, 0xFF, 0x94, 0xFF, 0xFF, 0xAC, 0xFF, 0xFF, 0xBB,
22 | 0xFF, 0xFF, 0xB2, 0xFF, 0xFF, 0x9B, 0xFF, 0xFF, 0x72, 0xFF, 0xFF, 0x34, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
23 | };
24 | const lv_img_dsc_t ui_img_1668805065 = {
25 | .header.always_zero = 0,
26 | .header.w = 24,
27 | .header.h = 24,
28 | .data_size = sizeof(ui_img_1668805065_data),
29 | .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
30 | .data = ui_img_1668805065_data
31 | };
32 |
33 |
--------------------------------------------------------------------------------
/src/ui_img_twitter_png.c:
--------------------------------------------------------------------------------
1 | // SquareLine LVGL GENERATED FILE
2 | // EDITOR VERSION: SquareLine Studio 1.1.0
3 | // LVGL VERSION: 8.2
4 | // PROJECT: card
5 |
6 | #include "ui.h"
7 |
8 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
9 | #define LV_ATTRIBUTE_MEM_ALIGN
10 | #endif
11 |
12 | // IMAGE DATA: assets\twitter.png
13 | const LV_ATTRIBUTE_MEM_ALIGN uint8_t ui_img_twitter_png_data[] = {
14 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0x9D,
15 | 0xFF, 0xFF, 0xAA, 0xFF, 0xFF, 0x9B, 0xFF, 0xFF, 0x4E, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x33, 0xFF, 0xFF, 0xD8, 0xFF, 0xFF, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x20, 0xFF, 0xFF, 0xC9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xC9, 0xFF, 0xFF, 0xEC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0x39, 0xFF, 0xFF, 0x38, 0xFF, 0xFF, 0x8D, 0xFF, 0xFF, 0x83, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xA6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF2, 0xFF, 0xFF, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0D, 0xFF, 0xFF, 0xD7, 0xFF, 0xFF, 0xEC, 0xFF, 0xFF, 0x55, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x02, 0xFF, 0xFF, 0x63, 0xFF, 0xFF, 0xF4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xDE, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xD5, 0xFF, 0xFF, 0xF6, 0xFF, 0xFF, 0x71, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00,
16 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x78, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x19, 0xFF, 0xFF, 0x51, 0xFF, 0xFF, 0x7A, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x81, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xE6, 0xFF, 0xFF, 0x9C, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xB6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC6, 0xFF, 0xFF, 0x4E, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xCA, 0xFF, 0xFF, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1E, 0xFF, 0xFF, 0xDB, 0xFF, 0xFF, 0xE5, 0xFF, 0xFF, 0x12, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xBC, 0xFF, 0xFF, 0xD9, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x57, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0x98, 0xFF, 0xFF, 0x5F, 0xFF, 0xFF, 0xE9, 0xFF, 0xFF, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xA8, 0xFF, 0xFF, 0xF4, 0xFF, 0xFF, 0x36, 0x00, 0x00, 0x00,
17 | 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x85, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0x54, 0xFF, 0xFF, 0xAC, 0xFF, 0xFF, 0xF5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xBD, 0xFF, 0xFF, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x02, 0xFF, 0xFF, 0x20, 0xFF, 0xFF, 0x44, 0xFF, 0xFF, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xCB, 0xFF, 0xFF, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xD3, 0xFF, 0xFF, 0xEA, 0xFF, 0xFF, 0x98, 0xFF, 0xFF, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
18 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0xFF, 0xFF, 0xF2, 0xFF, 0xFF, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x3A, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0C, 0xFF, 0xFF, 0xDB, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0x57, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x8B, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x4B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE4, 0xFF, 0xFF, 0x18, 0x00, 0x00, 0x00,
19 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x13, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x2B, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0x92, 0xFF, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x8E, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0x73, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x4B, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
20 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x09, 0xFF, 0xFF, 0xAB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xAE, 0xFF, 0xFF, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x2E, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0xCC, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF4, 0xFF, 0xFF, 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x4B, 0xFF, 0xFF, 0xF2, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x89, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xA9, 0xFF, 0xFF, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x19, 0xFF, 0xFF, 0x9A, 0xFF, 0xFF, 0xFC,
21 | 0xFF, 0xFF, 0xCA, 0xFF, 0xFF, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0xFF, 0xFF, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x09, 0xFF, 0xFF, 0x4D, 0xFF, 0xFF, 0x9B, 0xFF, 0xFF, 0xF4, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x8D, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x28, 0xFF, 0xFF, 0xA0, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xC8, 0xFF, 0xFF, 0xCD, 0xFF, 0xFF, 0xE6, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEE, 0xFF, 0xFF, 0x9D, 0xFF, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0C, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0x82, 0xFF, 0xFF, 0xA5, 0xFF, 0xFF, 0xB7,
22 | 0xFF, 0xFF, 0xB2, 0xFF, 0xFF, 0x98, 0xFF, 0xFF, 0x7E, 0xFF, 0xFF, 0x42, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
23 | };
24 | const lv_img_dsc_t ui_img_twitter_png = {
25 | .header.always_zero = 0,
26 | .header.w = 24,
27 | .header.h = 24,
28 | .data_size = sizeof(ui_img_twitter_png_data),
29 | .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
30 | .data = ui_img_twitter_png_data
31 | };
32 |
33 |
--------------------------------------------------------------------------------
/src/ui_img_led_control_png.c:
--------------------------------------------------------------------------------
1 | // SquareLine LVGL GENERATED FILE
2 | // EDITOR VERSION: SquareLine Studio 1.1.0
3 | // LVGL VERSION: 8.2
4 | // PROJECT: card
5 |
6 | #include "ui.h"
7 |
8 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
9 | #define LV_ATTRIBUTE_MEM_ALIGN
10 | #endif
11 |
12 | // IMAGE DATA: assets\led_control.png
13 | const LV_ATTRIBUTE_MEM_ALIGN uint8_t ui_img_led_control_png_data[] = {
14 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x08, 0xFF, 0xFF, 0xAD, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xAB, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x64, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
16 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x92, 0xFF, 0xFF, 0x92, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0xFF, 0xFF, 0xC8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x92, 0xFF, 0xFF, 0x92, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0xFF, 0xFF, 0xD2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
17 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0xFF, 0xFF, 0x16, 0xFF, 0xFF, 0xEC, 0xFF, 0xFF, 0xDD, 0xFF, 0xFF, 0x99, 0xFF, 0xFF, 0x99, 0xFF, 0xFF, 0xDE, 0xFF, 0xFF, 0xEB, 0xFF, 0xFF, 0x16, 0xFF, 0xFF, 0xC8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEC, 0xFF, 0xFF, 0x9D, 0xFF, 0xFF, 0x18, 0xFF, 0xFF, 0x68, 0xFF, 0xFF, 0x68, 0xFF, 0xFF, 0x18, 0xFF, 0xFF, 0x9E, 0xFF, 0xFF, 0xEC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xFF, 0xFF, 0x1A, 0xFF, 0xFF, 0xDE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xFF, 0xFF, 0x19, 0xFF, 0xFF, 0xDE,
18 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x96, 0xFF, 0xFF, 0x97, 0xFF, 0xFF, 0x99, 0xFF, 0xFF, 0x31, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x30, 0xFF, 0xFF, 0x9A, 0xFF, 0xFF, 0x96, 0xFF, 0xFF, 0x97, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8E, 0xFF, 0xFF, 0x8E, 0xFF, 0xFF, 0xD2, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0xD2, 0xFF, 0xFF, 0x8E, 0xFF, 0xFF, 0x8E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x79, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
19 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x31, 0xFF, 0xFF, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0xFF, 0xFF, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x30, 0xFF, 0xFF, 0x7D, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x7C, 0xFF, 0xFF, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
20 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x86, 0xFF, 0xFF, 0xF4, 0xFF, 0xFF, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x69, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x68, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x69, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x77,
21 | 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0x68, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x69, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x71, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x71, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x71, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x71, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x71, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x85, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
22 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
23 | };
24 | const lv_img_dsc_t ui_img_led_control_png = {
25 | .header.always_zero = 0,
26 | .header.w = 24,
27 | .header.h = 24,
28 | .data_size = sizeof(ui_img_led_control_png_data),
29 | .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
30 | .data = ui_img_led_control_png_data
31 | };
32 |
33 |
--------------------------------------------------------------------------------
/src/main.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | MIT License
3 |
4 | Copyright (c) 2022 Felix Biego
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in all
14 | copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | SOFTWARE.
23 | */
24 |
25 |
26 | #define LGFX_USE_V1
27 |
28 | #include
29 | #include
30 | #include "ui.h"
31 | #include
32 | #include
33 |
34 | #include
35 | #include
36 | #include
37 | #include
38 |
39 | #ifdef PLUS
40 | #define SCR 30
41 | class LGFX : public lgfx::LGFX_Device
42 | {
43 |
44 | lgfx::Panel_ST7796 _panel_instance;
45 |
46 | lgfx::Bus_Parallel8 _bus_instance;
47 |
48 | lgfx::Light_PWM _light_instance;
49 |
50 | lgfx::Touch_FT5x06 _touch_instance;
51 |
52 | public:
53 | LGFX(void)
54 | {
55 | {
56 | auto cfg = _bus_instance.config();
57 |
58 | cfg.port = 0;
59 | cfg.freq_write = 20000000;
60 | cfg.pin_wr = 47; // pin number connecting WR
61 | cfg.pin_rd = -1; // pin number connecting RD
62 | cfg.pin_rs = 0; // Pin number connecting RS(D/C)
63 | cfg.pin_d0 = 9; // pin number connecting D0
64 | cfg.pin_d1 = 46; // pin number connecting D1
65 | cfg.pin_d2 = 3; // pin number connecting D2
66 | cfg.pin_d3 = 8; // pin number connecting D3
67 | cfg.pin_d4 = 18; // pin number connecting D4
68 | cfg.pin_d5 = 17; // pin number connecting D5
69 | cfg.pin_d6 = 16; // pin number connecting D6
70 | cfg.pin_d7 = 15; // pin number connecting D7
71 |
72 | _bus_instance.config(cfg); // Apply the settings to the bus.
73 | _panel_instance.setBus(&_bus_instance); // Sets the bus to the panel.
74 | }
75 |
76 | { // Set display panel control.
77 | auto cfg = _panel_instance.config(); // Get the structure for display panel settings.
78 |
79 | cfg.pin_cs = -1; // Pin number to which CS is connected (-1 = disable)
80 | cfg.pin_rst = 4; // pin number where RST is connected (-1 = disable)
81 | cfg.pin_busy = -1; // pin number to which BUSY is connected (-1 = disable)
82 |
83 | // * The following setting values are set to general default values for each panel, and the pin number (-1 = disable) to which BUSY is connected, so please try commenting out any unknown items.
84 |
85 | cfg.memory_width = 320; // Maximum width supported by driver IC
86 | cfg.memory_height = 480; // Maximum height supported by driver IC
87 | cfg.panel_width = 320; // actual displayable width
88 | cfg.panel_height = 480; // actual displayable height
89 | cfg.offset_x = 0; // Panel offset in X direction
90 | cfg.offset_y = 0; // Panel offset in Y direction
91 | cfg.offset_rotation = 1;
92 | cfg.dummy_read_pixel = 8;
93 | cfg.dummy_read_bits = 1;
94 | cfg.readable = false;
95 | cfg.invert = true;
96 | cfg.rgb_order = false;
97 | cfg.dlen_16bit = false;
98 | cfg.bus_shared = true;
99 |
100 | _panel_instance.config(cfg);
101 | }
102 |
103 | { // Set backlight control. (delete if not necessary)
104 | auto cfg = _light_instance.config(); // Get the structure for backlight configuration.
105 |
106 | cfg.pin_bl = 45; // pin number to which the backlight is connected
107 | cfg.invert = false; // true to invert backlight brightness
108 | cfg.freq = 44100; // backlight PWM frequency
109 | cfg.pwm_channel = 0; // PWM channel number to use
110 |
111 | _light_instance.config(cfg);
112 | _panel_instance.setLight(&_light_instance); // Sets the backlight to the panel.
113 | }
114 |
115 | { // Configure settings for touch screen control. (delete if not necessary)
116 | auto cfg = _touch_instance.config();
117 |
118 | cfg.x_min = 0; // Minimum X value (raw value) obtained from the touchscreen
119 | cfg.x_max = 319; // Maximum X value (raw value) obtained from the touchscreen
120 | cfg.y_min = 0; // Minimum Y value obtained from touchscreen (raw value)
121 | cfg.y_max = 479; // Maximum Y value (raw value) obtained from the touchscreen
122 | cfg.pin_int = 7; // pin number to which INT is connected
123 | cfg.bus_shared = false;
124 | cfg.offset_rotation = 0;
125 |
126 | // For I2C connection
127 | cfg.i2c_port = 0; // Select I2C to use (0 or 1)
128 | cfg.i2c_addr = 0x38; // I2C device address number
129 | cfg.pin_sda = 6; // pin number where SDA is connected
130 | cfg.pin_scl = 5; // pin number to which SCL is connected
131 | cfg.freq = 400000; // set I2C clock
132 |
133 | _touch_instance.config(cfg);
134 | _panel_instance.setTouch(&_touch_instance); // Set the touchscreen to the panel.
135 | }
136 |
137 | setPanel(&_panel_instance); // Sets the panel to use.
138 | }
139 | };
140 |
141 | #else
142 | #define SCR 8
143 | class LGFX : public lgfx::LGFX_Device
144 | {
145 |
146 | lgfx::Panel_ST7796 _panel_instance;
147 |
148 | lgfx::Bus_SPI _bus_instance;
149 |
150 | lgfx::Light_PWM _light_instance;
151 |
152 | // lgfx::Touch_FT5x06 _touch_instance;
153 |
154 | public:
155 | LGFX(void)
156 | {
157 | {
158 | auto cfg = _bus_instance.config(); // Get the structure for bus configuration.
159 |
160 | // SPI bus settings
161 | cfg.spi_host = VSPI_HOST; // Select the SPI to use ESP32-S2,C3 : SPI2_HOST or SPI3_HOST / ESP32 : VSPI_HOST or HSPI_HOST
162 | // * With the ESP-IDF version upgrade, VSPI_HOST and HSPI_HOST descriptions are deprecated, so if an error occurs, use SPI2_HOST and SPI3_HOST instead.
163 | cfg.spi_mode = 3; // Set SPI communication mode (0 ~ 3)
164 | cfg.freq_write = 27000000; // SPI clock when sending (up to 80MHz, rounded to 80MHz divided by an integer)
165 | cfg.freq_read = 6000000; // SPI clock when receiving
166 | cfg.spi_3wire = false; // set to true if receiving on MOSI pin
167 | cfg.use_lock = true; // set to true to use transaction lock
168 | cfg.dma_channel = SPI_DMA_CH_AUTO; // Set the DMA channel to use (0=not use DMA / 1=1ch / 2=ch / SPI_DMA_CH_AUTO=auto setting)
169 | // * With the ESP-IDF version upgrade, SPI_DMA_CH_AUTO (automatic setting) is recommended for the DMA channel. Specifying 1ch and 2ch is deprecated.
170 | cfg.pin_sclk = 14; // set SPI SCLK pin number
171 | cfg.pin_mosi = 13; // Set MOSI pin number for SPI
172 | cfg.pin_miso = -1; // set SPI MISO pin number (-1 = disable)
173 | cfg.pin_dc = 21; // Set SPI D/C pin number (-1 = disable)
174 |
175 | _bus_instance.config(cfg); // Apply the settings to the bus.
176 | _panel_instance.setBus(&_bus_instance); // Sets the bus to the panel.
177 | }
178 |
179 | { // Set display panel control.
180 | auto cfg = _panel_instance.config(); // Get the structure for display panel settings.
181 |
182 | cfg.pin_cs = 15; // Pin number to which CS is connected (-1 = disable)
183 | cfg.pin_rst = 22; // pin number where RST is connected (-1 = disable)
184 | cfg.pin_busy = -1; // pin number to which BUSY is connected (-1 = disable)
185 |
186 | // * The following setting values are set to general default values for each panel, and the pin number (-1 = disable) to which BUSY is connected, so please try commenting out any unknown items.
187 |
188 | cfg.memory_width = 320; // Maximum width supported by driver IC
189 | cfg.memory_height = 480; // Maximum height supported by driver IC
190 | cfg.panel_width = 320; // actual displayable width
191 | cfg.panel_height = 480; // actual displayable height
192 | cfg.offset_x = 0; // Panel offset in X direction
193 | cfg.offset_y = 0; // Panel offset in Y direction
194 | cfg.offset_rotation = 0;
195 | cfg.dummy_read_pixel = 8;
196 | cfg.dummy_read_bits = 1;
197 | cfg.readable = false;
198 | cfg.invert = false;
199 | cfg.rgb_order = false;
200 | cfg.dlen_16bit = false;
201 | cfg.bus_shared = false;
202 |
203 | _panel_instance.config(cfg);
204 | }
205 |
206 | { // Set backlight control. (delete if not necessary)
207 | auto cfg = _light_instance.config(); // Get the structure for backlight configuration.
208 |
209 | cfg.pin_bl = 23; // pin number to which the backlight is connected
210 | cfg.invert = false; // true to invert backlight brightness
211 | cfg.freq = 44100; // backlight PWM frequency
212 | cfg.pwm_channel = 1; // PWM channel number to use
213 |
214 | _light_instance.config(cfg);
215 | _panel_instance.setLight(&_light_instance); // Sets the backlight to the panel.
216 | }
217 |
218 | // { // Configure settings for touch screen control. (delete if not necessary)
219 | // auto cfg = _touch_instance.config();
220 |
221 | // cfg.x_min = 0; // Minimum X value (raw value) obtained from the touchscreen
222 | // cfg.x_max = 319; // Maximum X value (raw value) obtained from the touchscreen
223 | // cfg.y_min = 0; // Minimum Y value obtained from touchscreen (raw value)
224 | // cfg.y_max = 479; // Maximum Y value (raw value) obtained from the touchscreen
225 | // cfg.pin_int = 36; // pin number to which INT is connected
226 | // cfg.bus_shared = false;
227 | // cfg.offset_rotation = 0;
228 |
229 | // // For I2C connection
230 | // cfg.i2c_port = 0; // Select I2C to use (0 or 1)
231 | // cfg.i2c_addr = 0x38; // I2C device address number
232 | // cfg.pin_sda = 18; // pin number where SDA is connected
233 | // cfg.pin_scl = 19; // pin number to which SCL is connected
234 | // cfg.freq = 400000; // set I2C clock
235 |
236 | // _touch_instance.config(cfg);
237 | // _panel_instance.setTouch(&_touch_instance); // Set the touchscreen to the panel.
238 | // }
239 |
240 | setPanel(&_panel_instance); // Sets the panel to use.
241 | }
242 | };
243 |
244 | struct TouchData
245 | {
246 | int xpos;
247 | int ypos;
248 | int event;
249 | } touch_data;
250 |
251 | #include "FT6336U.h"
252 |
253 | FT6336U ft6336u(18, 19, -1, 36);
254 |
255 | #endif
256 |
257 | // Create an instance of the prepared class.
258 | LGFX tft;
259 |
260 | /* Change to your screen resolution */
261 | static const uint32_t screenWidth = 480;
262 | static const uint32_t screenHeight = 320;
263 |
264 | static lv_disp_draw_buf_t draw_buf;
265 | static lv_disp_drv_t disp_drv;
266 |
267 | static lv_color_t disp_draw_buf[screenWidth * SCR];
268 | static lv_color_t disp_draw_buf2[screenWidth * SCR];
269 |
270 | LV_IMG_DECLARE(ui_img_four_64_png);
271 | LV_IMG_DECLARE(ui_img_six_64_png);
272 | LV_IMG_DECLARE(ui_img_eight_64_png);
273 | LV_IMG_DECLARE(ui_img_nine_64_png);
274 |
275 | lv_img_dsc_t digits[10] = {ui_img_zero_64_png, ui_img_one_64_png, ui_img_two_64_png, ui_img_three_64_png, ui_img_four_64_png,
276 | ui_img_five_64_png, ui_img_six_64_png, ui_img_seven_64_png, ui_img_eight_64_png, ui_img_nine_64_png};
277 |
278 | #define SERVICE_UUID "fb1e4001-54ae-4a28-9f74-dfccb248601d"
279 | #define CHARACTERISTIC_UUID_RX "fb1e4002-54ae-4a28-9f74-dfccb248601d"
280 | #define CHARACTERISTIC_UUID_TX "fb1e4003-54ae-4a28-9f74-dfccb248601d"
281 | static BLECharacteristic *pCharacteristicTX;
282 | static BLECharacteristic *pCharacteristicRX;
283 |
284 | ESP32Time rtc;
285 |
286 | static bool deviceConnected = false;
287 | class MyServerCallbacks : public BLEServerCallbacks
288 | {
289 | void onConnect(BLEServer *pServer)
290 | {
291 | deviceConnected = true;
292 | }
293 | void onDisconnect(BLEServer *pServer)
294 | {
295 | deviceConnected = false;
296 | pServer->startAdvertising();
297 | }
298 | };
299 |
300 | class MyCallbacks : public BLECharacteristicCallbacks
301 | {
302 |
303 | void onStatus(BLECharacteristic *pCharacteristic, Status s, uint32_t code)
304 | {
305 | Serial.print("Status ");
306 | Serial.print(s);
307 | Serial.print(" on characteristic ");
308 | Serial.print(pCharacteristic->getUUID().toString().c_str());
309 | Serial.print(" with code ");
310 | Serial.println(code);
311 | }
312 |
313 | void onNotify(BLECharacteristic *pCharacteristic)
314 | {
315 | uint8_t *pData;
316 | std::string value = pCharacteristic->getValue();
317 | int len = value.length();
318 | pData = pCharacteristic->getData();
319 | if (pData != NULL)
320 | {
321 | Serial.print("Notify callback for characteristic ");
322 | Serial.print(pCharacteristic->getUUID().toString().c_str());
323 | Serial.print(" of data length ");
324 | Serial.println(len);
325 | Serial.print("TX ");
326 | for (int i = 0; i < len; i++)
327 | {
328 | Serial.printf("%02X ", pData[i]);
329 | }
330 | Serial.println();
331 | }
332 | }
333 |
334 | void onWrite(BLECharacteristic *pCharacteristic)
335 | {
336 | uint8_t *pData;
337 | std::string value = pCharacteristic->getValue();
338 | int len = value.length();
339 | pData = pCharacteristic->getData();
340 | if (pData != NULL)
341 | {
342 | Serial.print("Write callback for characteristic ");
343 | Serial.print(pCharacteristic->getUUID().toString().c_str());
344 | Serial.print(" of data length ");
345 | Serial.println(len);
346 | Serial.print("RX ");
347 | for (int i = 0; i < len; i++)
348 | {
349 | Serial.printf("%02X ", pData[i]);
350 | }
351 | Serial.println();
352 |
353 | if (pData[0] == 0xAB)
354 | {
355 | switch (pData[4])
356 | {
357 | case 0x93:
358 | rtc.setTime(pData[13], pData[12], pData[11], pData[10], pData[9], pData[7] * 256 + pData[8]);
359 | break;
360 |
361 | }
362 | }
363 |
364 | }
365 | }
366 | };
367 |
368 | void initBLE()
369 | {
370 | BLEDevice::init("Card");
371 | BLEServer *pServer = BLEDevice::createServer();
372 | pServer->setCallbacks(new MyServerCallbacks());
373 |
374 | BLEService *pService = pServer->createService(SERVICE_UUID);
375 | pCharacteristicTX = pService->createCharacteristic(CHARACTERISTIC_UUID_TX, BLECharacteristic::PROPERTY_NOTIFY);
376 | pCharacteristicRX = pService->createCharacteristic(CHARACTERISTIC_UUID_RX, BLECharacteristic::PROPERTY_WRITE | BLECharacteristic::PROPERTY_WRITE_NR);
377 | pCharacteristicRX->setCallbacks(new MyCallbacks());
378 | pCharacteristicTX->setCallbacks(new MyCallbacks());
379 | pCharacteristicTX->addDescriptor(new BLE2902());
380 | pCharacteristicTX->setNotifyProperty(true);
381 | pService->start();
382 |
383 | // BLEAdvertising *pAdvertising = pServer->getAdvertising(); // this still is working for backward compatibility
384 | BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
385 | pAdvertising->addServiceUUID(SERVICE_UUID);
386 | pAdvertising->setScanResponse(true);
387 | pAdvertising->setMinPreferred(0x06); // functions that help with iPhone connections issue
388 | pAdvertising->setMinPreferred(0x12);
389 | BLEDevice::startAdvertising();
390 | Serial.println("Characteristic defined! Now you can read it in your phone!");
391 | }
392 |
393 |
394 | enum Action {
395 | VIEW = 0xA0,
396 | DIAL
397 | };
398 |
399 | void launchIntent(Action a, String intent){
400 | char s1 = a;
401 | String result = String(s1) + intent;
402 | pCharacteristicTX->setValue(result.c_str());
403 | pCharacteristicTX->notify();
404 | delay(200);
405 | }
406 |
407 | /* Display flushing */
408 | void my_disp_flush(lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p)
409 | {
410 | if (tft.getStartCount() == 0)
411 | {
412 | tft.endWrite();
413 | }
414 |
415 | tft.pushImageDMA(area->x1, area->y1, area->x2 - area->x1 + 1, area->y2 - area->y1 + 1, (lgfx::swap565_t *)&color_p->full);
416 |
417 | lv_disp_flush_ready(disp); /* tell lvgl that flushing is done */
418 | }
419 |
420 | /*Read the touchpad*/
421 | void my_touchpad_read(lv_indev_drv_t *indev_driver, lv_indev_data_t *data)
422 | {
423 | #ifdef PLUS
424 | uint16_t touchX, touchY;
425 |
426 | bool touched = tft.getTouch(&touchX, &touchY);
427 |
428 | if (!touched)
429 | {
430 | data->state = LV_INDEV_STATE_REL;
431 | }
432 | else
433 | {
434 | data->state = LV_INDEV_STATE_PR;
435 |
436 | /*Set the coordinates*/
437 | data->point.x = touchX;
438 | data->point.y = touchY;
439 | }
440 | #else
441 | data->point.x = touch_data.xpos;
442 | data->point.y = touch_data.ypos;
443 |
444 | if (touch_data.event == 1)
445 | {
446 | data->state = LV_INDEV_STATE_PR;
447 | }
448 | else
449 | {
450 | data->state = LV_INDEV_STATE_REL;
451 | }
452 | #endif
453 | }
454 |
455 | void onClickEmail(lv_event_t *e)
456 | {
457 | lv_obj_t *target = lv_event_get_target(e);
458 | if (lv_obj_has_state(target, LV_STATE_CHECKED))
459 | {
460 | launchIntent(VIEW, "mailto:fbiego.fb@gmail.com");
461 | }
462 | }
463 | void onClickWebsite(lv_event_t *e)
464 | {
465 | lv_obj_t *target = lv_event_get_target(e);
466 | if (lv_obj_has_state(target, LV_STATE_CHECKED))
467 | {
468 | launchIntent(VIEW, "https://felix.fbiego.com/");
469 | }
470 | }
471 | void onClickTwitter(lv_event_t *e)
472 | {
473 | lv_obj_t *target = lv_event_get_target(e);
474 | if (lv_obj_has_state(target, LV_STATE_CHECKED))
475 | {
476 | launchIntent(VIEW, "https://twitter.com/fbiego_");
477 | }
478 | }
479 | void onClickCall(lv_event_t *e)
480 | {
481 | lv_obj_t *target = lv_event_get_target(e);
482 | if (lv_obj_has_state(target, LV_STATE_CHECKED))
483 | {
484 | launchIntent(DIAL, "tel:+25470*****06");
485 | }
486 | }
487 | void onBrightnessChange(lv_event_t *e)
488 | {
489 | lv_obj_t *slider = lv_event_get_target(e);
490 | int brightness = (int)lv_slider_get_value(slider);
491 | tft.setBrightness(brightness);
492 | }
493 |
494 | void setup()
495 | {
496 | Serial.begin(115200);
497 |
498 | tft.init();
499 | tft.initDMA();
500 | tft.startWrite();
501 |
502 | #ifndef PLUS
503 | ft6336u.begin();
504 |
505 | #endif
506 |
507 | lv_init();
508 | Serial.print("Width: ");
509 | Serial.print(screenWidth);
510 | Serial.print("\tHeight: ");
511 | Serial.println(screenHeight);
512 |
513 | if (!disp_draw_buf)
514 | {
515 | Serial.println("LVGL disp_draw_buf allocate failed!");
516 | }
517 | else
518 | {
519 |
520 | Serial.print("Display buffer size: ");
521 |
522 | lv_disp_draw_buf_init(&draw_buf, disp_draw_buf, disp_draw_buf2, screenWidth * SCR);
523 |
524 | /* Initialize the display */
525 | lv_disp_drv_init(&disp_drv);
526 | /* Change the following line to your display resolution */
527 | disp_drv.hor_res = screenWidth;
528 | disp_drv.ver_res = screenHeight;
529 | disp_drv.flush_cb = my_disp_flush;
530 | disp_drv.draw_buf = &draw_buf;
531 | lv_disp_drv_register(&disp_drv);
532 |
533 | /* Initialize the input device driver */
534 | static lv_indev_drv_t indev_drv;
535 | lv_indev_drv_init(&indev_drv);
536 | indev_drv.type = LV_INDEV_TYPE_POINTER;
537 | indev_drv.read_cb = my_touchpad_read;
538 | lv_indev_drv_register(&indev_drv);
539 |
540 | ui_init();
541 |
542 | Serial.println("Setup done");
543 | }
544 |
545 | initBLE();
546 | }
547 |
548 | void loop()
549 | {
550 | lv_timer_handler(); /* let the GUI do its work */
551 | delay(5);
552 |
553 | lv_label_set_text(ui_dateText, rtc.getTime("%A, %d %B %Y").c_str());
554 | int hr = rtc.getHour(true);
555 | int mn = rtc.getMinute();
556 | int sc = rtc.getSecond();
557 |
558 | lv_img_set_src(ui_hour1, &digits[hr / 10]);
559 | lv_img_set_src(ui_hour2, &digits[hr % 10]);
560 | lv_img_set_src(ui_minute1, &digits[mn / 10]);
561 | lv_img_set_src(ui_minute2, &digits[mn % 10]);
562 | lv_img_set_src(ui_second1, &digits[sc / 10]);
563 | lv_img_set_src(ui_second2, &digits[sc % 10]);
564 |
565 | if (deviceConnected){
566 | lv_obj_clear_flag(ui_connectIcon, LV_OBJ_FLAG_HIDDEN);
567 | } else {
568 | lv_obj_add_flag(ui_connectIcon, LV_OBJ_FLAG_HIDDEN);
569 | }
570 | }
--------------------------------------------------------------------------------
/lib/lv_conf.h:
--------------------------------------------------------------------------------
1 | /**
2 | * @file lv_conf.h
3 | * Configuration file for v8.3.0
4 | */
5 |
6 | /*
7 | * Copy this file as `lv_conf.h`
8 | * 1. simply next to the `lvgl` folder
9 | * 2. or any other places and
10 | * - define `LV_CONF_INCLUDE_SIMPLE`
11 | * - add the path as include path
12 | */
13 |
14 | /* clang-format off */
15 | #if 1 /*Set it to "1" to enable content*/
16 |
17 | #ifndef LV_CONF_H
18 | #define LV_CONF_H
19 |
20 | #include
21 |
22 | /*====================
23 | COLOR SETTINGS
24 | *====================*/
25 |
26 | /*Color depth: 1 (1 byte per pixel), 8 (RGB332), 16 (RGB565), 32 (ARGB8888)*/
27 | #define LV_COLOR_DEPTH 16
28 |
29 | /*Swap the 2 bytes of RGB565 color. Useful if the display has an 8-bit interface (e.g. SPI)*/
30 | #define LV_COLOR_16_SWAP 1
31 |
32 | /*Enable features to draw on transparent background.
33 | *It's required if opa, and transform_* style properties are used.
34 | *Can be also used if the UI is above another layer, e.g. an OSD menu or video player.*/
35 | #define LV_COLOR_SCREEN_TRANSP 0
36 |
37 | /* Adjust color mix functions rounding. GPUs might calculate color mix (blending) differently.
38 | * 0: round down, 64: round up from x.75, 128: round up from half, 192: round up from x.25, 254: round up */
39 | #define LV_COLOR_MIX_ROUND_OFS 0
40 |
41 | /*Images pixels with this color will not be drawn if they are chroma keyed)*/
42 | #define LV_COLOR_CHROMA_KEY lv_color_hex(0x00ff00) /*pure green*/
43 |
44 | /*=========================
45 | MEMORY SETTINGS
46 | *=========================*/
47 |
48 | /*1: use custom malloc/free, 0: use the built-in `lv_mem_alloc()` and `lv_mem_free()`*/
49 | #define LV_MEM_CUSTOM 0
50 | #if LV_MEM_CUSTOM == 0
51 | /*Size of the memory available for `lv_mem_alloc()` in bytes (>= 2kB)*/
52 | // #define LV_MEM_SIZE (64U * 1024U) /*[bytes]*/
53 |
54 | /*Set an address for the memory pool instead of allocating it as a normal array. Can be in external SRAM too.*/
55 | #define LV_MEM_ADR 0 /*0: unused*/
56 | /*Instead of an address give a memory allocator that will be called to get a memory pool for LVGL. E.g. my_malloc*/
57 | #if LV_MEM_ADR == 0
58 | #undef LV_MEM_POOL_INCLUDE
59 | #undef LV_MEM_POOL_ALLOC
60 | #endif
61 |
62 | #else /*LV_MEM_CUSTOM*/
63 | #define LV_MEM_CUSTOM_INCLUDE /*Header for the dynamic memory function*/
64 | #define LV_MEM_CUSTOM_ALLOC malloc
65 | #define LV_MEM_CUSTOM_FREE free
66 | #define LV_MEM_CUSTOM_REALLOC realloc
67 | #endif /*LV_MEM_CUSTOM*/
68 |
69 | /*Number of the intermediate memory buffer used during rendering and other internal processing mechanisms.
70 | *You will see an error log message if there wasn't enough buffers. */
71 | #define LV_MEM_BUF_MAX_NUM 16
72 |
73 | /*Use the standard `memcpy` and `memset` instead of LVGL's own functions. (Might or might not be faster).*/
74 | #define LV_MEMCPY_MEMSET_STD 0
75 |
76 | /*====================
77 | HAL SETTINGS
78 | *====================*/
79 |
80 | /*Default display refresh period. LVG will redraw changed areas with this period time*/
81 | #define LV_DISP_DEF_REFR_PERIOD 30 /*[ms]*/
82 |
83 | /*Input device read period in milliseconds*/
84 | #define LV_INDEV_DEF_READ_PERIOD 30 /*[ms]*/
85 |
86 | /*Use a custom tick source that tells the elapsed time in milliseconds.
87 | *It removes the need to manually update the tick with `lv_tick_inc()`)*/
88 | #define LV_TICK_CUSTOM 1
89 | #if LV_TICK_CUSTOM
90 | #define LV_TICK_CUSTOM_INCLUDE "Arduino.h" /*Header for the system time function*/
91 | #define LV_TICK_CUSTOM_SYS_TIME_EXPR (millis()) /*Expression evaluating to current system time in ms*/
92 | #endif /*LV_TICK_CUSTOM*/
93 |
94 | /*Default Dot Per Inch. Used to initialize default sizes such as widgets sized, style paddings.
95 | *(Not so important, you can adjust it to modify default sizes and spaces)*/
96 | #define LV_DPI_DEF 130 /*[px/inch]*/
97 |
98 | /*=======================
99 | * FEATURE CONFIGURATION
100 | *=======================*/
101 |
102 | /*-------------
103 | * Drawing
104 | *-----------*/
105 |
106 | /*Enable complex draw engine.
107 | *Required to draw shadow, gradient, rounded corners, circles, arc, skew lines, image transformations or any masks*/
108 | #define LV_DRAW_COMPLEX 1
109 | #if LV_DRAW_COMPLEX != 0
110 |
111 | /*Allow buffering some shadow calculation.
112 | *LV_SHADOW_CACHE_SIZE is the max. shadow size to buffer, where shadow size is `shadow_width + radius`
113 | *Caching has LV_SHADOW_CACHE_SIZE^2 RAM cost*/
114 | #define LV_SHADOW_CACHE_SIZE 0
115 |
116 | /* Set number of maximally cached circle data.
117 | * The circumference of 1/4 circle are saved for anti-aliasing
118 | * radius * 4 bytes are used per circle (the most often used radiuses are saved)
119 | * 0: to disable caching */
120 | #define LV_CIRCLE_CACHE_SIZE 4
121 | #endif /*LV_DRAW_COMPLEX*/
122 |
123 | /**
124 | * "Simple layers" are used when a widget has `style_opa < 255` to buffer the widget into a layer
125 | * and blend it as an image with the given opacity.
126 | * Note that `bg_opa`, `text_opa` etc don't require buffering into layer)
127 | * The widget can be buffered in smaller chunks to avoid using large buffers.
128 | *
129 | * - LV_LAYER_SIMPLE_BUF_SIZE: [bytes] the optimal target buffer size. LVGL will try to allocate it
130 | * - LV_LAYER_SIMPLE_FALLBACK_BUF_SIZE: [bytes] used if `LV_LAYER_SIMPLE_BUF_SIZE` couldn't be allocated.
131 | *
132 | * Both buffer sizes are in bytes.
133 | * "Transformed layers" (where transform_angle/zoom properties are used) use larger buffers
134 | * and can't be drawn in chunks. So these settings affects only widgets with opacity.
135 | */
136 | #define LV_LAYER_SIMPLE_BUF_SIZE (24 * 1024)
137 | #define LV_LAYER_SIMPLE_FALLBACK_BUF_SIZE (3 * 1024)
138 |
139 | /*Default image cache size. Image caching keeps the images opened.
140 | *If only the built-in image formats are used there is no real advantage of caching. (I.e. if no new image decoder is added)
141 | *With complex image decoders (e.g. PNG or JPG) caching can save the continuous open/decode of images.
142 | *However the opened images might consume additional RAM.
143 | *0: to disable caching*/
144 | #define LV_IMG_CACHE_DEF_SIZE 0
145 |
146 | /*Number of stops allowed per gradient. Increase this to allow more stops.
147 | *This adds (sizeof(lv_color_t) + 1) bytes per additional stop*/
148 | #define LV_GRADIENT_MAX_STOPS 2
149 |
150 | /*Default gradient buffer size.
151 | *When LVGL calculates the gradient "maps" it can save them into a cache to avoid calculating them again.
152 | *LV_GRAD_CACHE_DEF_SIZE sets the size of this cache in bytes.
153 | *If the cache is too small the map will be allocated only while it's required for the drawing.
154 | *0 mean no caching.*/
155 | #define LV_GRAD_CACHE_DEF_SIZE 0
156 |
157 | /*Allow dithering the gradients (to achieve visual smooth color gradients on limited color depth display)
158 | *LV_DITHER_GRADIENT implies allocating one or two more lines of the object's rendering surface
159 | *The increase in memory consumption is (32 bits * object width) plus 24 bits * object width if using error diffusion */
160 | #define LV_DITHER_GRADIENT 0
161 | #if LV_DITHER_GRADIENT
162 | /*Add support for error diffusion dithering.
163 | *Error diffusion dithering gets a much better visual result, but implies more CPU consumption and memory when drawing.
164 | *The increase in memory consumption is (24 bits * object's width)*/
165 | #define LV_DITHER_ERROR_DIFFUSION 0
166 | #endif
167 |
168 | /*Maximum buffer size to allocate for rotation.
169 | *Only used if software rotation is enabled in the display driver.*/
170 | #define LV_DISP_ROT_MAX_BUF (10*1024)
171 |
172 | /*-------------
173 | * GPU
174 | *-----------*/
175 |
176 | /*Use Arm's 2D acceleration library Arm-2D */
177 | #define LV_USE_GPU_ARM2D 0
178 |
179 | /*Use STM32's DMA2D (aka Chrom Art) GPU*/
180 | #define LV_USE_GPU_STM32_DMA2D 0
181 | #if LV_USE_GPU_STM32_DMA2D
182 | /*Must be defined to include path of CMSIS header of target processor
183 | e.g. "stm32f769xx.h" or "stm32f429xx.h"*/
184 | #define LV_GPU_DMA2D_CMSIS_INCLUDE
185 | #endif
186 |
187 | /*Use SWM341's DMA2D GPU*/
188 | #define LV_USE_GPU_SWM341_DMA2D 0
189 | #if LV_USE_GPU_SWM341_DMA2D
190 | #define LV_GPU_SWM341_DMA2D_INCLUDE "SWM341.h"
191 | #endif
192 |
193 | /*Use NXP's PXP GPU iMX RTxxx platforms*/
194 | #define LV_USE_GPU_NXP_PXP 0
195 | #if LV_USE_GPU_NXP_PXP
196 | /*1: Add default bare metal and FreeRTOS interrupt handling routines for PXP (lv_gpu_nxp_pxp_osa.c)
197 | * and call lv_gpu_nxp_pxp_init() automatically during lv_init(). Note that symbol SDK_OS_FREE_RTOS
198 | * has to be defined in order to use FreeRTOS OSA, otherwise bare-metal implementation is selected.
199 | *0: lv_gpu_nxp_pxp_init() has to be called manually before lv_init()
200 | */
201 | #define LV_USE_GPU_NXP_PXP_AUTO_INIT 0
202 | #endif
203 |
204 | /*Use NXP's VG-Lite GPU iMX RTxxx platforms*/
205 | #define LV_USE_GPU_NXP_VG_LITE 0
206 |
207 | /*Use SDL renderer API*/
208 | #define LV_USE_GPU_SDL 0
209 | #if LV_USE_GPU_SDL
210 | #define LV_GPU_SDL_INCLUDE_PATH
211 | /*Texture cache size, 8MB by default*/
212 | #define LV_GPU_SDL_LRU_SIZE (1024 * 1024 * 8)
213 | /*Custom blend mode for mask drawing, disable if you need to link with older SDL2 lib*/
214 | #define LV_GPU_SDL_CUSTOM_BLEND_MODE (SDL_VERSION_ATLEAST(2, 0, 6))
215 | #endif
216 |
217 | /*-------------
218 | * Logging
219 | *-----------*/
220 |
221 | /*Enable the log module*/
222 | #define LV_USE_LOG 0
223 | #if LV_USE_LOG
224 |
225 | /*How important log should be added:
226 | *LV_LOG_LEVEL_TRACE A lot of logs to give detailed information
227 | *LV_LOG_LEVEL_INFO Log important events
228 | *LV_LOG_LEVEL_WARN Log if something unwanted happened but didn't cause a problem
229 | *LV_LOG_LEVEL_ERROR Only critical issue, when the system may fail
230 | *LV_LOG_LEVEL_USER Only logs added by the user
231 | *LV_LOG_LEVEL_NONE Do not log anything*/
232 | #define LV_LOG_LEVEL LV_LOG_LEVEL_WARN
233 |
234 | /*1: Print the log with 'printf';
235 | *0: User need to register a callback with `lv_log_register_print_cb()`*/
236 | #define LV_LOG_PRINTF 0
237 |
238 | /*Enable/disable LV_LOG_TRACE in modules that produces a huge number of logs*/
239 | #define LV_LOG_TRACE_MEM 1
240 | #define LV_LOG_TRACE_TIMER 1
241 | #define LV_LOG_TRACE_INDEV 1
242 | #define LV_LOG_TRACE_DISP_REFR 1
243 | #define LV_LOG_TRACE_EVENT 1
244 | #define LV_LOG_TRACE_OBJ_CREATE 1
245 | #define LV_LOG_TRACE_LAYOUT 1
246 | #define LV_LOG_TRACE_ANIM 1
247 |
248 | #endif /*LV_USE_LOG*/
249 |
250 | /*-------------
251 | * Asserts
252 | *-----------*/
253 |
254 | /*Enable asserts if an operation is failed or an invalid data is found.
255 | *If LV_USE_LOG is enabled an error message will be printed on failure*/
256 | #define LV_USE_ASSERT_NULL 1 /*Check if the parameter is NULL. (Very fast, recommended)*/
257 | #define LV_USE_ASSERT_MALLOC 1 /*Checks is the memory is successfully allocated or no. (Very fast, recommended)*/
258 | #define LV_USE_ASSERT_STYLE 0 /*Check if the styles are properly initialized. (Very fast, recommended)*/
259 | #define LV_USE_ASSERT_MEM_INTEGRITY 0 /*Check the integrity of `lv_mem` after critical operations. (Slow)*/
260 | #define LV_USE_ASSERT_OBJ 0 /*Check the object's type and existence (e.g. not deleted). (Slow)*/
261 |
262 | /*Add a custom handler when assert happens e.g. to restart the MCU*/
263 | #define LV_ASSERT_HANDLER_INCLUDE
264 | #define LV_ASSERT_HANDLER while(1); /*Halt by default*/
265 |
266 | /*-------------
267 | * Others
268 | *-----------*/
269 |
270 | /*1: Show CPU usage and FPS count*/
271 | #define LV_USE_PERF_MONITOR 0
272 | #if LV_USE_PERF_MONITOR
273 | #define LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT
274 | #endif
275 |
276 | /*1: Show the used memory and the memory fragmentation
277 | * Requires LV_MEM_CUSTOM = 0*/
278 | #define LV_USE_MEM_MONITOR 0
279 | #if LV_USE_MEM_MONITOR
280 | #define LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_LEFT
281 | #endif
282 |
283 | /*1: Draw random colored rectangles over the redrawn areas*/
284 | #define LV_USE_REFR_DEBUG 0
285 |
286 | /*Change the built in (v)snprintf functions*/
287 | #define LV_SPRINTF_CUSTOM 0
288 | #if LV_SPRINTF_CUSTOM
289 | #define LV_SPRINTF_INCLUDE
290 | #define lv_snprintf snprintf
291 | #define lv_vsnprintf vsnprintf
292 | #else /*LV_SPRINTF_CUSTOM*/
293 | #define LV_SPRINTF_USE_FLOAT 1
294 | #endif /*LV_SPRINTF_CUSTOM*/
295 |
296 | #define LV_USE_USER_DATA 1
297 |
298 | /*Garbage Collector settings
299 | *Used if lvgl is bound to higher level language and the memory is managed by that language*/
300 | #define LV_ENABLE_GC 0
301 | #if LV_ENABLE_GC != 0
302 | #define LV_GC_INCLUDE "gc.h" /*Include Garbage Collector related things*/
303 | #endif /*LV_ENABLE_GC*/
304 |
305 | /*=====================
306 | * COMPILER SETTINGS
307 | *====================*/
308 |
309 | /*For big endian systems set to 1*/
310 | #define LV_BIG_ENDIAN_SYSTEM 0
311 |
312 | /*Define a custom attribute to `lv_tick_inc` function*/
313 | #define LV_ATTRIBUTE_TICK_INC
314 |
315 | /*Define a custom attribute to `lv_timer_handler` function*/
316 | #define LV_ATTRIBUTE_TIMER_HANDLER
317 |
318 | /*Define a custom attribute to `lv_disp_flush_ready` function*/
319 | #define LV_ATTRIBUTE_FLUSH_READY
320 |
321 | /*Required alignment size for buffers*/
322 | #define LV_ATTRIBUTE_MEM_ALIGN_SIZE 1
323 |
324 | /*Will be added where memories needs to be aligned (with -Os data might not be aligned to boundary by default).
325 | * E.g. __attribute__((aligned(4)))*/
326 | #define LV_ATTRIBUTE_MEM_ALIGN
327 |
328 | /*Attribute to mark large constant arrays for example font's bitmaps*/
329 | #define LV_ATTRIBUTE_LARGE_CONST
330 |
331 | /*Compiler prefix for a big array declaration in RAM*/
332 | #define LV_ATTRIBUTE_LARGE_RAM_ARRAY
333 |
334 | /*Place performance critical functions into a faster memory (e.g RAM)*/
335 | #define LV_ATTRIBUTE_FAST_MEM
336 |
337 | /*Prefix variables that are used in GPU accelerated operations, often these need to be placed in RAM sections that are DMA accessible*/
338 | #define LV_ATTRIBUTE_DMA
339 |
340 | /*Export integer constant to binding. This macro is used with constants in the form of LV_ that
341 | *should also appear on LVGL binding API such as Micropython.*/
342 | #define LV_EXPORT_CONST_INT(int_value) struct _silence_gcc_warning /*The default value just prevents GCC warning*/
343 |
344 | /*Extend the default -32k..32k coordinate range to -4M..4M by using int32_t for coordinates instead of int16_t*/
345 | #define LV_USE_LARGE_COORD 0
346 |
347 | /*==================
348 | * FONT USAGE
349 | *===================*/
350 |
351 | /*Montserrat fonts with ASCII range and some symbols using bpp = 4
352 | *https://fonts.google.com/specimen/Montserrat*/
353 | #define LV_FONT_MONTSERRAT_8 0
354 | #define LV_FONT_MONTSERRAT_10 1
355 | #define LV_FONT_MONTSERRAT_12 1
356 | #define LV_FONT_MONTSERRAT_14 1
357 | #define LV_FONT_MONTSERRAT_16 1
358 | #define LV_FONT_MONTSERRAT_18 1
359 | #define LV_FONT_MONTSERRAT_20 1
360 | #define LV_FONT_MONTSERRAT_22 1
361 | #define LV_FONT_MONTSERRAT_24 1
362 | #define LV_FONT_MONTSERRAT_26 1
363 | #define LV_FONT_MONTSERRAT_28 1
364 | #define LV_FONT_MONTSERRAT_30 0
365 | #define LV_FONT_MONTSERRAT_32 1
366 | #define LV_FONT_MONTSERRAT_34 1
367 | #define LV_FONT_MONTSERRAT_36 0
368 | #define LV_FONT_MONTSERRAT_38 0
369 | #define LV_FONT_MONTSERRAT_40 1
370 | #define LV_FONT_MONTSERRAT_42 0
371 | #define LV_FONT_MONTSERRAT_44 1
372 | #define LV_FONT_MONTSERRAT_46 0
373 | #define LV_FONT_MONTSERRAT_48 1
374 |
375 | /*Demonstrate special features*/
376 | #define LV_FONT_MONTSERRAT_12_SUBPX 0
377 | #define LV_FONT_MONTSERRAT_28_COMPRESSED 0 /*bpp = 3*/
378 | #define LV_FONT_DEJAVU_16_PERSIAN_HEBREW 0 /*Hebrew, Arabic, Persian letters and all their forms*/
379 | #define LV_FONT_SIMSUN_16_CJK 0 /*1000 most common CJK radicals*/
380 |
381 | /*Pixel perfect monospace fonts*/
382 | #define LV_FONT_UNSCII_8 0
383 | #define LV_FONT_UNSCII_16 0
384 |
385 | /*Optionally declare custom fonts here.
386 | *You can use these fonts as default font too and they will be available globally.
387 | *E.g. #define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font_1) LV_FONT_DECLARE(my_font_2)*/
388 | #define LV_FONT_CUSTOM_DECLARE
389 |
390 | /*Always set a default font*/
391 | #define LV_FONT_DEFAULT &lv_font_montserrat_16
392 |
393 | /*Enable handling large font and/or fonts with a lot of characters.
394 | *The limit depends on the font size, font face and bpp.
395 | *Compiler error will be triggered if a font needs it.*/
396 | #define LV_FONT_FMT_TXT_LARGE 0
397 |
398 | /*Enables/disables support for compressed fonts.*/
399 | #define LV_USE_FONT_COMPRESSED 0
400 |
401 | /*Enable subpixel rendering*/
402 | #define LV_USE_FONT_SUBPX 0
403 | #if LV_USE_FONT_SUBPX
404 | /*Set the pixel order of the display. Physical order of RGB channels. Doesn't matter with "normal" fonts.*/
405 | #define LV_FONT_SUBPX_BGR 0 /*0: RGB; 1:BGR order*/
406 | #endif
407 |
408 | /*Enable drawing placeholders when glyph dsc is not found*/
409 | #define LV_USE_FONT_PLACEHOLDER 1
410 |
411 | /*=================
412 | * TEXT SETTINGS
413 | *=================*/
414 |
415 | /**
416 | * Select a character encoding for strings.
417 | * Your IDE or editor should have the same character encoding
418 | * - LV_TXT_ENC_UTF8
419 | * - LV_TXT_ENC_ASCII
420 | */
421 | #define LV_TXT_ENC LV_TXT_ENC_UTF8
422 |
423 | /*Can break (wrap) texts on these chars*/
424 | #define LV_TXT_BREAK_CHARS " ,.;:-_"
425 |
426 | /*If a word is at least this long, will break wherever "prettiest"
427 | *To disable, set to a value <= 0*/
428 | #define LV_TXT_LINE_BREAK_LONG_LEN 0
429 |
430 | /*Minimum number of characters in a long word to put on a line before a break.
431 | *Depends on LV_TXT_LINE_BREAK_LONG_LEN.*/
432 | #define LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN 3
433 |
434 | /*Minimum number of characters in a long word to put on a line after a break.
435 | *Depends on LV_TXT_LINE_BREAK_LONG_LEN.*/
436 | #define LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN 3
437 |
438 | /*The control character to use for signalling text recoloring.*/
439 | #define LV_TXT_COLOR_CMD "#"
440 |
441 | /*Support bidirectional texts. Allows mixing Left-to-Right and Right-to-Left texts.
442 | *The direction will be processed according to the Unicode Bidirectional Algorithm:
443 | *https://www.w3.org/International/articles/inline-bidi-markup/uba-basics*/
444 | #define LV_USE_BIDI 0
445 | #if LV_USE_BIDI
446 | /*Set the default direction. Supported values:
447 | *`LV_BASE_DIR_LTR` Left-to-Right
448 | *`LV_BASE_DIR_RTL` Right-to-Left
449 | *`LV_BASE_DIR_AUTO` detect texts base direction*/
450 | #define LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_AUTO
451 | #endif
452 |
453 | /*Enable Arabic/Persian processing
454 | *In these languages characters should be replaced with an other form based on their position in the text*/
455 | #define LV_USE_ARABIC_PERSIAN_CHARS 0
456 |
457 | /*==================
458 | * WIDGET USAGE
459 | *================*/
460 |
461 | /*Documentation of the widgets: https://docs.lvgl.io/latest/en/html/widgets/index.html*/
462 |
463 | #define LV_USE_ARC 1
464 |
465 | #define LV_USE_BAR 1
466 |
467 | #define LV_USE_BTN 1
468 |
469 | #define LV_USE_BTNMATRIX 1
470 |
471 | #define LV_USE_CANVAS 1
472 |
473 | #define LV_USE_CHECKBOX 1
474 |
475 | #define LV_USE_DROPDOWN 1 /*Requires: lv_label*/
476 |
477 | #define LV_USE_IMG 1 /*Requires: lv_label*/
478 |
479 | #define LV_USE_LABEL 1
480 | #if LV_USE_LABEL
481 | #define LV_LABEL_TEXT_SELECTION 1 /*Enable selecting text of the label*/
482 | #define LV_LABEL_LONG_TXT_HINT 1 /*Store some extra info in labels to speed up drawing of very long texts*/
483 | #endif
484 |
485 | #define LV_USE_LINE 1
486 |
487 | #define LV_USE_ROLLER 1 /*Requires: lv_label*/
488 | #if LV_USE_ROLLER
489 | #define LV_ROLLER_INF_PAGES 7 /*Number of extra "pages" when the roller is infinite*/
490 | #endif
491 |
492 | #define LV_USE_SLIDER 1 /*Requires: lv_bar*/
493 |
494 | #define LV_USE_SWITCH 1
495 |
496 | #define LV_USE_TEXTAREA 1 /*Requires: lv_label*/
497 | #if LV_USE_TEXTAREA != 0
498 | #define LV_TEXTAREA_DEF_PWD_SHOW_TIME 1500 /*ms*/
499 | #endif
500 |
501 | #define LV_USE_TABLE 1
502 |
503 | /*==================
504 | * EXTRA COMPONENTS
505 | *==================*/
506 |
507 | /*-----------
508 | * Widgets
509 | *----------*/
510 | #define LV_USE_ANIMIMG 1
511 |
512 | #define LV_USE_CALENDAR 1
513 | #if LV_USE_CALENDAR
514 | #define LV_CALENDAR_WEEK_STARTS_MONDAY 0
515 | #if LV_CALENDAR_WEEK_STARTS_MONDAY
516 | #define LV_CALENDAR_DEFAULT_DAY_NAMES {"Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"}
517 | #else
518 | #define LV_CALENDAR_DEFAULT_DAY_NAMES {"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"}
519 | #endif
520 |
521 | #define LV_CALENDAR_DEFAULT_MONTH_NAMES {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}
522 | #define LV_USE_CALENDAR_HEADER_ARROW 1
523 | #define LV_USE_CALENDAR_HEADER_DROPDOWN 1
524 | #endif /*LV_USE_CALENDAR*/
525 |
526 | #define LV_USE_CHART 1
527 |
528 | #define LV_USE_COLORWHEEL 1
529 |
530 | #define LV_USE_IMGBTN 1
531 |
532 | #define LV_USE_KEYBOARD 1
533 |
534 | #define LV_USE_LED 1
535 |
536 | #define LV_USE_LIST 1
537 |
538 | #define LV_USE_MENU 1
539 |
540 | #define LV_USE_METER 1
541 |
542 | #define LV_USE_MSGBOX 1
543 |
544 | #define LV_USE_SPAN 1
545 | #if LV_USE_SPAN
546 | /*A line text can contain maximum num of span descriptor */
547 | #define LV_SPAN_SNIPPET_STACK_SIZE 64
548 | #endif
549 |
550 | #define LV_USE_SPINBOX 1
551 |
552 | #define LV_USE_SPINNER 1
553 |
554 | #define LV_USE_TABVIEW 1
555 |
556 | #define LV_USE_TILEVIEW 1
557 |
558 | #define LV_USE_WIN 1
559 |
560 | /*-----------
561 | * Themes
562 | *----------*/
563 |
564 | /*A simple, impressive and very complete theme*/
565 | #define LV_USE_THEME_DEFAULT 1
566 | #if LV_USE_THEME_DEFAULT
567 |
568 | /*0: Light mode; 1: Dark mode*/
569 | #define LV_THEME_DEFAULT_DARK 0
570 |
571 | /*1: Enable grow on press*/
572 | #define LV_THEME_DEFAULT_GROW 1
573 |
574 | /*Default transition time in [ms]*/
575 | #define LV_THEME_DEFAULT_TRANSITION_TIME 80
576 | #endif /*LV_USE_THEME_DEFAULT*/
577 |
578 | /*A very simple theme that is a good starting point for a custom theme*/
579 | #define LV_USE_THEME_BASIC 1
580 |
581 | /*A theme designed for monochrome displays*/
582 | #define LV_USE_THEME_MONO 1
583 |
584 | /*-----------
585 | * Layouts
586 | *----------*/
587 |
588 | /*A layout similar to Flexbox in CSS.*/
589 | #define LV_USE_FLEX 1
590 |
591 | /*A layout similar to Grid in CSS.*/
592 | #define LV_USE_GRID 1
593 |
594 | /*---------------------
595 | * 3rd party libraries
596 | *--------------------*/
597 |
598 | /*File system interfaces for common APIs */
599 |
600 | /*API for fopen, fread, etc*/
601 | #define LV_USE_FS_STDIO 0
602 | #if LV_USE_FS_STDIO
603 | #define LV_FS_STDIO_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/
604 | #define LV_FS_STDIO_PATH "" /*Set the working directory. File/directory paths will be appended to it.*/
605 | #define LV_FS_STDIO_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/
606 | #endif
607 |
608 | /*API for open, read, etc*/
609 | #define LV_USE_FS_POSIX 0
610 | #if LV_USE_FS_POSIX
611 | #define LV_FS_POSIX_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/
612 | #define LV_FS_POSIX_PATH "" /*Set the working directory. File/directory paths will be appended to it.*/
613 | #define LV_FS_POSIX_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/
614 | #endif
615 |
616 | /*API for CreateFile, ReadFile, etc*/
617 | #define LV_USE_FS_WIN32 0
618 | #if LV_USE_FS_WIN32
619 | #define LV_FS_WIN32_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/
620 | #define LV_FS_WIN32_PATH "" /*Set the working directory. File/directory paths will be appended to it.*/
621 | #define LV_FS_WIN32_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/
622 | #endif
623 |
624 | /*API for FATFS (needs to be added separately). Uses f_open, f_read, etc*/
625 | #define LV_USE_FS_FATFS 0
626 | #if LV_USE_FS_FATFS
627 | #define LV_FS_FATFS_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/
628 | #define LV_FS_FATFS_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/
629 | #endif
630 |
631 | /*PNG decoder library*/
632 | #define LV_USE_PNG 0
633 |
634 | /*BMP decoder library*/
635 | #define LV_USE_BMP 0
636 |
637 | /* JPG + split JPG decoder library.
638 | * Split JPG is a custom format optimized for embedded systems. */
639 | #define LV_USE_SJPG 0
640 |
641 | /*GIF decoder library*/
642 | #define LV_USE_GIF 0
643 |
644 | /*QR code library*/
645 | #define LV_USE_QRCODE 0
646 |
647 | /*FreeType library*/
648 | #define LV_USE_FREETYPE 0
649 | #if LV_USE_FREETYPE
650 | /*Memory used by FreeType to cache characters [bytes] (-1: no caching)*/
651 | #define LV_FREETYPE_CACHE_SIZE (16 * 1024)
652 | #if LV_FREETYPE_CACHE_SIZE >= 0
653 | /* 1: bitmap cache use the sbit cache, 0:bitmap cache use the image cache. */
654 | /* sbit cache:it is much more memory efficient for small bitmaps(font size < 256) */
655 | /* if font size >= 256, must be configured as image cache */
656 | #define LV_FREETYPE_SBIT_CACHE 0
657 | /* Maximum number of opened FT_Face/FT_Size objects managed by this cache instance. */
658 | /* (0:use system defaults) */
659 | #define LV_FREETYPE_CACHE_FT_FACES 0
660 | #define LV_FREETYPE_CACHE_FT_SIZES 0
661 | #endif
662 | #endif
663 |
664 | /*Rlottie library*/
665 | #define LV_USE_RLOTTIE 0
666 |
667 | /*FFmpeg library for image decoding and playing videos
668 | *Supports all major image formats so do not enable other image decoder with it*/
669 | #define LV_USE_FFMPEG 0
670 | #if LV_USE_FFMPEG
671 | /*Dump input information to stderr*/
672 | #define LV_FFMPEG_DUMP_FORMAT 0
673 | #endif
674 |
675 | /*-----------
676 | * Others
677 | *----------*/
678 |
679 | /*1: Enable API to take snapshot for object*/
680 | #define LV_USE_SNAPSHOT 0
681 |
682 | /*1: Enable Monkey test*/
683 | #define LV_USE_MONKEY 0
684 |
685 | /*1: Enable grid navigation*/
686 | #define LV_USE_GRIDNAV 0
687 |
688 | /*1: Enable lv_obj fragment*/
689 | #define LV_USE_FRAGMENT 0
690 |
691 | /*1: Support using images as font in label or span widgets */
692 | #define LV_USE_IMGFONT 0
693 |
694 | /*1: Enable a published subscriber based messaging system */
695 | #define LV_USE_MSG 0
696 |
697 | /*1: Enable Pinyin input method*/
698 | /*Requires: lv_keyboard*/
699 | #define LV_USE_IME_PINYIN 0
700 | #if LV_USE_IME_PINYIN
701 | /*1: Use default thesaurus*/
702 | /*If you do not use the default thesaurus, be sure to use `lv_ime_pinyin` after setting the thesauruss*/
703 | #define LV_IME_PINYIN_USE_DEFAULT_DICT 1
704 | /*Set the maximum number of candidate panels that can be displayed*/
705 | /*This needs to be adjusted according to the size of the screen*/
706 | #define LV_IME_PINYIN_CAND_TEXT_NUM 6
707 |
708 | /*Use 9 key input(k9)*/
709 | #define LV_IME_PINYIN_USE_K9_MODE 1
710 | #if LV_IME_PINYIN_USE_K9_MODE == 1
711 | #define LV_IME_PINYIN_K9_CAND_TEXT_NUM 3
712 | #endif // LV_IME_PINYIN_USE_K9_MODE
713 | #endif
714 |
715 | /*==================
716 | * EXAMPLES
717 | *==================*/
718 |
719 | /*Enable the examples to be built with the library*/
720 | #define LV_BUILD_EXAMPLES 1
721 |
722 | /*===================
723 | * DEMO USAGE
724 | ====================*/
725 |
726 | /*Show some widget. It might be required to increase `LV_MEM_SIZE` */
727 | #define LV_USE_DEMO_WIDGETS 1
728 | #if LV_USE_DEMO_WIDGETS
729 | #define LV_DEMO_WIDGETS_SLIDESHOW 0
730 | #endif
731 |
732 | /*Demonstrate the usage of encoder and keyboard*/
733 | #define LV_USE_DEMO_KEYPAD_AND_ENCODER 0
734 |
735 | /*Benchmark your system*/
736 | #define LV_USE_DEMO_BENCHMARK 0
737 | #if LV_USE_DEMO_BENCHMARK
738 | /*Use RGB565A8 images with 16 bit color depth instead of ARGB8565*/
739 | #define LV_DEMO_BENCHMARK_RGB565A8 0
740 | #endif
741 |
742 | /*Stress test for LVGL*/
743 | #define LV_USE_DEMO_STRESS 0
744 |
745 | /*Music player demo*/
746 | #define LV_USE_DEMO_MUSIC 0
747 | #if LV_USE_DEMO_MUSIC
748 | #define LV_DEMO_MUSIC_SQUARE 0
749 | #define LV_DEMO_MUSIC_LANDSCAPE 0
750 | #define LV_DEMO_MUSIC_ROUND 0
751 | #define LV_DEMO_MUSIC_LARGE 0
752 | #define LV_DEMO_MUSIC_AUTO_PLAY 0
753 | #endif
754 |
755 | /*--END OF LV_CONF_H--*/
756 |
757 | #endif /*LV_CONF_H*/
758 |
759 | #endif /*End of "Content enable"*/
760 |
--------------------------------------------------------------------------------
/src/ui.c:
--------------------------------------------------------------------------------
1 | // SquareLine LVGL GENERATED FILE
2 | // EDITOR VERSION: SquareLine Studio 1.1.0
3 | // LVGL VERSION: 8.2
4 | // PROJECT: card
5 |
6 | #include "ui.h"
7 | #include "ui_helpers.h"
8 |
9 | ///////////////////// VARIABLES ////////////////////
10 | void ui_event_mainScreen(lv_event_t * e);
11 | lv_obj_t * ui_mainScreen;
12 | lv_obj_t * ui_nameLabel;
13 | lv_obj_t * ui_aboutLabel;
14 | void ui_event_emailPanel(lv_event_t * e);
15 | lv_obj_t * ui_emailPanel;
16 | lv_obj_t * ui_emailIcon;
17 | lv_obj_t * ui_emailText;
18 | void ui_event_websitePanel(lv_event_t * e);
19 | lv_obj_t * ui_websitePanel;
20 | lv_obj_t * ui_websiteIcon;
21 | lv_obj_t * ui_websiteText;
22 | void ui_event_twitterPanel(lv_event_t * e);
23 | lv_obj_t * ui_twitterPanel;
24 | lv_obj_t * ui_twitterIcon;
25 | lv_obj_t * ui_twitterText;
26 | void ui_event_phonePanel(lv_event_t * e);
27 | lv_obj_t * ui_phonePanel;
28 | lv_obj_t * ui_phoneIcon;
29 | lv_obj_t * ui_phoneText;
30 | lv_obj_t * ui_alertPanel;
31 | lv_obj_t * ui_connectIcon;
32 | void ui_event_clockScreen(lv_event_t * e);
33 | lv_obj_t * ui_clockScreen;
34 | lv_obj_t * ui_clockPanel;
35 | lv_obj_t * ui_hour1;
36 | lv_obj_t * ui_hour2;
37 | lv_obj_t * ui_minute1;
38 | lv_obj_t * ui_minute2;
39 | lv_obj_t * ui_second1;
40 | lv_obj_t * ui_second2;
41 | lv_obj_t * ui_label1;
42 | lv_obj_t * ui_label2;
43 | lv_obj_t * ui_dateText;
44 | lv_obj_t * ui_weatherIcon;
45 | lv_obj_t * ui_weatherTemp;
46 | lv_obj_t * ui_weatherLocation;
47 | void ui_event_brightnessSlider(lv_event_t * e);
48 | lv_obj_t * ui_brightnessSlider;
49 | lv_obj_t * ui_brightnessIcon;
50 |
51 | ///////////////////// TEST LVGL SETTINGS ////////////////////
52 | #if LV_COLOR_DEPTH != 16
53 | #error "LV_COLOR_DEPTH should be 16bit to match SquareLine Studio's settings"
54 | #endif
55 | #if LV_COLOR_16_SWAP !=1
56 | #error "LV_COLOR_16_SWAP should be 1 to match SquareLine Studio's settings"
57 | #endif
58 |
59 | ///////////////////// ANIMATIONS ////////////////////
60 |
61 | ///////////////////// FUNCTIONS ////////////////////
62 | void ui_event_mainScreen(lv_event_t * e)
63 | {
64 | lv_event_code_t event_code = lv_event_get_code(e);
65 | lv_obj_t * target = lv_event_get_target(e);
66 | if(event_code == LV_EVENT_GESTURE && lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_LEFT) {
67 | _ui_screen_change(ui_clockScreen, LV_SCR_LOAD_ANIM_MOVE_LEFT, 500, 0);
68 | }
69 | }
70 | void ui_event_emailPanel(lv_event_t * e)
71 | {
72 | lv_event_code_t event_code = lv_event_get_code(e);
73 | lv_obj_t * target = lv_event_get_target(e);
74 | if(event_code == LV_EVENT_VALUE_CHANGED && lv_obj_has_state(target, LV_STATE_CHECKED)) {
75 | _ui_label_set_property(ui_emailText, _UI_LABEL_PROPERTY_TEXT, "fbiego.fb@gmail.com");
76 | }
77 | if(event_code == LV_EVENT_VALUE_CHANGED && !lv_obj_has_state(target, LV_STATE_CHECKED)) {
78 | _ui_label_set_property(ui_emailText, _UI_LABEL_PROPERTY_TEXT, "");
79 | }
80 | if(event_code == LV_EVENT_CLICKED) {
81 | onClickEmail(e);
82 | }
83 | }
84 | void ui_event_websitePanel(lv_event_t * e)
85 | {
86 | lv_event_code_t event_code = lv_event_get_code(e);
87 | lv_obj_t * target = lv_event_get_target(e);
88 | if(event_code == LV_EVENT_VALUE_CHANGED && lv_obj_has_state(target, LV_STATE_CHECKED)) {
89 | _ui_label_set_property(ui_websiteText, _UI_LABEL_PROPERTY_TEXT, "felix.fbiego.com");
90 | }
91 | if(event_code == LV_EVENT_VALUE_CHANGED && !lv_obj_has_state(target, LV_STATE_CHECKED)) {
92 | _ui_label_set_property(ui_websiteText, _UI_LABEL_PROPERTY_TEXT, "");
93 | }
94 | if(event_code == LV_EVENT_CLICKED) {
95 | onClickWebsite(e);
96 | }
97 | }
98 | void ui_event_twitterPanel(lv_event_t * e)
99 | {
100 | lv_event_code_t event_code = lv_event_get_code(e);
101 | lv_obj_t * target = lv_event_get_target(e);
102 | if(event_code == LV_EVENT_VALUE_CHANGED && lv_obj_has_state(target, LV_STATE_CHECKED)) {
103 | _ui_label_set_property(ui_twitterText, _UI_LABEL_PROPERTY_TEXT, "@fbiego_");
104 | }
105 | if(event_code == LV_EVENT_VALUE_CHANGED && !lv_obj_has_state(target, LV_STATE_CHECKED)) {
106 | _ui_label_set_property(ui_twitterText, _UI_LABEL_PROPERTY_TEXT, "");
107 | }
108 | if(event_code == LV_EVENT_CLICKED) {
109 | onClickTwitter(e);
110 | }
111 | }
112 | void ui_event_phonePanel(lv_event_t * e)
113 | {
114 | lv_event_code_t event_code = lv_event_get_code(e);
115 | lv_obj_t * target = lv_event_get_target(e);
116 | if(event_code == LV_EVENT_VALUE_CHANGED && lv_obj_has_state(target, LV_STATE_CHECKED)) {
117 | _ui_label_set_property(ui_phoneText, _UI_LABEL_PROPERTY_TEXT, "+254 7** *** *06");
118 | }
119 | if(event_code == LV_EVENT_VALUE_CHANGED && !lv_obj_has_state(target, LV_STATE_CHECKED)) {
120 | _ui_label_set_property(ui_phoneText, _UI_LABEL_PROPERTY_TEXT, "");
121 | }
122 | if(event_code == LV_EVENT_CLICKED) {
123 | onClickCall(e);
124 | }
125 | }
126 | void ui_event_clockScreen(lv_event_t * e)
127 | {
128 | lv_event_code_t event_code = lv_event_get_code(e);
129 | lv_obj_t * target = lv_event_get_target(e);
130 | if(event_code == LV_EVENT_GESTURE && lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_RIGHT) {
131 | _ui_screen_change(ui_mainScreen, LV_SCR_LOAD_ANIM_MOVE_RIGHT, 500, 0);
132 | }
133 | }
134 | void ui_event_brightnessSlider(lv_event_t * e)
135 | {
136 | lv_event_code_t event_code = lv_event_get_code(e);
137 | lv_obj_t * target = lv_event_get_target(e);
138 | if(event_code == LV_EVENT_VALUE_CHANGED) {
139 | onBrightnessChange(e);
140 | }
141 | }
142 |
143 | ///////////////////// SCREENS ////////////////////
144 | void ui_mainScreen_screen_init(void)
145 | {
146 | ui_mainScreen = lv_obj_create(NULL);
147 | lv_obj_clear_flag(ui_mainScreen, LV_OBJ_FLAG_SCROLLABLE); /// Flags
148 | lv_obj_set_style_bg_color(ui_mainScreen, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
149 | lv_obj_set_style_bg_opa(ui_mainScreen, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
150 | lv_obj_set_style_bg_img_src(ui_mainScreen, &ui_img_236433794, LV_PART_MAIN | LV_STATE_DEFAULT);
151 | lv_obj_set_style_bg_img_opa(ui_mainScreen, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
152 |
153 | ui_nameLabel = lv_label_create(ui_mainScreen);
154 | lv_obj_set_width(ui_nameLabel, LV_SIZE_CONTENT); /// 1
155 | lv_obj_set_height(ui_nameLabel, LV_SIZE_CONTENT); /// 1
156 | lv_obj_set_x(ui_nameLabel, 20);
157 | lv_obj_set_y(ui_nameLabel, 40);
158 | lv_label_set_text(ui_nameLabel, "Felix Biego");
159 | lv_obj_set_style_text_font(ui_nameLabel, &lv_font_montserrat_40, LV_PART_MAIN | LV_STATE_DEFAULT);
160 |
161 | ui_aboutLabel = lv_label_create(ui_mainScreen);
162 | lv_obj_set_width(ui_aboutLabel, 440);
163 | lv_obj_set_height(ui_aboutLabel, LV_SIZE_CONTENT); /// 1
164 | lv_obj_set_x(ui_aboutLabel, 20);
165 | lv_obj_set_y(ui_aboutLabel, 100);
166 | lv_label_set_long_mode(ui_aboutLabel, LV_LABEL_LONG_SCROLL_CIRCULAR);
167 | lv_label_set_text(ui_aboutLabel, "Software Engineer | Embedded Systems Developer | IoT |");
168 | lv_label_set_recolor(ui_aboutLabel, "true");
169 | lv_obj_set_style_text_color(ui_aboutLabel, lv_color_hex(0x78D53A), LV_PART_MAIN | LV_STATE_DEFAULT);
170 | lv_obj_set_style_text_opa(ui_aboutLabel, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
171 | lv_obj_set_style_text_font(ui_aboutLabel, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT);
172 |
173 | ui_emailPanel = lv_obj_create(ui_mainScreen);
174 | lv_obj_set_width(ui_emailPanel, LV_SIZE_CONTENT); /// 1
175 | lv_obj_set_height(ui_emailPanel, LV_SIZE_CONTENT); /// 50
176 | lv_obj_set_x(ui_emailPanel, 20);
177 | lv_obj_set_y(ui_emailPanel, 160);
178 | lv_obj_add_flag(ui_emailPanel, LV_OBJ_FLAG_CHECKABLE); /// Flags
179 | lv_obj_clear_flag(ui_emailPanel, LV_OBJ_FLAG_SCROLLABLE); /// Flags
180 | lv_obj_set_style_radius(ui_emailPanel, 50, LV_PART_MAIN | LV_STATE_DEFAULT);
181 | lv_obj_set_style_bg_color(ui_emailPanel, lv_color_hex(0x6CBE34), LV_PART_MAIN | LV_STATE_DEFAULT);
182 | lv_obj_set_style_bg_opa(ui_emailPanel, 150, LV_PART_MAIN | LV_STATE_DEFAULT);
183 | lv_obj_set_style_border_width(ui_emailPanel, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
184 | lv_obj_set_style_pad_left(ui_emailPanel, 15, LV_PART_MAIN | LV_STATE_DEFAULT);
185 | lv_obj_set_style_pad_right(ui_emailPanel, 15, LV_PART_MAIN | LV_STATE_DEFAULT);
186 | lv_obj_set_style_pad_top(ui_emailPanel, 5, LV_PART_MAIN | LV_STATE_DEFAULT);
187 | lv_obj_set_style_pad_bottom(ui_emailPanel, 5, LV_PART_MAIN | LV_STATE_DEFAULT);
188 |
189 | ui_emailIcon = lv_img_create(ui_emailPanel);
190 | lv_img_set_src(ui_emailIcon, &ui_img_email_png);
191 | lv_obj_set_width(ui_emailIcon, LV_SIZE_CONTENT); /// 1
192 | lv_obj_set_height(ui_emailIcon, LV_SIZE_CONTENT); /// 1
193 | lv_obj_set_align(ui_emailIcon, LV_ALIGN_LEFT_MID);
194 | lv_obj_add_flag(ui_emailIcon, LV_OBJ_FLAG_ADV_HITTEST); /// Flags
195 | lv_obj_clear_flag(ui_emailIcon, LV_OBJ_FLAG_SCROLLABLE); /// Flags
196 |
197 | ui_emailText = lv_label_create(ui_emailPanel);
198 | lv_obj_set_width(ui_emailText, LV_SIZE_CONTENT); /// 1
199 | lv_obj_set_height(ui_emailText, LV_SIZE_CONTENT); /// 1
200 | lv_obj_set_x(ui_emailText, 30);
201 | lv_obj_set_y(ui_emailText, 0);
202 | lv_obj_set_align(ui_emailText, LV_ALIGN_LEFT_MID);
203 | lv_label_set_text(ui_emailText, "");
204 |
205 | ui_websitePanel = lv_obj_create(ui_mainScreen);
206 | lv_obj_set_width(ui_websitePanel, LV_SIZE_CONTENT); /// 1
207 | lv_obj_set_height(ui_websitePanel, LV_SIZE_CONTENT); /// 50
208 | lv_obj_set_x(ui_websitePanel, 20);
209 | lv_obj_set_y(ui_websitePanel, 240);
210 | lv_obj_add_flag(ui_websitePanel, LV_OBJ_FLAG_CHECKABLE); /// Flags
211 | lv_obj_clear_flag(ui_websitePanel, LV_OBJ_FLAG_SCROLLABLE); /// Flags
212 | lv_obj_set_style_radius(ui_websitePanel, 50, LV_PART_MAIN | LV_STATE_DEFAULT);
213 | lv_obj_set_style_bg_color(ui_websitePanel, lv_color_hex(0x6CBE34), LV_PART_MAIN | LV_STATE_DEFAULT);
214 | lv_obj_set_style_bg_opa(ui_websitePanel, 150, LV_PART_MAIN | LV_STATE_DEFAULT);
215 | lv_obj_set_style_border_width(ui_websitePanel, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
216 | lv_obj_set_style_pad_left(ui_websitePanel, 15, LV_PART_MAIN | LV_STATE_DEFAULT);
217 | lv_obj_set_style_pad_right(ui_websitePanel, 15, LV_PART_MAIN | LV_STATE_DEFAULT);
218 | lv_obj_set_style_pad_top(ui_websitePanel, 5, LV_PART_MAIN | LV_STATE_DEFAULT);
219 | lv_obj_set_style_pad_bottom(ui_websitePanel, 5, LV_PART_MAIN | LV_STATE_DEFAULT);
220 |
221 | ui_websiteIcon = lv_img_create(ui_websitePanel);
222 | lv_img_set_src(ui_websiteIcon, &ui_img_web_png);
223 | lv_obj_set_width(ui_websiteIcon, LV_SIZE_CONTENT); /// 1
224 | lv_obj_set_height(ui_websiteIcon, LV_SIZE_CONTENT); /// 1
225 | lv_obj_set_align(ui_websiteIcon, LV_ALIGN_LEFT_MID);
226 | lv_obj_add_flag(ui_websiteIcon, LV_OBJ_FLAG_ADV_HITTEST); /// Flags
227 | lv_obj_clear_flag(ui_websiteIcon, LV_OBJ_FLAG_SCROLLABLE); /// Flags
228 |
229 | ui_websiteText = lv_label_create(ui_websitePanel);
230 | lv_obj_set_width(ui_websiteText, LV_SIZE_CONTENT); /// 1
231 | lv_obj_set_height(ui_websiteText, LV_SIZE_CONTENT); /// 1
232 | lv_obj_set_x(ui_websiteText, 30);
233 | lv_obj_set_y(ui_websiteText, 0);
234 | lv_obj_set_align(ui_websiteText, LV_ALIGN_LEFT_MID);
235 | lv_label_set_text(ui_websiteText, "");
236 |
237 | ui_twitterPanel = lv_obj_create(ui_mainScreen);
238 | lv_obj_set_width(ui_twitterPanel, LV_SIZE_CONTENT); /// 1
239 | lv_obj_set_height(ui_twitterPanel, LV_SIZE_CONTENT); /// 50
240 | lv_obj_set_x(ui_twitterPanel, 20);
241 | lv_obj_set_y(ui_twitterPanel, 280);
242 | lv_obj_add_flag(ui_twitterPanel, LV_OBJ_FLAG_CHECKABLE); /// Flags
243 | lv_obj_clear_flag(ui_twitterPanel, LV_OBJ_FLAG_SCROLLABLE); /// Flags
244 | lv_obj_set_style_radius(ui_twitterPanel, 50, LV_PART_MAIN | LV_STATE_DEFAULT);
245 | lv_obj_set_style_bg_color(ui_twitterPanel, lv_color_hex(0x6CBE34), LV_PART_MAIN | LV_STATE_DEFAULT);
246 | lv_obj_set_style_bg_opa(ui_twitterPanel, 150, LV_PART_MAIN | LV_STATE_DEFAULT);
247 | lv_obj_set_style_border_width(ui_twitterPanel, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
248 | lv_obj_set_style_pad_left(ui_twitterPanel, 15, LV_PART_MAIN | LV_STATE_DEFAULT);
249 | lv_obj_set_style_pad_right(ui_twitterPanel, 15, LV_PART_MAIN | LV_STATE_DEFAULT);
250 | lv_obj_set_style_pad_top(ui_twitterPanel, 5, LV_PART_MAIN | LV_STATE_DEFAULT);
251 | lv_obj_set_style_pad_bottom(ui_twitterPanel, 5, LV_PART_MAIN | LV_STATE_DEFAULT);
252 |
253 | ui_twitterIcon = lv_img_create(ui_twitterPanel);
254 | lv_img_set_src(ui_twitterIcon, &ui_img_1668805065);
255 | lv_obj_set_width(ui_twitterIcon, LV_SIZE_CONTENT); /// 1
256 | lv_obj_set_height(ui_twitterIcon, LV_SIZE_CONTENT); /// 1
257 | lv_obj_set_align(ui_twitterIcon, LV_ALIGN_LEFT_MID);
258 | lv_obj_add_flag(ui_twitterIcon, LV_OBJ_FLAG_ADV_HITTEST); /// Flags
259 | lv_obj_clear_flag(ui_twitterIcon, LV_OBJ_FLAG_SCROLLABLE); /// Flags
260 |
261 | ui_twitterText = lv_label_create(ui_twitterPanel);
262 | lv_obj_set_width(ui_twitterText, LV_SIZE_CONTENT); /// 1
263 | lv_obj_set_height(ui_twitterText, LV_SIZE_CONTENT); /// 1
264 | lv_obj_set_x(ui_twitterText, 30);
265 | lv_obj_set_y(ui_twitterText, 0);
266 | lv_obj_set_align(ui_twitterText, LV_ALIGN_LEFT_MID);
267 | lv_label_set_text(ui_twitterText, "");
268 |
269 | ui_phonePanel = lv_obj_create(ui_mainScreen);
270 | lv_obj_set_width(ui_phonePanel, LV_SIZE_CONTENT); /// 1
271 | lv_obj_set_height(ui_phonePanel, LV_SIZE_CONTENT); /// 50
272 | lv_obj_set_x(ui_phonePanel, 20);
273 | lv_obj_set_y(ui_phonePanel, 200);
274 | lv_obj_add_flag(ui_phonePanel, LV_OBJ_FLAG_CHECKABLE); /// Flags
275 | lv_obj_clear_flag(ui_phonePanel, LV_OBJ_FLAG_SCROLLABLE); /// Flags
276 | lv_obj_set_style_radius(ui_phonePanel, 50, LV_PART_MAIN | LV_STATE_DEFAULT);
277 | lv_obj_set_style_bg_color(ui_phonePanel, lv_color_hex(0x6CBE34), LV_PART_MAIN | LV_STATE_DEFAULT);
278 | lv_obj_set_style_bg_opa(ui_phonePanel, 150, LV_PART_MAIN | LV_STATE_DEFAULT);
279 | lv_obj_set_style_border_width(ui_phonePanel, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
280 | lv_obj_set_style_pad_left(ui_phonePanel, 15, LV_PART_MAIN | LV_STATE_DEFAULT);
281 | lv_obj_set_style_pad_right(ui_phonePanel, 15, LV_PART_MAIN | LV_STATE_DEFAULT);
282 | lv_obj_set_style_pad_top(ui_phonePanel, 5, LV_PART_MAIN | LV_STATE_DEFAULT);
283 | lv_obj_set_style_pad_bottom(ui_phonePanel, 5, LV_PART_MAIN | LV_STATE_DEFAULT);
284 |
285 | ui_phoneIcon = lv_img_create(ui_phonePanel);
286 | lv_img_set_src(ui_phoneIcon, &ui_img_1276322231);
287 | lv_obj_set_width(ui_phoneIcon, LV_SIZE_CONTENT); /// 1
288 | lv_obj_set_height(ui_phoneIcon, LV_SIZE_CONTENT); /// 1
289 | lv_obj_set_align(ui_phoneIcon, LV_ALIGN_LEFT_MID);
290 | lv_obj_add_flag(ui_phoneIcon, LV_OBJ_FLAG_ADV_HITTEST); /// Flags
291 | lv_obj_clear_flag(ui_phoneIcon, LV_OBJ_FLAG_SCROLLABLE); /// Flags
292 |
293 | ui_phoneText = lv_label_create(ui_phonePanel);
294 | lv_obj_set_width(ui_phoneText, LV_SIZE_CONTENT); /// 1
295 | lv_obj_set_height(ui_phoneText, LV_SIZE_CONTENT); /// 1
296 | lv_obj_set_x(ui_phoneText, 30);
297 | lv_obj_set_y(ui_phoneText, 0);
298 | lv_obj_set_align(ui_phoneText, LV_ALIGN_LEFT_MID);
299 | lv_label_set_text(ui_phoneText, "");
300 |
301 | ui_alertPanel = lv_obj_create(ui_mainScreen);
302 | lv_obj_set_width(ui_alertPanel, 480);
303 | lv_obj_set_height(ui_alertPanel, 320);
304 | lv_obj_set_align(ui_alertPanel, LV_ALIGN_CENTER);
305 | lv_obj_add_flag(ui_alertPanel, LV_OBJ_FLAG_HIDDEN); /// Flags
306 | lv_obj_clear_flag(ui_alertPanel, LV_OBJ_FLAG_SCROLLABLE); /// Flags
307 | lv_obj_set_style_radius(ui_alertPanel, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
308 | lv_obj_set_style_bg_color(ui_alertPanel, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
309 | lv_obj_set_style_bg_opa(ui_alertPanel, 220, LV_PART_MAIN | LV_STATE_DEFAULT);
310 | lv_obj_set_style_border_width(ui_alertPanel, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
311 |
312 | ui_connectIcon = lv_img_create(ui_mainScreen);
313 | lv_img_set_src(ui_connectIcon, &ui_img_wifi_png);
314 | lv_obj_set_width(ui_connectIcon, LV_SIZE_CONTENT); /// 1
315 | lv_obj_set_height(ui_connectIcon, LV_SIZE_CONTENT); /// 1
316 | lv_obj_set_x(ui_connectIcon, 228);
317 | lv_obj_set_y(ui_connectIcon, 149);
318 | lv_obj_set_align(ui_connectIcon, LV_ALIGN_CENTER);
319 | lv_obj_add_flag(ui_connectIcon, LV_OBJ_FLAG_ADV_HITTEST); /// Flags
320 | lv_obj_clear_flag(ui_connectIcon, LV_OBJ_FLAG_SCROLLABLE); /// Flags
321 | lv_obj_set_style_img_recolor(ui_connectIcon, lv_color_hex(0x6FE022), LV_PART_MAIN | LV_STATE_DEFAULT);
322 | lv_obj_set_style_img_recolor_opa(ui_connectIcon, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
323 |
324 | lv_obj_add_event_cb(ui_emailPanel, ui_event_emailPanel, LV_EVENT_ALL, NULL);
325 | lv_obj_add_event_cb(ui_websitePanel, ui_event_websitePanel, LV_EVENT_ALL, NULL);
326 | lv_obj_add_event_cb(ui_twitterPanel, ui_event_twitterPanel, LV_EVENT_ALL, NULL);
327 | lv_obj_add_event_cb(ui_phonePanel, ui_event_phonePanel, LV_EVENT_ALL, NULL);
328 | lv_obj_add_event_cb(ui_mainScreen, ui_event_mainScreen, LV_EVENT_ALL, NULL);
329 |
330 | }
331 | void ui_clockScreen_screen_init(void)
332 | {
333 | ui_clockScreen = lv_obj_create(NULL);
334 | lv_obj_clear_flag(ui_clockScreen, LV_OBJ_FLAG_SCROLLABLE); /// Flags
335 | lv_obj_set_style_bg_color(ui_clockScreen, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
336 | lv_obj_set_style_bg_opa(ui_clockScreen, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
337 | lv_obj_set_style_bg_img_src(ui_clockScreen, &ui_img_236433794, LV_PART_MAIN | LV_STATE_DEFAULT);
338 | lv_obj_set_style_bg_img_opa(ui_clockScreen, 100, LV_PART_MAIN | LV_STATE_DEFAULT);
339 |
340 | ui_clockPanel = lv_obj_create(ui_clockScreen);
341 | lv_obj_set_width(ui_clockPanel, 400);
342 | lv_obj_set_height(ui_clockPanel, 100);
343 | lv_obj_set_x(ui_clockPanel, 0);
344 | lv_obj_set_y(ui_clockPanel, 41);
345 | lv_obj_set_align(ui_clockPanel, LV_ALIGN_TOP_MID);
346 | lv_obj_clear_flag(ui_clockPanel, LV_OBJ_FLAG_SCROLLABLE); /// Flags
347 | lv_obj_set_style_radius(ui_clockPanel, 10, LV_PART_MAIN | LV_STATE_DEFAULT);
348 | lv_obj_set_style_bg_color(ui_clockPanel, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT);
349 | lv_obj_set_style_bg_opa(ui_clockPanel, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
350 | lv_obj_set_style_border_color(ui_clockPanel, lv_color_hex(0x6CBE34), LV_PART_MAIN | LV_STATE_DEFAULT);
351 | lv_obj_set_style_border_opa(ui_clockPanel, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
352 | lv_obj_set_style_border_width(ui_clockPanel, 1, LV_PART_MAIN | LV_STATE_DEFAULT);
353 |
354 | ui_hour1 = lv_img_create(ui_clockPanel);
355 | lv_img_set_src(ui_hour1, &ui_img_zero_64_png);
356 | lv_obj_set_width(ui_hour1, LV_SIZE_CONTENT); /// 1
357 | lv_obj_set_height(ui_hour1, LV_SIZE_CONTENT); /// 1
358 | lv_obj_set_x(ui_hour1, -120);
359 | lv_obj_set_y(ui_hour1, 0);
360 | lv_obj_set_align(ui_hour1, LV_ALIGN_TOP_MID);
361 | lv_obj_add_flag(ui_hour1, LV_OBJ_FLAG_ADV_HITTEST); /// Flags
362 | lv_obj_clear_flag(ui_hour1, LV_OBJ_FLAG_SCROLLABLE); /// Flags
363 | lv_obj_set_style_img_recolor(ui_hour1, lv_color_hex(0x6CBE34), LV_PART_MAIN | LV_STATE_DEFAULT);
364 | lv_obj_set_style_img_recolor_opa(ui_hour1, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
365 |
366 | ui_hour2 = lv_img_create(ui_clockPanel);
367 | lv_img_set_src(ui_hour2, &ui_img_one_64_png);
368 | lv_obj_set_width(ui_hour2, LV_SIZE_CONTENT); /// 1
369 | lv_obj_set_height(ui_hour2, LV_SIZE_CONTENT); /// 1
370 | lv_obj_set_x(ui_hour2, -80);
371 | lv_obj_set_y(ui_hour2, 0);
372 | lv_obj_set_align(ui_hour2, LV_ALIGN_TOP_MID);
373 | lv_obj_add_flag(ui_hour2, LV_OBJ_FLAG_ADV_HITTEST); /// Flags
374 | lv_obj_clear_flag(ui_hour2, LV_OBJ_FLAG_SCROLLABLE); /// Flags
375 | lv_obj_set_style_img_recolor(ui_hour2, lv_color_hex(0x6CBE34), LV_PART_MAIN | LV_STATE_DEFAULT);
376 | lv_obj_set_style_img_recolor_opa(ui_hour2, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
377 |
378 | ui_minute1 = lv_img_create(ui_clockPanel);
379 | lv_img_set_src(ui_minute1, &ui_img_three_64_png);
380 | lv_obj_set_width(ui_minute1, LV_SIZE_CONTENT); /// 1
381 | lv_obj_set_height(ui_minute1, LV_SIZE_CONTENT); /// 1
382 | lv_obj_set_x(ui_minute1, -20);
383 | lv_obj_set_y(ui_minute1, 0);
384 | lv_obj_set_align(ui_minute1, LV_ALIGN_TOP_MID);
385 | lv_obj_add_flag(ui_minute1, LV_OBJ_FLAG_ADV_HITTEST); /// Flags
386 | lv_obj_clear_flag(ui_minute1, LV_OBJ_FLAG_SCROLLABLE); /// Flags
387 | lv_obj_set_style_img_recolor(ui_minute1, lv_color_hex(0x6CBE34), LV_PART_MAIN | LV_STATE_DEFAULT);
388 | lv_obj_set_style_img_recolor_opa(ui_minute1, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
389 |
390 | ui_minute2 = lv_img_create(ui_clockPanel);
391 | lv_img_set_src(ui_minute2, &ui_img_seven_64_png);
392 | lv_obj_set_width(ui_minute2, LV_SIZE_CONTENT); /// 1
393 | lv_obj_set_height(ui_minute2, LV_SIZE_CONTENT); /// 1
394 | lv_obj_set_x(ui_minute2, 20);
395 | lv_obj_set_y(ui_minute2, 0);
396 | lv_obj_set_align(ui_minute2, LV_ALIGN_TOP_MID);
397 | lv_obj_add_flag(ui_minute2, LV_OBJ_FLAG_ADV_HITTEST); /// Flags
398 | lv_obj_clear_flag(ui_minute2, LV_OBJ_FLAG_SCROLLABLE); /// Flags
399 | lv_obj_set_style_img_recolor(ui_minute2, lv_color_hex(0x6CBE34), LV_PART_MAIN | LV_STATE_DEFAULT);
400 | lv_obj_set_style_img_recolor_opa(ui_minute2, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
401 |
402 | ui_second1 = lv_img_create(ui_clockPanel);
403 | lv_img_set_src(ui_second1, &ui_img_two_64_png);
404 | lv_obj_set_width(ui_second1, LV_SIZE_CONTENT); /// 1
405 | lv_obj_set_height(ui_second1, LV_SIZE_CONTENT); /// 1
406 | lv_obj_set_x(ui_second1, 80);
407 | lv_obj_set_y(ui_second1, 0);
408 | lv_obj_set_align(ui_second1, LV_ALIGN_TOP_MID);
409 | lv_obj_add_flag(ui_second1, LV_OBJ_FLAG_ADV_HITTEST); /// Flags
410 | lv_obj_clear_flag(ui_second1, LV_OBJ_FLAG_SCROLLABLE); /// Flags
411 | lv_obj_set_style_img_recolor(ui_second1, lv_color_hex(0x6CBE34), LV_PART_MAIN | LV_STATE_DEFAULT);
412 | lv_obj_set_style_img_recolor_opa(ui_second1, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
413 |
414 | ui_second2 = lv_img_create(ui_clockPanel);
415 | lv_img_set_src(ui_second2, &ui_img_five_64_png);
416 | lv_obj_set_width(ui_second2, LV_SIZE_CONTENT); /// 1
417 | lv_obj_set_height(ui_second2, LV_SIZE_CONTENT); /// 1
418 | lv_obj_set_x(ui_second2, 120);
419 | lv_obj_set_y(ui_second2, 0);
420 | lv_obj_set_align(ui_second2, LV_ALIGN_TOP_MID);
421 | lv_obj_add_flag(ui_second2, LV_OBJ_FLAG_ADV_HITTEST); /// Flags
422 | lv_obj_clear_flag(ui_second2, LV_OBJ_FLAG_SCROLLABLE); /// Flags
423 | lv_obj_set_style_img_recolor(ui_second2, lv_color_hex(0x6CBE34), LV_PART_MAIN | LV_STATE_DEFAULT);
424 | lv_obj_set_style_img_recolor_opa(ui_second2, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
425 |
426 | ui_label1 = lv_label_create(ui_clockPanel);
427 | lv_obj_set_width(ui_label1, LV_SIZE_CONTENT); /// 1
428 | lv_obj_set_height(ui_label1, LV_SIZE_CONTENT); /// 1
429 | lv_obj_set_x(ui_label1, -50);
430 | lv_obj_set_y(ui_label1, 0);
431 | lv_obj_set_align(ui_label1, LV_ALIGN_TOP_MID);
432 | lv_label_set_text(ui_label1, ":");
433 | lv_obj_set_style_text_color(ui_label1, lv_color_hex(0x6CBE34), LV_PART_MAIN | LV_STATE_DEFAULT);
434 | lv_obj_set_style_text_opa(ui_label1, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
435 | lv_obj_set_style_text_font(ui_label1, &lv_font_montserrat_48, LV_PART_MAIN | LV_STATE_DEFAULT);
436 |
437 | ui_label2 = lv_label_create(ui_clockPanel);
438 | lv_obj_set_width(ui_label2, LV_SIZE_CONTENT); /// 1
439 | lv_obj_set_height(ui_label2, LV_SIZE_CONTENT); /// 1
440 | lv_obj_set_x(ui_label2, 50);
441 | lv_obj_set_y(ui_label2, 0);
442 | lv_obj_set_align(ui_label2, LV_ALIGN_TOP_MID);
443 | lv_label_set_text(ui_label2, ":");
444 | lv_obj_set_style_text_color(ui_label2, lv_color_hex(0x6CBE34), LV_PART_MAIN | LV_STATE_DEFAULT);
445 | lv_obj_set_style_text_opa(ui_label2, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
446 | lv_obj_set_style_text_font(ui_label2, &lv_font_montserrat_48, LV_PART_MAIN | LV_STATE_DEFAULT);
447 |
448 | ui_dateText = lv_label_create(ui_clockScreen);
449 | lv_obj_set_width(ui_dateText, LV_SIZE_CONTENT); /// 1
450 | lv_obj_set_height(ui_dateText, LV_SIZE_CONTENT); /// 1
451 | lv_obj_set_x(ui_dateText, 0);
452 | lv_obj_set_y(ui_dateText, 160);
453 | lv_obj_set_align(ui_dateText, LV_ALIGN_TOP_MID);
454 | lv_label_set_text(ui_dateText, "Friday, 04 November");
455 | lv_obj_set_style_text_color(ui_dateText, lv_color_hex(0x6CBE34), LV_PART_MAIN | LV_STATE_DEFAULT);
456 | lv_obj_set_style_text_opa(ui_dateText, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
457 | lv_obj_set_style_text_font(ui_dateText, &lv_font_montserrat_22, LV_PART_MAIN | LV_STATE_DEFAULT);
458 |
459 | ui_weatherIcon = lv_img_create(ui_clockScreen);
460 | lv_img_set_src(ui_weatherIcon, &ui_img_1127648905);
461 | lv_obj_set_width(ui_weatherIcon, LV_SIZE_CONTENT); /// 1
462 | lv_obj_set_height(ui_weatherIcon, LV_SIZE_CONTENT); /// 1
463 | lv_obj_set_x(ui_weatherIcon, -158);
464 | lv_obj_set_y(ui_weatherIcon, 247);
465 | lv_obj_set_align(ui_weatherIcon, LV_ALIGN_TOP_MID);
466 | lv_obj_add_flag(ui_weatherIcon, LV_OBJ_FLAG_ADV_HITTEST); /// Flags
467 | lv_obj_clear_flag(ui_weatherIcon, LV_OBJ_FLAG_SCROLLABLE); /// Flags
468 |
469 | ui_weatherTemp = lv_label_create(ui_clockScreen);
470 | lv_obj_set_width(ui_weatherTemp, LV_SIZE_CONTENT); /// 1
471 | lv_obj_set_height(ui_weatherTemp, LV_SIZE_CONTENT); /// 1
472 | lv_obj_set_x(ui_weatherTemp, -118);
473 | lv_obj_set_y(ui_weatherTemp, 254);
474 | lv_obj_set_align(ui_weatherTemp, LV_ALIGN_TOP_MID);
475 | lv_label_set_text(ui_weatherTemp, "27 °C");
476 |
477 | ui_weatherLocation = lv_label_create(ui_clockScreen);
478 | lv_obj_set_width(ui_weatherLocation, LV_SIZE_CONTENT); /// 1
479 | lv_obj_set_height(ui_weatherLocation, LV_SIZE_CONTENT); /// 1
480 | lv_obj_set_x(ui_weatherLocation, -119);
481 | lv_obj_set_y(ui_weatherLocation, 277);
482 | lv_obj_set_align(ui_weatherLocation, LV_ALIGN_TOP_MID);
483 | lv_label_set_text(ui_weatherLocation, "Weather");
484 |
485 | ui_brightnessSlider = lv_slider_create(ui_clockScreen);
486 | lv_slider_set_range(ui_brightnessSlider, 1, 255);
487 | lv_slider_set_value(ui_brightnessSlider, 50, LV_ANIM_OFF);
488 | if(lv_slider_get_mode(ui_brightnessSlider) == LV_SLIDER_MODE_RANGE) lv_slider_set_left_value(ui_brightnessSlider, 0,
489 | LV_ANIM_OFF);
490 | lv_obj_set_width(ui_brightnessSlider, 150);
491 | lv_obj_set_height(ui_brightnessSlider, 10);
492 | lv_obj_set_x(ui_brightnessSlider, 131);
493 | lv_obj_set_y(ui_brightnessSlider, 132);
494 | lv_obj_set_align(ui_brightnessSlider, LV_ALIGN_CENTER);
495 | lv_obj_set_style_bg_color(ui_brightnessSlider, lv_color_hex(0x6FE022), LV_PART_MAIN | LV_STATE_DEFAULT);
496 | lv_obj_set_style_bg_opa(ui_brightnessSlider, 50, LV_PART_MAIN | LV_STATE_DEFAULT);
497 |
498 | lv_obj_set_style_bg_color(ui_brightnessSlider, lv_color_hex(0x6FE022), LV_PART_INDICATOR | LV_STATE_DEFAULT);
499 | lv_obj_set_style_bg_opa(ui_brightnessSlider, 255, LV_PART_INDICATOR | LV_STATE_DEFAULT);
500 |
501 | lv_obj_set_style_bg_color(ui_brightnessSlider, lv_color_hex(0x6F9622), LV_PART_KNOB | LV_STATE_DEFAULT);
502 | lv_obj_set_style_bg_opa(ui_brightnessSlider, 255, LV_PART_KNOB | LV_STATE_DEFAULT);
503 |
504 | ui_brightnessIcon = lv_img_create(ui_clockScreen);
505 | lv_img_set_src(ui_brightnessIcon, &ui_img_led_control_png);
506 | lv_obj_set_width(ui_brightnessIcon, LV_SIZE_CONTENT); /// 1
507 | lv_obj_set_height(ui_brightnessIcon, LV_SIZE_CONTENT); /// 1
508 | lv_obj_set_x(ui_brightnessIcon, 26);
509 | lv_obj_set_y(ui_brightnessIcon, 131);
510 | lv_obj_set_align(ui_brightnessIcon, LV_ALIGN_CENTER);
511 | lv_obj_add_flag(ui_brightnessIcon, LV_OBJ_FLAG_ADV_HITTEST); /// Flags
512 | lv_obj_clear_flag(ui_brightnessIcon, LV_OBJ_FLAG_SCROLLABLE); /// Flags
513 | lv_obj_set_style_img_recolor(ui_brightnessIcon, lv_color_hex(0x6FE022), LV_PART_MAIN | LV_STATE_DEFAULT);
514 | lv_obj_set_style_img_recolor_opa(ui_brightnessIcon, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
515 |
516 | lv_obj_add_event_cb(ui_brightnessSlider, ui_event_brightnessSlider, LV_EVENT_ALL, NULL);
517 | lv_obj_add_event_cb(ui_clockScreen, ui_event_clockScreen, LV_EVENT_ALL, NULL);
518 |
519 | }
520 |
521 | void ui_init(void)
522 | {
523 | lv_disp_t * dispp = lv_disp_get_default();
524 | lv_theme_t * theme = lv_theme_default_init(dispp, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_RED),
525 | true, LV_FONT_DEFAULT);
526 | lv_disp_set_theme(dispp, theme);
527 | ui_mainScreen_screen_init();
528 | ui_clockScreen_screen_init();
529 | lv_disp_load_scr(ui_mainScreen);
530 | }
531 |
--------------------------------------------------------------------------------