⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test10.c

📁 安装DDD之前
💻 C
字号:
/* $Header: /cvsroot/lesstif/lesstif/test/Xm/selectionbox/test10.c,v 1.4 2001/06/18 14:05:31 amai Exp $From:        "Randall L. Ricklefs" <rlr@almagest.as.utexas.edu>To:          lesstif@hungry.comSubject:     Selection Box BugDate:        Tue, 29 Jun 1999 10:49:34 -0500 (CDT)cc:          "Randall L. Ricklefs" <rlr@almagest.as.utexas.edu>Greetings!The Selection box widget in Lesstif 88.1 will not allow me to unmanage the dialog list, which I can do under Motif .nd is a documented feature. As a test program, I have included a modified version of SelectionBox test6.c. When run as "test6 4" it seg faults when the main window button is pushed and gives the following trace.#0  0x402b2a22 in bcmp ()#1  0x40035b48 in geometry_manager (w=0x806cc40, desired=0xbffff514,     allowed=0x0) at BulletinBoard.c:913#2  0x4006f36c in _XmHandleGeometryManager (w=0x806be88, instigator=0x806cc40,     desired=0xbffff514, allowed=0xbffff4dc, policy=2 '\002',     cachePtr=0x806bfbc,     createMatrix=0x400dc304 <_XmSelectionBoxGeoMatrixCreate>)    at GeoUtils.c:2002#3  0x4003598c in handle_geometry_manager (w=0x806cc40, desired=0xbffff514,     allowed=0xbffff4dc, mat_make=0x400dc304 <_XmSelectionBoxGeoMatrixCreate>)    at BulletinBoard.c:888#4  0x40035bb6 in geometry_manager (w=0x806cc40, desired=0xbffff514,     allowed=0xbffff4dc) at BulletinBoard.c:930#5  0x40033b98 in GeometryHandlerWrapper (w=0x806cc40, request=0xbffff514,     reply=0xbffff4dc, IntentedWrapperDepth=7) at BaseClass.c:1323#6  0x40032e6b in GeometryHandlerWrapper7 (w=0x806cc40, request=0xbffff514,     reply=0xbffff4dc) at BaseClass.c:590#7  0x4019ebde in _XtMakeGeometryRequest ()#8  0x4019ef02 in XtMakeGeometryRequest ()#9  0x4006f5e0 in _XmMakeGeometryRequest (w=0x806cc40, desired=0xbffff514)    at GeoUtils.c:2102#10 0x400d5550 in realize (w=0x806cc40, value_mask=0xbffff574,     attributes=0xbffff578) at ScrolledW.c:1036#11 0x401a21bb in RealizeWidget ()#12 0x401a2375 in RealizeWidget ()#13 0x401a2464 in XtRealizeWidget ()#14 0x40047633 in change_managed (w=0x806a3e8) at DialogS.c:340#15 0x401a5153 in ManageChildren ()#16 0x401a530e in XtManageChildren ()#17 0x401a53fb in XtManageChild ()#18 0x80496d8 in pushme (w=0x80688f8, client=0x0, call=0xbffff910)    at test6.c:109#19 0x40190b24 in XtCallCallbackList ()#20 0x400ae6e0 in Activate (w=0x80688f8, event=0xbffffabc, params=0x0,     num_params=0x805b370) at PushB.c:1070#21 0x401bde9b in HandleActions ()#22 0x401be81e in HandleComplexState ()#23 0x401be8db in _XtTranslateEvent ()#24 0x4019bcbf in XtDispatchEventToWidget ()#25 0x4019c6fd in _XtDefaultDispatcher ()#26 0x4019c975 in XtDispatchEvent ()#27 0x4019cd5d in XtAppMainLoop ()#28 0x804b050 in LessTifTestMainLoop (w=0x805ce30) at Test.c:507#29 0x80497c6 in main (argc=2, argv=0xbffffb58) at test6.c:141(gdb) The test program, as modified:*/#include <stdlib.h>#include <stdio.h>#include <Xm/Xm.h>#include <Xm/PushB.h>#include <Xm/SelectioB.h>#include  "../../common/Test.h"XtAppContext app;Widget toplevel, box, push, tf;int which = 0;voidok(Widget w, XtPointer client, XtPointer call){	XmSelectionBoxCallbackStruct *p = (XmSelectionBoxCallbackStruct *)call;	char	*s = NULL;	XmStringGetLtoR(p->value, XmSTRING_DEFAULT_CHARSET, &s);	fprintf(stderr, "Ok '%s'\n", s);}voidactivate(Widget w, XtPointer client, XtPointer call){	fprintf(stderr, "Activated\n");}voidpushme(Widget w, XtPointer client, XtPointer call){	int argc;	Arg args[3];	Widget menu, pane1, cascade1, but;	box = XmCreateSelectionDialog(toplevel, "Box", NULL, 0);	but=XmSelectionBoxGetChild(box, XmDIALOG_OK_BUTTON);	if (but)		XtUnmanageChild(but);	but=XmSelectionBoxGetChild(box, XmDIALOG_HELP_BUTTON);	if (but)		XtUnmanageChild(but);	but=XmSelectionBoxGetChild(box, XmDIALOG_CANCEL_BUTTON);	if (but)		XtUnmanageChild(but);	but=XmSelectionBoxGetChild(box, XmDIALOG_APPLY_BUTTON);	if (but)		XtUnmanageChild(but);	but=XmSelectionBoxGetChild(box, XmDIALOG_LIST);	if (but)		XtUnmanageChild((but));printf("but=%d %s\n",but, XtName(but));	XtVaCreateManagedWidget("button0", xmPushButtonWidgetClass,				box, NULL);	XtManageChild(box);}intmain(int argc, char **argv){	if (argc > 1)	    which = atoi(argv[1]);	toplevel = XtVaAppInitialize(&app, "listTest", NULL, 0,		&argc, argv, NULL, NULL);	push = XmCreatePushButton(toplevel, "push", NULL, 0);	XtVaSetValues(push,			XtVaTypedArg, XmNlabelString, XtRString, "Push me !", 9,		NULL);	XtAddCallback(push, XmNactivateCallback, pushme, NULL);	XtManageChild(push);	XtRealizeWidget(toplevel);	LessTifTestWaitForIt(toplevel);	LessTifTestPushButton(push);	LessTifTestWaitForIt(box);  /* Note: the following values are the result of * querying the current geometry. */{static XtWidgetGeometry Expected[] = {   CWWidth | CWHeight            ,  300,  266,  160,  160, 0,0,0, /* Box */   CWWidth | CWHeight | CWX | CWY,   11,   11,  138,   17, 0,0,0, /* Items */   CWWidth | CWHeight | CWX | CWY,    0,    0,    1,    1, 0,0,0, /* ItemsListSW */   CWWidth | CWHeight | CWX | CWY,   11,   89,  138,   17, 0,0,0, /* Selection */   CWWidth | CWHeight | CWX | CWY,   11,  106,  138,   31, 0,0,0, /* Text */   CWWidth | CWHeight | CWX | CWY,    0,  147,  160,    2, 0,0,0, /* Separator */   CWWidth | CWHeight | CWX | CWY,   11,   38,  138,   41, 0,0,0, /* button0 */};/* toplevel should be replaced with to correct applicationShell */PrintDetails(box, Expected);}LessTifTestMainLoop(toplevel);	exit(0);}/*Diff from original:--- /prod/contrib/src/lesstif-0.88.1/test/Xm/selectionbox/test6.c	Tue Jun 29 08:26:06 1999+++ test6.c	Tue Jun 29 08:25:26 1999@@ -101,7 +101,6 @@ 		if (but) 			XtUnmanageChild(but); 		but=XmSelectionBoxGetChild(box, XmDIALOG_LIST);-		but=XmSelectionBoxGetChild(box, XmDIALOG_LIST_LABEL); 		if (but) 			XtUnmanageChild(but); printf("but=%d\n",but);Any ideas?Thanks.RandyP.S. Your team is doing a great job! Thanks for all your efforts. -----------------------    Randy Ricklefs    ------------------------                       rlr@astro.as.utexas.edu              McDonald Observatory,  University of Texas   Phone:(512) 471-1342    Austin TX 78712       FAX:  (512)471-6016*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -