From 8a0152bd4ae638c1fe4917b855fcb9fc6a15202c Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Sun, 10 Oct 2010 23:15:05 +0000 Subject: Two new lcd/multi screen api convinience functions: draw_viewport(), fill_viewport(). They work as the drawrect/fillrect pendants but work on a viewport basis; pass NULL to draw the current viewport (the one set with set_viewport()). In conjunction with action_get_touchscreen_press_in_vp() it should be less of a pain to draw buttons and get presses on them. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28239 a1c6a512-1295-4272-9138-f99709370657 --- firmware/drivers/lcd-bitmap-common.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'firmware/drivers/lcd-bitmap-common.c') diff --git a/firmware/drivers/lcd-bitmap-common.c b/firmware/drivers/lcd-bitmap-common.c index 2ce11e3398..d242096138 100644 --- a/firmware/drivers/lcd-bitmap-common.c +++ b/firmware/drivers/lcd-bitmap-common.c @@ -81,6 +81,28 @@ static void lcd_gradient_rect(int x1, int x2, int y, unsigned h, } #endif +/* + * draws the borders of the viewport, or of current_vp if vp == NULL + **/ +void LCDFN(draw_viewport)(const struct viewport *vp) +{ + if (vp == NULL) + LCDFN(drawrect)(0, 0, current_vp->width, current_vp->height); + else + LCDFN(drawrect)(vp->x, vp->y, vp->width, vp->height); +} + +/* + * fills the rectangle formed by vp or by current_vp if vp == NULL + **/ +void LCDFN(fill_viewport)(const struct viewport *vp) +{ + if (vp == NULL) + LCDFN(fillrect)(0, 0, current_vp->width, current_vp->height); + else + LCDFN(fillrect)(vp->x, vp->y, vp->width, vp->height); +} + /* put a string at a given pixel position, skipping first ofs pixel columns */ static void LCDFN(putsxyofs)(int x, int y, int ofs, const unsigned char *str) { -- cgit v1.2.3