/***************************************************************************/
/*                Demo Programm zum Window Tool				   */
/*      								   */
/*         Geschrieben und Compiliert mit Turbo C 2.0			   */
/*                                                                         */
/*     (c) 1990 Bernhard M„rz & Verlag Simon DISC_EDV_REPORT		   */
/*									   */
/***************************************************************************/

#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <dos.h>
#include "win2_1.h"

char *mainnote="<ALT> + F/T/P/D/H                                      ESC = Quit";

main()
{
 winreset();
 background(0,23,11);
 leiste(-1);
 note(mainnote);
 meldung();
 key();
 getch();
}
/***************************************************************************/
leiste(int wahl)
{
 char *kopftext[]={"File",
		   "Transfer",
		   "Parameter",
		   "Drucker",
		   "Hilfe",
		   '\0'
		  };
 head(wahl,1,15,7,5,14,kopftext);
}
/***************************************************************************/
key()			/* Tastenabfage */
{
 int asc;

  for(;;)
   {
   if(kbhit() != 0)
     {
      asc=getch();
      abfrage(asc);
      cursoroff();
     }
   else;
   }
}

abfrage(int a)
{
int x,y;

 switch(a)
  {
   case  0: { tasten();   break;              }  /* Sondertaste gedrckt  */
   case 27: { winreset();cursoron(); exit(0); }  /* Escape Taste gedrckt */
   default: { falschtast(); note(mainnote);   }
  }
}

