From 49780944809651f28e8135bf6d67dcd8ceeb2585 Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Tue, 16 Apr 2013 16:06:13 +0200 Subject: lcd-common: Remove support for custom line heights from viewport. Since scrolling is now pixel-based this is not necessary anymore. custom line height is handled by put_line() but can also possible to implement with lcd_puts_scroll_func(). Change-Id: Iee9b12bf99afac93d95d2a1a6f5d5b4db237b21c --- apps/gui/viewport.c | 5 +---- apps/menus/time_menu.c | 2 +- apps/plugins/lib/pluginlib_touchscreen.c | 3 +-- firmware/drivers/lcd-bitmap-common.c | 15 +++++++-------- firmware/export/lcd.h | 1 - 5 files changed, 10 insertions(+), 16 deletions(-) diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c index 0b5441e02b..b91c7441dd 100644 --- a/apps/gui/viewport.c +++ b/apps/gui/viewport.c @@ -225,9 +225,7 @@ static bool is_theme_enabled(enum screen_type screen) int viewport_get_nb_lines(const struct viewport *vp) { #ifdef HAVE_LCD_BITMAP - if (!vp->line_height) - return vp->height/font_get(vp->font)->height; - return vp->height/vp->line_height; + return vp->height/font_get(vp->font)->height; #else (void)vp; return 2; @@ -322,7 +320,6 @@ void viewport_set_fullscreen(struct viewport *vp, set_default_align_flags(vp); #endif vp->font = screens[screen].getuifont(); - vp->line_height = 0; /* calculate from font height */ vp->drawmode = DRMODE_SOLID; #if LCD_DEPTH > 1 #ifdef HAVE_REMOTE_LCD diff --git a/apps/menus/time_menu.c b/apps/menus/time_menu.c index 1eb4bd68cc..9ef4f7323c 100644 --- a/apps/menus/time_menu.c +++ b/apps/menus/time_menu.c @@ -265,7 +265,7 @@ int time_screen(void* ignored) /* force time to be drawn centered */ clock_vps[i].flags |= VP_FLAG_ALIGN_CENTER; - font_h = clock_vps[i].line_height ?: (int)font_get(clock_vps[i].font)->height; + font_h = font_get(clock_vps[i].font)->height; nb_lines -= 2; /* at least 2 lines for menu */ if (nb_lines > 4) nb_lines = 4; diff --git a/apps/plugins/lib/pluginlib_touchscreen.c b/apps/plugins/lib/pluginlib_touchscreen.c index 095750740e..5903b7c7a9 100644 --- a/apps/plugins/lib/pluginlib_touchscreen.c +++ b/apps/plugins/lib/pluginlib_touchscreen.c @@ -140,8 +140,7 @@ void touchbutton_draw(struct touchbutton *data, int num_buttons) { */ lcd->set_viewport(&data[i].vp); - /* Set line_height to height, then it'll center for us */ - data[i].vp.line_height = data[i].vp.height; + /* TODO: Center text vert*/ data[i].vp.flags |= VP_FLAG_ALIGN_CENTER; /* If the width offset was 0, use a scrolling puts, else center and 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, ...) static void LCDFN(putsxyofs_style)(int xpos, int ypos, const unsigned char *str, int style, - int h, int offset) + int offset) { int lastmode = current_vp->drawmode; int text_ypos = ypos; - int line_height = font_get(current_vp->font)->height; - text_ypos += h/2 - line_height/2; /* center the text in the line */ + int h = font_get(current_vp->font)->height; if ((style & STYLE_MODE_MASK) == STYLE_NONE) { if (str[0]) @@ -452,7 +451,7 @@ static void LCDFN(putsofs_style)(int x, int y, const unsigned char *str, if(!str) return; - h = current_vp->line_height ?: (int)font_get(current_vp->font)->height; + h = font_get(current_vp->font)->height; if ((style&STYLE_XY_PIXELS) == 0) { xpos = x * LCDFN(getstringsize)(" ", NULL, NULL); @@ -464,7 +463,7 @@ static void LCDFN(putsofs_style)(int x, int y, const unsigned char *str, ypos = y; } LCDFN(scroll_stop_viewport_rect)(current_vp, xpos, ypos, current_vp->width - xpos, h); - LCDFN(putsxyofs_style)(xpos, ypos+y_offset, str, style, h, x_offset); + LCDFN(putsxyofs_style)(xpos, ypos+y_offset, str, style, x_offset); } void LCDFN(puts)(int x, int y, const unsigned char *str) @@ -501,7 +500,7 @@ static struct scrollinfo* find_scrolling_line(int x, int y) void LCDFN(scroll_fn)(struct scrollinfo* s) { - LCDFN(putsxyofs_style)(s->x, s->y, s->line, s->style, s->height, s->offset); + LCDFN(putsxyofs_style)(s->x, s->y, s->line, s->style, s->offset); } static 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, /* prepare rectangle for scrolling. x and y must be calculated early * for find_scrolling_line() to work */ cwidth = font_get(current_vp->font)->maxwidth; - height = current_vp->line_height ?: (int)font_get(current_vp->font)->height; + height = font_get(current_vp->font)->height; y = y * (linebased ? height : 1) + y_offset; x = x * (linebased ? cwidth : 1); width = current_vp->width - x; @@ -535,7 +534,7 @@ static void LCDFN(puts_scroll_worker)(int x, int y, const unsigned char *string, if (restart) { /* remove any previously scrolling line at the same location */ LCDFN(scroll_stop_viewport_rect)(current_vp, x, y, width, height); - LCDFN(putsxyofs_style)(x, y, string, style, height, x_offset); + LCDFN(putsxyofs_style)(x, y, string, style, x_offset); if (LCDFN(scroll_info).lines >= LCDM(SCROLLABLE_LINES)) return; diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h index afdc5cf45e..bdeddf0b52 100644 --- a/firmware/export/lcd.h +++ b/firmware/export/lcd.h @@ -43,7 +43,6 @@ struct viewport { #ifdef HAVE_LCD_BITMAP int flags; int font; - int line_height; /* 0 for using font height */ int drawmode; #endif #if LCD_DEPTH > 1 -- cgit v1.2.3