summaryrefslogtreecommitdiff
path: root/apps/gui/skin_engine/skin_render.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/skin_engine/skin_render.c')
-rw-r--r--apps/gui/skin_engine/skin_render.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/apps/gui/skin_engine/skin_render.c b/apps/gui/skin_engine/skin_render.c
index 80d8c83d27..7ceb0bce17 100644
--- a/apps/gui/skin_engine/skin_render.c
+++ b/apps/gui/skin_engine/skin_render.c
@@ -176,8 +176,29 @@ static bool do_non_text_tags(struct gui_wps *gwps, struct skin_draw_info *info,
176 if (do_refresh) 176 if (do_refresh)
177 draw_peakmeters(gwps, info->line_number, vp); 177 draw_peakmeters(gwps, info->line_number, vp);
178 break; 178 break;
179 case SKIN_TOKEN_DRAWRECTANGLE:
180 if (do_refresh)
181 {
182 struct draw_rectangle *rect =
183 SKINOFFSETTOPTR(skin_buffer, token->value.data);
184#ifdef HAVE_LCD_COLOR
185 if (rect->start_colour != rect->end_colour &&
186 gwps->display->screen_type == SCREEN_MAIN)
187 {
188 gwps->display->gradient_fillrect(rect->x, rect->y, rect->width,
189 rect->height, rect->start_colour, rect->end_colour);
190 }
191 else
179#endif 192#endif
180#ifdef HAVE_LCD_BITMAP 193 {
194 unsigned backup = vp->fg_pattern;
195 vp->fg_pattern = rect->start_colour;
196 gwps->display->fillrect(rect->x, rect->y, rect->width,
197 rect->height);
198 vp->fg_pattern = backup;
199 }
200 }
201 break;
181 case SKIN_TOKEN_PEAKMETER_LEFTBAR: 202 case SKIN_TOKEN_PEAKMETER_LEFTBAR:
182 case SKIN_TOKEN_PEAKMETER_RIGHTBAR: 203 case SKIN_TOKEN_PEAKMETER_RIGHTBAR:
183 data->peak_meter_enabled = true; 204 data->peak_meter_enabled = true;