summaryrefslogtreecommitdiff
path: root/firmware/drivers/lcd-bitmap-common.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers/lcd-bitmap-common.c')
-rw-r--r--firmware/drivers/lcd-bitmap-common.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/firmware/drivers/lcd-bitmap-common.c b/firmware/drivers/lcd-bitmap-common.c
index 330639fd87..97921c6347 100644
--- a/firmware/drivers/lcd-bitmap-common.c
+++ b/firmware/drivers/lcd-bitmap-common.c
@@ -387,12 +387,11 @@ void LCDFN(putsxyf)(int x, int y, const unsigned char *fmt, ...)
387 387
388static void LCDFN(putsxyofs_style)(int xpos, int ypos, 388static void LCDFN(putsxyofs_style)(int xpos, int ypos,
389 const unsigned char *str, int style, 389 const unsigned char *str, int style,
390 int h, int offset) 390 int offset)
391{ 391{
392 int lastmode = current_vp->drawmode; 392 int lastmode = current_vp->drawmode;
393 int text_ypos = ypos; 393 int text_ypos = ypos;
394 int line_height = font_get(current_vp->font)->height; 394 int h = font_get(current_vp->font)->height;
395 text_ypos += h/2 - line_height/2; /* center the text in the line */
396 395
397 if ((style & STYLE_MODE_MASK) == STYLE_NONE) { 396 if ((style & STYLE_MODE_MASK) == STYLE_NONE) {
398 if (str[0]) 397 if (str[0])
@@ -452,7 +451,7 @@ static void LCDFN(putsofs_style)(int x, int y, const unsigned char *str,
452 if(!str) 451 if(!str)
453 return; 452 return;
454 453
455 h = current_vp->line_height ?: (int)font_get(current_vp->font)->height; 454 h = font_get(current_vp->font)->height;
456 if ((style&STYLE_XY_PIXELS) == 0) 455 if ((style&STYLE_XY_PIXELS) == 0)
457 { 456 {
458 xpos = x * LCDFN(getstringsize)(" ", NULL, NULL); 457 xpos = x * LCDFN(getstringsize)(" ", NULL, NULL);
@@ -464,7 +463,7 @@ static void LCDFN(putsofs_style)(int x, int y, const unsigned char *str,
464 ypos = y; 463 ypos = y;
465 } 464 }
466 LCDFN(scroll_stop_viewport_rect)(current_vp, xpos, ypos, current_vp->width - xpos, h); 465 LCDFN(scroll_stop_viewport_rect)(current_vp, xpos, ypos, current_vp->width - xpos, h);
467 LCDFN(putsxyofs_style)(xpos, ypos+y_offset, str, style, h, x_offset); 466 LCDFN(putsxyofs_style)(xpos, ypos+y_offset, str, style, x_offset);
468} 467}
469 468
470void LCDFN(puts)(int x, int y, const unsigned char *str) 469void LCDFN(puts)(int x, int y, const unsigned char *str)
@@ -501,7 +500,7 @@ static struct scrollinfo* find_scrolling_line(int x, int y)
501 500
502void LCDFN(scroll_fn)(struct scrollinfo* s) 501void LCDFN(scroll_fn)(struct scrollinfo* s)
503{ 502{
504 LCDFN(putsxyofs_style)(s->x, s->y, s->line, s->style, s->height, s->offset); 503 LCDFN(putsxyofs_style)(s->x, s->y, s->line, s->style, s->offset);
505} 504}
506 505
507static void LCDFN(puts_scroll_worker)(int x, int y, const unsigned char *string, 506static void LCDFN(puts_scroll_worker)(int x, int y, const unsigned char *string,
@@ -521,7 +520,7 @@ static void LCDFN(puts_scroll_worker)(int x, int y, const unsigned char *string,
521 /* prepare rectangle for scrolling. x and y must be calculated early 520 /* prepare rectangle for scrolling. x and y must be calculated early
522 * for find_scrolling_line() to work */ 521 * for find_scrolling_line() to work */
523 cwidth = font_get(current_vp->font)->maxwidth; 522 cwidth = font_get(current_vp->font)->maxwidth;
524 height = current_vp->line_height ?: (int)font_get(current_vp->font)->height; 523 height = font_get(current_vp->font)->height;
525 y = y * (linebased ? height : 1) + y_offset; 524 y = y * (linebased ? height : 1) + y_offset;
526 x = x * (linebased ? cwidth : 1); 525 x = x * (linebased ? cwidth : 1);
527 width = current_vp->width - x; 526 width = current_vp->width - x;
@@ -535,7 +534,7 @@ static void LCDFN(puts_scroll_worker)(int x, int y, const unsigned char *string,
535 if (restart) { 534 if (restart) {
536 /* remove any previously scrolling line at the same location */ 535 /* remove any previously scrolling line at the same location */
537 LCDFN(scroll_stop_viewport_rect)(current_vp, x, y, width, height); 536 LCDFN(scroll_stop_viewport_rect)(current_vp, x, y, width, height);
538 LCDFN(putsxyofs_style)(x, y, string, style, height, x_offset); 537 LCDFN(putsxyofs_style)(x, y, string, style, x_offset);
539 538
540 if (LCDFN(scroll_info).lines >= LCDM(SCROLLABLE_LINES)) 539 if (LCDFN(scroll_info).lines >= LCDM(SCROLLABLE_LINES))
541 return; 540 return;