home *** CD-ROM | disk | FTP | other *** search
- /* DIAGOPT.C - Modul mit den Optionen für das Diagrammgrafik
- * -Beispielprogramm
- */
-
- #include <stdio.h>
- #include <string.h>
- #include <conio.h>
- #include <graph.h>
- #include <pgchart.h>
- #include "diagdemo.h"
-
-
- /* Strukturen für System-Konfiguration und Diagrammumgebung. */
- extern struct videoconfig vc;
- extern chartenv ce;
-
- /* Die Variablen zum Verfolgen von Steuerung und Bildschirmposition. */
-
- extern struct SCREENINFO si;
-
-
- /* Farben von Menüs und Eingabeaufforderungen */
- extern struct tagFarbe co;
-
-
- /* Zeichenfolge-Datenfelder für die Menü-Funktion. Die erste Zeichenfolge
- * ist der Menütitel. Die nächsten Zeichenfolgen ungleich Null sind die
- * Wahlmöglichkeiten des Menüs. Eine Null-Zeichenfolge bedeutet das Ende der
- * Liste
- */
-
- char *pszAchsen[] =
- { "Achse", "X Achse", "Y Achse", "" };
-
- char *pszAchse[] =
- { "?", "Gitter", "Achsentitel", "Farbe",
- "Bereichstyp", "Skala", "Einteilung", "" };
-
- char *pszAuto[] =
- { "Skala", "Auto", "Manuell", "" };
-
- char *pszRand[] =
- { "Typ", "Farbe", "Stil", "" };
-
- char *pszDiagrammFenster[] =
- { "Diagramm", "Größe", "Hintergrundfarbe", "Rand", "" };
-
- char *pszDatenFenster[] =
- { "Daten", "Hintergrundfarbe", "Rand", "" };
-
- char * pszSchriftOpt[] =
- { "Schrift", "Schriftart ändern", "Zeichengröße", "" };
-
- char *pszAusrichten[] =
- { "Ausrichten", "Links", "Mittig", "Rechts", "" };
-
- char *pszBeschriftungFenster[] =
- { "Optionen", "Stelle", "Textfarbe", "Größe", "Hintergrundfarbe",
- "Rand", "" };
-
- char *pszStelle[] =
- { "Stelle", "Rechts", "Unten", "Überlagerung", "" };
-
- char *pszSkala[] =
- { "Skala", "M - Minimum", "X - Maximum", "Faktor", "Titel", "" };
-
- char *pszGroesse[] =
- { "Größe", "Oben", "Links", "Unten", "Rechts", "" };
-
- char *pszEinteilung[] =
- { "Art", "Intervall", "Format", "Nachkomma", "" };
-
- char *pszTitelOpt[] =
- { "", "Text", "Farbe", "Ausrichten", "" };
-
- char *pszTitel[] =
- { "Titel", "Haupttitel", "Nebentitel", "" };
-
- char *pszSchriftart[] =
- { "Art", "Courier", "Helv", "Tms Rmn", "Modern", "Script",
- "Roman", "Keine", "" };
-
- char *pszFenster[] =
- { "Fenster", "Diagramm-Fenster", "Werte-Fenster", "" };
-
- /* Achsen - X oder Y
- *
- * Parameter: keine
- */
- void Achsen()
- {
- int iWahl;
- static axistype *patAchse[2] = { &ce.xaxis, &ce.yaxis };
-
- /* Menüwahl und dann aufrufen des entsprechenden Achsenmenüs. */
- PushTitel( pszAchsen[0] );
- Hilfe( "'X' oder 'Y' Achse wählen", co.EingabeFarbe );
- while( (iWahl = Menue( pszAchsen )) != ESCAPE )
- {
- /* Achsentitel ändern, je nach Wahl. */
- pszAchse[0][0] = (--iWahl == 0) ? 'X' : 'Y';
-
- /* Achsen-Information holen für richtige Achse. */
- Achse( patAchse[iWahl] );
- }
- PopTitel();
- }
-
- /* Achse - Wählt Achsenoptionen.
- *
- * Parameter: pat - Zeiger zur Variablen axistype
- */
- void Achse( axistype *pat )
- {
- int iWahl;
-
- PushTitel( pszAchse[0] );
- while( (iWahl = Menue( pszAchse )) != ESCAPE )
- {
-
- /* Achsenoption holen. */
- switch( iWahl )
- {
- case 1:
- /* Gitter oder nicht? */
- iWahl = BlankMenue( "Gitter", "Gitter", "Kein Gitter" );
- switch( iWahl )
- {
-
- case 1:
- /* Wenn ja, Gitterkennung setzen u. Art holen. */
- pat->grid = WAHR;
- Hilfe( "Zahl zwischen 0 und 10 eingeben.",
- co.EingabeFarbe );
- pat->gridstyle =
- EingabeInt( "Gitterart? ", pat->gridstyle, 0, 10 );
- break;
-
- case 2:
- /* Wenn nein, Gitterkennung löschen. */
- pat->grid = FALSCH;
- }
- PopTitel();
- break;
-
- case 2:
- /* Optionen für Achsentitel wählen. */
- pszTitelOpt[0] = "Achsentitel";
- TitelOpt( &pat->axistitle );
- break;
-
- case 3:
- /* Farbe wählen. */
- Hilfe( "Zahl zwischen 0 und 15 eingeben.", co.EingabeFarbe );
- pat->axiscolor =
- EingabeInt( "Achsenfarbe? ", pat->axiscolor, 0, 15 );
- break;
-
- case 4:
- /* Achsenbereich holen. */
- AchsenBereich( pat );
- break;
-
- case 5:
- /* Achsenskala holen. */
- AchsenSkala( pat );
- break;
-
- case 6:
- /* Achseneinteilungs-Optionen holen. */
- AchsenEinteilung( pat );
- break;
-
- }
- }
- PopTitel();
- }
- /* Achsenbereich - wählt Bereich für eine Achse.
- *
- * Parameter: pat - Zeiger zur Variablen axistype
- */
- void AchsenBereich( axistype *pat )
- {
- int iWahl;
-
- iWahl = BlankMenue( "Bereichstyp", "Normal", "Logarithmisch" );
- switch( iWahl )
- {
- case 1:
- /* Bereichstyp auf linear einrichten. */
- pat->rangetype = _PG_LINEARAXIS;
- break;
-
- case 2:
- /* Bereichstyp auf Log einrichten, dann nach Log-Basis fragen.*/
- pat->rangetype = _PG_LOGAXIS;
- Hilfe( "Wert größer oder gleich 2 eingeben.", co.EingabeFarbe );
- pat->logbase = EingabeInt( "Log-Basis? ", (int)pat->logbase, 2,
- 0 );
- break;
- }
- PopTitel();
- }
-
- /* AchsenSkala - Skalaoptionen für eine Achse wählen.
- *
- * Parameter: pat - Zeiger zur Variablen axistype */
- void AchsenSkala( axistype *pat )
- {
- int iWahl;
-
- PushTitel( pszAuto[0] );
- iWahl = Menue( pszAuto );
- switch( iWahl )
- {
-
- case 1:
- /* AutoSkala-Kennung einsetzen. */
- pat->autoscale = WAHR;
- break;
-
- case 2:
-
- /* AutoSkala-Kennung löschen und Skala-Optionen holen. */
- pat->autoscale = FALSCH;
- PushTitel( pszSkala[0] );
- while( (iWahl = Menue( pszSkala )) != ESCAPE )
- {
-
- switch( iWahl )
- {
-
- case 1:
- /* Frage nach Skalenminimum. */
- Hilfe( "Bereichs-Mindestwert eingeben.", co.EingabeFarbe );
- pat->scalemin =
- (float)EingabeInt( "Minimum? ",
- (int)pat->scalemin, 1, 0 );
- break;
-
- case 2:
- /* Frage nach Skalenmaximum. */
- Hilfe( "Bereichs-Höchstwert eingeben.", co.EingabeFarbe );
- pat->scalemax =
- (float) EingabeInt( "Maximum? ",
- (int)pat->scalemax, 1, 0 );
- break;
-
- case 3:
- /* Frage nach Faktor der Skala. */
- Hilfe( "Skalenfaktor eingeben (mind. 1).", co.EingabeFarbe );
- pat->scalefactor =
- (float)EingabeInt( "Skalenfaktor? ",
- (int)pat->scalefactor, 1, 0 );
- break;
-
- case 4:
- /* Titel der Skala ändern, dann über Menü
- * Titeloptionen holen.
- */
- pszTitelOpt[0] = "Titel";
- TitelOpt( &pat->scaletitle );
-
- }
- }
- PopTitel();
- }
- PopTitel();
- }
-
- /* AchsenEinteilung - Wählt Einteilungs-Optionen für eine Achse.
- *
- * Parameter: pat - Zeiger zur Variablen axistype
- */
- void AchsenEinteilung( axistype *pat )
- {
- int iWahl;
-
- PushTitel( pszEinteilung[0] );
- while( (iWahl = Menue( pszEinteilung )) != ESCAPE )
- {
- switch( iWahl )
- {
-
- case 1:
- /* Anfrage nach Einteilungsabstand (Intervall). */
- Hilfe( "Abstand in Dateneinheiten:", co.EingabeFarbe );
- pat->ticinterval =
- EingabeFloat( "Abstand zwischen Einteilungen? ", pat->ticinterval );
- pat->autoscale = FALSCH;
- break;
-
- case 2:
- /* Anfrage nach Einteilungsformat. */
- iWahl = BlankMenue( "Format", "Normal", "Logarithmisch" );
- if( iWahl != ESCAPE )
- pat->ticformat = iWahl;
- break;
-
- case 3:
- /* Frage nach Anzahl der Dezimalstellen je Einteilung. */
- pat->ticdecimals =
- EingabeInt( "Dezimalstellen eingeben (0 - 9). ", pat->ticdecimals, 0, 9 );
- pat->autoscale = FALSCH;
- break;
- }
-
- }
- PopTitel();
- }
-
- /* Rand - Bestimmt Informationen für Fensterrand.
- *
- * Parameter: pwt - Pointer to windowtype Variable
- */
- void Rand( windowtype *pwt )
- {
- int iWahl;
-
- /* Anfrage ob Rand gewünscht ist. */
- iWahl = BlankMenue( "Rand", "Rand", "Kein Rand" );
- switch( iWahl )
- {
-
- case 1:
-
- /* Wenn Rand, Randkennung setzen, nach Randoptionen fragen. */
- pwt->border= WAHR;
- PushTitel( pszRand[0] );
- while( (iWahl = Menue( pszRand )) != ESCAPE )
- {
- switch( iWahl )
- {
- case 1:
- /* Anfrage nach Randfarbe. */
- Hilfe( "Farbe im Bereich 0 - 15 eingeben.", co.EingabeFarbe );
- pwt->bordercolor =
- EingabeInt( "Randfarbe? ", pwt->bordercolor, 0, 15 );
- break;
-
- case 2:
- /* Anfrage nach Randstil. */
- Hilfe( "Stil zwischen 0 - 10 eingeben.", co.EingabeFarbe );
- pwt->borderstyle =
- EingabeInt( "Randstil? ", pwt->borderstyle, 0, 10 );
- }
- }
- PopTitel();
- break;
-
- case 2:
- /* Wenn kein Rand, Randkennung löschen. */
- pwt->border= FALSCH;
- }
- PopTitel();
- }
-
- /* AndereSchrift - Hier kann der Benutzer neue Schriftart bestimmen.
- *
- * Parameter: Keine
- */
-
- void AndereSchrift()
- {
- int iWahl;
- struct _fontinfo fd;
- /* Zustand der Schriftsatzsammlung */
- static BOOL SchriftenRegistriert = FALSCH;
-
- /* Menüwahl holen und entsprechend Achsenmenü aufrufen. */
- PushTitel( pszSchriftOpt[0] );
- Hilfe( "Eine der angegebenen Schriftarten wählen.", co.EingabeFarbe );
-
- if( (iWahl = Menue( pszSchriftart )) != ESCAPE )
- {
- /* Will der Benutzer den System-Schriftsatz, die anderen
- * Schriftsätze aus dem Register nehmen.
- */
- if( iWahl == 7 )
- {
- _unregisterfonts();
- SchriftenRegistriert = FALSCH;
- }
-
- /* Will der Benutzer andere als den System-Schriftsatz,
- * sich vergewissern, daß die Schriftsätze registriert sind.
- */
- else
- {
- if( !SchriftenRegistriert )
- {
- if( _registerfonts( "*.FON" ) < 0 )
- {
- FehlerMldg( "Konnte Schriftsätze nicht registrieren" );
- return;
- }
- else
- SchriftenRegistriert = WAHR; /* Status auf registriert
- rücksetzen */
- }
-
- /* Vorige Schriftsatz-Einstellung holen */
- _getfontinfo( &fd );
-
- SchriftWahl( iWahl - 1, fd.pixheight );
- }
- }
-
- PopTitel();
- }
-
- /* SchriftWahl - Wählt Schriftsatz aus den Schriftsatz-Bibliothek.
- *
- * Parameter: WelcheSchrift - Ein Mitglied der Gruppe [COURIER, HELV,
- * TMS_RMN, MODERN, SCRIPT, ROMAN]
- * Hoch - Erwünschte Texthöhe in Bildpunkten
- */
-
- void SchriftWahl( int WelcheSchrift, int Hoch )
- {
- static char *SchriftIds[] =
- {
- "courier", "helv", "tms rmn", "modern", "script", "roman"
- };
- char SetCommand[21];
-
-
- /* Den Befehl für Senden zu _setfont aufbauen. */
-
- sprintf( SetCommand, "t'%s'h%dw0b", SchriftIds[WelcheSchrift], Hoch );
-
- if( _setfont( SetCommand ) )
- {
- _outtext( "Konnte Schriftsatz nicht einrichten auf " );
- _outtext( SchriftIds[WelcheSchrift] );
- _outtext( "." );
- getch();
- }
- }
-
-
- /* DiagrammFenster - Holt Information über Diagrammfenster.
- *
- * Parameter: Keine
- */
- void DiagrammFenster()
- {
- int iWahl;
-
- PushTitel( pszDiagrammFenster[0] );
- while( (iWahl = Menue( pszDiagrammFenster )) != ESCAPE )
- {
-
- /* Fensteroptionen holen. */
- switch( iWahl )
- {
-
- case 1:
- /* Fenstergröße holen. */
- FensterFormat( &ce.chartwindow );
- break;
-
- case 2:
- /* Frage nach Hintergrundfarbe. */
- Hilfe( "Zahl im Bereich 0 - 15 eingeben", co.EingabeFarbe );
- ce.chartwindow.background =
- EingabeInt( "Hintergrundfarbe? ", ce.chartwindow.background, 0, 15 );
- break;
-
- case 3:
-
- /* Randoptionen holen. */
- Rand( &ce.chartwindow );
-
- }
- }
- PopTitel();
- }
-
- /* DatenFenster - Information über Datenfenster holen.
- *
- * Parameter: Keine
- */
- void DatenFenster()
- {
- int iWahl;
-
- PushTitel( pszDatenFenster[0] );
- while( (iWahl = Menue( pszDatenFenster )) != ESCAPE )
- {
-
- /* Datenfenster0Menüoptionen holen. */
- switch( iWahl )
- {
-
- case 1:
- /* Anfrage nach Hintergrundfarbe. */
- Hilfe( "Zahl im Bereich 0 - 15 eingeben", co.EingabeFarbe );
- ce.datawindow.background =
- EingabeInt( "Hintergrundfarbe? ", ce.datawindow.background, 0, 15 );
- break;
-
- case 2:
- /* Randoptionen holen. */
- Rand( &ce.datawindow );
- break;
-
- }
- }
- PopTitel();
- }
-
- /* SchriftOptionen - Hier kann der Benutzer den zur Darstellung
- * benutzten Schriftsatz ändern.
- *
- * Parameter: Keine
- */
-
- void SchriftOptionen()
- {
- int iWahl;
- int iZeichenGroesse;
- int iArtIndex;
- struct _fontinfo fd;
-
- /* Menüwahl holen und entsprechend Achsenmenü aufrufen. */
- PushTitel( pszSchriftOpt[0] );
-
- while( (iWahl = Menue( pszSchriftOpt )) != ESCAPE )
- {
- /* Gegenwärtige Schriftsatzinformation holen. */
- _getfontinfo( &fd );
-
- switch( iWahl )
- {
- /* Schriftart ändern. */
- case 1:
- AndereSchrift();
- break;
-
- /* Ändere Buchstabengröße. */
- case 2:
- iZeichenGroesse = EingabeInt( "Buchstabengröße eingeben. ",
- fd.pixheight, 8, 128 );
-
- for( iArtIndex = 0; iArtIndex < 6; ++iArtIndex )
- if( !strcmpi( fd.facename, pszSchriftart[iArtIndex + 1] ) )
- break;
-
- SchriftWahl( iArtIndex, iZeichenGroesse );
- break;
-
- default:
- break;
- }
- }
- PopTitel();
- }
-
- /* Ausrichten - Holt Ausrichtinformation für Überschriften.
- *
- * Parameter: ptt - Zeiger zur Variablen titletype
- */
- void Ausrichten( titletype *ptt )
- {
- int iWahl;
-
- PushTitel( pszAusrichten[0] );
- iWahl = Menue( pszAusrichten );
- switch( iWahl )
- {
-
- /* Set justification. */
- case 1:
- case 2:
- case 3:
- ptt->justify = iWahl;
- }
- PopTitel();
- }
-
- /* Beschriftung - Fragt, ob Beschriftung erwünscht ist;
- * falls ja, werden Beschriftungsoptionen geholt.
- *
- * Parameter: Keine
- */
- void Beschriftung()
- {
- int iWahl;
-
- /* Ist Beschriftung erwünscht? */
- iWahl = BlankMenue( "Beschriftung", "Beschriftung", "Keine Beschriftung" );
- switch( iWahl )
- {
- case 1:
- /* Wenn Beschriftung, Kennung setzen und Optionen holen. */
- ce.legend.legend = WAHR;
- PushTitel( pszBeschriftungFenster[0] );
- do
- {
- iWahl = Menue( pszBeschriftungFenster );
- switch( iWahl )
- {
-
- case 1:
- /* Beschriftungsstelle holen. */
- BeschriftungStelle();
- break;
-
- case 2:
- /* Anfrage nach Beschriftungsfarbe. */
- Hilfe( "Zahl im Bereich 0 - 15 eingeben.", co.EingabeFarbe );
- ce.legend.textcolor =
- EingabeInt( "Textfarbe? ", ce.legend.textcolor, 0, 15 );
- break;
-
- case 3:
- /* Autom. oder manuelle Größeneinstellung holen. */
- PushTitel( "Automatisch" );
- iWahl = Menue( pszAuto );
-
- /* autosize-Kennung einrichten oder löschen. Wurde
- * manuelle Größeneinstellung bestimmt, Beschrif-
- * tungsgröße holen.
- */
- switch( iWahl )
- {
- case 1:
- ce.legend.autosize = WAHR;
- break;
-
- case 2:
- ce.legend.autosize = FALSCH;
- FensterFormat( &ce.legend.legendwindow );
- }
- PopTitel();
- break;
-
- case 4:
- /* Anfrage nach Hintergrundfarbe. */
- Hilfe( "Zahl im Bereich 0 - 15 eingeben.", co.EingabeFarbe );
- ce.legend.legendwindow.background =
- EingabeInt( "Hintergrundfarbe? ", ce.legend.legendwindow.background, 0, 15 );
- break;
-
- case 5:
- /* Randoptionen holen für Beschriftungsfenster. */
- Rand( &ce.legend.legendwindow );
- }
-
- } while( iWahl != ESCAPE );
- PopTitel();
- break;
-
- case 2:
- /* Ist keine Beschriftung erwünscht, Kennung löschen. */
- ce.legend.legend = FALSCH;
-
- }
- PopTitel();
- }
-
- /* BeschriftungStelle - Holt Option für Plazierung der Beschriftung.
- *
- * Parameter: Keine
- */
- void BeschriftungStelle()
- {
- int iWahl;
-
- /* Beschriftungsplazierung holen. */
- PushTitel( pszStelle[0] );
- iWahl = Menue( pszStelle );
- switch( iWahl )
- {
-
- case 1:
- ce.legend.place = _PG_RIGHT;
- break;
-
- case 2:
- ce.legend.place = _PG_BOTTOM;
- break;
-
- case 3:
- ce.legend.place = _PG_OVERLAY;
- }
- PopTitel();
- }
-
- /* BschirmModus - Holt neuen Bildschirmmodus.
- *
- * Parameter: Keine
- */
- void BschirmModus()
- {
- int iMode, i;
- char szTmp[80], szHlp[80];
- static int iLegal[5][11] =
- {
- { 3, 4, 5, 6 },
- { 4, 4, 5, 6, 64 },
- { 4, 4, 5, 6, 19 },
- { 7, 4, 5, 6, 13, 14, 15, 16 },
- { 10, 4, 5, 6, 13, 14, 15, 16, 17, 18, 19 }
- };
- int iAdapter;
-
- PushTitel( "Modus" );
-
- /* Entsprechende Hilfezeile für Adapter anzeigen. */
- switch( vc.adapter )
- {
- case _HGC:
- PopTitel();
- return;
- case _CGA:
- iAdapter = 0;
- break;
- case _OCGA:
- iAdapter = 1;
- break;
- case _MCGA:
- iAdapter = 2;
- break;
- case _EGA:
- case _OEGA:
- if( vc.adapter == _MONO )
- {
- PopTitel();
- return;
- }
- else
- iAdapter = 3;
- break;
- case _VGA:
- case _OVGA:
- iAdapter = 4;
- break;
- }
-
- /* Hilfezeile anzeigen (enthält die zulässigen Einstellungen für
- * den Adapter im Computer des Benutzers.
- */
- for( iMode = 0, szHlp[0] = '\0'; iMode <= iLegal[iAdapter][0]; ++iMode )
- {
- if( iMode == 0 )
- strcpy( szTmp, "Eingabe " );
- else if( iMode < iLegal[iAdapter][0] )
- sprintf( szTmp, "%d, ", iLegal[iAdapter][iMode] );
- else
- sprintf( szTmp, "oder %d", iLegal[iAdapter][iMode] );
- strcat( szHlp, szTmp );
- }
-
- WrtForm( 18 );
- Hilfe( szHlp, co.EingabeFarbe );
-
- /* Anfrage nach Bildschirmmodus. */
- for( ;; )
- {
- iMode = EingabeInt( "Modus? ", si.mode, 1, 64 );
- for( i = 1; i <= iLegal[iAdapter][0]; ++i ) /* Wert zulässig?? */
- if( iMode == iLegal[iAdapter][i] ) /* Wird passender Wert */
- break; /* gefunden, for-Schleife */
- if( iMode == iLegal[iAdapter][i] ) /* beenden; paßt der Wert */
- break; /* do-Schleife beenden */
- else /* sonst SIGNAL, und um */
- putchar( SIGNAL ); /* richtigen Daten bitten */
- }
-
- PopTitel();
- if( SetGraphMode( iMode ) )
- _setvideomode( _DEFAULTMODE );
- else
- ZeigeFehler( _PG_BADSCREENMODE );
-
- /* Erzwingt neue Größeneinstellung dieses Diagramms, indem die
- * Rechteck-Werte für die Diagramm- und Datenfenster auf Null
- * rückgesetzt werden.
- */
- ce.chartwindow.x1 = ce.chartwindow.x2 = ce.chartwindow.y1 =
- ce.chartwindow.y2 = 0;
- ce.datawindow = ce.chartwindow;
- }
-
- /* TitelOpt - Holt Titeloptionen.
- *
- * Parameter: ptt - Zeiger zur Variablen titletype
- */
- void TitelOpt( titletype *ptt )
- {
- int iWahl;
-
- PushTitel( pszTitelOpt[0] );
- do
- {
- iWahl = Menue( pszTitelOpt );
- switch( iWahl )
- {
-
- case 1:
- /* Aufforderung zu Eingabe des Titeltextes. */
- Hilfe( "Maximal 70 Zeichen lang.", co.EingabeFarbe );
- EingabeString( "Text eingegeben: ", ptt->title );
- break;
-
- case 2:
- /* Frage nach Titelfarbe. */
- Hilfe( "Zahl im Bereich 0 - 15 eingeben.", co.EingabeFarbe );
- ptt->titlecolor =
- EingabeInt( "Titelfarbe? ", ptt->titlecolor, 0, 15 );
- break;
-
- case 3:
- /* Ausrichtoption holen. */
- Ausrichten( ptt );
- }
- LschHilfe();
-
- } while( iWahl != ESCAPE );
- PopTitel();
- }
-
- /* Titel - Verwaltet Menüs für Haupt- u. Nebentitel.
- *
- * Parameter: Keine
- */
- void Titel()
- {
- int iWahl;
-
- PushTitel( pszTitel[0] );
- do
- {
- iWahl = Menue( pszTitel );
- switch( iWahl )
- {
-
- case 1:
- /* Menütitel einrichten und Optionen für Haupttitel holen.*/
- pszTitelOpt[0] = "Haupttitel";
- TitelOpt( &ce.maintitle );
- break;
-
- case 2:
- /* Menütitel einrichten und Optionen für Nebentitel holen.*/
- pszTitelOpt[0] = "Nebentitel";
- TitelOpt( &ce.subtitle );
- }
- } while( iWahl != ESCAPE );
- PopTitel();
- }
-
- /* Fenster - Wählt Diagramm- oder Datenfenster und holt dementsprechende
- * Optionen.
- *
- * Parameter: Keine
- */
- void Fenster()
- {
- int iWahl;
-
- PushTitel( pszFenster[0] );
- do
- {
-
- /* Fenster wählen und dafür Optionen holen. */
- iWahl = Menue( pszFenster );
- switch( iWahl )
- {
-
- case 1:
- DiagrammFenster();
- break;
-
- case 2:
- DatenFenster();
-
- }
- } while( iWahl != ESCAPE );
- PopTitel();
- }
-
- /* FensterFormat - Holt Koordinaten für Position und Größe des Fensters.
- *
- * Parameter: pwt - Zeiger zur Variablen windowtype
- */
- void FensterFormat( windowtype *pwt )
- {
- int iWahl;
-
- /* Get window size settings. */
- PushTitel( pszGroesse[0] );
- do
- {
- /* Frage nach Werten für Fensterrand oben, unten, links oder rechts. */
- iWahl = Menue( pszGroesse );
- switch( iWahl )
- {
-
- case 1:
- Hilfe( "Fenster-Oberrand in Bildpunkten:", co.EingabeFarbe );
- pwt->y1 = EingabeInt( "Oben? ", pwt->y1, 0, si.yMax );
- break;
-
- case 2:
- Hilfe( "Rand Links in Bildpunkten:", co.EingabeFarbe );
- pwt->x1 = EingabeInt( "Links? ", pwt->x1, 0, si.xMax );
- break;
-
- case 3:
- Hilfe( "Fenster-Unterrand in Bildpunkten:", co.EingabeFarbe
- );
- pwt->y2 = EingabeInt( "Unten? ", pwt->y2, 0, si.yMax );
- break;
-
- case 4:
- Hilfe( "Rand Rechts in Bildpunkten:", co.EingabeFarbe );
- pwt->x2 = EingabeInt( "Rechts? ", pwt->x2, 0, si.xMax );
- }
- } while( iWahl != ESCAPE );
- PopTitel();
- }
-