<!-- $XConsortium: String.sgm /main/8 1996/09/08 21:08:15 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.MAN402.rsml.1">
<RefMeta>
<RefEntryTitle>XmString</RefEntryTitle>
<ManVolNum>library call</ManVolNum>
</RefMeta>
<RefNameDiv>
<RefName><StructName Role="typedef">XmString</StructName></RefName>
<RefPurpose>Data type for a compound string
<IndexTerm>
<Primary>XmString</Primary>
</IndexTerm><IndexTerm>
<Primary>data types</Primary>
<Secondary>XmString</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;#include &lt;Xm/Xm.h>
</Synopsis>
</RefSynopsisDiv>
<RefSect1>
<Title>DESCRIPTION</Title>
<Para><StructName Role="typedef">XmString</StructName>
is the data type for a compound string.
Compound strings consist of a sequence of components, including, but
not limited to, the following:
</Para>
<ItemizedList>
<ListItem>
<Para><SystemItem Class="Constant">XmSTRING_COMPONENT_SEPARATOR</SystemItem>
</Para>
</ListItem>
<ListItem>
<Para><SystemItem Class="Constant">XmSTRING_COMPONENT_TAB</SystemItem>
</Para>
</ListItem>
<ListItem>
<Para><SystemItem Class="Constant">XmSTRING_COMPONENT_LAYOUT_POP</SystemItem>
</Para>
</ListItem>
<ListItem>
<Para><SystemItem Class="Constant">XmSTRING_COMPONENT_DIRECTION</SystemItem>
</Para>
</ListItem>
<ListItem>
<Para><SystemItem Class="Constant">XmSTRING_COMPONENT_LAYOUT_PUSH</SystemItem>
</Para>
</ListItem>
<ListItem>
<Para><SystemItem Class="Constant">XmSTRING_COMPONENT_CHARSET</SystemItem>
</Para>
</ListItem>
<ListItem>
<Para><SystemItem Class="Constant">XmSTRING_COMPONENT_FONTLIST_ELEMENT_TAG</SystemItem>
</Para>
</ListItem>
<ListItem>
<Para><SystemItem Class="Constant">XmSTRING_COMPONENT_LOCALE</SystemItem>
</Para>
</ListItem>
<ListItem>
<Para><SystemItem Class="Constant">XmSTRING_COMPONENT_LOCALE_TEXT</SystemItem>
</Para>
</ListItem>
<ListItem>
<Para><SystemItem Class="Constant">XmSTRING_COMPONENT_TAG</SystemItem>
</Para>
</ListItem>
<ListItem>
<Para><SystemItem Class="Constant">XmSTRING_COMPONENT_TEXT</SystemItem>
</Para>
</ListItem>
<ListItem>
<Para><SystemItem Class="Constant">XmSTRING_COMPONENT_END</SystemItem>
</Para>
</ListItem>
<ListItem>
<Para><SystemItem Class="Constant">XmSTRING_COMPONENT_RENDITION_BEGIN</SystemItem>
</Para>
</ListItem>
<ListItem>
<Para><SystemItem Class="Constant">XmSTRING_COMPONENT_RENDITION_END</SystemItem>
</Para>
</ListItem>
<ListItem>
<Para><SystemItem Class="Constant">XmSTRING_COMPONENT_UNKNOWN</SystemItem>
</Para>
</ListItem>
<ListItem>
<Para><SystemItem Class="Constant">XmSTRING_COMPONENT_WIDECHAR_TEXT</SystemItem>
</Para>
</ListItem>
</ItemizedList>
<Para>and also a rendition tags table, text, and text component.
When a
compound string is displayed, the rendition tags and the
direction are used to determine how to display the text.
</Para>
<Para>Calling <Function>XtGetValues</Function> for a resource whose type is <StructName Role="typedef">XmString</StructName> yields a
copy of the compound string resource value.
The application is responsible for using <Function>XmStringFree</Function> to free the
memory allocated for the copy.
</Para>
<Para>Please see the <StructName Role="typedef">XmStringComponentType</StructName> reference page for more
detail about compound string components, and for a description of the
order in which the components should appear in a compound string.
Refer to the <StructName Role="typedef">XmRenderTable</StructName> reference page for a description
of the algorithm that associates the rendition tags used for
displaying a compound string text component with a rendition in a
render table.
</Para>
</RefSect1>
<RefSect1>
<Title>RELATED</Title>
<Para>&cdeman.XmParseMapping;,
&cdeman.XmParseMappingCreate;,
&cdeman.XmParseMappingFree;,
&cdeman.XmParseMappingGetValues;,
&cdeman.XmParseMappingSetValues;,
&cdeman.XmParseTable;,
&cdeman.XmParseTableFree;,
&cdeman.XmStringBaseline;,
&cdeman.XmStringByteCompare;,
&cdeman.XmStringByteStreamLength;,
&cdeman.XmStringCompare;,
&cdeman.XmStringComponentCreate;,
&cdeman.XmStringComponentType;,
&cdeman.XmStringConcat;,
&cdeman.XmStringConcatAndFree;,
&cdeman.XmStringCopy;,
&cdeman.XmStringCreate;,
&cdeman.XmStringCreateLocalized;,
&cdeman.XmStringCreateLtoR;,
&cdeman.XmStringCreateSimple;,
&cdeman.XmStringDirection;,
&cdeman.XmStringDirectionCreate;,
&cdeman.XmStringDirectionToDirection;,
&cdeman.XmStringDraw;,
&cdeman.XmStringDrawImage;,
&cdeman.XmStringDrawUnderline;,
&cdeman.XmStringEmpty;,
&cdeman.XmStringExtent;,
&cdeman.XmStringFree;,
&cdeman.XmStringFreeContext;,
&cdeman.XmStringGenerate;,
&cdeman.XmStringGetLtoR;,
&cdeman.XmStringGetNextComponent;,
&cdeman.XmStringGetNextSegment;,
&cdeman.XmStringGetNextTriple;,
&cdeman.XmStringHasSubstring;,
&cdeman.XmStringHeight;,
&cdeman.XmStringInitContext;,
&cdeman.XmStringIsVoid;,
&cdeman.XmStringLength;,
&cdeman.XmStringLineCount;,
&cdeman.XmStringNConcat;,
&cdeman.XmStringNCopy;,
&cdeman.XmStringParseText;,
&cdeman.XmStringPeekNextComponent;,
&cdeman.XmStringPeekNextTriple;,
&cdeman.XmStringPutRendition;,
&cdeman.XmStringSegmentCreate;,
&cdeman.XmStringSeparatorCreate;,
&cdeman.XmStringTable;,
&cdeman.XmStringTableParseStringArray;,
&cdeman.XmStringTableProposeTablist;,
&cdeman.XmStringTableToXmString;,
&cdeman.XmStringTableUnparse;,
&cdeman.XmStringToXmStringTable;,
&cdeman.XmStringUnparse;,
&cdeman.XmStringWidth;,
&cdeman.XmCvtXmStringToByteStream;,
&cdeman.XmCvtXmStringToCT;,
&cdeman.XmCvtCTToXmString;, and
&cdeman.XmCvtByteStreamToXmString;.
</Para>
</RefSect1>
</RefEntry>
<!--fickle 1.09 7/2/95-->
