/*************************\
 |*                         *|
 |* Datos sobre los Botones *|
 |*                         *|
  \*************************/
 typedef struct
 {
   int Left, Up, Right, Down;
   unsigned char Cdf, Cb1,  Cb2;
            char Ab,  Pb;
   unsigned char Isc, Sc;
 } Make_Boton;


  /*************************\
 |*                         *|
 |*     Clase Make_Boton    *|
 |*                         *|
  \*************************/

  class MBoton
  {
    public:

      Make_Boton far *Botones;		 // Puntero a la estructura MBoton
      int XRaton, YRaton;                // Posicion del raton

      char cError[80];                   // Descripcion del error lError
      char TruePush;                     // Control de Presi¢n Real


            MBoton();                    // Constructor de Clase
           ~MBoton();                    // Destructor de Clase


      int  CargarObjetos( char *file );  // Lee los objetos del fichero dado
      void DespliegaDatos( void );       // Despliega los datos leidos antes
                                         // Imprime la Sec. de botones cargados
      void ImprimeSecuencia( int Secuencia );
                                         // Lee y muestra la secuencia SecMostrar
      int  MuestraEstaticos( char *file, int SecMostrar );
                                         // Comprueba la secuencia dada
      int  CompruebaSecuencia( int Secuencia, int (far *UserPointer)( int *Xraton, int *Yraton ) );
                                         // Recomprueba la secuencia dada
      int  ReComprueba_Secuencia( int Secuencia );

                                         // Imprime los bordes de un solo color
      void ImprimeBordes( int Secuencia, int Boton, int Color );

      void Error( int lError );          // Carga en cError, lError



    private:

      int  cError;                       // C¢digo de error interno
      char NSecuencias;                  // N£mero de secuencias
      int  *NBSecuencia;                 // N£mero de botones de cada secuencia
      void far *FBoton;                  // Fondo del boton (Presi¢n Real)
                                         // Imprime Bot_Imp, rellenandolo segun D_Bord
      void ImprimeBoton( int D_Bord, Make_Boton Bot_Imp );
                                         // Deprime o reimprime el boton
      void DeprimeBoton( int DepImp, Make_Boton DepBot );
                                         // Puntero para recomprobar secuencias
      int  ReCmpPointer( int *Xraton, int *Yraton );
                                         // Obtienen el comienzo de la secuencia
      int  PrincipioSecuencia( int Secuencia );
                                         // Lee un n£mero del fichero handle
      long ObtenNumero( FILE *handle, char *ch );

  };