1 /* 2 * huskyui.c 3 */ 4 5 #include <ncurses.h> 6 #include <stdio.h> 7 #include <unistd.h> 8 #include <string.h> 9 #include "screen.h" 10 #include "showlog.h" 11 #include "showoutb.h" 12 #include "menu.h" 13 #include "cfg.h" 14 15 typedef enum _eWindow { logwindow, outbwindow, menuwindow } eWindow; 16 17 18 /* global vars */ 19 int do_exit = 0; 20 eWindow activeWindow; 21 22 main(int argc,char * argv[])23int main(int argc, char *argv[]) 24 { 25 int c; 26 27 cfgInit(); 28 scrInit(); 29 logInit(0); 30 outbInit(0); 31 menuInit(1); 32 activeWindow = menuwindow; 33 34 while (!do_exit) 35 { 36 c = wgetch(inputWin); 37 38 if (c == ERR) usleep(100000); 39 else 40 { 41 switch (c) 42 { 43 case 27: 44 do_exit = 1; 45 break; 46 47 case 'q': 48 do_exit = 1; 49 break; 50 51 case 9: 52 switch (activeWindow) 53 { 54 case logwindow: 55 { 56 logSetInactive(); 57 outbSetActive(); 58 activeWindow = outbwindow; 59 } 60 break; 61 62 case outbwindow: 63 { 64 outbSetInactive(); 65 menuSetActive(); 66 activeWindow = menuwindow; 67 } 68 break; 69 70 case menuwindow: 71 { 72 menuSetInactive(); 73 logSetActive(); 74 activeWindow = logwindow; 75 } 76 break; 77 } 78 79 default: 80 switch (activeWindow) 81 { 82 case logwindow: 83 logProcessKey(c); 84 break; 85 86 case outbwindow: 87 outbProcessKey(c); 88 break; 89 90 case menuwindow: 91 menuProcessKey(c); 92 break; 93 } 94 } 95 } 96 97 logDraw(); 98 outbDraw(); 99 menuDraw(); 100 } 101 102 menuDone(); 103 outbDone(); 104 logDone(); 105 scrDone(); 106 cfgDone(); 107 108 return 0; 109 } 110 111