#include <stdarg.h>
#include <Xm/Xm.h>
#include <Xm/PushBG.h>
#include <Xm/Label.h>
#include <Xm/LabelG.h>
#include <Xm/SeparatoG.h>
#include <Xm/RowColumn.h>
void AddPopupEntry(Widget parent, char* label, XtCallbackProc cb)
{
Widget ch;
XmString str;
Arg args[2];
str = XmStringCreateLocalized(label);
XtSetArg(args[0], XmNlabelString, str);
ch = XmCreatePushButtonGadget(parent, label, args, 1);
XtAddCallback(ch, XmNactivateCallback, cb,
(XtPointer)label);
XtManageChild(ch);
XmStringFree(str);
}
void AddPopupEntries(Widget popup, char* title, XtCallbackProc callback, ...)
{
XmString str;
Arg args[2];
Widget child;
va_list ap;
char *label;
str = XmStringCreateLocalized(title);
XtSetArg(args[0], XmNlabelString, str);
child = XmCreateLabelGadget(popup, "Title", args, 1);
XtManageChild(child);
XmStringFree(str);
child = XmCreateSeparatorGadget(popup, "Sep", NULL, 0);
XtManageChild(child);
va_start(ap, callback);
while(label = va_arg(ap, char*))
AddPopupEntry(popup, label, callback);
va_end(ap);
}