[comp.windows.x] Inheriting class extensions

jcarson@wilkins.bcm.tmc.edu (Janet L. Carson) (02/03/90)

I need to build some new types of shells on top of the 
existing shell widgets, (to add callbacks corresponding to
the various WM_PROTOCOLS messages), and I was wondering what 
the proper way to initialize the shell part of my new widget 
class is.  

I think what I want to do is inherit the shell extension 
fields, but I can't find an XtInheritExtension or an 
XtInheritShellExtension defined anywhere.  Are extensions not 
inherited?  Do I declare a copy of the ShellClassExtensionRec 
in my own widget file and then make each field of that 
XtInheritWhatever?  (Are there XtInheritWhatever's defined for 
all of the fields of the extension?)  

Thanks for any help!

--Janet

Janet L. Carson                               internet: jcarson@bcm.tmc.edu 
Baylor College of Medicine              uucp: {rutgers,mailrus}!bcm!jcarson
Janet L. Carson                               internet: jcarson@bcm.tmc.edu 
Baylor College of Medicine              uucp: {rutgers,mailrus}!bcm!jcarson

swick@ATHENA.MIT.EDU (Ralph R. Swick) (02/03/90)

> Do I declare a copy of the ShellClassExtensionRec 
> in my own widget file and then make each field of that 
> XtInheritWhatever?

Exactly.  The class extension record is logically (or perhaps
not so logically :-) appended to the class part structure; each
class needs its own copy of the extension record(s), just as
it needs its own copy of the superclass part structures.

> (Are there XtInheritWhatever's defined for 
> all of the fields of the extension?)

Yes.  As of R4, there is only one such field, and its
inherit constant is XtInheritRootGeometryManager.