Rev 95 | Blame | Last modification | View Log | RSS feed
/************************************************************************** Copyright (C) 1995 Embedded Solutions* All rights reserved** file: src\menudrv.c** purpose: Module that contains the table driven menu driver** The function that is called to do all the work is do_menu* This function requires a pointer to an array of menu drive entries* The function returns when an abort is requested.** functions* do_menu - Produce menu** programmer: David Purdie** revision date by reason* 00.0 27/01/95 DDP Tidies up the program and formatted the file***************************************************************************/#include "consts.h"#include "structs.h"#include "proto.h"/*========================================================================** Produce menu** Purpose:* This function is called to process a menu structure and display* a menu on the screen.** Parameters:* header Menu display title* prompt Operator prompt* table Drive table structure*** Returns:* Nothing**========================================================================*///void do_menu( const char *header, const char *prompt, menu_table * table )//{// menu_table *curr; /* Current entry pointer */// int i;// char c;// int alldone = FALSE;// int found;// /*// * Clear the screen and display the menu// */// do// {// abort_flag = FALSE; /* Reset global abort flag */// curr = table; /* init the current pointer */// i = 2; /* init cursor position */// clearscreen();// cur( 10, i );// printf( "%s", header ); /* display header */// i += 2;// while( curr->key )// {// cur( 10, i );// //console_prompt ( curr->key );// printf( " %s", curr->prompt );// i++;// curr++;// }// /*// * Prompt the operator to select an item// */// found = FALSE;// while( !found )// {// cur( 0, 2 + i );// printf( "%s:", prompt );// //console_clreol();// c = toupper( getinp() );// if( abort_flag )// {// alldone = TRUE;// break;// }// curr = table;// while( curr->key )// {// if( toupper( ( int ) curr->key ) == c )// {// found = TRUE;// /*// * Correct operation located// */// if( curr->doit == NULL )// {// alldone = TRUE;// break;// }// else// {// clearscreen();// ( void ) ( *curr->doit ) ();// break;// }// }// curr++;// }// if( !found )// beep(); /* operator */// }// } while( !alldone );//}/********************************* EOF ***********************************/