/* $Header: /cvsroot/lesstif/lesstif/test/Xm/rowcolumn/test32.c,v 1.7 2001/05/23 14:21:12 amai Exp $ */ #include #include #include #include #include #include #include #include #include void layoutApplication(Widget topLevel); Widget topLevel, topForm, mainMenu, fileMenu, editMenu; Widget helpMenu, optionMenu, popMenu, drawA, optionMenu2; /* callback for option menu */ void drawCB(Widget wid, XtPointer cld, XtPointer cad) { } void createOptionMenu(Widget parent) { XmString lineStr, squareStr, circleStr; XmString optLab; optLab = XmStringCreateLocalized("Shape : "); lineStr = XmStringCreateLocalized("Line"); squareStr = XmStringCreateLocalized("Square"); circleStr = XmStringCreateLocalized("Circle"); optionMenu = XmVaCreateSimpleOptionMenu(parent, "optmenu", optLab, 'D', 0, drawCB, XmVaPUSHBUTTON, lineStr, 'L', 0, 0, XmVaPUSHBUTTON, squareStr, 'S', 0, 0, XmVaPUSHBUTTON, circleStr, 'C', 0, 0, 0); XmStringFree(optLab); XmStringFree(lineStr); XmStringFree(squareStr); XmStringFree(circleStr); XtManageChild(optionMenu); XtVaSetValues(optionMenu, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, mainMenu, NULL); } int main(int argc, char *argv[]) { XtAppContext appContext; topLevel = XtAppInitialize(&appContext, "Menus", 0, 0, &argc, argv, 0, 0, 0); layoutApplication(topLevel); XtRealizeWidget(topLevel); { static XtWidgetGeometry Expected[] = { CWWidth | CWHeight, 0, 0, 226, 35, 0,0,0, CWWidth | CWHeight | CWX | CWY, 0, 0, 134, 31, 0,0,0, CWWidth | CWHeight | CWX | CWY, 3, 3, 52, 25, 0,0,0, CWWidth | CWHeight | CWX | CWY, 58, 3, 73, 25, 0,0,0, CWWidth | CWHeight | CWX | CWY, 134, 0, 92, 35, 0,0,0, CWWidth | CWHeight | CWX | CWY, 3, 3, 4, 29, 0,0,0, CWWidth | CWHeight | CWX | CWY, 10, 3, 79, 29, 0,0,0, }; PrintDetails(topLevel, Expected); } LessTifTestMainLoop(topLevel); /* XtAppMainLoop(appContext); */ return 0; } Widget GXCreateOptionMenu(Widget parent, char **entries) { Arg args[10]; XmString *buttonArray; char **cptr; int cnt,i,n; Widget opt,pulldown; cptr=entries; cnt=0; do { cnt++; cptr++; } while (*cptr); if (!(buttonArray=(XmString*)malloc(cnt*sizeof(XmString)))) { return NULL; } /* create the menu */ for (i=0;i