<!-- $XConsortium: Compos.sgm /main/11 1996/09/08 21:41:41 rws $ -->
<!-- (c) Copyright 1995 Digital Equipment Corporation. -->
<!-- (c) Copyright 1995 Hewlett-Packard Company. -->
<!-- (c) Copyright 1995 International Business Machines Corp. -->
<!-- (c) Copyright 1995 Sun Microsystems, Inc. -->
<!-- (c) Copyright 1995 Novell, Inc. -->
<!-- (c) Copyright 1995 FUJITSU LIMITED. -->
<!-- (c) Copyright 1995 Hitachi. -->

<RefEntry Id="CDEMMA.MAN4.rsml.1">
<RefMeta>
<RefEntryTitle>Composite</RefEntryTitle>
<ManVolNum>library call</ManVolNum>
</RefMeta>
<RefNameDiv>
<RefName><Classname>Composite</Classname></RefName>
<RefPurpose>The Composite widget class
<IndexTerm>
<Primary>Composite</Primary>
</IndexTerm><IndexTerm>
<Primary>widget class</Primary>
<Secondary>Composite</Secondary>
</IndexTerm></RefPurpose>
</RefNameDiv>
<!-- -->
<!-- @OSF_COPYRIGHT@-->
<!-- COPYRIGHT NOTICE-->
<!-- Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.-->
<!-- ALL RIGHTS RESERVED (MOTIF). See the file named COPY.MOTIF.DOC for-->
<!-- the full copyright text.-->
<!-- -->
<!-- HISTORY-->
<!-- -->
<!-- **-->
<!-- **-->
<!-- **  (c) Copyright 1989, 1990, 1992 by Open Software Foundation, Inc.-->
<!-- **      All Rights Reserved.-->
<!-- **-->
<!-- **  (c) Copyright 1987, 1988, 1989, by Hewlett-Packard Company-->
<!-- **-->
<!-- **  (c) Copyright 1987, 1988 by Digital Equipment Corporation,-->
<!-- **      Maynard, MA.  All Rights Reserved.-->
<!-- **-->
<!-- **-->
<RefSynopsisDiv>
<Synopsis>&npzwc;&npzwc;#include &lt;Xm/Xm.h></Synopsis>
</RefSynopsisDiv>
<RefSect1>
<Title>DESCRIPTION</Title>
<Para>Composite widgets are intended to be containers for other widgets and can
have an arbitrary number of children. Their responsibilities (implemented
either directly by the widget class or indirectly by Intrinsics
functions) include:
</Para>
<ItemizedList>
<ListItem>
<Para>Overall management of children from creation to destruction.
</Para>
</ListItem>
<ListItem>
<Para>Destruction of descendants when the composite widget is destroyed.
</Para>
</ListItem>
<ListItem>
<Para>Physical arrangement (geometry management) of a displayable subset of
managed children.
</Para>
</ListItem>
<ListItem>
<Para>Mapping and unmapping of a subset of the managed children.
Instances of composite widgets need to specify the order in which
their children are kept. For example, an application may want a set of
command buttons in some logical order grouped by function, and it may want
buttons that represent filenames to be kept in alphabetical order.
</Para>
</ListItem>
</ItemizedList>
<RefSect2>
<Title>Classes</Title>
<Para>Composite inherits behavior and resources from <Classname>Core</Classname>.
</Para>
<Para>The class pointer is <Symbol Role="Globalvar">compositeWidgetClass</Symbol>.
</Para>
<Para>The class name is <Classname>Composite</Classname>.
</Para>
</RefSect2>
<RefSect2>
<Title>New Resources</Title>
<Para>The following table defines a set of widget resources used by the programmer
to specify data. The programmer can also set the resource values for the
inherited classes to set attributes for this widget. To reference a
resource by name or by class in a <Filename>.Xdefaults</Filename> file, remove the <SystemItem Class="Constant">XmN</SystemItem> or
<SystemItem Class="Constant">XmC</SystemItem> prefix and use the remaining letters. To specify one of the defined
values for a resource in a <filename>.Xdefaults</filename> file, remove the <SystemItem Class="Constant">Xm</SystemItem> prefix and use
the remaining letters (in either lowercase or uppercase, but include any
underscores between words).
The codes in the access column indicate if the given resource can be
set at creation time (C),
set by using <Function>XtSetValues</Function> (S),
retrieved by using <Function>XtGetValues</Function> (G), or is not applicable (N/A).
</Para>
<Para><!-- --><!-- @OSF_COPYRIGHT@--><!-- COPYRIGHT NOTICE--><!-- Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.--><!-- ALL RIGHTS RESERVED (MOTIF). See the file named COPY.MOTIF.DOC for--><!-- the full copyright text.--><!-- --><!-- HISTORY--><!-- --></Para>
<InformalTable Frame="All" Remap="center" Orient="Port">
<TGroup Cols="5">
<ColSpec Rowsep="1" Colsep="1" Align="Left" Colname="1">
<ColSpec Rowsep="1" Colsep="1" Align="Left" Colname="2">
<ColSpec Rowsep="1" Colsep="1" Align="Left" Colname="3">
<ColSpec Rowsep="1" Colsep="1" Align="Left" Colname="4">
<ColSpec Rowsep="1" Align="Left" Colname="5">
<TBody>
<Row>
<Entry Align="Center" Nameend="5" Namest="1"><Literal>Composite Resource Set</Literal></Entry>
</Row>
<Row>
<Entry Rowsep="1"><Literal>Name</Literal></Entry>
<Entry Rowsep="1"><Literal>Class</Literal></Entry>
<Entry Rowsep="1"><Literal>Type</Literal></Entry>
<Entry Rowsep="1"><Literal>Default</Literal></Entry>
<Entry Rowsep="1"><Literal>Access</Literal></Entry>
</Row>
<Row>
<Entry>XmNchildren</Entry>
<Entry>XmCReadOnly</Entry>
<Entry>WidgetList</Entry>
<Entry>NULL</Entry>
<Entry>G</Entry>
</Row>
<Row>
<Entry>XmNinsertPosition</Entry>
<Entry>XmCInsertPosition</Entry>
<Entry>XtOrderProc</Entry>
<Entry>NULL</Entry>
<Entry>CSG</Entry>
</Row>
<Row>
<Entry>XmNnumChildren</Entry>
<Entry>XmCReadOnly</Entry>
<Entry>Cardinal</Entry>
<Entry>0</Entry>
<Entry>G</Entry>
</Row>
</TBody>
</TGroup>
</InformalTable>
<VariableList>
<VarListEntry>
<Term><SystemItem Class="Resource">XmNchildren</SystemItem></Term>
<ListItem>
<Para>A read-only list of the children of the widget.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term><SystemItem Class="Resource">XmNinsertPosition</SystemItem></Term>
<ListItem>
<Para>Points to the <Symbol>XtOrderProc</Symbol> function described below.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term><SystemItem Class="Resource">XmNnumChildren</SystemItem></Term>
<ListItem>
<Para>A read-only resource specifying the length of the list of children in
<SystemItem Class="Resource">XmNchildren</SystemItem>.
</Para>
</ListItem>
</VarListEntry>
</VariableList>
<Para>The following procedure pointer in a composite widget instance is of type
<Symbol>XtOrderProc</Symbol>:
</Para>
<Synopsis>Cardinal (* XtOrderProc) (Widget <Symbol Role="Variable">w</Symbol>);
</Synopsis>
<VariableList>
<VarListEntry>
<Term><Symbol Role="Variable">w</Symbol></Term>
<ListItem>
<Para>Specifies the widget.
</Para>
</ListItem>
</VarListEntry>
</VariableList>
<Para>Composite widgets that allow clients to order their children (usually
homogeneous boxes) can call their widget instance's
<SystemItem Class="Resource">XmNinsertPosition</SystemItem>
procedure from the class's <Literal>insert_child</Literal> procedure to determine
where a new
child should go in its children array. Thus, a client of a composite class
can apply different sorting criteria to widget instances of the class,
passing in a different
<SystemItem Class="Resource">XmNinsertPosition</SystemItem>
procedure when it creates each
composite widget instance.
</Para>
<Para>The return value of the
<SystemItem Class="Resource">XmNinsertPosition</SystemItem>
procedure indicates
how many children
should go before the widget. A value of 0 (zero) indicates that the
widget should go before all other children; returning
the value of <Symbol>XmNumChildren</Symbol>
indicates
that it should go after all other children.
By default, unless a subclass or an application provides an
<SystemItem Class="Resource">XmNinsertPosition</SystemItem> procedure, each child is inserted at the end
of the <SystemItem Class="Resource">XmNchildren</SystemItem> list.
The <SystemItem Class="Resource">XmNinsertPosition</SystemItem> procedure can be overridden by a specific
composite
widget's resource list or by the argument list provided when the composite
widget is created.
</Para>
</RefSect2>
<RefSect2>
<Title>Inherited Resources</Title>
<Para>Composite inherits behavior and resources from the superclass described in
the following table.
For a complete description of each resource, refer to the reference page for
that superclass.
</Para>
<Para><!-- --><!-- @OSF_COPYRIGHT@--><!-- COPYRIGHT NOTICE--><!-- Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.--><!-- ALL RIGHTS RESERVED (MOTIF). See the file named COPY.MOTIF.DOC for--><!-- the full copyright text.--><!-- --><!-- HISTORY--><!-- --><!--no-op:  .in--></Para>
<InformalTable Frame="All" Remap="center" Orient="Port">
<TGroup Cols="5">
<ColSpec Rowsep="1" Colsep="1" Align="Left" Colname="1">
<ColSpec Rowsep="1" Colsep="1" Align="Left" Colname="2">
<ColSpec Rowsep="1" Colsep="1" Align="Left" Colname="3">
<ColSpec Rowsep="1" Colsep="1" Align="Left" Colname="4">
<ColSpec Rowsep="1" Align="Left" Colname="5">
<TBody>
<Row>
<Entry Align="Center" Nameend="5" Namest="1"><Literal>Core Resource Set</Literal></Entry>
</Row>
<Row>
<Entry Rowsep="1"><Literal>Name</Literal></Entry>
<Entry Rowsep="1"><Literal>Class</Literal></Entry>
<Entry Rowsep="1"><Literal>Type</Literal></Entry>
<Entry Rowsep="1"><Literal>Default</Literal></Entry>
<Entry Rowsep="1"><Literal>Access</Literal></Entry>
</Row>
<Row>
<Entry>XmNaccelerators</Entry>
<Entry>XmCAccelerators</Entry>
<Entry>XtAccelerators</Entry>
<Entry>dynamic</Entry>
<Entry>CSG</Entry>
</Row>
<Row>
<Entry>XmNancestorSensitive</Entry>
<Entry>XmCSensitive</Entry>
<Entry>Boolean</Entry>
<Entry>dynamic</Entry>
<Entry>G</Entry>
</Row>
<Row>
<Entry>XmNbackground</Entry>
<Entry>XmCBackground</Entry>
<Entry>Pixel</Entry>
<Entry>dynamic</Entry>
<Entry>CSG</Entry>
</Row>
<Row>
<Entry>XmNbackgroundPixmap</Entry>
<Entry>XmCPixmap</Entry>
<Entry>Pixmap</Entry>
<Entry>XmUNSPECIFIED_PIXMAP</Entry>
<Entry>CSG</Entry>
</Row>
<Row>
<Entry>XmNborderColor</Entry>
<Entry>XmCBorderColor</Entry>
<Entry>Pixel</Entry>
<Entry>XtDefaultForeground</Entry>
<Entry>CSG</Entry>
</Row>
<Row>
<Entry>XmNborderPixmap</Entry>
<Entry>XmCPixmap</Entry>
<Entry>Pixmap</Entry>
<Entry>XmUNSPECIFIED_PIXMAP</Entry>
<Entry>CSG</Entry>
</Row>
<Row>
<Entry>XmNborderWidth</Entry>
<Entry>XmCBorderWidth</Entry>
<Entry>Dimension</Entry>
<Entry>1</Entry>
<Entry>CSG</Entry>
</Row>
<Row>
<Entry>XmNcolormap</Entry>
<Entry>XmCColormap</Entry>
<Entry>Colormap</Entry>
<Entry>dynamic</Entry>
<Entry>CG</Entry>
</Row>
<Row>
<Entry>XmNdepth</Entry>
<Entry>XmCDepth</Entry>
<Entry>int</Entry>
<Entry>dynamic</Entry>
<Entry>CG</Entry>
</Row>
<Row>
<Entry>XmNdestroyCallback</Entry>
<Entry>XmCCallback</Entry>
<Entry>XtCallbackList</Entry>
<Entry>NULL</Entry>
<Entry>C</Entry>
</Row>
<Row>
<Entry>XmNheight</Entry>
<Entry>XmCHeight</Entry>
<Entry>Dimension</Entry>
<Entry>dynamic</Entry>
<Entry>CSG</Entry>
</Row>
<Row>
<Entry>XmNinitialResourcesPersistent</Entry>
<Entry>XmCInitialResourcesPersistent</Entry>
<Entry>Boolean</Entry>
<Entry>True</Entry>
<Entry>C</Entry>
</Row>
<Row>
<Entry>XmNmappedWhenManaged</Entry>
<Entry>XmCMappedWhenManaged</Entry>
<Entry>Boolean</Entry>
<Entry>True</Entry>
<Entry>CSG</Entry>
</Row>
<Row>
<Entry>XmNscreen</Entry>
<Entry>XmCScreen</Entry>
<Entry>Screen *</Entry>
<Entry>dynamic</Entry>
<Entry>CG</Entry>
</Row>
<Row>
<Entry>XmNsensitive</Entry>
<Entry>XmCSensitive</Entry>
<Entry>Boolean</Entry>
<Entry>True</Entry>
<Entry>CSG</Entry>
</Row>
<Row>
<Entry>XmNtranslations</Entry>
<Entry>XmCTranslations</Entry>
<Entry>XtTranslations</Entry>
<Entry>dynamic</Entry>
<Entry>CSG</Entry>
</Row>
<Row>
<Entry>XmNwidth</Entry>
<Entry>XmCWidth</Entry>
<Entry>Dimension</Entry>
<Entry>dynamic</Entry>
<Entry>CSG</Entry>
</Row>
<Row>
<Entry>XmNx</Entry>
<Entry>XmCPosition</Entry>
<Entry>Position</Entry>
<Entry>0</Entry>
<Entry>CSG</Entry>
</Row>
<Row>
<Entry>XmNy</Entry>
<Entry>XmCPosition</Entry>
<Entry>Position</Entry>
<Entry>0</Entry>
<Entry>CSG</Entry>
</Row>
</TBody>
</TGroup>
</InformalTable>
<!-- -->
<!-- @OSF_COPYRIGHT@-->
<!-- COPYRIGHT NOTICE-->
<!-- Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.-->
<!-- ALL RIGHTS RESERVED (MOTIF). See the file named COPY.MOTIF.DOC for-->
<!-- the full copyright text.-->
<!-- -->
<!-- HISTORY-->
<!-- -->
<!-- Action Table for Composite-->
</RefSect2>
<RefSect2>
<Title>Translations</Title>
<Para>There are no translations for Composite.
</Para>
</RefSect2>
</RefSect1>
<RefSect1>
<Title>RELATED</Title>
<Para>&cdeman.Core;.
</Para>
</RefSect1>
</RefEntry>
<!--fickle 1.09 7/2/95-->
