Skip to content

Improve STATIC_ITEM implementation #4243

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
Jul 12, 2016
7 changes: 1 addition & 6 deletions Marlin/Conditionals.h
Original file line number Diff line number Diff line change
Expand Up @@ -118,12 +118,7 @@
#define REPRAP_DISCOUNT_SMART_CONTROLLER
#endif

#if ENABLED(ULTIMAKERCONTROLLER) || ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) || ENABLED(G3D_PANEL) || ENABLED(RIGIDBOT_PANEL)
#define ULTIPANEL
#define NEWPANEL
#endif

#if ENABLED(REPRAPWORLD_KEYPAD)
#if ENABLED(ULTIMAKERCONTROLLER) || ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) || ENABLED(G3D_PANEL) || ENABLED(RIGIDBOT_PANEL) || ENABLED(REPRAPWORLD_KEYPAD)
#define ULTIPANEL
#define NEWPANEL
#endif
Expand Down
30 changes: 16 additions & 14 deletions Marlin/dogm_lcd_implementation.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@
#define TALL_FONT_CORRECTION 0
#endif

#define START_ROW 0
#define START_COL 0

// LCD selection
#if ENABLED(U8GLIB_ST7920)
Expand Down Expand Up @@ -480,27 +480,29 @@ static void lcd_implementation_mark_as_selected(uint8_t row, bool isSelected) {
else {
u8g.setColorIndex(1); // unmarked text is black on white
}
u8g.setPrintPos((START_ROW) * (DOG_CHAR_WIDTH), (row + 1) * (DOG_CHAR_HEIGHT));
u8g.setPrintPos((START_COL) * (DOG_CHAR_WIDTH), (row + 1) * (DOG_CHAR_HEIGHT));
}

#if ENABLED(LCD_INFO_MENU) || ENABLED(FILAMENT_CHANGE_FEATURE)

static void lcd_implementation_drawmenu_static(uint8_t row, const char* pstr, const char* valstr=NULL, bool center=true) {
static void lcd_implementation_drawmenu_static(uint8_t row, const char* pstr, bool center=true, bool invert=false, const char* valstr=NULL) {

lcd_implementation_mark_as_selected(row, invert);

char c;
int8_t n = LCD_WIDTH;
u8g.setPrintPos(0, (row + 1) * (DOG_CHAR_HEIGHT));
u8g.setColorIndex(1); // normal text
int8_t n = LCD_WIDTH - (START_COL);

if (center && !valstr) {
int8_t pad = (LCD_WIDTH - lcd_strlen_P(pstr)) / 2;
while (--pad >= 0) { lcd_print(' '); n--; }
}
while (c = pgm_read_byte(pstr)) {
while (n > 0 && (c = pgm_read_byte(pstr))) {
n -= lcd_print(c);
pstr++;
}
if (valstr) {
lcd_print(valstr);
n -= lcd_strlen(valstr);
if (valstr) while (n > 0 && (c = *valstr)) {
n -= lcd_print(c);
valstr++;
}
while (n-- > 0) lcd_print(' ');
}
Expand All @@ -511,7 +513,7 @@ static void lcd_implementation_drawmenu_generic(bool isSelected, uint8_t row, co
UNUSED(pre_char);

char c;
uint8_t n = LCD_WIDTH - 2;
uint8_t n = LCD_WIDTH - (START_COL) - 2;

lcd_implementation_mark_as_selected(row, isSelected);

Expand All @@ -528,7 +530,7 @@ static void lcd_implementation_drawmenu_generic(bool isSelected, uint8_t row, co
static void _drawmenu_setting_edit_generic(bool isSelected, uint8_t row, const char* pstr, const char* data, bool pgm) {
char c;
uint8_t vallen = (pgm ? lcd_strlen_P(data) : (lcd_strlen((char*)data)));
uint8_t n = LCD_WIDTH - 2 - vallen;
uint8_t n = LCD_WIDTH - (START_COL) - 2 - vallen;

lcd_implementation_mark_as_selected(row, isSelected);

Expand Down Expand Up @@ -568,7 +570,7 @@ static void _drawmenu_setting_edit_generic(bool isSelected, uint8_t row, const c

void lcd_implementation_drawedit(const char* pstr, const char* value=NULL) {
uint8_t rows = 1;
uint8_t lcd_width = LCD_WIDTH, char_width = DOG_CHAR_WIDTH;
uint8_t lcd_width = LCD_WIDTH - (START_COL), char_width = DOG_CHAR_WIDTH;
uint8_t vallen = lcd_strlen(value);

#if ENABLED(USE_BIG_EDIT_FONT)
Expand Down Expand Up @@ -602,7 +604,7 @@ void lcd_implementation_drawedit(const char* pstr, const char* value=NULL) {
static void _drawmenu_sd(bool isSelected, uint8_t row, const char* pstr, const char* filename, char* const longFilename, bool isDir) {
UNUSED(pstr);
char c;
uint8_t n = LCD_WIDTH - 1;
uint8_t n = LCD_WIDTH - (START_COL) - 1;

if (longFilename[0]) {
filename = longFilename;
Expand Down
Loading