2005-10-28 00:00:00 +00:00
|
|
|
/***************************************************************************
|
|
|
|
* __________ __ ___.
|
|
|
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
|
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
|
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
|
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
|
|
* \/ \/ \/ \/ \/
|
|
|
|
* $Id$
|
|
|
|
*
|
2005-10-30 01:24:35 +00:00
|
|
|
* Copyright (C) 2005 Kevin Ferrare
|
2005-10-28 00:00:00 +00:00
|
|
|
*
|
2008-06-28 18:10:04 +00:00
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
* as published by the Free Software Foundation; either version 2
|
|
|
|
* of the License, or (at your option) any later version.
|
2005-10-28 00:00:00 +00:00
|
|
|
*
|
|
|
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
|
|
* KIND, either express or implied.
|
|
|
|
*
|
|
|
|
****************************************************************************/
|
|
|
|
|
|
|
|
#ifndef _GUI_SCROLLBAR_H_
|
|
|
|
#define _GUI_SCROLLBAR_H_
|
2005-11-16 02:12:25 +00:00
|
|
|
#include "screen_access.h"
|
2005-10-28 00:00:00 +00:00
|
|
|
|
2005-11-16 02:12:25 +00:00
|
|
|
#ifdef HAVE_LCD_BITMAP
|
2005-10-28 00:00:00 +00:00
|
|
|
|
|
|
|
enum orientation {
|
2006-10-13 04:16:49 +00:00
|
|
|
VERTICAL = 0x0000, /* Vertical orientation */
|
|
|
|
HORIZONTAL = 0x0001, /* Horizontal orientation */
|
A bunch of new features for the bar type tags (%pb, %pv, %bl, etc):
* the bar orientation (horiz/vert) is now chosen based on the width and heigt values (or can be forced).
* the fill direction can now be inverted (fill right to left, or top to bottom is considered inverted)
* It can now draw a slider type bar instead of a fill type (or indeed a slider with a fill type)
To configure the new bar, any (or all) of the following params can be used after the bmp filename (order makes no difference either):
invert - cause the bar to fill in the inverted direction
vertical - draw a vertical bar (not needed if the height > width)
horizontal - draw a horizontal bar (this is obviously the default)
nofill - dont draw the filling bar (this still draws the outline, obviously pointless without the slider param)
slider - draw an image for the slider. The next param MUST be the label of the image to draw. No option to use a subimage here, so the whole image needs to be the image you want on the slider.
example: %pb(0,0,-,-,-,nofill, slider, slider_image, invert) - draw a boring horizontal progressbar which doesnt fill and only draws the image "slider_image" which moves right to left.
the slider type might need some tweaking. let us know how it goes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27821 a1c6a512-1295-4272-9138-f99709370657
2010-08-15 14:13:36 +00:00
|
|
|
INVERTFILL = 0x0002, /* Invert the fill direction */
|
2010-10-03 14:19:30 +00:00
|
|
|
INNER_NOFILL = 0x0004, /* Do not fill inner part */
|
2006-10-13 04:16:49 +00:00
|
|
|
#ifdef HAVE_LCD_COLOR
|
A bunch of new features for the bar type tags (%pb, %pv, %bl, etc):
* the bar orientation (horiz/vert) is now chosen based on the width and heigt values (or can be forced).
* the fill direction can now be inverted (fill right to left, or top to bottom is considered inverted)
* It can now draw a slider type bar instead of a fill type (or indeed a slider with a fill type)
To configure the new bar, any (or all) of the following params can be used after the bmp filename (order makes no difference either):
invert - cause the bar to fill in the inverted direction
vertical - draw a vertical bar (not needed if the height > width)
horizontal - draw a horizontal bar (this is obviously the default)
nofill - dont draw the filling bar (this still draws the outline, obviously pointless without the slider param)
slider - draw an image for the slider. The next param MUST be the label of the image to draw. No option to use a subimage here, so the whole image needs to be the image you want on the slider.
example: %pb(0,0,-,-,-,nofill, slider, slider_image, invert) - draw a boring horizontal progressbar which doesnt fill and only draws the image "slider_image" which moves right to left.
the slider type might need some tweaking. let us know how it goes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27821 a1c6a512-1295-4272-9138-f99709370657
2010-08-15 14:13:36 +00:00
|
|
|
FOREGROUND = 0x0020, /* Do not clear background pixels */
|
|
|
|
INNER_FILL = 0x0040, /* Fill inner part even if FOREGROUND */
|
|
|
|
INNER_BGFILL = 0x0080, /* Fill inner part with background
|
2006-10-13 04:16:49 +00:00
|
|
|
color even if FOREGROUND */
|
A bunch of new features for the bar type tags (%pb, %pv, %bl, etc):
* the bar orientation (horiz/vert) is now chosen based on the width and heigt values (or can be forced).
* the fill direction can now be inverted (fill right to left, or top to bottom is considered inverted)
* It can now draw a slider type bar instead of a fill type (or indeed a slider with a fill type)
To configure the new bar, any (or all) of the following params can be used after the bmp filename (order makes no difference either):
invert - cause the bar to fill in the inverted direction
vertical - draw a vertical bar (not needed if the height > width)
horizontal - draw a horizontal bar (this is obviously the default)
nofill - dont draw the filling bar (this still draws the outline, obviously pointless without the slider param)
slider - draw an image for the slider. The next param MUST be the label of the image to draw. No option to use a subimage here, so the whole image needs to be the image you want on the slider.
example: %pb(0,0,-,-,-,nofill, slider, slider_image, invert) - draw a boring horizontal progressbar which doesnt fill and only draws the image "slider_image" which moves right to left.
the slider type might need some tweaking. let us know how it goes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27821 a1c6a512-1295-4272-9138-f99709370657
2010-08-15 14:13:36 +00:00
|
|
|
INNER_FILL_MASK = 0x00c0,
|
2006-10-13 04:16:49 +00:00
|
|
|
#endif
|
2005-10-28 00:00:00 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Draws a scrollbar on the given screen
|
|
|
|
* - screen : the screen to put the scrollbar on
|
|
|
|
* - x : x start position of the scrollbar
|
|
|
|
* - y : y start position of the scrollbar
|
|
|
|
* - width : you won't guess =(^o^)=
|
|
|
|
* - height : I won't tell you either !
|
|
|
|
* - items : total number of items on the screen
|
|
|
|
* - min_shown : index of the starting item on the screen
|
|
|
|
* - max_shown : index of the last item on the screen
|
|
|
|
* - orientation : either VERTICAL or HORIZONTAL
|
|
|
|
*/
|
|
|
|
extern void gui_scrollbar_draw(struct screen * screen, int x, int y,
|
|
|
|
int width, int height, int items,
|
|
|
|
int min_shown, int max_shown,
|
2006-10-13 04:16:49 +00:00
|
|
|
unsigned flags);
|
2010-05-20 15:27:17 +00:00
|
|
|
extern void gui_bitmap_scrollbar_draw(struct screen * screen, struct bitmap *bm,
|
2010-02-16 13:38:30 +00:00
|
|
|
int x, int y,
|
2006-02-10 13:57:11 +00:00
|
|
|
int width, int height, int items,
|
|
|
|
int min_shown, int max_shown,
|
2006-10-13 04:16:49 +00:00
|
|
|
unsigned flags);
|
2010-02-16 13:38:30 +00:00
|
|
|
extern void show_busy_slider(struct screen *s, int x, int y,
|
|
|
|
int width, int height);
|
2005-10-28 00:00:00 +00:00
|
|
|
#endif /* HAVE_LCD_BITMAP */
|
|
|
|
#endif /* _GUI_SCROLLBAR_H_ */
|