1 #include <stdarg.h>
2 
3 #include "newt.h"
4 
5 /* if they try and pack more then 50 buttons, screw 'em */
newtButtonBarv(char * button1,newtComponent * b1comp,va_list args)6 newtGrid newtButtonBarv(char * button1, newtComponent * b1comp, va_list args) {
7     newtGrid grid;
8     struct buttonInfo {
9 	char * name;
10 	newtComponent * compPtr;
11     } buttons[50];
12     int num;
13     int i;
14 
15     buttons[0].name = button1, buttons[0].compPtr = b1comp, num = 1;
16     while (1) {
17 	buttons[num].name = va_arg(args, char *);
18 	if (!buttons[num].name) break;
19 	buttons[num].compPtr = va_arg(args, newtComponent *);
20 	num++;
21     }
22 
23     grid = newtCreateGrid(num, 1);
24 
25     for (i = 0; i < num; i++) {
26 	*buttons[i].compPtr = newtButton(-1, -1, buttons[i].name);
27 	newtGridSetField(grid, i, 0, NEWT_GRID_COMPONENT,
28 			 *buttons[i].compPtr,
29 			 num ? 1 : 0, 0, 0, 0, 0, 0);
30     }
31 
32     return grid;
33 }
34 
newtButtonBar(char * button1,newtComponent * b1comp,...)35 newtGrid newtButtonBar(char * button1, newtComponent * b1comp, ...) {
36     va_list args;
37     newtGrid grid;
38 
39     va_start(args, b1comp);
40 
41     grid = newtButtonBarv(button1, b1comp, args);
42 
43     va_end(args);
44 
45     return grid;
46 }
47