home *** CD-ROM | disk | FTP | other *** search
- /* Beispiel.C --- Erläutert die Anwendung der verschiedenen neuen
- Funktionen und (Struktur-)Variablen in der Toolbox
- "Window.C".
-
- */
-
- #include "window.c"
-
- int main()
- {
- int a; /* Hilfsvariablen */
- MENU *m1, *m2;
-
- /* Definition (= deklaration) der Bildschirmfenster */
-
- WINDOW main = { 33, 3, 17, 8, f1, 0, f1, "> Hauptmenü <", 35, f1, 0, 0 };
- WINDOW sub1 = { 20, 9, 20, 7, f0, 1, f0, " Datei ", 26, f0, 0, 0 };
- WINDOW sub2 = { 40, 9, 15, 7, f2, 2, f2, " Setup ", 44, f2, 0, 0 };
- WINDOW sub3 = { 30, 14, 30, 7, f3, 3, f3, " Sichern als... ", 37, f3, 0, 0
- };
- WINDOW help = { 10, 10, 60, 5, f0, 4, f0, " Kontextsensitive Hilfe ",
- 29, f1, 0, 0 };
-
- /* Jetzt folgt die Definition der einzelnen Menüpunkte. Hierbei ist
- die umgekehrte Reihenfolge der Menüpunkte bei der Deklaration
- deutlich erkennbar. Auf dem Bildschirm werden die Menüpunkte
- dagegen in der Reihenfolge durchlaufen, in der sie miteinander
- verkettet wurden.
- */
-
- MENU sub3p3 = { 32, 18, f0, " Sicherheitskopie machen ", 33, 0,
- 0, 0, 0, 0, 0 };
- MENU sub3p2 = { 32, 17, f0, " Alte Datei umbenennen ", 32, 0,
- 0, 0, &sub3p3, 0, 0 };
- MENU sub3p1 = { 32, 16, f0, " Alte Datei überschreiben ", 31, 0,
- &sub3, 0, &sub3p2, 0, 0 };
-
- MENU sub2p3 = { 42, 13, f0, " Farben ", 23, 0,
- 0, 0, 0, 0, 0 };
- MENU sub2p2 = { 42, 12, f0, " Drucker ", 22, 0,
- 0, 0, &sub2p3, 0, 0 };
- MENU sub2p1 = { 42, 11, f0, " Tastatur ", 21, 0,
- &sub2, 0, &sub2p2, 0, 0 };
-
- MENU sub1p3 = { 22, 13, f0, " Sichern als... ", 13, 0,
- 0, &sub3p1, 0, 0, 0 };
- MENU sub1p2 = { 22, 12, f0, " Sichern ", 12, 0,
- 0, 0, &sub1p3, 0, 0 };
- MENU sub1p1 = { 22, 11, f0, " Laden ", 11, 0,
- &sub1, 0, &sub1p2, 0, 0 };
-
- MENU mainp4 = { 36, 8, f0, " ENDE ", 04, 0,
- 0, 0, 0, 0, 0 };
- MENU mainp3 = { 36, 7, f0, " Suchen ", 03, 0,
- 0, 0, &mainp4, 0, 0 };
- MENU mainp2 = { 36, 6, f0, " Setup... ", 02, 0,
- 0, &sub2p1, &mainp3, 0, 0 };
- MENU mainp1 = { 36, 5, f0, " Datei... ", 01, 0,
- &main, &sub1p1, &mainp2, 0, 0 };
-
- /* Damit wären alle notwendigen Variablen und Strukturen deklariert.
- Als nächstes beginnt die Initialisierung der Toolbox und des
- kompletten Menüs:
- */
-
- if( OpenTool() == 0 ) /* Fehler beim Öffnen der Toolbox aufgetreten? */
- return( 1 ); /* ja, dann breche das Hauptprg. mit einem
- Fehlercode ab */
-
- PrepareMenu( &mainp1, NULL ); /* Menü vorbereiten, d. h. alle not-
- wendigen Zeiger-Verkettungen
- usw. durchführen */
-
- /* Nun wird das Hauptmenü aufgerufen */
-
- m2 = &mainp1;
-
- while( 1 == 1 ) /* Endlosschleife erzeugen */
- {
- m1 = UseMenu( m2 ); /* Hauptmenü aufrufen */
-
- if( select == 1 ) /* ESC im Hauptmenü gedrückt? */
- break; /* ja, dann Endlosschleife abbrechen */
-
- if( m1 == NULL ) /* schwerer Fehler aufgetreten? */
- {
- CloseAll(); /* ja, dann alle Windows schließen */
- CloseTool(); /* Toolbox schließen */
- return( 1 ); /* Programm abbrechen */
- }
-
- m2 = m1; /* gewählten Menüpunkt beim nächsten
- mal aufrufen */
-
- if( select == 2 ) /* Hilfe (F1) gedrückt? */
- {
- if( OpenWindow( &help ) == 0 ) /* Fehler beim Öffnen des Hilfe-
- Fensters aufgetreten? */
- {
- CloseAll(); /* ja, dann schließe alle Windows */
- CloseTool(); /* Schließe die Toolbox */
- return( 1 ); /* und breche das Programm ab */
- }
- fastprint( 12, 12, f1, "Hier steht normalerweise der Hilfe-Text.\n\\
- Bitte eine beliebige Taste drücken..." );
- a = getch(); /* warte auf Tastendruck */
- CloseWindow(); /* schließe Hilfefenster wieder */
- }
-
- if( select == 0 ) /* einen Menüpunkt angewählt? */
- {
- if( m1->nr == 23 ) /* Farben-Setup angewählt? */
- {
- color( " Bitte passende Farbe auswählen: " );
- continue; /* Endlosschleife von vorne begin. */
- }
- if( m1->nr > 30 && m1->nr < 33 ) /* Laufwerkszugriffe? */
- {
- inhalt( "A:\\", "*.*" ); /* DIR anzeigen... */
- continue; /* Endlosschleife fortsetzen */
- }
- /* Hinweis: Die Funktionen "inhalt" und "color" sind in der
- Shareware-Version der Toolbox NICHT enthalten! */
- if( m1->nr == 04 ) /* Menüpunkt "Ende" gewählt? */
- break; /* ja, dann beende Endlosschl.*/
- printf( "\a" ); /* sonst Signalton ausgeben */
- }
- } /* Wiederholung der Endlosschleife... bis ESC im Hauptmenü
- zum Beenden des Programms gedrückt wurde! */
-
-
- if( OpenWindow( &help ) == 0 ) /* Fehler beim Öffnen des Hilfe-
- Fensters aufgetreten? */
- {
- CloseAll(); /* ja, dann schließe alle Windows */
- CloseTool(); /* Schließe die Toolbox */
- return( 1 ); /* und breche das Programm ab */
- }
- fastprint( 15, 12, f1, "Zum Ende bitte eine beliebige Taste drücken... " );
- a = getch(); /* warte auf Tastendruck */
- CloseAll(); /* Schließe dann alle Windows */
- CloseTool(); /* Schließe die Toolbox !!! */
-
- /* Programmende */
-
- return( 0 ); /* Beende Programm mit Rückgabewert "OK" */
-
- }
-