/*--------------------------------------------------------------------
 * FICHERO:  MenAgrAt.c
 * OBJETIVO: Definir la funcin privada Men_AgregaAtajo()
 * AUTOR:    Pedro Reina
 * FECHA:    D.21.5.1995
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * Ficheros de cabecera
 *------------------------------------------------------------------*/

#include "Menu.h"

/*--------------------------------------------------------------------
 * Definicin de funciones
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * FUNCION:  Men_AgregaAtajo()
 * OBJETIVO: Aadir a las teclas que sirven para mover la opcin resaltada
 *           los atajos que permiten seleccionar rpidamente una opcin
 * ENTRADAS: El men y un vector de teclas que sirven para mover,
 *           terminado en NIL
 * SALIDAS:  Un vector de teclas, terminado en NIL, que incluye las teclas
 *           dadas como entrada y los atajos.
 * EJEMPLO:  Men_AgregaAtajo ( MenuPrincipal, TeclaMover )
 * NOTAS:    1. El vector hay que destruirlo con Mem_Destruye() cuando
 *              no sea necesario
 *           2. El men debe ser de tipo MEN_VECTOR
 *------------------------------------------------------------------*/
tecla *Men_AgregaAtajo (Menu, VectorTecla)
menu  Menu;
tecla VectorTecla[];
  {
  entero Total=0, i, j=0;
  tecla *Respuesta;

  for ( i=0 ; VectorTecla[i] ; i++ )
    { Total++; }

  for ( i=1 ; i<=Men_Total(Menu) ; i++ )
    {
    if ( Men_TextoVector(Menu,i)[Men_Lugar(Menu,i)] != ' ' )
      { Total += 2; }
    }
                  
  Respuesta = (tecla *) Mem_Crea (Total * sizeof(tecla));

  for ( i=0 ; VectorTecla[i] ; i++ )
    { Respuesta[j++] = VectorTecla[i]; }
    
  for ( i=1 ; i<=Men_Total(Menu) ; i++ )
    {
    if ( Men_TextoVector(Menu,i)[Men_Lugar(Menu,i)] != ' ' )
      { 
      Respuesta[j++] = Tec_Minus ((tecla) 
                        (Men_TextoVector(Menu,i)[Men_Lugar(Menu,i)]));
      Respuesta[j++] = Tec_Mayus ((tecla) 
                        (Men_TextoVector(Menu,i)[Men_Lugar(Menu,i)]));
      }                                                             
    }
  Respuesta[j] = NIL;
     
  return ( Respuesta );  
  }                          
