thanh@athertn.Atherton.COM (Thanh Diec) (06/25/91)
Does anyone out there have a working example of XmCreateScrolledList()? I have a procedure here to display a list in a scrolling window, but the window displayed is empty, without scrollbars or list. Can anyone tell me what is wrong with this procedure? Whereas if I use the 'list' widget, the list is displayed. Thanks in advance, Thanh thanh@atherton.com (408)734-9822 ==================== program ==================== #include <X11/StringDefs.h> #include <X11/Intrinsic.h> #include <X11/Shell.h> #include <Xm/Xm.h> #include <Xm/RowColumn.h> #include <Xm/PushB.h> #include <Xm/PanedW.h> #include <Xm/BulletinB.h> #include <Xm/List.h> static Widget showList(); main(argc, argv) int argc; char *argv[]; { XtAppContext app_context; Widget topLevel, root, cmd, add, quit, mlist; int addDesc, quitDesc; topLevel = XtVaAppInitialize( &app_context, "XAtdbux", NULL, 0, &argc, argv, NULL, NULL); showList(topLevel); XtRealizeWidget (topLevel); XtAppMainLoop(app_context); } static char *names[] = { "one", "two", "three" }; static Widget showList(parent) Widget parent; { XmString *xmstr; Widget bb, mlist; Arg wargs[10]; int idx, n, namesCnt; /* base window */ bb = XtCreateManagedWidget("bb", xmBulletinBoardWidgetClass, parent, NULL, 0); /* str -> xmstr */ namesCnt = XtNumber(names); xmstr = (XmString *) XtMalloc(sizeof(XmString) * namesCnt); for (idx = 0; idx < namesCnt; idx++) xmstr[idx] = XmStringCreate(names[idx], XmSTRING_DEFAULT_CHARSET); n = 0; XtSetArg(wargs[n], XmNitems, xmstr); n++; XtSetArg(wargs[n], XmNitemCount, namesCnt); n++; XtSetArg(wargs[n], XmNvisibleItemCount, namesCnt); n++; XtSetArg(wargs[n], XmNscrollingPolicy, XmAUTOMATIC); n++; #if SCROLLED_LIST /* scrolled list, does NOT work, blank window */ mlist = XmCreateScrolledList(bb, "mlist", wargs, n); #else /* list, works */ mlist = XtCreateManagedWidget("mlist", xmListWidgetClass, bb, wargs, n); #endif return(mlist); }