Fix UI compile issues (#20092)
This commit is contained in:
parent
f15fef90a9
commit
f8ee6f8b31
|
@ -55,7 +55,7 @@
|
|||
|
||||
#include "../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if HAS_MARLINUI_U8GLIB
|
||||
#if HAS_MARLINUI_U8GLIB && DISABLED(TFT_CLASSIC_UI)
|
||||
|
||||
#include "HAL_LCD_com_defines.h"
|
||||
|
||||
|
|
|
@ -181,7 +181,7 @@ static void disp_language(uint8_t language, uint8_t state) {
|
|||
|
||||
strcat_P(public_buf_l, PSTR(".bin"));
|
||||
|
||||
lv_obj_set_event_cb_mks(obj, event_handler, id, nullptr, 0);
|
||||
lv_obj_set_event_cb_mks(obj, event_handler, id, "", 0);
|
||||
lv_imgbtn_set_src_both(obj, public_buf_l);
|
||||
|
||||
if (state == UNSELECTED) lv_obj_refresh_ext_draw_pad(obj);
|
||||
|
|
|
@ -279,7 +279,7 @@ void disp_gcode_icon(uint8_t file_num) {
|
|||
cutFileName((char *)list_file.long_name[i], 16, 8, (char *)public_buf_m);
|
||||
|
||||
if (list_file.IsFolder[i]) {
|
||||
lv_obj_set_event_cb_mks(buttonGcode[i], event_handler, (i + 1), nullptr, 0);
|
||||
lv_obj_set_event_cb_mks(buttonGcode[i], event_handler, (i + 1), "", 0);
|
||||
lv_imgbtn_set_src_both(buttonGcode[i], "F:/bmp_dir.bin");
|
||||
if (i < 3)
|
||||
lv_obj_set_pos(buttonGcode[i], BTN_X_PIXEL * i + INTERVAL_V * (i + 1), titleHeight);
|
||||
|
@ -298,7 +298,7 @@ void disp_gcode_icon(uint8_t file_num) {
|
|||
strcat(test_public_buf_l, list_file.file_name[i]);
|
||||
char *temp = strstr(test_public_buf_l, ".GCO");
|
||||
if (temp) strcpy(temp, ".bin");
|
||||
lv_obj_set_event_cb_mks(buttonGcode[i], event_handler, (i + 1), nullptr, 0);
|
||||
lv_obj_set_event_cb_mks(buttonGcode[i], event_handler, (i + 1), "", 0);
|
||||
lv_imgbtn_set_src_both(buttonGcode[i], test_public_buf_l);
|
||||
if (i < 3) {
|
||||
lv_obj_set_pos(buttonGcode[i], BTN_X_PIXEL * i + INTERVAL_V * (i + 1) + FILE_PRE_PIC_X_OFFSET, titleHeight + FILE_PRE_PIC_Y_OFFSET);
|
||||
|
@ -308,7 +308,7 @@ void disp_gcode_icon(uint8_t file_num) {
|
|||
lv_btn_use_label_style(buttonText[i]);
|
||||
lv_obj_clear_protect(buttonText[i], LV_PROTECT_FOLLOW);
|
||||
lv_btn_set_layout(buttonText[i], LV_LAYOUT_OFF);
|
||||
//lv_obj_set_event_cb_mks(buttonText[i], event_handler,(i+10),nullptr, 0);
|
||||
//lv_obj_set_event_cb_mks(buttonText[i], event_handler,(i+10),"", 0);
|
||||
lv_obj_set_pos(buttonText[i], BTN_X_PIXEL * i + INTERVAL_V * (i + 1) + FILE_PRE_PIC_X_OFFSET, titleHeight + FILE_PRE_PIC_Y_OFFSET + 100);
|
||||
lv_obj_set_size(buttonText[i], 100, 40);
|
||||
}
|
||||
|
@ -320,7 +320,7 @@ void disp_gcode_icon(uint8_t file_num) {
|
|||
lv_btn_use_label_style(buttonText[i]);
|
||||
lv_obj_clear_protect(buttonText[i], LV_PROTECT_FOLLOW);
|
||||
lv_btn_set_layout(buttonText[i], LV_LAYOUT_OFF);
|
||||
//lv_obj_set_event_cb_mks(buttonText[i], event_handler,(i+10),nullptr, 0);
|
||||
//lv_obj_set_event_cb_mks(buttonText[i], event_handler,(i+10),"", 0);
|
||||
lv_obj_set_pos(buttonText[i], BTN_X_PIXEL * (i - 3) + INTERVAL_V * ((i - 3) + 1) + FILE_PRE_PIC_X_OFFSET, BTN_Y_PIXEL + INTERVAL_H + titleHeight + FILE_PRE_PIC_Y_OFFSET + 100);
|
||||
lv_obj_set_size(buttonText[i], 100, 40);
|
||||
}
|
||||
|
@ -328,7 +328,7 @@ void disp_gcode_icon(uint8_t file_num) {
|
|||
lv_obj_align(labelPageUp[i], buttonText[i], LV_ALIGN_IN_BOTTOM_MID, 0, 0);
|
||||
}
|
||||
else {
|
||||
lv_obj_set_event_cb_mks(buttonGcode[i], event_handler, (i + 1), nullptr, 0);
|
||||
lv_obj_set_event_cb_mks(buttonGcode[i], event_handler, (i + 1), "", 0);
|
||||
lv_imgbtn_set_src_both(buttonGcode[i], "F:/bmp_file.bin");
|
||||
if (i < 3)
|
||||
lv_obj_set_pos(buttonGcode[i], BTN_X_PIXEL * i + INTERVAL_V * (i + 1), titleHeight);
|
||||
|
|
|
@ -1680,7 +1680,7 @@ lv_obj_t* lv_label_create(lv_obj_t *par, lv_coord_t x, lv_coord_t y, const char
|
|||
lv_obj_t* lv_btn_create(lv_obj_t *par, lv_event_cb_t cb, const int id/*=0*/, lv_style_t *style/*=&style_para_value*/) {
|
||||
lv_obj_t *btn = lv_btn_create(par, nullptr);
|
||||
if (id)
|
||||
lv_obj_set_event_cb_mks(btn, cb, id, nullptr, 0);
|
||||
lv_obj_set_event_cb_mks(btn, cb, id, "", 0);
|
||||
else
|
||||
lv_obj_set_event_cb(btn, cb);
|
||||
lv_btn_set_style_both(btn, style);
|
||||
|
@ -1748,7 +1748,7 @@ lv_obj_t* lv_imgbtn_create(lv_obj_t *par, const char *img, lv_event_cb_t cb, con
|
|||
lv_obj_t *btn = lv_imgbtn_create(par, nullptr);
|
||||
if (img) lv_imgbtn_set_src_both(btn, img);
|
||||
if (id)
|
||||
lv_obj_set_event_cb_mks(btn, cb, id, nullptr, 0);
|
||||
lv_obj_set_event_cb_mks(btn, cb, id, "", 0);
|
||||
else
|
||||
lv_obj_set_event_cb(btn, cb);
|
||||
lv_imgbtn_use_label_style(btn);
|
||||
|
@ -1785,7 +1785,7 @@ lv_obj_t* lv_screen_menu_item(lv_obj_t *par, const char *text, lv_coord_t x, lv_
|
|||
lv_obj_t *btn = lv_btn_create(par, nullptr); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(btn, x, y); /*Set its position*/
|
||||
lv_obj_set_size(btn, PARA_UI_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
if (id > -1) lv_obj_set_event_cb_mks(btn, cb, id, nullptr, 0);
|
||||
if (id > -1) lv_obj_set_event_cb_mks(btn, cb, id, "", 0);
|
||||
lv_btn_use_label_style(btn);
|
||||
lv_btn_set_layout(btn, LV_LAYOUT_OFF);
|
||||
lv_obj_t *label = lv_label_create_empty(btn); /*Add a label to the button*/
|
||||
|
|
|
@ -73,7 +73,7 @@ void lv_draw_wifi(void) {
|
|||
|
||||
buttonReconnect = lv_imgbtn_create(scr, nullptr);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonReconnect, event_handler, ID_W_RECONNECT, nullptr, 0);
|
||||
lv_obj_set_event_cb_mks(buttonReconnect, event_handler, ID_W_RECONNECT, "", 0);
|
||||
lv_imgbtn_set_src_both(buttonReconnect, "F:/bmp_wifi.bin");
|
||||
lv_imgbtn_use_label_style(buttonReconnect);
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if HAS_TFT_LVGL_UI
|
||||
#if BOTH(HAS_TFT_LVGL_UI, USE_WIFI_FUNCTION)
|
||||
|
||||
#include "draw_ui.h"
|
||||
#include "wifi_module.h"
|
||||
|
@ -822,4 +822,4 @@ int32_t wifi_upload(int type) {
|
|||
return esp_upload.uploadResult == success ? 0 : -1;
|
||||
}
|
||||
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI && USE_WIFI_FUNCTION
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
#include "../inc/MarlinConfigPre.h"
|
||||
|
||||
#if HAS_WIRED_LCD
|
||||
#if HAS_WIRED_LCD && !HAS_GRAPHICAL_TFT
|
||||
|
||||
#include "lcdprint.h"
|
||||
|
||||
|
|
|
@ -262,67 +262,71 @@ millis_t MarlinUI::next_button_update_ms; // = 0
|
|||
|
||||
#endif
|
||||
|
||||
void _wrap_string(uint8_t &col, uint8_t &row, const char * const string, read_byte_cb_t cb_read_byte, bool wordwrap/*=false*/) {
|
||||
SETCURSOR(col, row);
|
||||
if (!string) return;
|
||||
#if !HAS_GRAPHICAL_TFT
|
||||
|
||||
auto _newline = [&col, &row]{
|
||||
col = 0; row++; // Move col to string len (plus space)
|
||||
SETCURSOR(0, row); // Simulate carriage return
|
||||
};
|
||||
void _wrap_string(uint8_t &col, uint8_t &row, const char * const string, read_byte_cb_t cb_read_byte, bool wordwrap/*=false*/) {
|
||||
SETCURSOR(col, row);
|
||||
if (!string) return;
|
||||
|
||||
uint8_t *p = (uint8_t*)string;
|
||||
wchar_t ch;
|
||||
if (wordwrap) {
|
||||
uint8_t *wrd = nullptr, c = 0;
|
||||
// find the end of the part
|
||||
for (;;) {
|
||||
if (!wrd) wrd = p; // Get word start /before/ advancing
|
||||
p = get_utf8_value_cb(p, cb_read_byte, &ch);
|
||||
const bool eol = !ch; // zero ends the string
|
||||
// End or a break between phrases?
|
||||
if (eol || ch == ' ' || ch == '-' || ch == '+' || ch == '.') {
|
||||
if (!c && ch == ' ') { if (wrd) wrd++; continue; } // collapse extra spaces
|
||||
// Past the right and the word is not too long?
|
||||
if (col + c > LCD_WIDTH && col >= (LCD_WIDTH) / 4) _newline(); // should it wrap?
|
||||
c += !eol; // +1 so the space will be printed
|
||||
col += c; // advance col to new position
|
||||
while (c) { // character countdown
|
||||
--c; // count down to zero
|
||||
wrd = get_utf8_value_cb(wrd, cb_read_byte, &ch); // get characters again
|
||||
lcd_put_wchar(ch); // character to the LCD
|
||||
auto _newline = [&col, &row]{
|
||||
col = 0; row++; // Move col to string len (plus space)
|
||||
SETCURSOR(0, row); // Simulate carriage return
|
||||
};
|
||||
|
||||
uint8_t *p = (uint8_t*)string;
|
||||
wchar_t ch;
|
||||
if (wordwrap) {
|
||||
uint8_t *wrd = nullptr, c = 0;
|
||||
// find the end of the part
|
||||
for (;;) {
|
||||
if (!wrd) wrd = p; // Get word start /before/ advancing
|
||||
p = get_utf8_value_cb(p, cb_read_byte, &ch);
|
||||
const bool eol = !ch; // zero ends the string
|
||||
// End or a break between phrases?
|
||||
if (eol || ch == ' ' || ch == '-' || ch == '+' || ch == '.') {
|
||||
if (!c && ch == ' ') { if (wrd) wrd++; continue; } // collapse extra spaces
|
||||
// Past the right and the word is not too long?
|
||||
if (col + c > LCD_WIDTH && col >= (LCD_WIDTH) / 4) _newline(); // should it wrap?
|
||||
c += !eol; // +1 so the space will be printed
|
||||
col += c; // advance col to new position
|
||||
while (c) { // character countdown
|
||||
--c; // count down to zero
|
||||
wrd = get_utf8_value_cb(wrd, cb_read_byte, &ch); // get characters again
|
||||
lcd_put_wchar(ch); // character to the LCD
|
||||
}
|
||||
if (eol) break; // all done!
|
||||
wrd = nullptr; // set up for next word
|
||||
}
|
||||
if (eol) break; // all done!
|
||||
wrd = nullptr; // set up for next word
|
||||
else c++; // count word characters
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (;;) {
|
||||
p = get_utf8_value_cb(p, cb_read_byte, &ch);
|
||||
if (!ch) break;
|
||||
lcd_put_wchar(ch);
|
||||
col++;
|
||||
if (col >= LCD_WIDTH) _newline();
|
||||
}
|
||||
else c++; // count word characters
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (;;) {
|
||||
p = get_utf8_value_cb(p, cb_read_byte, &ch);
|
||||
if (!ch) break;
|
||||
lcd_put_wchar(ch);
|
||||
col++;
|
||||
if (col >= LCD_WIDTH) _newline();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MarlinUI::draw_select_screen_prompt(PGM_P const pref, const char * const string/*=nullptr*/, PGM_P const suff/*=nullptr*/) {
|
||||
const uint8_t plen = utf8_strlen_P(pref), slen = suff ? utf8_strlen_P(suff) : 0;
|
||||
uint8_t col = 0, row = 0;
|
||||
if (!string && plen + slen <= LCD_WIDTH) {
|
||||
col = (LCD_WIDTH - plen - slen) / 2;
|
||||
row = LCD_HEIGHT > 3 ? 1 : 0;
|
||||
void MarlinUI::draw_select_screen_prompt(PGM_P const pref, const char * const string/*=nullptr*/, PGM_P const suff/*=nullptr*/) {
|
||||
const uint8_t plen = utf8_strlen_P(pref), slen = suff ? utf8_strlen_P(suff) : 0;
|
||||
uint8_t col = 0, row = 0;
|
||||
if (!string && plen + slen <= LCD_WIDTH) {
|
||||
col = (LCD_WIDTH - plen - slen) / 2;
|
||||
row = LCD_HEIGHT > 3 ? 1 : 0;
|
||||
}
|
||||
wrap_string_P(col, row, pref, true);
|
||||
if (string) {
|
||||
if (col) { col = 0; row++; } // Move to the start of the next line
|
||||
wrap_string(col, row, string);
|
||||
}
|
||||
if (suff) wrap_string_P(col, row, suff);
|
||||
}
|
||||
wrap_string_P(col, row, pref, true);
|
||||
if (string) {
|
||||
if (col) { col = 0; row++; } // Move to the start of the next line
|
||||
wrap_string(col, row, string);
|
||||
}
|
||||
if (suff) wrap_string_P(col, row, suff);
|
||||
}
|
||||
|
||||
#endif // !HAS_GRAPHICAL_TFT
|
||||
|
||||
#endif // HAS_LCD_MENU
|
||||
|
||||
|
|
|
@ -80,12 +80,10 @@
|
|||
|
||||
#include "lcdprint.h"
|
||||
|
||||
void _wrap_string(uint8_t &col, uint8_t &row, const char * const string, read_byte_cb_t cb_read_byte, const bool wordwrap=false);
|
||||
inline void wrap_string_P(uint8_t &col, uint8_t &row, PGM_P const pstr, const bool wordwrap=false) { _wrap_string(col, row, pstr, read_byte_rom, wordwrap); }
|
||||
inline void wrap_string(uint8_t &col, uint8_t &row, const char * const string, const bool wordwrap=false) { _wrap_string(col, row, string, read_byte_ram, wordwrap); }
|
||||
|
||||
#if ENABLED(SDSUPPORT)
|
||||
#include "../sd/cardreader.h"
|
||||
#if !HAS_GRAPHICAL_TFT
|
||||
void _wrap_string(uint8_t &col, uint8_t &row, const char * const string, read_byte_cb_t cb_read_byte, const bool wordwrap=false);
|
||||
inline void wrap_string_P(uint8_t &col, uint8_t &row, PGM_P const pstr, const bool wordwrap=false) { _wrap_string(col, row, pstr, read_byte_rom, wordwrap); }
|
||||
inline void wrap_string(uint8_t &col, uint8_t &row, const char * const string, const bool wordwrap=false) { _wrap_string(col, row, string, read_byte_ram, wordwrap); }
|
||||
#endif
|
||||
|
||||
typedef void (*screenFunc_t)();
|
||||
|
|
Loading…
Reference in a new issue