Make file select responsive

This commit is contained in:
suchmememanyskill
2024-01-28 12:06:35 +01:00
parent 2d6fdb8e84
commit 4ff96e0278
5 changed files with 17 additions and 20 deletions

View File

@@ -118,7 +118,7 @@ void nav_buttons_setup(unsigned char active_panel){
create_button(LV_SYMBOL_GPS, "Macro", btn_click_macros, NULL, root_panel); create_button(LV_SYMBOL_GPS, "Macro", btn_click_macros, NULL, root_panel);
lv_obj_t * panel = lv_create_empty_panel(lv_scr_act()); lv_obj_t * panel = lv_create_empty_panel(lv_scr_act());
lv_obj_set_size(panel, CYD_SCREEN_PANEL_WIDTH, CYD_SCREEN_HEIGHT_PX); lv_obj_set_size(panel, CYD_SCREEN_PANEL_WIDTH_PX, CYD_SCREEN_HEIGHT_PX);
lv_obj_align(panel, LV_ALIGN_TOP_RIGHT, 0, 0); lv_obj_align(panel, LV_ALIGN_TOP_RIGHT, 0, 0);
switch (active_panel){ switch (active_panel){

View File

@@ -6,7 +6,7 @@
#include "../ui_utils.h" #include "../ui_utils.h"
#include <HardwareSerial.h> #include <HardwareSerial.h>
const static lv_point_t line_points[] = { {0, 0}, {(short int)((CYD_SCREEN_PANEL_WIDTH - CYD_SCREEN_BIG_GAP_PX * 2) * 0.85f), 0} }; const static lv_point_t line_points[] = { {0, 0}, {(short int)((CYD_SCREEN_PANEL_WIDTH_PX - CYD_SCREEN_BIG_GAP_PX * 2) * 0.85f), 0} };
static void btn_press(lv_event_t * e){ static void btn_press(lv_event_t * e){
lv_obj_t * btn = lv_event_get_target(e); lv_obj_t * btn = lv_event_get_target(e);
@@ -22,7 +22,7 @@ static void btn_goto_settings(lv_event_t * e){
void macros_panel_init(lv_obj_t* panel) { void macros_panel_init(lv_obj_t* panel) {
lv_obj_t * btn = lv_btn_create(panel); lv_obj_t * btn = lv_btn_create(panel);
lv_obj_add_event_cb(btn, btn_goto_settings, LV_EVENT_CLICKED, NULL); lv_obj_add_event_cb(btn, btn_goto_settings, LV_EVENT_CLICKED, NULL);
lv_obj_set_size(btn, CYD_SCREEN_PANEL_WIDTH - CYD_SCREEN_BIG_GAP_PX * 2, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX); lv_obj_set_size(btn, CYD_SCREEN_PANEL_WIDTH_PX - CYD_SCREEN_BIG_GAP_PX * 2, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX);
lv_obj_align(btn, LV_ALIGN_TOP_MID, 0, CYD_SCREEN_BIG_GAP_PX); lv_obj_align(btn, LV_ALIGN_TOP_MID, 0, CYD_SCREEN_BIG_GAP_PX);
lv_obj_t * label = lv_label_create(btn); lv_obj_t * label = lv_label_create(btn);
@@ -38,17 +38,16 @@ void macros_panel_init(lv_obj_t* panel) {
} }
lv_obj_t * root_panel = lv_create_empty_panel(panel); lv_obj_t * root_panel = lv_create_empty_panel(panel);
lv_obj_set_size(root_panel, CYD_SCREEN_PANEL_WIDTH, CYD_SCREEN_HEIGHT_PX - CYD_SCREEN_MIN_BUTTON_HEIGHT_PX - CYD_SCREEN_BIG_GAP_PX * 2); lv_obj_set_size(root_panel, CYD_SCREEN_PANEL_WIDTH_PX, CYD_SCREEN_HEIGHT_PX - CYD_SCREEN_MIN_BUTTON_HEIGHT_PX - CYD_SCREEN_BIG_GAP_PX * 2);
lv_obj_align(root_panel, LV_ALIGN_TOP_MID, 0, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX + CYD_SCREEN_BIG_GAP_PX * 2); lv_obj_align(root_panel, LV_ALIGN_TOP_MID, 0, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX + CYD_SCREEN_BIG_GAP_PX * 2);
lv_layout_flex_column(root_panel); lv_layout_flex_column(root_panel);
for (int j = 0; j < 2; j++)
for (int i = 0; i < query.count; i++){ for (int i = 0; i < query.count; i++){
const char* macro = query.macros[i]; const char* macro = query.macros[i];
lv_obj_t * panel = lv_create_empty_panel(root_panel); lv_obj_t * panel = lv_create_empty_panel(root_panel);
lv_layout_flex_row(panel, LV_FLEX_ALIGN_END); lv_layout_flex_row(panel, LV_FLEX_ALIGN_END);
lv_obj_set_size(panel, CYD_SCREEN_PANEL_WIDTH - CYD_SCREEN_BIG_GAP_PX * 3, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX); lv_obj_set_size(panel, CYD_SCREEN_PANEL_WIDTH_PX - CYD_SCREEN_BIG_GAP_PX * 3, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX);
lv_obj_t * label = lv_label_create(panel); lv_obj_t * label = lv_label_create(panel);
lv_label_set_text(label, macro); lv_label_set_text(label, macro);

View File

@@ -5,6 +5,7 @@
#include "../../conf/global_config.h" #include "../../conf/global_config.h"
#include <HardwareSerial.h> #include <HardwareSerial.h>
#include <HTTPClient.h> #include <HTTPClient.h>
#include "../ui_utils.h"
FILESYSTEM_FILE* selected_file = NULL; FILESYSTEM_FILE* selected_file = NULL;
@@ -49,7 +50,8 @@ static void btn_print_file_verify(lv_event_t * e){
selected_file = (FILESYSTEM_FILE*)lv_event_get_user_data(e); selected_file = (FILESYSTEM_FILE*)lv_event_get_user_data(e);
lv_obj_t * panel = lv_obj_create(lv_scr_act()); lv_obj_t * panel = lv_obj_create(lv_scr_act());
lv_obj_set_size(panel, TFT_HEIGHT - 40, TFT_WIDTH - 30); lv_obj_set_style_pad_all(panel, CYD_SCREEN_BIG_GAP_PX * 2, 0);
lv_obj_set_size(panel, CYD_SCREEN_WIDTH_PX - CYD_SCREEN_BIG_GAP_PX * 4, CYD_SCREEN_HEIGHT_PX - CYD_SCREEN_BIG_GAP_PX * 3);
lv_obj_align(panel, LV_ALIGN_CENTER, 0, 0); lv_obj_align(panel, LV_ALIGN_CENTER, 0, 0);
lv_obj_t * label = lv_label_create(panel); lv_obj_t * label = lv_label_create(panel);
@@ -59,12 +61,12 @@ static void btn_print_file_verify(lv_event_t * e){
label = lv_label_create(panel); label = lv_label_create(panel);
lv_label_set_text(label, selected_file->name); lv_label_set_text(label, selected_file->name);
lv_obj_align(label, LV_ALIGN_CENTER, 0, -20); lv_obj_align(label, LV_ALIGN_CENTER, 0, -20);
lv_obj_set_width(label, TFT_HEIGHT - 90); lv_obj_set_width(label, CYD_SCREEN_WIDTH_PX - CYD_SCREEN_BIG_GAP_PX * 10);
lv_label_set_long_mode(label, LV_LABEL_LONG_WRAP); lv_label_set_long_mode(label, LV_LABEL_LONG_WRAP);
btn = lv_btn_create(panel); btn = lv_btn_create(panel);
lv_obj_align(btn, LV_ALIGN_BOTTOM_LEFT, 10, -10); lv_obj_align(btn, LV_ALIGN_BOTTOM_LEFT, 0, 0);
lv_obj_set_size(btn, 40, 40); lv_obj_set_size(btn, CYD_SCREEN_MIN_BUTTON_WIDTH_PX, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX);
lv_obj_add_event_cb(btn, btn_print_back, LV_EVENT_CLICKED, panel); lv_obj_add_event_cb(btn, btn_print_back, LV_EVENT_CLICKED, panel);
label = lv_label_create(btn); label = lv_label_create(btn);
@@ -72,8 +74,8 @@ static void btn_print_file_verify(lv_event_t * e){
lv_obj_center(label); lv_obj_center(label);
btn = lv_btn_create(panel); btn = lv_btn_create(panel);
lv_obj_align(btn, LV_ALIGN_BOTTOM_RIGHT, -10, -10); lv_obj_align(btn, LV_ALIGN_BOTTOM_RIGHT, 0, 0);
lv_obj_set_size(btn, 40, 40); lv_obj_set_size(btn, CYD_SCREEN_MIN_BUTTON_WIDTH_PX, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX);
lv_obj_add_event_cb(btn, btn_print_file, LV_EVENT_CLICKED, panel); lv_obj_add_event_cb(btn, btn_print_file, LV_EVENT_CLICKED, panel);
label = lv_label_create(btn); label = lv_label_create(btn);
@@ -87,12 +89,8 @@ void print_panel_init(lv_obj_t* panel){
return; return;
} }
auto panel_width = TFT_HEIGHT - 40;
auto panel_height_margin = TFT_WIDTH - 10;
auto panel_width_margin = panel_width - 10;
lv_obj_t * list = lv_list_create(panel); lv_obj_t * list = lv_list_create(panel);
lv_obj_set_size(list, panel_width_margin, panel_height_margin); lv_obj_set_size(list, CYD_SCREEN_PANEL_WIDTH_PX - CYD_SCREEN_BIG_GAP_PX * 2, CYD_SCREEN_HEIGHT_PX - CYD_SCREEN_BIG_GAP_PX * 2);
lv_obj_align(list, LV_ALIGN_CENTER, 0, 0); lv_obj_align(list, LV_ALIGN_CENTER, 0, 0);
FILESYSTEM_FILE* files = get_files(25); FILESYSTEM_FILE* files = get_files(25);

View File

@@ -82,13 +82,13 @@ static void on_during_print_switch(lv_event_t* e){
WriteGlobalConfig(); WriteGlobalConfig();
} }
const static lv_point_t line_points[] = { {0, 0}, {(short int)((CYD_SCREEN_PANEL_WIDTH - CYD_SCREEN_BIG_GAP_PX * 2) * 0.85f), 0} }; const static lv_point_t line_points[] = { {0, 0}, {(short int)((CYD_SCREEN_PANEL_WIDTH_PX - CYD_SCREEN_BIG_GAP_PX * 2) * 0.85f), 0} };
void create_settings_widget(const char* label_text, lv_obj_t* object, lv_obj_t* root_panel){ void create_settings_widget(const char* label_text, lv_obj_t* object, lv_obj_t* root_panel){
lv_obj_set_height(object, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX); lv_obj_set_height(object, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX);
lv_obj_t * panel = lv_create_empty_panel(root_panel); lv_obj_t * panel = lv_create_empty_panel(root_panel);
lv_obj_set_size(panel, CYD_SCREEN_PANEL_WIDTH - CYD_SCREEN_BIG_GAP_PX * 3, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX); lv_obj_set_size(panel, CYD_SCREEN_PANEL_WIDTH_PX - CYD_SCREEN_BIG_GAP_PX * 3, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX);
lv_obj_t * label = lv_label_create(panel); lv_obj_t * label = lv_label_create(panel);
lv_label_set_text(label, label_text); lv_label_set_text(label, label_text);

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#define CYD_SCREEN_PANEL_WIDTH \ #define CYD_SCREEN_PANEL_WIDTH_PX \
(CYD_SCREEN_WIDTH_PX - CYD_SCREEN_SIDEBAR_SIZE_PX) (CYD_SCREEN_WIDTH_PX - CYD_SCREEN_SIDEBAR_SIZE_PX)
lv_obj_t* lv_create_empty_panel(lv_obj_t* root); lv_obj_t* lv_create_empty_panel(lv_obj_t* root);