m_hook.c revision 1.1
1 2/*************************************************************************** 3* COPYRIGHT NOTICE * 4**************************************************************************** 5* ncurses is copyright (C) 1992-1995 * 6* Zeyd M. Ben-Halim * 7* zmbenhal@netcom.com * 8* Eric S. Raymond * 9* esr@snark.thyrsus.com * 10* * 11* Permission is hereby granted to reproduce and distribute ncurses * 12* by any means and for any fee, whether alone or as part of a * 13* larger distribution, in source or in binary form, PROVIDED * 14* this notice is included with any such distribution, and is not * 15* removed from any of its header files. Mention of ncurses in any * 16* applications linked with it is highly appreciated. * 17* * 18* ncurses comes AS IS with no warranty, implied or expressed. * 19* * 20***************************************************************************/ 21 22/*************************************************************************** 23* Module menu_hook * 24* Assign application specific routines for automatic invocation by menus * 25***************************************************************************/ 26 27#include "menu.priv.h" 28 29/* "Template" macro to generate function to set application specific hook */ 30#define GEN_HOOK_SET_FUNCTION( typ, name ) \ 31int set_ ## typ ## _ ## name (MENU *menu, Menu_Hook func )\ 32{\ 33 (Normalize_Menu(menu) -> typ ## name = func );\ 34 RETURN(E_OK);\ 35} 36 37/* "Template" macro to generate function to get application specific hook */ 38#define GEN_HOOK_GET_FUNCTION( typ, name ) \ 39Menu_Hook typ ## _ ## name ( const MENU *menu )\ 40{\ 41 return (Normalize_Menu(menu) -> typ ## name);\ 42} 43 44/*--------------------------------------------------------------------------- 45| Facility : libnmenu 46| Function : int set_menu_init(MENU *menu, void (*f)(MENU *)) 47| 48| Description : Set user-exit which is called when menu is posted 49| or just after the top row changes. 50| 51| Return Values : E_OK - success 52+--------------------------------------------------------------------------*/ 53GEN_HOOK_SET_FUNCTION( menu, init ) 54 55/*--------------------------------------------------------------------------- 56| Facility : libnmenu 57| Function : void (*)(MENU *) menu_init(const MENU *menu) 58| 59| Description : Return address of user-exit function which is called 60| when a menu is posted or just after the top row 61| changes. 62| 63| Return Values : Menu init function address or NULL 64+--------------------------------------------------------------------------*/ 65GEN_HOOK_GET_FUNCTION( menu, init ) 66 67/*--------------------------------------------------------------------------- 68| Facility : libnmenu 69| Function : int set_menu_term (MENU *menu, void (*f)(MENU *)) 70| 71| Description : Set user-exit which is called when menu is unposted 72| or just before the top row changes. 73| 74| Return Values : E_OK - success 75+--------------------------------------------------------------------------*/ 76GEN_HOOK_SET_FUNCTION( menu, term ) 77 78/*--------------------------------------------------------------------------- 79| Facility : libnmenu 80| Function : void (*)(MENU *) menu_term(const MENU *menu) 81| 82| Description : Return address of user-exit function which is called 83| when a menu is unposted or just before the top row 84| changes. 85| 86| Return Values : Menu finalization function address or NULL 87+--------------------------------------------------------------------------*/ 88GEN_HOOK_GET_FUNCTION( menu, term ) 89 90/*--------------------------------------------------------------------------- 91| Facility : libnmenu 92| Function : int set_item_init (MENU *menu, void (*f)(MENU *)) 93| 94| Description : Set user-exit which is called when menu is posted 95| or just after the current item changes. 96| 97| Return Values : E_OK - success 98+--------------------------------------------------------------------------*/ 99GEN_HOOK_SET_FUNCTION( item, init ) 100 101/*--------------------------------------------------------------------------- 102| Facility : libnmenu 103| Function : void (*)(MENU *) item_init (const MENU *menu) 104| 105| Description : Return address of user-exit function which is called 106| when a menu is posted or just after the current item 107| changes. 108| 109| Return Values : Item init function address or NULL 110+--------------------------------------------------------------------------*/ 111GEN_HOOK_GET_FUNCTION( item, init ) 112 113/*--------------------------------------------------------------------------- 114| Facility : libnmenu 115| Function : int set_item_term (MENU *menu, void (*f)(MENU *)) 116| 117| Description : Set user-exit which is called when menu is unposted 118| or just before the current item changes. 119| 120| Return Values : E_OK - success 121+--------------------------------------------------------------------------*/ 122GEN_HOOK_SET_FUNCTION( item, term ) 123 124/*--------------------------------------------------------------------------- 125| Facility : libnmenu 126| Function : void (*)(MENU *) item_init (const MENU *menu) 127| 128| Description : Return address of user-exit function which is called 129| when a menu is unposted or just before the current item 130| changes. 131| 132| Return Values : Item finalization function address or NULL 133+--------------------------------------------------------------------------*/ 134GEN_HOOK_GET_FUNCTION( item, term ) 135 136/* m_hook.c ends here */ 137