the image cache using XmInstallImage(), which takes the following form:
Boolean
XmInstallImage(image, image_name)
XImage *image;
char *image_name;
The image parameter is a pointer to an XImage data structure that has been previously created or, more commonly,
statically initialized by the application. It is possible to create an image dynamically from an existing window or
pixmap using XGetImage(), but this is not the way the function is typically used.
If you attempt to install an image using an image_name that matches one already in the cache, the function returns
False and the image is not installed. Otherwise, the function returns True. You can uninstall an image by calling
XmUninstallImage(). Once the image is uninstalled, it cannot be referenced by name anymore and a new image
may be installed with the same name. The XImage structure is not copied by XmInstallImage(), so if the image
pointer you pass has been allocated using XCreateImage() or XGetImage(), you must not free the data until
after you call XmUninstallImage().
If XmGetPixmap() or XmGetPixmapByDepth() finds a match in the image cache, it creates the pixmap based
on the image data, not on the image itself. As a result, the pixmap that is created is not affected by the image being
uninstalled by XmUninstallImage().
If the pixmap retrieval routines do not find a match in the image cache, the pixmap is loaded from a file. If
image_name starts with a slash character (/), it is taken as a full pathname. Otherwise, the routines ...