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[])23 int 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