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:
parent
fc2fc47d01
commit
bd3d297b31
4 changed files with 33 additions and 1 deletions
|
@ -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)
|
||||
|
|
|
@ -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) */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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__ */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue