[comp.windows.x.motif] MOTIF private colormaps

dwight@geohub.enet.dec.com (Dwight D. Moore) (01/15/91)

Lets try this problem out for size...

I am trying to create a widget hierarchy (acutally, I already have), but
I want to associate a private colormap with some of the widgets such that
when I change the corresponding pixel entry in the colormap, the background
color of the widget changes accordingly.

I have  a widget heirarchy such as
    main_window
         form
            button1
            button2
            button3
            ...etc

the resources on the buttons are set as follows

    Arg ColBtnArgv [] = { 
	{ XmNlabelString, 	XmStringCreate ("  ", 
		XmSTRING_DEFAULT_CHARSET)},
    	{ XmNborderWidth, 	1},
    	{ XmNborderColor, 	1},
	{ XmNforeground,	1},
    	{ XmNshadowThickness, 	0},
	{ XmNtopShadowColor,	1},
	{ XmNbottomShadowColor,	0},
	{ XmNcolormap,		current_cmap},
	{ XmNbackground,	0},
    };


    XmArgc = XtNumber (ColBtnArgv);

    for (i=0;  i < n_buttons;  i++)
    {
	ColBtnArgv[XmArgc-1].value = i;
        ColBtn[i] = XmCreateDrawnButton (ColBtnRowColumn, "ColBtn", 
		ColBtnArgv, XmArgc);
	XtAddCallback (ColBtn[i], XmNactivateCallback, CButtonCB, (caddr_t) i);
    }
    XtManageChildren (ColBtn, XtNumber (ColBtn));

where current_cmap is of type Colormap and at the type, just a copy of
the colormap obtained from DefaultColormap().

...
later I set the WM_COLORMAP_WINDOWS property as follows

    for (i=0;  i < n_buttons ; i++)
    {
	CmapColBtn[i] = XtWindow (ColBtn[i]);
    }

    fprintf (stderr, "set colormap windows\n");
    if (!XSetWMColormapWindows (dpy, XtWindow (TopLevel), 
	CmapColBtn, n_colors ))
    {
	WarningMsg ("MxCedit: cannot intern WM_COLORMAP_WINDOWS property");
    }

....

The main problem seems to be that the colormap is either not installed, or
the changes don't seem to affect the widgets background color.  Other than
that there are no errors reported.

Any ideas?

I am using MOTIF 1.0 (yeah,yeah, I know...we are working on getting MOTIF 1.1).
The operating system is VMS 5.4 running mwm window manager on a VAXstation
3100.

------------------------------------------------------------------------
---------
                                Dwight D. Moore
                         Geosciences Computing Network
                            University of Oklahoma

                  dwight@geohub.gcn.uoknor.edu (129.15.40.10)
------------------------------------------------------------------------
---------
Usual discliamer WRT Univ of OK.
Polite and useful opinions are welcome.