tasten()
{        		/* Sondertasten wie F-Tasten;Cursor;Bild... */
 int a,x,y;
 a=getch();

  if(a==77)					/* Cursor right */
   { x=wherex();y=wherey();gotoxy((++x),y);}
  else if(a==75)				/* Cursor left */
   { x=wherex();y=wherey();gotoxy((--x),y);}
  else if(a==72)				/* Cursor up */
   { x=wherex();y=wherey();gotoxy(x,(--y));}
  else if(a==80)				/* Cursor down */
   { x=wherex();y=wherey();gotoxy(x,(++y));}
  else if(a==33)				/* File Fenster */
   { file(); }
  else if(a==20)				/* Transfer Fenster */
   { transfer(); }
  else if(a==25)   				/* Parameter Fenster */
   { parameter(); }
  else if(a==32)				/* Drucker Fenster */
   { drucker(); }
  else if(a==35)				/* Hilfe Fenster */
   { hilfe(); }
}
/***************************************************************************/
file()             		/* File Men */
{
 int auswahl,xpos,ypos,anfpos;
 char *filetext[] = {"Laden     ",
		     "Speichern ",
		     "Neues File",
		     "Ende      ",
		     '\0',
		    };

 anfpos=leiste(1);
 xpos=wherex(); ypos=wherey();
 cursoroff();
 note("File Men        Cursor up_down/left_right   CR to select   ESC to exit");
 auswahl=fenster(anfpos,4,1,15,5,filetext);
 leiste(0);
 note(mainnote);
 cursoron();
 gotoxy(xpos,ypos);

  switch(auswahl)
   {
    case  0: { return(0); 	            }   /* Auswahl abgebrochen*/
    case  1: { info(); return(0);           }   /* 1. Menpunkt       */
    case  2: { info(); return(0);           }   /* 2. Menpunkt       */
    case  3: { info(); return(0);           }   /* 3. Menpunkt       */
    case  4: { winreset();cursoron();exit(0);}	/* Ende ausgew„hlt    */
    case 75: { hilfe();return(0);           }   /* Cursor links       */
    case 77: { transfer();return(0);        }   /* Cursor rechts      */
    default: { falschtast(); note(mainnote);}   /* Auswahl ungltig   */
   }
}
/***************************************************************************/
transfer()			/* Transfer Men */
{
 int auswahl,xpos,ypos,anfpos;
 char *transfertext[] = {"Daten senden   ",
			 "Daten empfangen",
			 "Texte senden   ",
			 "Texte empfangen",
			 "Modem EIN      ",
			 "Modem AUS      ",
			 '\0',
			};

 anfpos=leiste(2);
 xpos=wherex(); ypos=wherey();
 cursoroff();
 note("Transfer Men    Cursor up_down/left_right   CR to select   ESC to exit");
 auswahl=fenster(anfpos,4,1,15,5,transfertext);
 leiste(0);
 note(mainnote);
 cursoron();
 gotoxy(xpos,ypos);

  switch(auswahl)
   {
    case  0: { return(0); 	            }
    case  1: { info(); return(0);           }   /* 1. Menpunkt       */
    case  2: { info(); return(0);           }   /* 2. Menpunkt       */
    case  3: { info(); return(0);           }   /* 3. Menpunkt       */
    case  4: { info(); return(0);           }   /* 4. Menpunkt       */
    case  5: { info(); return(0);           }   /* 5. Menpunkt       */
    case  6: { info(); return(0);           }   /* 6. Menpunkt       */
    case 75: { file();return(0);            }
    case 77: { parameter();return(0);       }
    default: { falschtast(); note(mainnote);}
   }
}
/***************************************************************************/
parameter()             	/* Parameter Men */
{
 int auswahl,xpos,ypos,anfpos;
 char *parametertext[] = {"Baudrate         ",
			  "Datenformat      ",
			  "Terminalemulation",
			  "COM Schnittstelle",
			  '\0',
			 };

 anfpos=leiste(3);
 xpos=wherex(); ypos=wherey();
 cursoroff();
 note("Parameter Men   Cursor up_down/left_right   CR to select   ESC to exit");
 auswahl=fenster(anfpos,4,1,15,5,parametertext);
 leiste(0);
 note(mainnote);
 cursoron();
 gotoxy(xpos,ypos);

  switch(auswahl)
   {
    case  0: { return(0); 	     }
    case 75: { transfer();return(0); }
    case 77: { drucker();return(0);  }
    default: { falschtast(); note(mainnote);	     }
   }
}
/***************************************************************************/
drucker()               	/* Drucker Men */
{
 int auswahl,xpos,ypos,anfpos;
 char *druckertext[] = {"Drucker EIN",
			"Drucker AUS",
			'\0',
		       };

 anfpos=leiste(4);
 xpos=wherex(); ypos=wherey();
 cursoroff();
 note("Drucker Men     Cursor up_down/left_right   CR to select   ESC to exit");
 auswahl=fenster(anfpos,4,1,15,5,druckertext);
 leiste(0);
 note(mainnote);
 cursoron();
 gotoxy(xpos,ypos);

  switch(auswahl)
   {
    case  0: { return(0); 	            }
    case 75: { parameter();return(0);       }
    case 77: { hilfe();return(0);           }
    default: { falschtast(); note(mainnote);}
   }
}
/***************************************************************************/
hilfe()
{
 int auswahl,xpos,ypos,anfpos;
 char *hilfetext[] = {"File      Men",
		      "Transfer  Men",
		      "Parameter Men",
		      "Drucker   Men",
		      '\0',
		     };

 anfpos=leiste(5);
 xpos=wherex(); ypos=wherey();
 cursoroff();
 note("Hilfe Men       Cursor up_down/left_right   CR to select   ESC to exit");
 auswahl=fenster(anfpos,4,1,15,5,hilfetext);
 leiste(0);
 note(mainnote);
 cursoron();
 gotoxy(xpos,ypos);

  switch(auswahl)
   {
    case  0: { return(0); 	            }
    case 75: { drucker();return(0);         }
    case 77: { file();return(0);            }
    default: { falschtast(); note(mainnote);}
   }
}
/***************************************************************************/
meldung()
{
 void *alt;

 alt=rahmen(20,10,60,20,7,4);

 gotoxy(5,2); cputs("Demo-Programm zum Window Tool");
 gotoxy(5,4); cputs("von  Bernhard M„rz");
 gotoxy(5,8); cputs("fr  D    E   R");
 gotoxy(5,9); cputs("     DISC-EDV-REPORT");

 cursoroff();

 sleep(5);

 fensteralt(20,10,60,20,alt);
}
/***************************************************************************/
info()
{
 void *alt;

 alt=brahmen(10,8,60,14,4,14," Infofenster ");

 gotoxy(3,3); cputs("Hier k”nnen Ihre eigenen");
 gotoxy(3,5); cputs("Funktionen aufgerufen werden");

 cursoroff();

 esc();

 fensteralt(10,8,60,14,alt);
}
/***************************************************************************/
