george@osc.COM (George Baggott) (01/15/91)
I've been trying for the past few days to create a scrolled list with a
certain width and height but cannot do it. Depending on exactly how I code,
either the list will only be one line in height, the program will segmentation
fault when the list gets the input focus, or the program will segmentatation
fault when I click on an item in the list. Can anyone out there help me out?
I'm working on a Sun 3/80 with X11R4, Motif 1.1, and C++. Below, I have
appended a short test program and the gdb stack trace from the core dump
it produces when it gets the input focus.
George
-------------------------------------------------------------------------------
The code:
-------------------------------------------------------------------------------
#define XTFUNCPROTO
#include <X11/Intrinsic.h>
#include <Xm/Xm.h>
#include <Xm/List.h>
#include <Xm/ScrolledW.h>
#include <Xm/BulletinB.h>
#include <stream.h>
void
main(Cardinal argc, String *argv)
{
XtAppContext appContext;
Widget topLevel = XtAppInitialize(&appContext, "Bug Demo",
NULL, 0, &argc, argv, NULL, NULL, 0);
Widget bulletinBoard = XtVaCreateManagedWidget(
"test_bulletin_board", xmBulletinBoardWidgetClass, topLevel,
XmNx, (Position)0,
XmNy, (Position)0,
XmNwidth, (Dimension)300,
XmNheight, (Dimension)300,
NULL);
Arg args[10];
int argCount = 0;
XtSetArg(args[argCount], XmNselectionPolicy, XmMULTIPLE_SELECT); argCount++;
XtSetArg(args[argCount], XmNx, (Position)10); argCount++;
XtSetArg(args[argCount], XmNy, (Position)10); argCount++;
XtSetArg(args[argCount], XmNwidth, (Dimension)280); argCount++;
XtSetArg(args[argCount], XmNheight, (Dimension)280); argCount++;
Widget listWidget =
XmCreateScrolledList(bulletinBoard, "test_list", args, argCount);
XtManageChild(listWidget);
for (int i = 0; i < 5; ++ i) {
XmString string
= XmStringCreate(form("item #%d", i), XmSTRING_DEFAULT_CHARSET);
XmListAddItem(listWidget, string, 0);
XmStringFree(string);
}
XtRealizeWidget(topLevel);
XtAppMainLoop(appContext);
}
-------------------------------------------------------------------------------
Stack trace of the core dump:
-------------------------------------------------------------------------------
#0 0xdbe0 in XmCreateLabelGadget ()
#1 0x113da in XmCreateLabelGadget ()
#2 0x76534 in _XtTranslateEvent ()
#3 0x5fa52 in XtWindowToWidget ()
#4 0x60800 in _XtSendFocusEvent ()
#5 0x66446 in _XtHandleFocus ()
#6 0x66722 in XtSetKeyboardFocus ()
#7 0x33afa in _XmMgrTraversal ()
#8 0x33644 in _XmMgrTraversal ()
#9 0x33588 in _XmMgrTraversal ()
#10 0x34412 in XmProcessTraversal ()
#11 0x10468 in XmCreateLabelGadget ()
#12 0x76534 in _XtTranslateEvent ()
#13 0x5fa52 in XtWindowToWidget ()
#14 0x6018c in _XtOnGrabList ()
#15 0x60256 in XtDispatchEvent ()
#16 0x6053e in XtAppMainLoop ()
#17 0x29e4 in main (...) (...)