X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=menu%2Fmenu.h;h=e5a53729d65f486591bc87e1f459d89031a9c9b6;hp=bef5a5cbb74f93cf2befcf73ad4cbf9611950f50;hb=a28e782d7794ddeec23e7cb212dc455f0d93dc22;hpb=04d942c3d98cf0a929c6afb17be8c10d4ae39af0;ds=sidebyside diff --git a/menu/menu.h b/menu/menu.h index bef5a5cb..e5a53729 100644 --- a/menu/menu.h +++ b/menu/menu.h @@ -31,7 +31,7 @@ * Author: Juergen Pfeifer, 1995,1997 * ****************************************************************************/ -/* $Id: menu.h,v 1.25 2020/07/04 20:38:43 tom Exp $ */ +/* $Id: menu.h,v 1.26 2020/12/12 00:38:02 tom Exp $ */ #ifndef ETI_MENU #define ETI_MENU @@ -44,7 +44,8 @@ #include #ifdef __cplusplus -extern "C" { +extern "C" +{ #endif #if defined(BUILDING_MENU) @@ -58,8 +59,8 @@ extern "C" { #define MENU_EXPORT(type) MENU_IMPEXP type NCURSES_API #define MENU_EXPORT_VAR(type) MENU_IMPEXP type -typedef int Menu_Options; -typedef int Item_Options; + typedef int Menu_Options; + typedef int Item_Options; /* Menu options: */ #define O_ONEVALUE (0x01) @@ -74,85 +75,85 @@ typedef int Item_Options; #define O_SELECTABLE (0x01) #if !NCURSES_OPAQUE_MENU -typedef struct -{ - const char* str; - unsigned short length; -} TEXT; -#endif /* !NCURSES_OPAQUE_MENU */ + typedef struct + { + const char *str; + unsigned short length; + } + TEXT; +#endif /* !NCURSES_OPAQUE_MENU */ -struct tagMENU; + struct tagMENU; -typedef struct tagITEM + typedef struct tagITEM #if !NCURSES_OPAQUE_MENU -{ - TEXT name; /* name of menu item */ - TEXT description; /* description of item, optional in display */ - struct tagMENU *imenu; /* Pointer to parent menu */ - void *userptr; /* Pointer to user defined per item data */ - Item_Options opt; /* Item options */ - short index; /* Item number if connected to a menu */ - short y; /* y and x location of item in menu */ - short x; - bool value; /* Selection value */ - - struct tagITEM *left; /* neighbor items */ - struct tagITEM *right; - struct tagITEM *up; - struct tagITEM *down; - -} -#endif /* !NCURSES_OPAQUE_MENU */ -ITEM; - -typedef void (*Menu_Hook)(struct tagMENU *); - -typedef struct tagMENU -#if 1 /* not yet: !NCURSES_OPAQUE_MENU */ -{ - short height; /* Nr. of chars high */ - short width; /* Nr. of chars wide */ - short rows; /* Nr. of items high */ - short cols; /* Nr. of items wide */ - short frows; /* Nr. of formatted items high */ - short fcols; /* Nr. of formatted items wide */ - short arows; /* Nr. of items high (actual) */ - short namelen; /* Max. name length */ - short desclen; /* Max. description length */ - short marklen; /* Length of mark, if any */ - short itemlen; /* Length of one item */ - short spc_desc; /* Spacing for descriptor */ - short spc_cols; /* Spacing for columns */ - short spc_rows; /* Spacing for rows */ - char *pattern; /* Buffer to store match chars */ - short pindex; /* Index into pattern buffer */ - WINDOW *win; /* Window containing menu */ - WINDOW *sub; /* Subwindow for menu display */ - WINDOW *userwin; /* User's window */ - WINDOW *usersub; /* User's subwindow */ - ITEM **items; /* array of items */ - short nitems; /* Nr. of items in menu */ - ITEM *curitem; /* Current item */ - short toprow; /* Top row of menu */ - chtype fore; /* Selection attribute */ - chtype back; /* Nonselection attribute */ - chtype grey; /* Inactive attribute */ - unsigned char pad; /* Pad character */ - - Menu_Hook menuinit; /* User hooks */ - Menu_Hook menuterm; - Menu_Hook iteminit; - Menu_Hook itemterm; - - void *userptr; /* Pointer to menus user data */ - char *mark; /* Pointer to marker string */ - - Menu_Options opt; /* Menu options */ - unsigned short status; /* Internal state of menu */ -} -#endif /* !NCURSES_OPAQUE_MENU */ -MENU; - + { + TEXT name; /* name of menu item */ + TEXT description; /* description of item, optional in display */ + struct tagMENU *imenu; /* Pointer to parent menu */ + void *userptr; /* Pointer to user defined per item data */ + Item_Options opt; /* Item options */ + short index; /* Item number if connected to a menu */ + short y; /* y and x location of item in menu */ + short x; + bool value; /* Selection value */ + + struct tagITEM *left; /* neighbor items */ + struct tagITEM *right; + struct tagITEM *up; + struct tagITEM *down; + + } +#endif /* !NCURSES_OPAQUE_MENU */ + ITEM; + + typedef void (*Menu_Hook) (struct tagMENU *); + + typedef struct tagMENU +#if 1 /* not yet: !NCURSES_OPAQUE_MENU */ + { + short height; /* Nr. of chars high */ + short width; /* Nr. of chars wide */ + short rows; /* Nr. of items high */ + short cols; /* Nr. of items wide */ + short frows; /* Nr. of formatted items high */ + short fcols; /* Nr. of formatted items wide */ + short arows; /* Nr. of items high (actual) */ + short namelen; /* Max. name length */ + short desclen; /* Max. description length */ + short marklen; /* Length of mark, if any */ + short itemlen; /* Length of one item */ + short spc_desc; /* Spacing for descriptor */ + short spc_cols; /* Spacing for columns */ + short spc_rows; /* Spacing for rows */ + char *pattern; /* Buffer to store match chars */ + short pindex; /* Index into pattern buffer */ + WINDOW *win; /* Window containing menu */ + WINDOW *sub; /* Subwindow for menu display */ + WINDOW *userwin; /* User's window */ + WINDOW *usersub; /* User's subwindow */ + ITEM **items; /* array of items */ + short nitems; /* Nr. of items in menu */ + ITEM *curitem; /* Current item */ + short toprow; /* Top row of menu */ + chtype fore; /* Selection attribute */ + chtype back; /* Nonselection attribute */ + chtype grey; /* Inactive attribute */ + unsigned char pad; /* Pad character */ + + Menu_Hook menuinit; /* User hooks */ + Menu_Hook menuterm; + Menu_Hook iteminit; + Menu_Hook itemterm; + + void *userptr; /* Pointer to menus user data */ + char *mark; /* Pointer to marker string */ + + Menu_Options opt; /* Menu options */ + unsigned short status; /* Internal state of menu */ + } +#endif /* !NCURSES_OPAQUE_MENU */ + MENU; /* Define keys */ @@ -191,92 +192,90 @@ MENU; # define MAX_COMMAND (KEY_MAX + 128) #endif - /* --------- prototypes for libmenu functions ----------------------------- */ -extern MENU_EXPORT(ITEM **) menu_items (const MENU *); -extern MENU_EXPORT(ITEM *) current_item (const MENU *); -extern MENU_EXPORT(ITEM *) new_item (const char *,const char *); - -extern MENU_EXPORT(MENU *) new_menu (ITEM **); - -extern MENU_EXPORT(Item_Options) item_opts (const ITEM *); -extern MENU_EXPORT(Menu_Options) menu_opts (const MENU *); - -extern MENU_EXPORT(Menu_Hook) item_init (const MENU *); -extern MENU_EXPORT(Menu_Hook) item_term (const MENU *); -extern MENU_EXPORT(Menu_Hook) menu_init (const MENU *); -extern MENU_EXPORT(Menu_Hook) menu_term (const MENU *); - -extern MENU_EXPORT(WINDOW *) menu_sub (const MENU *); -extern MENU_EXPORT(WINDOW *) menu_win (const MENU *); - -extern MENU_EXPORT(const char *) item_description (const ITEM *); -extern MENU_EXPORT(const char *) item_name (const ITEM *); -extern MENU_EXPORT(const char *) menu_mark (const MENU *); -extern MENU_EXPORT(const char *) menu_request_name (int); - -extern MENU_EXPORT(char *) menu_pattern (const MENU *); - -extern MENU_EXPORT(void *) menu_userptr (const MENU *); -extern MENU_EXPORT(void *) item_userptr (const ITEM *); - -extern MENU_EXPORT(chtype) menu_back (const MENU *); -extern MENU_EXPORT(chtype) menu_fore (const MENU *); -extern MENU_EXPORT(chtype) menu_grey (const MENU *); - -extern MENU_EXPORT(int) free_item (ITEM *); -extern MENU_EXPORT(int) free_menu (MENU *); -extern MENU_EXPORT(int) item_count (const MENU *); -extern MENU_EXPORT(int) item_index (const ITEM *); -extern MENU_EXPORT(int) item_opts_off (ITEM *,Item_Options); -extern MENU_EXPORT(int) item_opts_on (ITEM *,Item_Options); -extern MENU_EXPORT(int) menu_driver (MENU *,int); -extern MENU_EXPORT(int) menu_opts_off (MENU *,Menu_Options); -extern MENU_EXPORT(int) menu_opts_on (MENU *,Menu_Options); -extern MENU_EXPORT(int) menu_pad (const MENU *); -extern MENU_EXPORT(int) pos_menu_cursor (const MENU *); -extern MENU_EXPORT(int) post_menu (MENU *); -extern MENU_EXPORT(int) scale_menu (const MENU *,int *,int *); -extern MENU_EXPORT(int) set_current_item (MENU *menu,ITEM *item); -extern MENU_EXPORT(int) set_item_init (MENU *, Menu_Hook); -extern MENU_EXPORT(int) set_item_opts (ITEM *,Item_Options); -extern MENU_EXPORT(int) set_item_term (MENU *, Menu_Hook); -extern MENU_EXPORT(int) set_item_userptr (ITEM *, void *); -extern MENU_EXPORT(int) set_item_value (ITEM *,bool); -extern MENU_EXPORT(int) set_menu_back (MENU *,chtype); -extern MENU_EXPORT(int) set_menu_fore (MENU *,chtype); -extern MENU_EXPORT(int) set_menu_format (MENU *,int,int); -extern MENU_EXPORT(int) set_menu_grey (MENU *,chtype); -extern MENU_EXPORT(int) set_menu_init (MENU *, Menu_Hook); -extern MENU_EXPORT(int) set_menu_items (MENU *,ITEM **); -extern MENU_EXPORT(int) set_menu_mark (MENU *, const char *); -extern MENU_EXPORT(int) set_menu_opts (MENU *,Menu_Options); -extern MENU_EXPORT(int) set_menu_pad (MENU *,int); -extern MENU_EXPORT(int) set_menu_pattern (MENU *,const char *); -extern MENU_EXPORT(int) set_menu_sub (MENU *,WINDOW *); -extern MENU_EXPORT(int) set_menu_term (MENU *, Menu_Hook); -extern MENU_EXPORT(int) set_menu_userptr (MENU *,void *); -extern MENU_EXPORT(int) set_menu_win (MENU *,WINDOW *); -extern MENU_EXPORT(int) set_top_row (MENU *,int); -extern MENU_EXPORT(int) top_row (const MENU *); -extern MENU_EXPORT(int) unpost_menu (MENU *); -extern MENU_EXPORT(int) menu_request_by_name (const char *); -extern MENU_EXPORT(int) set_menu_spacing (MENU *,int,int,int); -extern MENU_EXPORT(int) menu_spacing (const MENU *,int *,int *,int *); - - -extern MENU_EXPORT(bool) item_value (const ITEM *); -extern MENU_EXPORT(bool) item_visible (const ITEM *); - -extern MENU_EXPORT(void) menu_format (const MENU *,int *,int *); + extern MENU_EXPORT(ITEM **) menu_items(const MENU *); + extern MENU_EXPORT(ITEM *) current_item(const MENU *); + extern MENU_EXPORT(ITEM *) new_item(const char *, const char *); + + extern MENU_EXPORT(MENU *) new_menu(ITEM **); + + extern MENU_EXPORT(Item_Options) item_opts(const ITEM *); + extern MENU_EXPORT(Menu_Options) menu_opts(const MENU *); + + extern MENU_EXPORT(Menu_Hook) item_init(const MENU *); + extern MENU_EXPORT(Menu_Hook) item_term(const MENU *); + extern MENU_EXPORT(Menu_Hook) menu_init(const MENU *); + extern MENU_EXPORT(Menu_Hook) menu_term(const MENU *); + + extern MENU_EXPORT(WINDOW *) menu_sub(const MENU *); + extern MENU_EXPORT(WINDOW *) menu_win(const MENU *); + + extern MENU_EXPORT(const char *) item_description(const ITEM *); + extern MENU_EXPORT(const char *) item_name(const ITEM *); + extern MENU_EXPORT(const char *) menu_mark(const MENU *); + extern MENU_EXPORT(const char *) menu_request_name(int); + + extern MENU_EXPORT(char *) menu_pattern(const MENU *); + + extern MENU_EXPORT(void *) menu_userptr(const MENU *); + extern MENU_EXPORT(void *) item_userptr(const ITEM *); + + extern MENU_EXPORT(chtype) menu_back(const MENU *); + extern MENU_EXPORT(chtype) menu_fore(const MENU *); + extern MENU_EXPORT(chtype) menu_grey(const MENU *); + + extern MENU_EXPORT(int) free_item(ITEM *); + extern MENU_EXPORT(int) free_menu(MENU *); + extern MENU_EXPORT(int) item_count(const MENU *); + extern MENU_EXPORT(int) item_index(const ITEM *); + extern MENU_EXPORT(int) item_opts_off(ITEM *, Item_Options); + extern MENU_EXPORT(int) item_opts_on(ITEM *, Item_Options); + extern MENU_EXPORT(int) menu_driver(MENU *, int); + extern MENU_EXPORT(int) menu_opts_off(MENU *, Menu_Options); + extern MENU_EXPORT(int) menu_opts_on(MENU *, Menu_Options); + extern MENU_EXPORT(int) menu_pad(const MENU *); + extern MENU_EXPORT(int) pos_menu_cursor(const MENU *); + extern MENU_EXPORT(int) post_menu(MENU *); + extern MENU_EXPORT(int) scale_menu(const MENU *, int *, int *); + extern MENU_EXPORT(int) set_current_item(MENU *menu, ITEM *item); + extern MENU_EXPORT(int) set_item_init(MENU *, Menu_Hook); + extern MENU_EXPORT(int) set_item_opts(ITEM *, Item_Options); + extern MENU_EXPORT(int) set_item_term(MENU *, Menu_Hook); + extern MENU_EXPORT(int) set_item_userptr(ITEM *, void *); + extern MENU_EXPORT(int) set_item_value(ITEM *, bool); + extern MENU_EXPORT(int) set_menu_back(MENU *, chtype); + extern MENU_EXPORT(int) set_menu_fore(MENU *, chtype); + extern MENU_EXPORT(int) set_menu_format(MENU *, int, int); + extern MENU_EXPORT(int) set_menu_grey(MENU *, chtype); + extern MENU_EXPORT(int) set_menu_init(MENU *, Menu_Hook); + extern MENU_EXPORT(int) set_menu_items(MENU *, ITEM **); + extern MENU_EXPORT(int) set_menu_mark(MENU *, const char *); + extern MENU_EXPORT(int) set_menu_opts(MENU *, Menu_Options); + extern MENU_EXPORT(int) set_menu_pad(MENU *, int); + extern MENU_EXPORT(int) set_menu_pattern(MENU *, const char *); + extern MENU_EXPORT(int) set_menu_sub(MENU *, WINDOW *); + extern MENU_EXPORT(int) set_menu_term(MENU *, Menu_Hook); + extern MENU_EXPORT(int) set_menu_userptr(MENU *, void *); + extern MENU_EXPORT(int) set_menu_win(MENU *, WINDOW *); + extern MENU_EXPORT(int) set_top_row(MENU *, int); + extern MENU_EXPORT(int) top_row(const MENU *); + extern MENU_EXPORT(int) unpost_menu(MENU *); + extern MENU_EXPORT(int) menu_request_by_name(const char *); + extern MENU_EXPORT(int) set_menu_spacing(MENU *, int, int, int); + extern MENU_EXPORT(int) menu_spacing(const MENU *, int *, int *, int *); + + extern MENU_EXPORT(bool) item_value(const ITEM *); + extern MENU_EXPORT(bool) item_visible(const ITEM *); + + extern MENU_EXPORT(void) menu_format(const MENU *, int *, int *); #if NCURSES_SP_FUNCS -extern MENU_EXPORT(MENU *) NCURSES_SP_NAME(new_menu) (SCREEN*, ITEM **); + extern MENU_EXPORT(MENU *) NCURSES_SP_NAME(new_menu) (SCREEN *, ITEM **); #endif #ifdef __cplusplus - } +} #endif -#endif /* ETI_MENU */ +#endif /* ETI_MENU */