|
|
@ -519,13 +519,14 @@ static void lcd_implementation_status_screen() { |
|
|
|
|
|
|
|
// Enable to save many cycles by drawing a hollow frame
|
|
|
|
#define XYZ_HOLLOW_FRAME |
|
|
|
#define MENU_HOLLOW_FRAME |
|
|
|
|
|
|
|
#if ENABLED(XYZ_HOLLOW_FRAME) |
|
|
|
#define XYZ_FRAME_TOP 29 |
|
|
|
#define XYZ_FRAME_HEIGHT INFO_FONT_HEIGHT + 3 |
|
|
|
#else |
|
|
|
#define XYZ_FRAME_TOP 30 |
|
|
|
#define XYZ_FRAME_HEIGHT INFO_FONT_HEIGHT + 2 |
|
|
|
#define XYZ_FRAME_HEIGHT INFO_FONT_HEIGHT + 1 |
|
|
|
#endif |
|
|
|
|
|
|
|
// Before homing the axis letters are blinking 'X' <-> '?'.
|
|
|
@ -580,13 +581,13 @@ static void lcd_implementation_status_screen() { |
|
|
|
// Feedrate
|
|
|
|
//
|
|
|
|
|
|
|
|
if (PAGE_CONTAINS(50 - INFO_FONT_HEIGHT, 49)) { |
|
|
|
if (PAGE_CONTAINS(51 - INFO_FONT_HEIGHT, 49)) { |
|
|
|
lcd_setFont(FONT_MENU); |
|
|
|
u8g.setPrintPos(3, 49); |
|
|
|
u8g.setPrintPos(3, 50); |
|
|
|
lcd_print(LCD_STR_FEEDRATE[0]); |
|
|
|
|
|
|
|
lcd_setFont(FONT_STATUSMENU); |
|
|
|
u8g.setPrintPos(12, 49); |
|
|
|
u8g.setPrintPos(12, 50); |
|
|
|
lcd_print(itostr3(feedrate_percentage)); |
|
|
|
u8g.print('%'); |
|
|
|
} |
|
|
@ -595,7 +596,7 @@ static void lcd_implementation_status_screen() { |
|
|
|
// Status line
|
|
|
|
//
|
|
|
|
|
|
|
|
#define STATUS_BASELINE (54 + INFO_FONT_HEIGHT) |
|
|
|
#define STATUS_BASELINE (55 + INFO_FONT_HEIGHT) |
|
|
|
|
|
|
|
if (PAGE_CONTAINS(STATUS_BASELINE + 1 - INFO_FONT_HEIGHT, STATUS_BASELINE)) { |
|
|
|
u8g.setPrintPos(0, STATUS_BASELINE); |
|
|
@ -624,19 +625,26 @@ static void lcd_implementation_status_screen() { |
|
|
|
// Set the colors for a menu item based on whether it is selected
|
|
|
|
static void lcd_implementation_mark_as_selected(const uint8_t row, const bool isSelected) { |
|
|
|
|
|
|
|
row_y1 = row * (DOG_CHAR_HEIGHT) + 1; |
|
|
|
row_y2 = row_y1 + (DOG_CHAR_HEIGHT) - 1; |
|
|
|
row_y1 = row * (DOG_CHAR_HEIGHT + 2 * (TALL_FONT_CORRECTION)) + 1; |
|
|
|
row_y2 = row_y1 + (DOG_CHAR_HEIGHT + 2 * (TALL_FONT_CORRECTION)) - 1; |
|
|
|
|
|
|
|
if (!PAGE_CONTAINS(row_y1 + 2 - (TALL_FONT_CORRECTION), row_y2 + 2 - (TALL_FONT_CORRECTION))) return; |
|
|
|
if (!PAGE_CONTAINS(row_y1 + 1, row_y1 + 1 + DOG_CHAR_HEIGHT + 2 * (TALL_FONT_CORRECTION))) return; |
|
|
|
|
|
|
|
if (isSelected) { |
|
|
|
u8g.setColorIndex(1); // black on white
|
|
|
|
u8g.drawBox(0, row_y1 + 2 - (TALL_FONT_CORRECTION), LCD_PIXEL_WIDTH, DOG_CHAR_HEIGHT); |
|
|
|
u8g.setColorIndex(0); // following text must be white on black
|
|
|
|
} |
|
|
|
else { |
|
|
|
u8g.setColorIndex(1); // unmarked text is black on white
|
|
|
|
#if ENABLED(MENU_HOLLOW_FRAME) |
|
|
|
u8g.drawHLine(0, row_y1 + 1, LCD_PIXEL_WIDTH); |
|
|
|
u8g.drawHLine(0, row_y1 + 1 + DOG_CHAR_HEIGHT + 2 * (TALL_FONT_CORRECTION), LCD_PIXEL_WIDTH); |
|
|
|
#else |
|
|
|
u8g.setColorIndex(1); // black on white
|
|
|
|
u8g.drawBox(0, row_y1 + 2, LCD_PIXEL_WIDTH, DOG_CHAR_HEIGHT - 1 + 2 * (TALL_FONT_CORRECTION)); |
|
|
|
u8g.setColorIndex(0); // white on black
|
|
|
|
#endif |
|
|
|
} |
|
|
|
#if DISABLED(MENU_HOLLOW_FRAME) |
|
|
|
else { |
|
|
|
u8g.setColorIndex(1); // unmarked text is black on white
|
|
|
|
} |
|
|
|
#endif |
|
|
|
u8g.setPrintPos((START_COL) * (DOG_CHAR_WIDTH), row_y2); |
|
|
|
} |
|
|
|
|
|
|
|