First commit 11/11/1991
This commit is contained in:
116
MENUS.CPP
Normal file
116
MENUS.CPP
Normal file
@ -0,0 +1,116 @@
|
||||
/**************************************************************************\
|
||||
|* *|
|
||||
|* Menus *|
|
||||
|* *|
|
||||
|* Descripci<63>n: *|
|
||||
|* M<>dulo encargado de generar menus, una vez se le pasa *|
|
||||
|* el puntero a la estructura definida. *|
|
||||
|* *|
|
||||
|* Fecha: 21-07-96 14.34 / 18.00 *|
|
||||
\**************************************************************************/
|
||||
|
||||
#define CONTRAIDO 0
|
||||
#define DESPLEGADO 1
|
||||
|
||||
typedef struct menu
|
||||
{
|
||||
char NombreTopico[80];
|
||||
char TExplicacion[80];
|
||||
char NSubTopicos;
|
||||
char SubTopicos[40][15];
|
||||
char Explicacion[80][15];
|
||||
|
||||
} GENERAR_MENU;
|
||||
|
||||
|
||||
// Archivo Gestion de: Hermanos Hermanas Listados
|
||||
// | | | |
|
||||
// |Configurar |Altas |Altas |Votantes
|
||||
// |Mantenimiento |Bajas |Bajas |Papeletas
|
||||
// | |Consultas |Consultas |Hermanos
|
||||
// |Salir | | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 1<> byte TOPICO 2<> byte SUBTOPICO
|
||||
int GeneraMenu( GENERAR_MENU *mi_menu, char Topicos )
|
||||
{
|
||||
int Topico=0, SubTopico=0;
|
||||
char DespCont = CONTRAIDO;
|
||||
char Ok = 0;
|
||||
|
||||
ImprimeMenuContraido( mi_menu );
|
||||
do
|
||||
{
|
||||
|
||||
while( !kbhit() );
|
||||
switch ( getch() )
|
||||
{
|
||||
// Selecciona algo
|
||||
case 27:
|
||||
if ( DespCont == CONTRAIDO )
|
||||
ImprimeMenuDesplegado( mi_menu[Topico] );
|
||||
else
|
||||
return ( ( (Topico+1) <<8)+(SubTopico+1) );
|
||||
break;
|
||||
// Escape
|
||||
case 13:
|
||||
if ( DespCont != CONTRAIDO )
|
||||
ContraeMenuDesplegado();
|
||||
break;
|
||||
case 0:
|
||||
switch( getch() )
|
||||
{
|
||||
// Derecha
|
||||
case
|
||||
if ( DespCont == CONTRAIDO )
|
||||
{
|
||||
Topico = (Topico++)%Topicos;
|
||||
SeleccionaMenu( Topico );
|
||||
} else {
|
||||
ContraeMenuDesplegado();
|
||||
Topico = (Topico++)%Topicos;
|
||||
ImprimeMenuDesplegado( mi_menu[Topico] );
|
||||
}
|
||||
break;
|
||||
// Izquierda
|
||||
case
|
||||
if ( DespCont == CONTRAIDO )
|
||||
{
|
||||
Topico --; if ( Topico < 0 ) Topico = Topicos-1
|
||||
SeleccionaMenu( mi_menu, Topico );
|
||||
} else {
|
||||
ContraeMenuDesplegado();
|
||||
Topico --; if ( Topico < 0 ) Topico = Topicos-1
|
||||
ImprimeMenuDesplegado( mi_menu[Topico] );
|
||||
}
|
||||
break;
|
||||
// Arriba
|
||||
case
|
||||
if ( DespCont != CONTRAIDO )
|
||||
{
|
||||
SubTopico--; if ( SubTopico < 0 ) SubTopico = NSubTopicos - 1;
|
||||
SeleccionaSubTopico( mi_menu, SubTopico );
|
||||
}
|
||||
break;
|
||||
// Abajo
|
||||
case
|
||||
if ( DespCont == CONTRAIDO )
|
||||
ImprimeMenuDesplegado( mi_menu[Topico] );
|
||||
else
|
||||
{
|
||||
SubTopico = ( SubTopico ++ ) % NSubTopicos;
|
||||
SeleccionaSubTopico( mi_menu, SubTopico );
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}while( 1 );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user