home *** CD-ROM | disk | FTP | other *** search
- #include<string.h>
- #include<kiwi_inc.h>
- #include<kiwilib.h>
- #include<kiwipro.h>
- #include<demopro.h>
- #include<kiwi_mem.h>
-
- /* Initialisiere Hauptmenueleiste */
- MENU hauptmenu[7]={
- " ≡ ",1,1,"Zeigt Programminformationen an",
- "Datei",0,1,"Zeigt die Dateierfassungsmöglichkeiten",
- "Windows",0,1,"Demonstriert die Windowfunktionen",
- "Editor",0,1,"Zeigt die Möglichkeiten der Datenerfassung",
- "Druck",1,1,"Druckt eine Datei auf dem Ausgabekanal",
- "Diverses",1,1,"Zeigt diverse Funktionen",
- "Festlegungen",0,1,"Setzen Sie die Programmfestlegungen",
- };
-
-
-
- MENU about[1]={
- "Information",0,1,""
- };
-
-
-
- /* initialisiere Dateimenu */
- MENU dateis[9]={
- "Lösche Datei ",0,1,"Löscht die Erfaßte Datei",
- "───────────────────",-1,0,"",
- "Array Hole Datei ",0,1,"Erfaßt eine Datei mit array_get_files",
- "Broswe Hole Datei ",0,1,"Erfaßt eine Datei mit browse_get_files",
- "───────────────────",-1,0,"",
- "Verschlüssele Datei",3,1,"Verschüsselt die Sourcedatei demo.c",
- "Entschlüssele Datei",2,0,"Entschlüsselt die verschlüsselte Datei",
- "───────────────────",-1,0,"",
- "Beende Programm ",3,1,"Beendet das Programm",
-
- };
-
-
-
-
- /* Initialisiere Windows Haupmenu */
- MENU windows[7]={
- "Dynamische ",0,1,"Demonstriert die Möglichkeiten Dynamischer Fenster",
- "Stapeln ",1,1,"Stapelt beliebig viele Fenster aufeinander",
- "───────────",-1,0,"",
- "Beschreiben",1,1,"Schreibt in alle Bildschirmfenster gleichzeitig",
- "Einfärben ",0,1,"Ändert die Farbe eines Bildschirmfensters",
- "───────────",-1,0,"",
- "Verfügbar ",1,1,"Zeigt die Funktion choose_button",
- };
-
-
- /* Initialisiere Windows Verfügbar Menü */
- MENU windowsm[6]={
- "Dynamische ",0,1,"Demonstriert die Möglichkeiten Dynamischer Fenster",
- "Stapeln ",1,1,"Stapelt beliebig viele Fenster aufeinander",
- "Beschreiben",1,1,"Schreibt in alle Bildschirmfenster gleichzeitig",
- "───────────",-1,0,"",
- "Einfärben ",0,1,"Ändert die Farbe eines Bildschirmfensters",
- "Verfügbar ",1,1,"Zeigt die Funktion choose_button",
- };
-
-
-
- /* Initialisiere Windows bewegen untermenu */
- MENU windows2[2]={
- "Automatisch",0,1,"Bewegt Fenster automatisch",
- "Manuell ",0,1,"Bewegt ein Fenster nach der Maus oder per Cursor",
- };
-
-
-
- /* Initialisiere Diversesmenu */
- MENU diverses[12]={
- "Sirene ",0,1,"Emuliert eine Sirene",
- "Uhr ",0,1,"Zeigt eine Digitaluhr",
- "Memory Check ",0,1,"Allokieren Sie Speicher, dir Meory Shell wird sich melden",
- "───────────────────",-1,0,"",
- "Mausspeed ",0,1,"Stellen Sie die Mauszeigerempfindlichkeit ein",
- "Sliderdarstellung ",0,1,"Zeigt einen Slider in Aktion",
- "───────────────────",-1,0,"",
- "Reaktionstest ",0,1,"Testen Sie Ihre Reaktion",
- "Hilfetaste festlegen",0,1,"Setzt die Hilfetastenkombination fest",
- "Speicher Verfügbar ",1,1,"Zeigt den verfügbaren Speicher",
- "───────────────────",-1,0,"",
- "Index ",4,1,"Übersicht über alle Funktionen",
- };
-
-
-
-
- #define STRING_LEN 60
- int screen_mode;
- long int maus_speed;
- unsigned long coreleft();
-
-
-
-
- /*****************************************************************************
- *Name :main
- *Typ :
- *Zweck:Programmeinstieg
- *
- *
- * Name Typ Zweck
- *Aufrufpara :
- *
- *Rueckgabep :
- *
- *Funktionswt: 0 Immer
- *
- *****************************************************************************/
- main()
- {
- int c,ende=0;
- static WINDOW win,win1,sw1,sw2;
-
- win=win1=sw1=sw2=0; /* Setze Fenster auf Null= Screen */
- sm_load_fixes();
- init_tools(); /* Initialisiere das Programm */
-
- init_main_menu(hauptmenu,7); /* setze Haupleiste fest */
- display_string("Hilfe=F1",0,AR,1);
- set_help_name("Demoprogramm"); /* Setze Hilfsbegriff */
- get_help(); /* Hole Hilfe */
-
- while(!ende) /* Bis nicht Ende angewaehlt */
- { /* Hauptverteiler */
- set_help_name("Demoprogramm");
- c=choose_main_menu(); /* Waehle aus Hauptleiste */
- switch(c){
- case 0: aboutmenu();
- break;
-
- case 1: ende=dateimenu();
- break;
-
- case 2: windowmenu();
- break;
-
- case 3: editmenu();
- break;
-
- case 4: druckmenu();
- break;
-
- case 5: diversesmenu();
- break;
-
- case 6: festlegungsmenu();
- break;
-
-
-
-
- default:break;
- }
- }
-
- reset_tools(); /* Befreie alle Speicher und setzte alles zurueck */
-
- return(0);
- }
-
-
- /*****************************************************************************
- *Name :aboutmenu
- *Typ :int
- *Zweck:Steuert das Infomenue
- *
- *
- * Name Typ Zweck
- *Aufrufpara :
- *
- *Rueckgabep :
- *
- *Funktionswt: 0 Immer
- *
- *****************************************************************************/
- int aboutmenu()
- {
- int wahl;
- WINDOW sw1=0;
-
- wahl=choose_sub_menu(about,1,&sw1); /* Waehle aus Submenu */
- switch(wahl){
- case 0:{
- set_help(WEITER_OFF);
- set_help_name("ProgrammInfo");
- get_help();
- set_help(WEITER_ON);
- break;}
-
- default:{break;}
- }
- close_window(sw1);
- return(0);
- }
-
-
- /*****************************************************************************
- *Name :zeige_index
- *Typ :int
- *Zweck:Ermoeglicht das Blättern in der Indexdatei
- *
- * Name Typ Zweck
- *Aufrufpara :
- *
- *Rueckgabep :
- *
- *Funktionswt: 0 immer
- *
- *****************************************************************************/
- int zeige_index()
- {
- reset_help(); /* Alte Datei abklemmen */
- init_help("index"); /* Neue Datei initialisieren */
- set_help(UNFORMATIERT); /* Nicht formatieren */
- browse_help(); /* Blätere durch Hilfe */
- reset_help(); /* Neue datei abklemmen */
- init_help("demo"); /* Alte datei initialiseren */
- set_help(FORMATIERT); /* Formatieren */
- set_help_color(VHELLWEIS | HROT,VGELB | HBLAU); /* Farbe setzen */
- set_help_name("Demoprogramm"); /* Setze Hilfsbegriff */
-
- return(0);
- }
-
-
-
- /*****************************************************************************
- *Name :diversesmenu
- *Typ :int
- *Zweck:Steuert das Diverses Geschehen
- *
- *
- * Name Typ Zweck
- *Aufrufpara :
- *
- *Rueckgabep :
- *
- *Funktionswt: 0 Immer
- *
- *****************************************************************************/
- int diversesmenu()
- {
- int i,c,wahl,status;
- unsigned int summe=0;
- WINDOW sw1=0,sb=0;
- ZEIT time;
- char buffer[20];
-
- init_string(buffer,sizeof(buffer));
- wahl=choose_sub_menu(diverses,12,&sw1); /* Waehle aus Submenu */
- switch(wahl){
- case 0:{
- for(i=20;i<6000;i+=100)kw_sound(i,4); /* Sirene */
- for(i=6000;i>20;i-=100)kw_sound(i,4);
- break;}
- case 1:{
- sb=open_window("Uhrzeit",27,10,53,14,EINFACH);
- set_help_name("Uhr");
- display_string("Die Uhrzeit ist",sb,AM,1);
- display_string("Beliebige Taste für Ende",sb,AM,3);
- do
- {
- get_system_time(&time);
- display_time(&time,sb,AM,2,"z");
- }while(!input());
- close_window(sb);
- break;}
- case 2:{
- set_help_name("Memory Shell");
- sb=load_window("demo13.wnd");
- i=scanf_mask(sb,0,"x",&summe);
- if(i==13)malloc(summe);
- close_window(sb);
- break;}
-
- case 4: set_help_name("Maus Speed");
- maus_speed=(long)roll_bar("Setzen Sie die Mausgeschwindigkeit fest",
- (float)maus_speed,0.,100.,1.,40,AM,AM);/* Nur Schall und Rauch */
- break;
-
-
- case 5: set_help_name("Slidertest");
- init_slider("Das ist ein Test \n um einen Slider darzustellen \n Hier würde dann Ihr Text stehen",AM,AM,60,200l);
- for(i=0;i<200;i++)
- {
- kw_wait(5);
- add_slider(1l);
- }
- reset_slider();
- break;
-
- case 7:{
- set_help_name("Reaktionstest");
- reaktionstest();
- break;}
-
-
- case 8: sb=open_window("Hilfetasten",18,10,62,16,DOPPELT);
- set_help_name("Hilfetaste");
- display_string("Tippen Sie nun die Tastenkombination",sb,AM,1);
- display_string("die zur Auslösung der Hilfe führen soll",sb,AM,2);
- c=wait_input(); /* Hole taste */
- status=get_input_status(); /* Hole Status */
- i=(status << 8) | c; /* Baue Schluessel */
- set_help_mask(i); /* Setze neue Maske */
- strcpy(buffer,"Hilfe="); /* Baue Anzeige zusammen */
- if(status & 3)strcat(buffer,"Shift+");
- if(status & 4)strcat(buffer,"Ctr+");
- if(status & 8)strcat(buffer,"Alt+");
- if(status & 16)strcat(buffer,"Fn ");
- i=strlen(buffer);
- if(status & 16){
- if(c<10)buffer[i]=c+48;
- else {buffer[i++]=49;buffer[i]=48;}
- }
- else buffer[i]=toupper(c);
-
- display_string(buffer,sb,AM,3);
- kw_wait(250); /* Warte 2,5 Sekunden zum lesen */
- close_window(sb);
- INVERS
- display_string(" ",0,AR,1);/* Loesche hilfshinweis */
- NORMAL
- break;
-
-
- case 9 :set_help_name("Speicherbedarf");
- sb=open_window("Speicherplatz",50,5,AM,AM,EINFACH);
- wlocate(sb,1,1);
- #ifdef MS_C
-
- printw(sb,"Im aktuellen Datensegment sind \n zur Zeit %d KB verfügbar ",_memavl());
- #endif
- #ifdef TURBO_C
-
- printw(sb,"Es ist zur Zeit noch \n %ld KB Hauptspeicher verfügbar ",coreleft());
- #endif
-
-
-
- /* zeige momentanen Speicherplatz im Datensegment */
- wait_of_action();
- close_window(sb);
- break;
-
- case 11:{
- set_help_name("Index");
- zeige_index();
- break;
- }
-
-
- default:{break;}
- }
- close_window(sw1);
- return(0);
- }
-
-
-
-
- /*****************************************************************************
- *Name :dateimenu
- *Typ :int
- *Zweck:Steuert das Geschehen bei Dateimenu
- *
- *
- * Name Typ Zweck
- *Aufrufpara :
- *
- *Rueckgabep :
- *
- *Funktionswt: 0 Immer
- *
- *****************************************************************************/
- int dateimenu()
- {
- int i,wahl,anzahl,ende=0;
- WINDOW sw1=0,sb=0,en1=0,en2=0;
- char pfad[DATEI_PFAD_LEN],dateiname[DATEI_NAME_LEN];
- char datei_name[DATEI_PFAD_NAME_LEN];
- double auftritt,abweichung,koeff;
- long int n;
-
- init_string(pfad,sizeof(pfad)); /* Loesche Strings */
- init_string(dateiname,sizeof(dateiname));
- init_string(datei_name,sizeof(datei_name));
-
-
- wahl=choose_sub_menu(dateis,9,&sb); /* Waehle Submenu */
- set_color_table(4); /* Setze Farbtabelle 4 */
- switch(wahl){
- case 0: set_help_name("Dateierfassung Löschen");
- sw1=load_window("demo4.wnd");
- i=scanf_mask(sw1,0,"%51s",pfad);
- if(i==13)
- {
- set_color_table(1);
- if(array_get_files(dateiname,pfad,AL,AL)==1) /* Hole Datei */
- {
- create_file_path(datei_name,pfad,dateiname);
- print_mask(sw1,1,"%51s",datei_name);
- if(dialog2("Das ist ihre letzte Chance die Datei zu behalten \n Wollen Sie die Datei wirklich löschen",
- "Löschen","Behalten",AM,get_screen_height()-5))
- kill_selectet_file(datei_name);
- }
- }
- close_window(sw1);
- break;
-
- case 1: break;
-
-
- case 2: display_file_content();
- break;
-
- case 3: set_help_name("Dateierfassung Browse");
- sw1=load_window("demo4.wnd");
- i=scanf_mask(sw1,0,"%51s",pfad);
- if(i==13)
- {
- set_color_table(1);
- if(browse_get_files(dateiname,pfad,5,5)==1)/* Hole Datei */
- {
- create_file_path(datei_name,pfad,dateiname);
- print_mask(sw1,1,"%64s",datei_name);
- display_string("Bitte eine Taste für weiter",sw1,AM,5);
- wait_of_action();
- browse_file(datei_name,132);
- }
- }
- close_window(sw1);
- break;
-
- case 4: break;
-
- case 5: sw1=load_window("demo2.wnd");
- set_help_name("Dateiverschlüsseln");
- i=scanf_mask(sw1,0,"x",pfad);
- if(i==13 && pfad[0]>32)
- {/* wenn Schluessel ok */
- encrypt_file("demo.c","demohide.sic",pfad,BELASSEN);/* Verschluessele Datei */
- n=check_file_cryptation("demo.c",&anzahl,&auftritt,&abweichung,&koeff);
- if(n>1l)
- {/* Wie ist der Statistikbericht der datei */
- en1=load_window("demo3.wnd");
- print_mask(en1,0,"x","DEMO.C",n,anzahl,auftritt,abweichung,koeff);
- move_window(en1,4,HOCH);
- }
- n=check_file_cryptation("demohide.sic",&anzahl,&auftritt,&abweichung,&koeff);
- if(n>1l)
- {
- en2=load_window("demo3.wnd");
- print_mask(en2,0,"x","DEMOHIDE.SIC",n,anzahl,auftritt,abweichung,koeff);
- move_window(en2,6,RUNTER);
- dateis[6].aktiv=1;
- }
- wait_of_action();
- close_window(en1);
- close_window(en2);
- }
- close_window(sw1);
- break;
-
- case 6: sw1=load_window("demo2.wnd");
- set_help_name("Dateientschlüsseln");
- i=scanf_mask(sw1,0,"x",pfad);
- if(i==13 && pfad[0]>32)
- {
- decrypt_file("demohide.sic","demo.sic",pfad,BELASSEN);/* Entschluessele */
- n=check_file_cryptation("demohide.sic",&anzahl,&auftritt,&abweichung,&koeff);
- if(n>1l)
- {
- en1=load_window("demo3.wnd");
- print_mask(en1,0,"x","DEMOHIDE.SIC",n,anzahl,auftritt,abweichung,koeff);
- move_window(en1,4,HOCH);
- }
- n=check_file_cryptation("demo.sic",&anzahl,&auftritt,&abweichung,&koeff);
- if(n>1l)
- {
- en2=load_window("demo3.wnd");
- print_mask(en2,0,"x","DEMO.SIC",n,anzahl,auftritt,abweichung,koeff);
- move_window(en2,6,RUNTER);
- }
- wait_of_action();
- close_window(en1);
- close_window(en2);
- }
- close_window(sw1);
- break;
-
- case 8: ende=dialog2("Wollen Sie das Programm wirklich beenden","Ende","Weiter",3,2);
- break;
-
- default:break;
- }
-
-
- set_color_table(0);
-
- close_window(sb);
- return(ende);
- }
-
-
-
-
-
- /*****************************************************************************
- *Name :windowmenu
- *Typ :int
- *Zweck:Steuert das Geschehen bei Windowmenu
- *
- *
- * Name Typ Zweck
- *Aufrufpara :
- *
- *Rueckgabep :
- *
- *Funktionswt: 0 Immer
- *
- *****************************************************************************/
- int windowmenu()
- {
- int wahl,col;
- WINDOW sw1=0;
-
- col=which_color_table();
- set_help_name("Fenster");
-
-
- wahl=choose_sub_menu(windows,8,&sw1);
- switch(wahl){
- case 0: set_help_name("Dynamische Fenster");
- zeige_dyn_fenster();
- break;
-
- case 1: set_help_name("Stapeln Fenster");
- zeige_stapeln_window();
- break;
-
- case 2: break;
-
- case 3: set_help_name("Fensterbeschreiben");
- zeige_schreiben_window();
- break;
-
- case 5: set_help_name("Fenster Farbe");
- zeige_fenster_farbe();
- break;
-
- case 6: break;
-
- case 7: set_help_name("Fenster verfügbar");/* Setze die Aktivposten fest */
- windowsm[0].aktiv=windows[0].aktiv;
- windowsm[1].aktiv=windows[1].aktiv;
- windowsm[2].aktiv=windows[3].aktiv;
- windowsm[3].aktiv=windows[4].aktiv;
-
- choose_button("Setzen Sie die verfügbaren Positionen",windowsm,4,20,4);
- windows[0].aktiv=windowsm[0].aktiv;
- windows[1].aktiv=windowsm[1].aktiv;
- windows[3].aktiv=windowsm[2].aktiv;
- windows[4].aktiv=windowsm[3].aktiv;
- break;
-
-
- default:{break;}
- }
-
- close_window(sw1);
- set_color_table(col);
- NORMAL
- return(0);
- }
-