1
0
Fork 0
forked from len0rd/rockbox

A checkbox widget

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4559 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Linus Nielsen Feltzing 2004-04-28 22:20:27 +00:00
parent fc2fc47d01
commit bd3d297b31
4 changed files with 33 additions and 1 deletions

View file

@ -185,6 +185,9 @@ static struct plugin_api rockbox_api = {
#ifndef SIMULATOR
ata_sleep,
#endif
#ifdef HAVE_LCD_BITMAP
checkbox,
#endif
};
int plugin_load(char* plugin, void* parameter)

View file

@ -50,7 +50,7 @@
/* update this to latest version if a change to the api struct breaks
backwards compatibility (and please take the opportunity to sort in any
new function which are "waiting" at the end of the function table) */
#define PLUGIN_MIN_API_VERSION 9
#define PLUGIN_MIN_API_VERSION 10
/* plugin return codes */
enum plugin_status {
@ -207,6 +207,9 @@ struct plugin_api {
#ifndef SIMULATOR
int (*ata_sleep)(void);
#endif
#ifdef HAVE_LCD_BITMAP
void (*checkbox)(int x, int y, int width, int height, bool checked);
#endif
};
/* defined by the plugin loader (plugin.c) */

View file

@ -210,4 +210,29 @@ void scrollbar(int x, int y, int width, int height, int items, int min_shown,
}
}
}
/*
* Print a checkbox
*/
void checkbox(int x, int y, int width, int height, bool checked)
{
/* check position and dimensions */
if((x < 0) || (x + width > LCD_WIDTH) ||
(y < 0) || (y + height > LCD_HEIGHT) ||
(width < 4 ) || (height < 4 ))
{
return;
}
lcd_drawrect(x, y, width, height);
if (checked){
lcd_drawline(x + 2, y + 2, x + width - 2 - 1 , y + height - 2 - 1);
lcd_drawline(x + 2, y + height - 2 - 1, x + width - 2 - 1, y + 2);
} else {
/* be sure to clear box */
lcd_clearrect(x + 1, y + 1, width - 2, height - 2);
}
}
#endif

View file

@ -38,5 +38,6 @@ enum {
extern void progressbar(int x, int y, int width, int height, int percent, int direction);
extern void slidebar(int x, int y, int width, int height, int percent, int direction);
extern void scrollbar(int x, int y, int width, int height, int items, int min_shown, int max_shown, int orientation);
extern void checkbox(int x, int y, int width, int height, bool checked);
#endif /* HAVE_LCD_BITMAP */
#endif /* __WIDGETS_H__ */