home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!zaphod.mps.ohio-state.edu!wupost!emory!gatech!rutgers!cmcl2!adm!news
- From: beyer@bflsgu.fl.bs.dlr.de (Ralf Beyer DLR)
- Newsgroups: comp.sys.sgi
- Subject: Re: Help needed(2): Xlib
- Message-ID: <34901@adm.brl.mil>
- Date: 7 Jan 93 11:47:49 GMT
- Sender: news@adm.brl.mil
- Lines: 108
-
-
-
- I tried this with various other applications (all XLib-based) with
- the very same crash at the same point. In each case, XLoadFont() goes
- through allright. XQueryFont() does not. XLoadQueryFont() does not.
-
- The following code taken from one of my programs which runs on SGI with
- the display being the same SGI, on SGI with the display being another
- SGI and on SGI with the display being a SUN. SGI OS is 4.0.5, SUN OS
- is 4.1.1 (Open Windows). May be this is of any help.
-
- Regards
-
- Ralf Beyer
-
- ----------------------------------------------------------------------
- typedef struct
- {
- short number;
- short input; /* input channel */
- Widget parent;
- int xrel;
- int yrel;
- short fontindx;
- short foreground;
- short background;
- char string[20];
- Widget widget;
- short fontsizeclass;
- } LAbel;
-
- char *fontname[NO_OF_FONTS] = {
- "*courier-bold-o-*-80-*",
- "*courier-bold-o-*-100-*",
- "*courier-bold-o-*-120-*",
- "*courier-bold-o-*-140-*",
- "*courier-bold-o-*-180-*",
- "*courier-bold-o-*-240-*",
- "*courier-bold-r-*-80-*",
- "*courier-bold-r-*-100-*",
- "*courier-bold-r-*-120-*",
- "*courier-bold-r-*-140-*",
- "*courier-bold-r-*-180-*",
- "*courier-bold-r-*-240-*"};
-
- void CreateLabel(llabel)
-
- LAbel *llabel;
-
- {
- XmString label_string;
- XmFontList fontlist = NULL;
- XFontStruct *lfont = NULL;
- XmStringCharSet charset = (XmStringCharSet) XmSTRING_DEFAULT_CHARSET;
- Arg args[10];
- Cardinal n;
-
- /* Return if this widget is disabled by dummy parent (app_shell) */
-
- if (llabel->parent == app_shell)
- {
- if (debug > 0)
- printf("CreateLabel: dummy parent\n");
- return;
- }
-
- /* Return if the widget has no parent (error) */
-
- if (llabel->parent == NULL)
- {
- if (debug > 0)
- printf("CreateLabel: no parent\n");
- return;
- }
-
- lfont = XLoadQueryFont(XtDisplay(app_shell),fontname[llabel->fontindx]);
- if (!lfont)
- printf("CreateLabel: unable to load font %s\n",
- fontname[llabel->fontindx]);
- else
- fontlist = XmFontListCreate(lfont,charset);
-
- label_string = XmStringCreateLtoR(llabel->string,charset);
-
- n = 0;
- XtSetArg(args[n],XmNfontList,fontlist); n++;
- XtSetArg(args[n],XmNleftAttachment,XmATTACH_POSITION); n++;
- XtSetArg(args[n],XmNbottomAttachment, XmATTACH_POSITION); n++;
- XtSetArg(args[n],XmNleftPosition,llabel->xrel); n++;
- XtSetArg(args[n],XmNbottomPosition,llabel->yrel); n++;
- XtSetArg(args[n],XmNlabelString,label_string); n++;
- llabel->widget = XmCreateLabel(llabel->parent,llabel->string,args,n);
- StoreWidgetColors(llabel->widget,llabel->foreground,llabel->background,0);
- XtManageChild(llabel->widget);
-
- ichan[llabel->input] = llabel->widget;
-
- if (label_string) XmStringFree(label_string);
- if (fontlist) XmFontListFree(fontlist);
- return;
- }
-
- ----------------------------------------------------------------------
- Ralf Beyer
- German Aerospace Research Establishment (DLR), Institute for Flight
- Guidance, Flughafen, D-3300 Braunschweig, Fed. Rep. of Germany
- Internet: beyer@bflsgu.fl.bs.dlr.de (EARN/BITNET: fl17@dlrvmbs.bitnet)
- ----------------------------------------------------------------------
-