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