/*--------------------------------------------------------------------
 * FICHERO:  Vreg.c
 * OBJETIVO: Probar el objeto Regin
 * AUTOR:    Pedro Reina
 * FECHA:    L.17.4.1995
 *------------------------------------------------------------------*/

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

#include "Region.h"

/*--------------------------------------------------------------------
 * Declaracin de funciones
 *------------------------------------------------------------------*/

void P_Reg_Crea();
void P_Reg_Color();
void P_Reg_TextoCentrado();
void P_Reg_Lee();

/*--------------------------------------------------------------------
 * Programa principal
 *------------------------------------------------------------------*/
void main()
  {
  int Opcion, Sigue=1;
  contador Fil, Col;

  Pan_Define (PAN_TEXTO);
  while ( Sigue )
    {
    Pan_Limpia();
    Pan_Color (NEGRO,BLANCO);
    Fil = 0, Col = 3;
    Pan_PonTexto (Fil++,Col,"Prueba del objeto Regin" );
    Pan_PonTexto (Fil++,Col,"========================" );
    Fil++;
    Pan_PonTexto (Fil++,Col,"0. Fin del programa" );
    Pan_PonTexto (Fil++,Col,"1. Paso a grfico" );
    Pan_PonTexto (Fil++,Col,"2. Paso a texto" );
    Pan_PonTexto (Fil++,Col,"3. Reg_Crea()" );
    Pan_PonTexto (Fil++,Col,"4. Reg_Color(), ..." );
    Pan_PonTexto (Fil++,Col,"5. Reg_TextoCentrado()" );
    Pan_PonTexto (Fil++,Col,"6. Reg_Lee()" );
    Fil++;
    Pan_PonTexto (Fil++,Col,"Introduce nmero de opcin: " );
    scanf ( "%d", &Opcion );
    getchar();

    switch ( Opcion )
      {
      case 0:   Sigue = 0;               break;
      case 1:   Pan_Cierra();
                Pan_Define (PAN_GRAFICO);
                break;
      case 2:   Pan_Cierra();
                Pan_Define (PAN_TEXTO);
                break;
      case 3:   P_Reg_Crea();          break;
      case 4:   P_Reg_Color();         break;
      case 5:   P_Reg_TextoCentrado(); break;
      case 6:   P_Reg_Lee();           break;
      }
    }
  Pan_Cierra();
  }

/*--------------------------------------------------------------------
 * Funcin P_Reg_Crea()
 *------------------------------------------------------------------*/
void P_Reg_Crea()
  {
  region Region;

  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (0,0,"Prueba de Reg_Crea()");

  if ( Region = Reg_Crea (2,10,16,70) )
    {
    Reg_Limpia (Region, BLANCO);
    Reg_LimpiaInterior (Region, VERDE);

    Pan_Color (NEGRO,BLANCO);
    Pan_PonTexto (4,14,"Parmetros de creacin");
    Pan_PonEntero (6,14,Reg_FilSup(Region),1);
    Pan_PonEntero (7,14,Reg_ColIzq(Region),1);
    Pan_PonEntero (8,14,Reg_FilInf(Region),1);
    Pan_PonEntero (9,14,Reg_ColDer(Region),1);

    Reg_Destruye (Region);
    }

  else
    { Pan_PonTexto (2,2,"No se puede crear la regin"); }

  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (23,0,"Pulsa ENTER para seguir: ");
  getchar();
  }

/*--------------------------------------------------------------------
 * Funcin P_Reg_Color()
 *------------------------------------------------------------------*/
void P_Reg_Color()
  {
  region Region;

  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (0,0,"Prueba de Reg_Color(), etc");

  if ( Region = Reg_Crea (2,10,16,70) )
    {
    Reg_Borde (Region, CDR_SIMPLE, BLANCO, ROJO);

    Reg_Color (Region, NEGRO, BLANCO);
    Reg_PonTexto (Region, 1, 1, "Texto de prueba");
    Reg_PonCar (Region, 2, 1, '*');
    Reg_Color (Region, ROJO, NEGRO);
    Reg_PonEntero (Region, 3, 1, 54, 4);
    Reg_PonReal (Region, 4, 1, 2.24, 6, 2);

    Reg_Destruye (Region);
    }

  else
    { Pan_PonTexto (2,2,"No se puede crear la regin"); }

  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (23,0,"Pulsa ENTER para seguir: ");
  getchar();
  }

/*--------------------------------------------------------------------
 * Funcin P_Reg_TextoCentrado()
 *------------------------------------------------------------------*/
void P_Reg_TextoCentrado()
  {
  region Region;

  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (0,0,"Prueba de Reg_TextoCentrado()");

  if ( Region = Reg_Crea (2,10,16,70) )
    {
    Reg_Borde (Region, CDR_DOBLE, NEGRO, ROJO);

    Reg_Color (Region, BLANCO, NEGRO);
    Reg_TextoCentrado (Region, "Texto centrado", 3);
    Reg_TextoCentrado (Region, " - o O o - ", 5);

    Reg_Destruye (Region);
    }

  else
    { Pan_PonTexto (2,2,"No se puede crear la regin"); }

  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (23,0,"Pulsa ENTER para seguir: ");
  getchar();
  }

/*--------------------------------------------------------------------
 * Funcin P_Reg_Lee()
 *------------------------------------------------------------------*/
void P_Reg_Lee()
  {
  region Region;
  octeto i, j;

  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (0,0,"Prueba de Reg_Lee() y Reg_Escribe()");

  Pan_Color (ROJO,NEGRO);
  for ( i=2  ; i<17 ; i++ ) {
  for ( j=10 ; j<71 ; j++ ) {
    Pan_PonCar (i,j,'*');
    }}

  if ( Region = Reg_Crea (4,12,14,68) )
    {
    Reg_Lee (Region);
    Reg_Borde (Region, CDR_DOBLE, BLANCO, VERDE);
    Reg_TextoCentrado (Region, "Prueba de tapado", 5);

    Pan_Color (NEGRO,BLANCO);
    Pan_PonTexto (23,0,"Pulsa ENTER para seguir: ");
    getchar();

    Reg_Escribe (Region);
    Reg_Destruye (Region);
    }

  else
    { Pan_PonTexto (2,2,"No se puede crear la regin"); }

  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (23,0,"Pulsa ENTER para seguir: ");
  getchar();
  }

