/*--------------------------------------------------------------------
 * FICHERO:  Vtrz.c
 * OBJETIVO: Probar el objeto Trozo
 * AUTOR:    Pedro Reina
 * FECHA:    L.7.8.1995
 *------------------------------------------------------------------*/

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

#include "Trozo.h"

/*--------------------------------------------------------------------
 * Variables globales
 *------------------------------------------------------------------*/

trozo Trozo;

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

void P_Trz_Crea();
void P_Trz_Restituye();
void P_Trz_Destruye();

/*--------------------------------------------------------------------
 * 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 Trozo" );
    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. Trz_Crea()" );
    Pan_PonTexto (Fil++,Col,"4. Trz_Restituye()" );
    Pan_PonTexto (Fil++,Col,"5. Trz_Destruye()" );
    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_Trz_Crea();       break;
      case 4:   P_Trz_Restituye();  break;
      case 5:   P_Trz_Destruye();   break;
      }
    }
  Pan_Cierra();
  }

/*--------------------------------------------------------------------
 * Funcin P_Trz_Crea()
 *------------------------------------------------------------------*/
void P_Trz_Crea()
  {
  char *Ejemplo = "0123456789";

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

  if ( Trozo )  { Pan_PonTexto (2,2,"Ya ha sido creado"); }
  else
    {
    Pan_Color (BLANCO,NEGRO);
    Pan_PonTexto (2,2,Ejemplo);
    Pan_Color (ROJO,VERDE);
    Pan_PonTexto (3,2,Ejemplo);
    Pan_Color (NEGRO,BLANCO);
    Pan_PonTexto (4,2,Ejemplo);
    Pan_Color (VERDE,ROJO);
    Pan_PonTexto (5,2,Ejemplo);

    Pan_Color (NEGRO,BLANCO);

    if ( ! (Trozo = Trz_Crea (2,2,5,11)) )
      { Pan_PonTexto (7,2,"No se puede crear"); }
    }

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

/*--------------------------------------------------------------------
 * Funcin P_Trz_Restituye()
 *------------------------------------------------------------------*/
void P_Trz_Restituye()
  {
  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (0,0,"Prueba de Trz_Restituye()");

  if ( !Trozo )  { Pan_PonTexto (2,2,"No se ha creado"); }
  else
    {
    if ( ! Trz_Restituye (Trozo,2,2) )
      { Pan_PonTexto (2,2,"No se puede restituir"); }
    if ( ! Trz_Restituye (Trozo,6,25) )
      { Pan_PonTexto (2,2,"No se puede restituir"); }
    if ( ! Trz_Restituye (Trozo,7,43) )
      { Pan_PonTexto (2,2,"No se puede restituir"); }
    if ( ! Trz_Restituye (Trozo,8,65) )
      { Pan_PonTexto (2,2,"No se puede restituir"); }
    }

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

/*--------------------------------------------------------------------
 * Funcin P_Trz_Destruye()
 *------------------------------------------------------------------*/
void P_Trz_Destruye()
  {
  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (0,0,"Prueba de Trz_Destruye()");

  if ( !Trozo )  { Pan_PonTexto (2,2,"No se ha creado"); }
  else
    {
    Trz_Destruye (Trozo);
    Trozo = NIL;
    }

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