Files
lcdproc/tests/menutest.c
T
1999-12-09 23:15:14 +00:00

89 lines
1.8 KiB
C

#include "lcd.h"
#include "menu.h"
extern menu_item MainMenu[];
extern menu_item OptionsMenu[];
extern int Shutdown_func();
extern int Close_func();
extern int OK_func();
extern int Time24_func();
extern int Contrast_func();
menu_item MainMenu[] = {
"MAIN MENU", 0, 0, // Title
"Options", TYPE_MENU, (void *)OptionsMenu,
"Kill LCDproc", TYPE_FUNC, (void *)Shutdown_func,
"OK", TYPE_FUNC, (void *)OK_func,
0, 0, 0,
};
menu_item OptionsMenu[] = {
"OPTIONS MENU", TYPE_TITL, 0, // Title
"24-hour Time", TYPE_CHEK, (void *)Time24_func,
"Contrast...", TYPE_SLID, (void *)Contrast_func,
"OK", TYPE_FUNC, (void *)OK_func,
"Close Menu", TYPE_FUNC, (void *)Close_func,
"Exit Program", TYPE_FUNC, (void *)Shutdown_func,
"Another Title",TYPE_TITL, 0,
0, 0, 0,
};
///////////////// Elsewhere, we declare these...
int Shutdown_func()
{
// Do something here...
return MENU_KILL;
}
int Close_func()
{
return MENU_CLOSE;
}
int OK_func()
{
return MENU_OK;
}
int Time24_func(int input)
{
static int status=0;
if(input == MENU_READ) return status;
if(input == MENU_CHECK) status ^= 1; // does something.
return (status | MENU_OK);
// The status is "or"-ed with the MENU value to let do_menu()
// know what to do after selecting the item. (two return
// values in one. :)
// Also, "MENU_OK" happens to be zero, so it does not matter
// unless you want something else (like MENU_CLOSE)
}
int Contrast_func(int input)
{
static int status=128;
if(input == MENU_READ) return status;
if(input == MENU_PLUS) status++; // does something.
if(input == MENU_MINUS) status--; // does something.
return (status | MENU_OK);
}
void main()
{
lcd_init("", "curses");
do_menu(MainMenu);
}