home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung 2 / Power-Programmierung CD 2 (Tewi)(1994).iso / c / library / dos / menu / kiwi / demoprg / init.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-04-14  |  8.3 KB  |  282 lines

  1. #include<kiwi_inc.h>
  2. #include<kiwipro.h>
  3. #include<demopro.h>
  4. #include<kiwiwin.h>
  5. #include<demo.h>
  6.  
  7.  
  8. extern int screen_mode;
  9.  
  10. extern int check_alter();
  11. extern zeige_groese();
  12. extern check_groese();
  13. extern zeige_table();
  14. extern int pre_list1(struct inter_func_com *ipc);
  15. extern int post_list1(struct inter_func_com *ipc);
  16. extern int pre_list2(struct inter_func_com *ipc);
  17. extern int post_list2(struct inter_func_com *ipc);
  18. extern int display_file(struct inter_func_com *ipc);
  19. extern int frontcolor(struct inter_func_com *ipc);
  20. extern int backcolor(struct inter_func_com *ipc);
  21.  
  22.  
  23.  
  24.  
  25. /*****************************************************************************
  26. *Name :init_tools
  27. *Typ  :int
  28. *Zweck:Initiiert den ganzen käse
  29. *
  30. *
  31. *               Name    Typ     Zweck
  32. *Aufrufpara :
  33. *
  34. *Rueckgabep :
  35. *
  36. *Funktionswt:
  37. *
  38. *****************************************************************************/
  39. int init_tools()
  40. {
  41. /* Setze Bildschirm fest autoselect     */
  42. set_video_mode(demo_fest.screen_size);
  43. /* Setze Bildschirmfarben               */
  44. init_screen((UCHAR)demo_fest.for_col_nor[0],(UCHAR)demo_fest.back_col_nor[0],
  45.         (UCHAR)demo_fest.for_col_inv[0],(UCHAR)demo_fest.back_col_inv[0],(UCHAR)demo_fest.background,DIREKT);
  46. init_color_table(1,(UCHAR)demo_fest.for_col_nor[1],(UCHAR)demo_fest.back_col_nor[1],
  47.         (UCHAR)demo_fest.for_col_inv[1],(UCHAR)demo_fest.back_col_inv[1]);
  48. init_color_table(2,(UCHAR)demo_fest.for_col_nor[2],(UCHAR)demo_fest.back_col_nor[2],
  49.         (UCHAR)demo_fest.for_col_inv[2],(UCHAR)demo_fest.back_col_inv[2]);
  50. init_color_table(3,(UCHAR)demo_fest.for_col_nor[3],(UCHAR)demo_fest.back_col_nor[3],
  51.         (UCHAR)demo_fest.for_col_inv[3],(UCHAR)demo_fest.back_col_inv[3]);
  52. init_color_table(4,(UCHAR)demo_fest.for_col_nor[4],(UCHAR)demo_fest.back_col_nor[4],
  53.         (UCHAR)demo_fest.for_col_inv[4],(UCHAR)demo_fest.back_col_inv[4]);
  54.  
  55. if(demo_fest.output_mode==0)set_output_mode(BIOS);
  56. /* Setze Bildschirmfenster                      */
  57. init_window(30);                        /* Mache Platz fuer 30 Fenster  */
  58. init_virtuell_screen(25);
  59.  
  60. if(!demo_fest.saa_zeichen)
  61. {
  62.     set_saa_character(24,25,17,16,18,254,197,197);
  63.     set_window_scroll_bar(OFF);
  64. }
  65. else 
  66. {
  67.     if(demo_fest.saa_zeichen==1)set_saa_character(30,31,17,16,18,254,254,254);
  68.     set_window_scroll_bar(ON);
  69.     if(demo_fest.background==177)set_scroll_bar_character(178);
  70.     else                      set_scroll_bar_character(177);
  71. }
  72.  
  73.  
  74. init_help("demo");                      /* Init Hilfe                   */
  75. init_error("demo");                     /* Init error                   */
  76. set_help_mask(F1);                      /* Setze Hilfe auf F1           */
  77. set_help_color(VHELLWEIS | HROT,VGELB | HBLAU); /* Setzte Hilfsfarbe    */
  78. set_help(FORMATIERT);
  79.  
  80. init_printer("printer.ksp");            /* init printer                 */
  81.  
  82. set_printer_output(demo_fest.printer);
  83. set_print_edge(demo_fest.linker_rand);
  84.  
  85. init_window_manager();
  86. set_winman_mask(WINDOW_MOVE);
  87. set_window_delete_mode(ON);
  88. set_window_position_memory(ON);
  89. sm_set_frame_color(demo_fest.frame_color);                      /* Faerbe overscan      */
  90. if(demo_fest.shadow==0)set_shadow(OFF);
  91. logo();                                                 /* Zeige Logo           */
  92. cls();                                  /* Loesche Schirm mit zeichen   */
  93.  
  94. set_scanf_exit_code(1,F6,1);
  95. set_scanf_exit_code(2,F5,0);
  96. set_scanf(EXTRA_COL_ON);                        /* Sonderdarstellung an 3.Farbe */
  97. set_menu(COMMENT);
  98. set_menu(MENU_ENABLE_KEEP);
  99. set_menu(demo_fest.menu_maus);
  100. set_menu(demo_fest.menu_mode);
  101. set_menu_exit_code(1,F6);
  102. set_menu_exit_code(2,F5);
  103.  
  104. set_mouse_cursor_size(CURSOR_VOLL);     /* Setze Mauscursorform         */
  105. init_mouse();                           /* Aktiviere Maus wenn da       */
  106. limit_mouse_area(1,1,get_screen_wide(),get_screen_height());
  107.  
  108.  
  109. set_menu(COMMENT);
  110. set_cursor_size(CURSOR_WEG);            /* Verstecke Cursor             */ 
  111.  
  112.  
  113. set_message_attribut(demo_fest.for_col_inv[0] | demo_fest.back_col_inv[0]);
  114. set_message_row(get_screen_height());
  115.  
  116. set_pieps_mode(demo_fest.sound);
  117.  
  118. if(demo_fest.button_typ==0)set_button_mode(KIWI_MODE);
  119. else if(demo_fest.button_typ==1)set_button_mode(TURBO_MODE);
  120. else if(demo_fest.button_typ==2)set_button_mode(MICROSOFT);
  121.  
  122. if(demo_fest.button_shadow==0)set_button_mode(SHADOW_ON);
  123. else                        set_button_mode(SHADOW_OFF);
  124.  
  125. if(demo_fest.button_klick==0)set_button_mode(KLICK_ON);
  126. else                      set_button_mode(KLICK_OFF);
  127.     
  128. if(demo_fest.button_freq_ein<10)demo_fest.button_freq_ein=150;
  129. if(demo_fest.button_freq_aus<10)demo_fest.button_freq_aus=100;
  130. if(demo_fest.button_ton_ein<1)demo_fest.button_ton_ein=2;
  131. if(demo_fest.button_ton_aus<1)demo_fest.button_ton_aus=2;
  132.  
  133. set_button_sound(demo_fest.button_freq_ein,demo_fest.button_ton_ein,
  134.          demo_fest.button_freq_aus,demo_fest.button_ton_aus);
  135.  
  136. set_window_display_mode(demo_fest.win_open_mode);
  137. set_window_open_delay(demo_fest.open_delay);
  138.  
  139. init_procedure_table(15);       /* Init Procedure Table                 */
  140. set_procedure_table_entry(1,"check_alter",0,check_alter);
  141. set_procedure_table_entry(2,"zeige_groese",0,zeige_groese);
  142. set_procedure_table_entry(3,"check_groese",0,check_groese);
  143. set_procedure_table_entry(4,"",(ALT_KEY << 8) | 90,zeige_table);
  144. set_procedure_table_entry(5,"pre_list1",0,pre_list1);
  145. set_procedure_table_entry(6,"post_list1",0,post_list1);
  146. set_procedure_table_entry(7,"pre_list2",0,pre_list2);
  147. set_procedure_table_entry(8,"post_list2",0,post_list2);
  148. set_procedure_table_entry(9,"display_file",0,display_file);
  149. set_procedure_table_entry(10,"frontcolor",0,frontcolor);
  150. set_procedure_table_entry(11,"backcolor",0,backcolor);
  151.  
  152. install_error_handler();
  153.  
  154. return(0);
  155. }
  156.  
  157. /*****************************************************************************
  158. *Name :reset_tools
  159. *Typ  :void
  160. *Zweck:Loescht den ganzen Käse
  161. *
  162. *
  163. *               Name    Typ     Zweck
  164. *Aufrufpara :
  165. *
  166. *Rueckgabep :
  167. *
  168. *Funktionswt:
  169. *
  170. *****************************************************************************/
  171. void reset_tools()
  172. {
  173. reset_mouse();                  /*      Maus weg        */
  174. reset_virtuell_screen();        /*      Screens weg     */
  175. reset_window();                 /*      Fenster frei    */
  176. reset_screen();                 /*      Bildschirm frei */
  177. reset_help();                   /*      Hilfe zu        */
  178. reset_error();                  /*      Error zu        */
  179. reset_procedure_table();        /*      Table weg               */
  180. set_cursor_size(CURSOR_UNTEN);  /*      Cursor auf klein        */
  181. set_video_mode(C_80x25);
  182. clear();                        /*      Loesche Bildschirm      */              
  183. check_memory();
  184. return;
  185. }
  186.  
  187. int check_alter(struct inter_func_com *ifc)
  188. {
  189. int i;
  190. WINDOW win;
  191. set_procedure_table(OFF);
  192.  
  193. FLIPC
  194. i=(*(int *)ifc->ptr);
  195. win=open_window("",AM,AM,50,7,DOPPELT);
  196. wlocate(win,1,1);
  197. printw(win,"%s\n %s %d"," Hier ist >check_alter< Routine","Das eingegebe Alter ist ",i);
  198. wlocate(win,2,3);
  199. printw(win,"%s %f","Die Untergrenze ist ",window_typ[ifc->win-1].ipp[ifc->count].min);
  200. wlocate(win,2,4);
  201. printw(win,"%s %f","Die Obergrenze ist  ",window_typ[ifc->win-1].ipp[ifc->count].max);
  202.  
  203.  
  204. wait_of_action();
  205. set_procedure_table(ON);
  206. close_window(win);
  207. FLIPC
  208.  
  209. return(0);
  210. }
  211.  
  212.  
  213.  
  214.  
  215. int zeige_groese(struct inter_func_com *ifc)
  216. {
  217. WINDOW win;
  218. set_procedure_table(OFF);
  219. FLIPC
  220.  
  221. win=open_window("",AM,AM,50,5,DOPPELT);
  222. wlocate(win,1,1);
  223. printw(win,"%s\n %s\n %s"," Hier ist >zeige_groese< Routine",
  224.     "Diese Funktion wird vor dem Editieren",
  225.     "Des Wertes aufgerufen");
  226.  
  227. wait_of_action();
  228. set_procedure_table(ON);
  229. close_window(win);
  230. FLIPC
  231.  
  232. return(0);
  233. }
  234.  
  235.  
  236.  
  237.  
  238.  
  239. int check_groese(struct inter_func_com *ifc)
  240. {
  241. WINDOW win;
  242. set_procedure_table(OFF);
  243. FLIPC
  244.  
  245. win=open_window("",AM,AM,50,5,DOPPELT);
  246. wlocate(win,1,1);
  247. printw(win,"%s\n %s\n %s"," Hier ist >check_groese< Routine",
  248.     "Diese Funktion wird nach dem Editieren",
  249.     "Des Wertes aufgerufen");
  250.  
  251. wait_of_action();
  252. set_procedure_table(ON);
  253. close_window(win);
  254. FLIPC
  255.  
  256. return(0);
  257. }
  258.  
  259. int zeige_table()
  260. {
  261. WINDOW win;
  262. set_procedure_table(OFF);
  263. FLIPC
  264.  
  265. win=open_window("",AM,AM,50,5,DOPPELT);
  266. wlocate(win,1,1);
  267. printw(win,"%s\n %s\n %s"," Hier ist >zeige_table< Routine",
  268.     "Diese Funktion wird unmittelbar durch eine",
  269.     "Tastenkombination aufgerufen ALT+Z");
  270.  
  271. wait_of_action();
  272. set_procedure_table(ON);
  273. close_window(win);
  274. FLIPC
  275.  
  276. return(0);
  277. }
  278.  
  279.  
  280.  
  281.  
  282.