1#include <stdlib.h> 2#include <stdio.h> 3#include <X11/StringDefs.h> 4#include <Xaw/Box.h> 5#include <Xaw/List.h> 6#include <Xaw/Viewport.h> 7#include <Xaw/Command.h> 8 9void quit_CB(Widget w, XtPointer closure, XtPointer call_data) 10{ 11 Widget lst=closure; 12 XawListReturnStruct *ret; 13 14 ret=XawListShowCurrent(lst); 15 16 if (ret->string[0] != 0) 17 printf("selected:%s\n",ret->string); 18 19 XtAppSetExitFlag(XtWidgetToApplicationContext(w)); 20} 21 22int main(int argc, char **argv) 23{ 24 Widget toplevel,box,list,cmd,view; 25 XtAppContext app_con; 26 toplevel = XtAppInitialize(&app_con, "Hello", NULL, 0, 27 &argc, argv, NULL, 28 NULL, 0); 29 char *items[]={ "the ","quick","brown", "fox ", 30 "jumps","Over","the","lazy","dog", 31 NULL}; 32 33 box = XtCreateManagedWidget("box", boxWidgetClass, toplevel, NULL, 0); 34 cmd=XtCreateManagedWidget("exit", commandWidgetClass, box, NULL, 0); 35 36 view=XtVaCreateManagedWidget("viewport", viewportWidgetClass, box, 37 XtNallowVert, 1, 38 XtNforceBars,1, 39 NULL); 40 41 list= XtVaCreateManagedWidget("listbox", listWidgetClass,view, 42 XtNlist,items, 43 XtNdefaultColumns,1, 44 XtNnumberStrings,4, 45 XtNforceColumns,1, 46 NULL); 47 XawListChange(list,items,0,0,0); 48 XtAddCallback(cmd, XtNcallback, quit_CB , list); 49 XtRealizeWidget(toplevel); 50 XtAppMainLoop(app_con); 51 exit(0); 52} 53