/*--------------------------------------------------------------------
 * FICHERO:  Vcdr.c
 * OBJETIVO: Probar el objeto Cuadro
 * AUTOR:    Pedro Reina
 * FECHA:    S.15.4.1995
 *------------------------------------------------------------------*/

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

#include "Cuadro.h"

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

void P_Cdr_Linea();
void P_Cdr_Dibuja();
void P_Cdr_Caja();
void P_Cdr_Construye();

/*--------------------------------------------------------------------
 * 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 Cuadro" );
    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. Cdr_Linea()" );
    Pan_PonTexto (Fil++,Col,"4. Cdr_Dibuja()" );
    Pan_PonTexto (Fil++,Col,"5. Cdr_Caja()" );
    Pan_PonTexto (Fil++,Col,"6. Cdr_Construye()" );
    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_Cdr_Linea();           break;
      case 4:   P_Cdr_Dibuja();          break;
      case 5:   P_Cdr_Caja();            break;
      case 6:   P_Cdr_Construye();       break;
      }
    }
  Pan_Cierra();
  }

/*--------------------------------------------------------------------
 * Funcin P_Cdr_Linea()
 *------------------------------------------------------------------*/
void P_Cdr_Linea()
  {
  Pan_Limpia();

  Cdr_Linea (CDR_SIMPLE,0,1,0,10,NEGRO,VERDE);
  Cdr_Linea (CDR_DOBLE ,0,11,0,20,NEGRO,VERDE);

  Cdr_Linea (CDR_SIMPLE,0,21,0,30,BLANCO,ROJO);
  Cdr_Linea (CDR_DOBLE ,0,31,0,40,BLANCO,ROJO);

  Cdr_Linea (CDR_SIMPLE,0,41,0,50,ROJO,BLANCO);
  Cdr_Linea (CDR_DOBLE ,0,51,0,60,ROJO,BLANCO);

  Cdr_Linea (CDR_SIMPLE,0,61,0,70,BLANCO,NEGRO);
  Cdr_Linea (CDR_DOBLE ,0,71,0,79,BLANCO,NEGRO);

  /* no se dibuja nada con esta orden */
  Cdr_Linea (CDR_DOBLE,18,5,23,7,ROJO,VERDE);

  Cdr_Linea (CDR_SIMPLE, 3,10,11,10,ROJO,VERDE);
  Cdr_Linea (CDR_DOBLE ,12,10,20,10,ROJO,VERDE);

  Cdr_Linea (CDR_SIMPLE, 3,30,11,30,VERDE,ROJO);
  Cdr_Linea (CDR_DOBLE ,12,30,20,30,VERDE,ROJO);

  Cdr_Linea (CDR_SIMPLE, 3,50,11,50,ROJO,BLANCO);
  Cdr_Linea (CDR_DOBLE ,12,50,20,50,ROJO,BLANCO);

  Cdr_Linea (CDR_SIMPLE, 3,70,11,70,BLANCO,NEGRO);
  Cdr_Linea (CDR_DOBLE ,12,70,20,70,BLANCO,NEGRO);

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

/*--------------------------------------------------------------------
 * Funcin P_Cdr_Dibuja()
 *------------------------------------------------------------------*/
void P_Cdr_Dibuja()
  {
  Pan_Limpia();
  Pan_Cursor ( 4,0 );
  Pan_Color (NEGRO,BLANCO);
  Pan_Texto ( "0....:....1....:....2....:....3....:...." );
  Pan_Texto ( "4....:....5....:....6....:....7....:...." );

  Cdr_Dibuja (CDR_SIMPLE,CDR_SIMPLE,2,1,2,1,5,0,NEGRO,BLANCO);
  Cdr_Dibuja (CDR_DOBLE ,CDR_DOBLE ,5,2,1,2,5,20,BLANCO,ROJO);
  Cdr_Dibuja (CDR_SIMPLE,CDR_DOBLE ,3,1,3,1,5,40,VERDE,NEGRO);
  Cdr_Dibuja (CDR_DOBLE ,CDR_SIMPLE,3,1,3,1,5,60,ROJO,NEGRO);

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

/*--------------------------------------------------------------------
 * Funcin P_Cdr_Caja()
 *------------------------------------------------------------------*/
void P_Cdr_Caja()
  {
  Pan_Limpia();

  Cdr_Caja (CDR_SIMPLE,6,6,10,73,BLANCO,NEGRO);
  Cdr_Caja (CDR_DOBLE ,13,11,17,75,NEGRO,BLANCO);

  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (23,0,"Pulsa ENTER para seguir: ");
  getchar();
  }
  
/*--------------------------------------------------------------------
 * Funcin P_Cdr_Construye()
 *------------------------------------------------------------------*/
void P_Cdr_Construye()
  {
  lista    Cuadro, L;
  contador i;
  
  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto ( 0, 0, "Prueba de Cdr_Construye()" );
  Pan_PonTexto ( 1, 0, "-------------------------" );
  
  Cuadro = Cdr_Construye (CDR_DOBLE,CDR_SIMPLE,5,2,4,4);

  for ( L=Cuadro , i=4 ; L ; L=Lis_Siguiente(L) , i++ )
    { Pan_PonTexto (i,10,Lis_Contenido(L)); }
    
  Lis_Destruye (Cuadro);  

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