borgato@ghost.unimi.it (Andrea Borgato) (06/12/91)
Hi,
I'm Andrea Borgato from Milano Italy and I'm GUI developer.
I've a little bit problem with XmSelectionBox. The problem is
following:
During interaction between user and my application, when user
chooses a particular menu item that shows Selection Box where
*cancel button* set as default button; selects item from list
and press return key my application print a X error something
like follow:
??? X failed request X_FillPolygon Bad Drawable ???
Below there is a code fragment that creates a XmSelectionBox
in my application.
I hope somebody will have any suggestions or solutions about
my problem.
--
Andrea Borgato Phone: +39-2-26162-233
Etnoteam S.p.A. Phone: +39-2-26162-234
Via Adelaide Bono Cairoli 34 E-mail: borgato@ghost.unimi.it
20126 Milano Italy E-mail: andrea@etnomi.UUCP
-------------------------- Code Source ---------------------------------
/*
* @(#) Etnoteam S.p.A.: HfLooknFeel Library.
* @(#)
* @(#) SelectPane.c - It contains functions for creating and manage
* @(#) selection panel
* @(#)
* @(#) By Andrea Borgato Milano, Mar. 12th 1991.
*/
/*
* System Includes
*/
#include <X11/StringDefs.h>
#include <X11/Intrinsic.h>
#include <Xm/Xm.h>
#include <Xm/SelectioB.h>
/*
* User Includes
*/
#include <Xhflf.h>
/*
* This function creates, sets item list and shows the selection panel
*/
void XhflfShowSelectPane(nitems, listitems, Func, Name)
int nitems;
char *listitems[];
void (*Func)();
char *Name;
{
Arg args[10];
register int n;
int i;
XmString *list;
XmString sel;
Widget selectpane;
Widget cancelbutton;
Widget textitem;
XmString MTitle;
/*
* Create Dialog Title
*/
MTitle = XmStringCreate(Name, XmSTRING_DEFAULT_CHARSET);
/*
* Create SelectionDialog
*/
n = 0;
XtSetArg(args[n], XmNdialogTitle, MTitle); n++;
XtSetArg(args[n], XmNautoUnmanage, False); n++;
XtSetArg(args[n], XmNdialogStyle, XmDIALOG_SYSTEM_MODAL); n++;
selectpane = XmCreateSelectionDialog(_HFTopLevel, "selectpane", args, n);
/*
* Unmanage Apply Button
*/
XtUnmanageChild(XmSelectionBoxGetChild(selectpane, XmDIALOG_APPLY_BUTTON));
/*
* Set the default Button
*/
cancelbutton = XmSelectionBoxGetChild(selectpane, XmDIALOG_CANCEL_BUTTON);
n = 0;
XtSetArg(args[n], XmNdefaultButton, cancelbutton); n++;
XtSetValues(selectpane, args, n);
/*
* Set Max length of Text field
*/
textitem = XmSelectionBoxGetChild(selectpane, XmDIALOG_TEXT);
n = 0;
XtSetArg(args[0], XmNmaxLength, 13); n++;
XtSetValues(textitem, args, n);
XtAddCallback(selectpane, XmNokCallback, SPokCB, Func);
XtAddCallback(selectpane, XmNcancelCallback, SPcancelCB, Func);
/*
* Convert items list from char to XmString
*/
list = (XmString *)XtMalloc(sizeof(XmString) * nitems);
for (i = 0; i < nitems; i++)
list[i] = XmStringCreate(listitems[i], XmSTRING_DEFAULT_CHARSET);
/*
* Set list of items
*/
sel = XmStringCreate(Selection, XmSTRING_DEFAULT_CHARSET);
n = 0;
XtSetArg(args[n], XmNlistItemCount, nitems); n++;
XtSetArg(args[n], XmNlistItems, list); n++;
XtSetArg(args[n], XmNtextString, sel); n++;
XtSetValues(selectpane, args, n);
/*
* Show selection panel
*/
XtManageChild(selectpane);
}
------------------------------------------------------------------------------
--
Andrea Borgato Phone: +39-2-26162-233
Etnoteam S.p.A. Phone: +39-2-26162-234
Via Adelaide Bono Cairoli 34 E-mail: borgato@ghost.unimi.it
20126 Milano Italy E-mail: andrea@etnomi.UUCP