diff options
Diffstat (limited to 'apps/gui/skin_engine/skin_render.c')
-rw-r--r-- | apps/gui/skin_engine/skin_render.c | 23 |
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; |