oju@canopus.hut.fi (Olli Juhola) (07/30/90)
I need to create an array of pixmaps from files that are
defined in the .Xdefaults file of the user. I'm using
XtGetApplicationResources as I don't want to store the
pixmaps in widgets. For some reason I cannot get the conversion
from file name to Pixmap to work.
Here is the code I'm using:
struct {
Pixmap pixmap;
char *name;
} Icon, *IconPtr;
create_new_icon(w, icon, name)
Widget w;
Icon *icon;
char *name;
{
XtResource resources[1];
resources->resource_name = name;
resources->resource_class = "Icon";
resources->resource_type = XmRPixmap;
resources->resource_size = sizeof(Pixmap);
resources->resource_offset = XtOffset(IconPtr, pixmap);
resources->default_type = XmRString;
resources->default_addr = "50_foreground";
XtGetApplicationResources(w, icon, resources, XtNumber(resources),
NULL, 0);
icon->name = name;
}
When calling the above function with:
Widget top_level;
Icon new_icon;
top_level = XtInitialize("my_app", "My_app", NULL, 0, &argc, argv);
create_new_icon(top_level, &new_icon, "icon1");
and using the .Xdefaults entry:
My_app*icon1: /usr/include/X11/bitmaps/flagup
(or any bitmap file...)
I don't seem to get any valid Pixmap. Even when I try it without a .Xdefaults
entry I don't seem to get the 50_foreground Pixmap.
I've tried to use the new_icon.pixmap with XGetGeometry and as a Pixmap
to XmCreateLabel. The former results in a X Protocol error and the
latter in a blank label.
Karl
--
Olli Juhola Spare disk space -- avoid flaming
oju@niksula.hut.fi Spare me -- go away