[comp.windows.x.motif] Motif 1.0 w/X11R4

rick@pcrat.uucp (Rick Richardson) (07/18/90)

I just got through trying to determine if I could use the
Motif 1.0 libXm.a (as provided by ISC) with the X11R4
libXt.a libX.a et al libraries (as provided by Thomas Roell).

I had hoped to be able to provide our Motif applications
to those friends that are 'leading the way' by jumping
headfirst into X11R4.  Plus, the thought of being able
to uucp shared lib binaries around (rather than 3/4 MB
unshared lib behemoths) is mighty enticing.

Unfortunately, the layered look has got a few kinks.  To
wit, one routine that Motif wants apparently got dropped
completely out of libXt in R4.  And a bunch of others seem
to have not been in the original R3 libXt, but were added
later to the R3 libXt specifically for Motif's pleasure:

undefined		  first referenced	ISC R3	ISC R3
 symbol  		  in file		libXt	libXt (Motif Ver)
_XtGetPerDisplay          /usr3/lib/libXm.a	Yes	Yes
XtWidgetCallCallbacks     /usr3/lib/libXm.a	No	Yes
XtWidgetHasCallbacks      /usr3/lib/libXm.a	No	Yes
XtWidgetOverrideCallback  /usr3/lib/libXm.a	No	Yes
_XtFocusMode              /usr3/lib/libXm.a	No	Yes
_XtSetFontUnit            /usr3/lib/libXm.a	No	Yes
_XtLangExpand             /usr3/lib/libXm.a	No	Yes
_XtCheckLangName          /usr3/lib/libXm.a	No	Yes

Except for the *Lang* and *Font* routines, most look to be trivial,
and easily reverse engineered:

XtWidgetOverrideCallback|1876|extern|             ( )|    56|   56|.text   |
XtWidgetCallCallbacks|   1932|extern|             ( )|    36|   36|.text   |
XtWidgetHasCallbacks|    1968|extern|         enum( )|    40|   40|.text   |
_XtGetPerDisplay    |    1572|extern|      *struct( )|   100|  100|.text   |
_XtFocusMode        |    5776|extern|                |      |     |.data   |
_XtCheckLangName    |     252|extern|         char( )|   132|  132|.text   |
_XtLangExpand       |     384|extern|         char( )|   756|  756|.text   |
_XtSetFontUnit      |    1404|extern|             ( )|   152|  152|.text   |

Perhaps someone more knowledgeable about X11R4 might be able
to point me at R4 equivalents to these routines, or even source
code to implement them.

Its unlikely that we'll see a PD Motif implementation anytime
soon, so I'd like to eliminate the dilemma of having to make
a choice between using R3 based Motif or moving on to R4 and
not having Motif.

-Rick

-- 
Rick Richardson - PC Research, Inc., uunet!pcrat!rick, (201) 389-8963

rlh2@ukc.ac.uk (Richard Hesketh) (07/18/90)

In article <1990Jul18.040054.14112@pcrat.uucp% rick@pcrat.uucp (Rick Richardson) writes:
%I just got through trying to determine if I could use the
%Motif 1.0 libXm.a (as provided by ISC) with the X11R4
%libXt.a libX.a et al libraries (as provided by Thomas Roell).

%Unfortunately, the layered look has got a few kinks.  To
%wit, one routine that Motif wants apparently got dropped
%completely out of libXt in R4.  And a bunch of others seem
%to have not been in the original R3 libXt, but were added
%later to the R3 libXt specifically for Motif's pleasure:
%
%undefined		  first referenced	ISC R3	ISC R3
% symbol  		  in file		libXt	libXt (Motif Ver)
%_XtGetPerDisplay          /usr3/lib/libXm.a	Yes	Yes
%XtWidgetCallCallbacks     /usr3/lib/libXm.a	No	Yes
%XtWidgetHasCallbacks      /usr3/lib/libXm.a	No	Yes
%XtWidgetOverrideCallback  /usr3/lib/libXm.a	No	Yes
%_XtFocusMode              /usr3/lib/libXm.a	No	Yes
%_XtSetFontUnit            /usr3/lib/libXm.a	No	Yes
%_XtLangExpand             /usr3/lib/libXm.a	No	Yes
%_XtCheckLangName          /usr3/lib/libXm.a	No	Yes

%Perhaps someone more knowledgeable about X11R4 might be able
%to point me at R4 equivalents to these routines, or even source
%code to implement them.

Looking through the R4 source (my favourite lunchtime treat 8-) I found:

   _XtGetPerDisplay defined as a macro in Xt/InitialI.h

   XtWidgetCallCallbacks() and XtWidgetHasCallbacks() are renamed to
   XtCallCallbacks() and XtHasCallbacks() respectively.

   No idea what XtWidgetOverrideCallback() does, from the name of it
   it sounds like a combination of XtRemoveCallback & XtAddCallback??

   No idea what _XtFocusMode does.

Hope that helps a bit.

Richard

rick@pcrat.uucp (Rick Richardson) (07/19/90)

In article <5132@harrier.ukc.ac.uk> rlh2@ukc.ac.uk (Richard Hesketh) writes:
>In article <1990Jul18.040054.14112@pcrat.uucp% rick@pcrat.uucp (Rick Richardson) writes:
>%I just got through trying to determine if I could use the
>%Motif 1.0 libXm.a (as provided by ISC) with the X11R4
>%libXt.a libX.a et al libraries (as provided by Thomas Roell).

>Looking through the R4 source (my favourite lunchtime treat 8-) I found:
>   XtWidgetCallCallbacks() and XtWidgetHasCallbacks() are renamed to
>   XtCallCallbacks() and XtHasCallbacks() respectively.

I don't think that's it.  A disassembly of XtWidgetCallCallbacks,
for example, (and not knowing the actual argument types)
shows the code is roughly:

	void XtWidgetCallCallbacks(a1, a2)
	int	*a1;	/* No idea what this type is really */
	char	*a2;
	{
		if (a1 == 0) return;
		XtCallCallbacks((?Widget?) &a1[2], a2);
	}

This code looks suspect as hell to me, yet it compiles to the
functional equivalent of what's in the R3 libXt.a.  The fact that
the third argument to XtCallCallbacks is missing is very strange.

Thanks for the 'go at it', though.

-Rick

-- 
Rick Richardson - PC Research, Inc., uunet!pcrat!rick, (201) 389-8963