From 4ff96e0278669461c6700a9c7d26b6ae1d2efec5 Mon Sep 17 00:00:00 2001 From: suchmememanyskill <38142618+suchmememanyskill@users.noreply.github.com> Date: Sun, 28 Jan 2024 12:06:35 +0100 Subject: [PATCH] Make file select responsive --- CYD-Klipper/src/ui/nav_buttons.cpp | 2 +- CYD-Klipper/src/ui/panels/macros_panel.cpp | 9 ++++----- CYD-Klipper/src/ui/panels/print_panel.cpp | 20 +++++++++----------- CYD-Klipper/src/ui/panels/settings_panel.cpp | 4 ++-- CYD-Klipper/src/ui/ui_utils.h | 2 +- 5 files changed, 17 insertions(+), 20 deletions(-) diff --git a/CYD-Klipper/src/ui/nav_buttons.cpp b/CYD-Klipper/src/ui/nav_buttons.cpp index f305a68..ad55fab 100644 --- a/CYD-Klipper/src/ui/nav_buttons.cpp +++ b/CYD-Klipper/src/ui/nav_buttons.cpp @@ -118,7 +118,7 @@ void nav_buttons_setup(unsigned char active_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_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); switch (active_panel){ diff --git a/CYD-Klipper/src/ui/panels/macros_panel.cpp b/CYD-Klipper/src/ui/panels/macros_panel.cpp index 1f2b731..920a47a 100644 --- a/CYD-Klipper/src/ui/panels/macros_panel.cpp +++ b/CYD-Klipper/src/ui/panels/macros_panel.cpp @@ -6,7 +6,7 @@ #include "../ui_utils.h" #include -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){ 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) { lv_obj_t * btn = lv_btn_create(panel); 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_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_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_layout_flex_column(root_panel); - for (int j = 0; j < 2; j++) for (int i = 0; i < query.count; i++){ const char* macro = query.macros[i]; lv_obj_t * panel = lv_create_empty_panel(root_panel); 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_label_set_text(label, macro); diff --git a/CYD-Klipper/src/ui/panels/print_panel.cpp b/CYD-Klipper/src/ui/panels/print_panel.cpp index e0a1cd6..ee5f32a 100644 --- a/CYD-Klipper/src/ui/panels/print_panel.cpp +++ b/CYD-Klipper/src/ui/panels/print_panel.cpp @@ -5,6 +5,7 @@ #include "../../conf/global_config.h" #include #include +#include "../ui_utils.h" 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); 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_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); lv_label_set_text(label, selected_file->name); 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); btn = lv_btn_create(panel); - lv_obj_align(btn, LV_ALIGN_BOTTOM_LEFT, 10, -10); - lv_obj_set_size(btn, 40, 40); + lv_obj_align(btn, LV_ALIGN_BOTTOM_LEFT, 0, 0); + 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); label = lv_label_create(btn); @@ -72,8 +74,8 @@ static void btn_print_file_verify(lv_event_t * e){ lv_obj_center(label); btn = lv_btn_create(panel); - lv_obj_align(btn, LV_ALIGN_BOTTOM_RIGHT, -10, -10); - lv_obj_set_size(btn, 40, 40); + lv_obj_align(btn, LV_ALIGN_BOTTOM_RIGHT, 0, 0); + 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); label = lv_label_create(btn); @@ -87,12 +89,8 @@ void print_panel_init(lv_obj_t* panel){ 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_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); FILESYSTEM_FILE* files = get_files(25); diff --git a/CYD-Klipper/src/ui/panels/settings_panel.cpp b/CYD-Klipper/src/ui/panels/settings_panel.cpp index 8609833..caf5c9f 100644 --- a/CYD-Klipper/src/ui/panels/settings_panel.cpp +++ b/CYD-Klipper/src/ui/panels/settings_panel.cpp @@ -82,13 +82,13 @@ static void on_during_print_switch(lv_event_t* e){ 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){ lv_obj_set_height(object, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX); 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_label_set_text(label, label_text); diff --git a/CYD-Klipper/src/ui/ui_utils.h b/CYD-Klipper/src/ui/ui_utils.h index df9a77a..f5074a5 100644 --- a/CYD-Klipper/src/ui/ui_utils.h +++ b/CYD-Klipper/src/ui/ui_utils.h @@ -1,6 +1,6 @@ #pragma once -#define CYD_SCREEN_PANEL_WIDTH \ +#define CYD_SCREEN_PANEL_WIDTH_PX \ (CYD_SCREEN_WIDTH_PX - CYD_SCREEN_SIDEBAR_SIZE_PX) lv_obj_t* lv_create_empty_panel(lv_obj_t* root);