From: ewt Date: Mon, 16 Feb 1998 23:03:21 +0000 (+0000) Subject: added newtButtonBarv() X-Git-Tag: r0-22~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=db02ba4988348c2008f7e569065878ebbc9516d3;p=thirdparty%2Fnewt.git added newtButtonBarv() --- diff --git a/buttonbar.c b/buttonbar.c index 905829d..45473c9 100644 --- a/buttonbar.c +++ b/buttonbar.c @@ -2,38 +2,45 @@ #include "newt.h" -newtGrid newtButtonBar(char * button1, newtComponent * b1comp, ...) { - va_list args; - char * name; +/* if they try and pack more then 50 buttons, screw 'em */ +newtGrid newtButtonBarv(char * button1, newtComponent * b1comp, va_list args) { newtGrid grid; - newtComponent * compPtr; + struct buttonInfo { + char * name; + newtComponent * compPtr; + } buttons[50]; int num; + int i; - va_start(args, b1comp); - - name = button1, num = 0; - while (name) { - name = va_arg(args, char *); - compPtr = va_arg(args, newtComponent *); + 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++; } - va_end(args); - grid = newtCreateGrid(num, 1); - va_start(args, b1comp); - - name = button1, compPtr = b1comp, num = 0; - while (name) { - *compPtr = newtButton(-1, -1, name); - newtGridSetField(grid, num, 0, NEWT_GRID_COMPONENT, *compPtr, + 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, num ? 1 : 0, 0, 0, 0, 0, 0); - - name = va_arg(args, char *); - compPtr = va_arg(args, newtComponent *); - num++; } 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; +}