808 lines
26 KiB
C
808 lines
26 KiB
C
/*
|
|
* CDE - Common Desktop Environment
|
|
*
|
|
* Copyright (c) 1993-2012, The Open Group. All rights reserved.
|
|
*
|
|
* These libraries and programs are free software; you can
|
|
* redistribute them and/or modify them under the terms of the GNU
|
|
* Lesser General Public License as published by the Free Software
|
|
* Foundation; either version 2 of the License, or (at your option)
|
|
* any later version.
|
|
*
|
|
* These libraries and programs are distributed in the hope that
|
|
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
|
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
* PURPOSE. See the GNU Lesser General Public License for more
|
|
* details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with these librararies and programs; if not, write
|
|
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
|
* Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
/* $XConsortium: SDLI.h /main/7 1995/11/28 14:24:36 cde-hp $ */
|
|
/*************************************<+>*************************************
|
|
*****************************************************************************
|
|
**
|
|
** File: SDLI.h
|
|
**
|
|
** Project:
|
|
**
|
|
** Description: Public Header file for Canvas.c
|
|
**
|
|
** (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 Hewlett-Packard Company
|
|
**
|
|
** (c) Copyright 1993, 1994 Hewlett-Packard Company
|
|
** (c) Copyright 1993, 1994 International Business Machines Corp.
|
|
** (c) Copyright 1993, 1994 Sun Microsystems, Inc.
|
|
** (c) Copyright 1993, 1994 Novell, Inc.
|
|
**
|
|
*******************************************************************
|
|
*************************************<+>*************************************/
|
|
#ifndef _DtHelpSDLI_h
|
|
#define _DtHelpSDLI_h
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*****************************************************************************
|
|
* SDL DTD versioning defines
|
|
*****************************************************************************/
|
|
/*
|
|
* The first version
|
|
*/
|
|
#define SDL_DTD_VERSION 1
|
|
|
|
/*
|
|
* The first minor version
|
|
*/
|
|
#define SDL_DTD_1_0 0
|
|
|
|
/*
|
|
* Virpage levels went from 1-n.
|
|
* Any virpage with a level of
|
|
* zero (or less) are hidden.
|
|
*/
|
|
#define SDL_DTD_1_1 1
|
|
|
|
/*****************************************************************************
|
|
* Attribute type enumerations
|
|
*****************************************************************************/
|
|
enum SdlAttrDataType {
|
|
/* bad data type */
|
|
SdlAttrDataTypeInvalid,
|
|
/* valid data types */
|
|
SdlAttrDataTypeId , SdlAttrDataTypeNumber, SdlAttrDataTypeCdata,
|
|
SdlAttrDataTypeFont, SdlAttrDataTypeEnum };
|
|
|
|
/*****************************************************************************
|
|
* Option enumerations
|
|
*****************************************************************************/
|
|
enum sdlOption
|
|
{
|
|
/*
|
|
* all _DtCv enums are from the canvas engine
|
|
*/
|
|
/* bad option indicator */
|
|
SdlOptionBad = _DtCvOPTION_BAD,
|
|
/* string breakng types */
|
|
SdlLiteral = _DtCvLITERAL,
|
|
SdlDynamic = _DtCvDYNAMIC,
|
|
/* table border types */
|
|
SdlBorderNone = _DtCvBORDER_NONE,
|
|
SdlBorderFull = _DtCvBORDER_FULL,
|
|
SdlBorderHorz = _DtCvBORDER_HORZ,
|
|
SdlBorderVert = _DtCvBORDER_VERT,
|
|
SdlBorderTop = _DtCvBORDER_TOP,
|
|
SdlBorderBottom = _DtCvBORDER_BOTTOM,
|
|
SdlBorderLeft = _DtCvBORDER_LEFT,
|
|
SdlBorderRight = _DtCvBORDER_RIGHT,
|
|
/* horizontal orientation */
|
|
SdlJustifyLeftCorner = _DtCvJUSTIFY_LEFT_CORNER,
|
|
SdlJustifyLeft = _DtCvJUSTIFY_LEFT,
|
|
SdlJustifyLeftMargin = _DtCvJUSTIFY_LEFT_MARGIN,
|
|
SdlJustifyCenter = _DtCvJUSTIFY_CENTER,
|
|
SdlJustifyRightMargin = _DtCvJUSTIFY_RIGHT_MARGIN,
|
|
SdlJustifyRight = _DtCvJUSTIFY_RIGHT,
|
|
SdlJustifyRightCorner = _DtCvJUSTIFY_RIGHT_CORNER,
|
|
/* extra horizontal text placement */
|
|
SdlJustifyNum = _DtCvJUSTIFY_NUM,
|
|
/* extra vertical orientation */
|
|
SdlJustifyTop = _DtCvJUSTIFY_TOP,
|
|
SdlJustifyBottom = _DtCvJUSTIFY_BOTTOM,
|
|
/* flow types */
|
|
SdlWrap = _DtCvWRAP,
|
|
SdlNoWrap = _DtCvWRAP_NONE,
|
|
SdlWrapJoin = _DtCvWRAP_JOIN,
|
|
/* SDL specific options */
|
|
/* Boolean */
|
|
SdlBoolYes , SdlBoolNo ,
|
|
|
|
/* key classes */
|
|
SdlClassAcro , SdlClassBook , SdlClassEmph , SdlClassJargon ,
|
|
SdlClassL10n , SdlClassName , SdlClassQuote , SdlClassProduct,
|
|
SdlClassTermdef , SdlClassTerm , SdlClassMachIn , SdlClassMachOut,
|
|
SdlClassMachCont, SdlClassPubLit , SdlClassUdefkey ,
|
|
|
|
/* head classes */
|
|
SdlClassLabel , SdlClassHead , SdlClassCaption ,
|
|
SdlClassAnnotation, SdlClassPHead, SdlClassUdefhead,
|
|
|
|
/* format classes */
|
|
SdlClassTable , SdlClassCell , SdlClassList,
|
|
SdlClassItem , SdlClassText , SdlClassUdeffrmt,
|
|
|
|
/* graphic classes */
|
|
SdlClassFigure, SdlClassInLine , SdlClassButton ,
|
|
SdlClassIcon , SdlClassUdefgraph,
|
|
|
|
/* phrase styles */
|
|
SdlClassSuper , SdlClassSub ,
|
|
|
|
/* apps types */
|
|
SdlAppAll , SdlAppHelp , SdlAppTutorial ,
|
|
SdlAppRef , SdlAppSys ,
|
|
|
|
/* timing */
|
|
SdlTimingSync , SdlTimingAsync ,
|
|
|
|
/* types */
|
|
SdlTypeLiteral , SdlTypeLined ,
|
|
SdlTypeDynamic , SdlTypeUnlinedLiteral,
|
|
SdlTypeCdata ,
|
|
|
|
/* links */
|
|
SdlWindowCurrent , SdlWindowNew, SdlWindowPopup,
|
|
/* traversal */
|
|
SdlTraversalReturn, SdlTraversalNoReturn,
|
|
/* <id> types */
|
|
SdlIdVirpage , SdlIdBlock , SdlIdForm , SdlIdPara ,
|
|
SdlIdCPara , SdlIdHead , SdlIdSubHead , SdlIdAnchor ,
|
|
SdlIdSwitch , SdlIdSnRef , SdlIdGraphic , SdlIdText ,
|
|
SdlIdAudio , SdlIdVideo , SdlIdAnimate ,
|
|
SdlIdCrossDoc, SdlIdManPage , SdlIdTextFile,
|
|
SdlIdSysCmd , SdlIdScript , SdlIdCallback,
|
|
/* <script> interpreter types */
|
|
SdlInterpKsh, SdlInterpTcl, SdlInterpCsh, SdlInterpSh,
|
|
/* <headstyle> placement types */
|
|
SdlPlaceParent, SdlPlaceObject,
|
|
/* <headstyle> stack types */
|
|
SdlStackHoriz , SdlStackVert
|
|
};
|
|
|
|
typedef enum sdlOption SdlOption;
|
|
|
|
/*****************************************************************************
|
|
* SDL Element enumerations
|
|
*****************************************************************************/
|
|
enum SdlElement
|
|
{
|
|
SdlElementNone,
|
|
SdlElementComment,
|
|
SdlElementSdlDoc,
|
|
SdlElementVStruct,
|
|
SdlElementVirpage,
|
|
SdlElementHead,
|
|
SdlElementSubHead,
|
|
SdlElementSnb,
|
|
SdlElementBlock,
|
|
SdlElementForm,
|
|
SdlElementPara,
|
|
SdlElementCPara,
|
|
SdlElementFdata,
|
|
SdlElementFstyle,
|
|
SdlElementFrowvec,
|
|
SdlElementKey,
|
|
SdlElementCdata,
|
|
/* System notations */
|
|
SdlElementGraphic,
|
|
SdlElementText,
|
|
SdlElementAudio,
|
|
SdlElementVideo,
|
|
SdlElementAnimate,
|
|
SdlElementCrossDoc,
|
|
SdlElementManPage,
|
|
SdlElementTextFile,
|
|
SdlElementSysCmd,
|
|
SdlElementCallback,
|
|
SdlElementScript,
|
|
/* System notations (end) */
|
|
SdlElementAnchor,
|
|
SdlElementLink,
|
|
SdlElementSwitch,
|
|
SdlElementSnRef,
|
|
SdlElementRefItem,
|
|
SdlElementAltText,
|
|
SdlElementSphrase,
|
|
SdlElementRev,
|
|
SdlElementSpc,
|
|
/* Conditionals */
|
|
SdlElementIf,
|
|
SdlElementCond,
|
|
SdlElementThen,
|
|
SdlElementElse,
|
|
/* Conditionals (end) */
|
|
/* The sgml header to the document */
|
|
SdlElementDocument,
|
|
SdlElementSgml,
|
|
SdlElementDocType,
|
|
/* Generated elements in the document */
|
|
SdlElementLoids,
|
|
SdlElementToss,
|
|
SdlElementLoPhrases,
|
|
SdlElementPhrase,
|
|
SdlElementIndex,
|
|
SdlElementEntry,
|
|
SdlElementRelDocs,
|
|
SdlElementRelFile,
|
|
SdlElementNotes,
|
|
/* Generated elements (end) */
|
|
/* Table of styles and sematics. */
|
|
SdlElementKeyStyle,
|
|
SdlElementHeadStyle,
|
|
SdlElementFormStyle,
|
|
SdlElementFrmtStyle,
|
|
SdlElementGrphStyle,
|
|
/* Table of styles and sematics.(end) */
|
|
SdlElementId,
|
|
/* Support asyncronous blocks */
|
|
SdlElementBlockAsync,
|
|
/* Support getting the title of a virpage */
|
|
SdlElementTitle,
|
|
/* Support content that has optional markup followed by PCDATA */
|
|
SdlPcDataFollows
|
|
};
|
|
|
|
/******** Private Defines Declarations ********/
|
|
/* sort of enumerated types */
|
|
#define ENUM_VALUE 0x01
|
|
#define NUMBER_VALUE 0x02
|
|
#define STRING1_VALUE 0x03
|
|
#define STRING2_VALUE 0x04
|
|
|
|
#define VALUE_MASK 0x07
|
|
|
|
#define VALUE_TYPE_SHIFT 3
|
|
#define MINOR_MASK (0x07 << VALUE_TYPE_SHIFT)
|
|
|
|
#define SET_ENUM_ATTR(x) ((x) << VALUE_TYPE_SHIFT | ENUM_VALUE)
|
|
#define SET_NUMBER_ATTR(x) ((x) << VALUE_TYPE_SHIFT | NUMBER_VALUE)
|
|
#define SET_STRING_ATTR(x) ((x) << VALUE_TYPE_SHIFT | STRING1_VALUE)
|
|
#define SET_STRING2_ATTR(x) ((x) << VALUE_TYPE_SHIFT | STRING2_VALUE)
|
|
|
|
#define ATTRS_EQUAL(type, x, y) \
|
|
(((type) != SdlAttrDataTypeEnum) ? \
|
|
((x) == (y) ? 1 : 0) : \
|
|
(((((x) & VALUE_MASK) == ((y) & VALUE_MASK)) && \
|
|
((x) & (y) & ~(VALUE_MASK))) ? 1 : 0))
|
|
|
|
#define SDLIsString1(x) ((((x) & VALUE_MASK) == STRING1_VALUE) ? 1 : 0)
|
|
#define SDLIsString2(x) ((((x) & VALUE_MASK) == STRING2_VALUE) ? 1 : 0)
|
|
|
|
#define SDLIsStrAttrSet(pa, attr) \
|
|
(((((attr) & VALUE_MASK)==STRING1_VALUE) ? ((pa).str1_values & attr) : \
|
|
((((attr) & VALUE_MASK)==STRING2_VALUE) ? \
|
|
((pa).str2_values & attr) : 0)) & (~VALUE_MASK))
|
|
|
|
#define SDLIsAttrSet(pa, attr) \
|
|
(((((attr) & VALUE_MASK)==ENUM_VALUE) ? ((pa).enum_values & attr) : \
|
|
((((attr) & VALUE_MASK)==NUMBER_VALUE) ? ((pa).num_values & attr) : \
|
|
((((attr) & VALUE_MASK)==STRING1_VALUE) ? ((pa).str1_values & attr) : \
|
|
((pa).str2_values & attr)))) & (~VALUE_MASK))
|
|
|
|
#define SDLAttrFlagType(x) ((x) & VALUE_MASK)
|
|
|
|
/************************************************************************
|
|
* Enum types
|
|
************************************************************************/
|
|
/*
|
|
* this set has the same attribute 'class',
|
|
* but each has a different set of values.
|
|
*/
|
|
#define SDL_ATTR_CLASS SET_ENUM_ATTR(1 << 3)
|
|
#define SDL_ATTR_CLASSALL (SDL_ATTR_CLASS)
|
|
#define SDL_ATTR_CLASSH SET_ENUM_ATTR((1 << 3) | 0x01)
|
|
#define SDL_ATTR_CLASSF SET_ENUM_ATTR((1 << 3) | 0x02)
|
|
#define SDL_ATTR_CLASSK SET_ENUM_ATTR((1 << 3) | 0x03)
|
|
#define SDL_ATTR_CLASSG SET_ENUM_ATTR((1 << 3) | 0x04)
|
|
#define SDL_ATTR_CLASSFG SET_ENUM_ATTR((1 << 3) | 0x05)
|
|
#define SDL_ATTR_CLASSP SET_ENUM_ATTR((1 << 3) | 0x06)
|
|
|
|
/*
|
|
* this set has the same attribute 'type',
|
|
* but each has a different set of values.
|
|
*/
|
|
#define SDL_ATTR_TYPE SET_ENUM_ATTR((1 << 4) | 0x00)
|
|
#define SDL_ATTR_TYPEFRMT SET_ENUM_ATTR((1 << 4) | 0x01)
|
|
#define SDL_ATTR_TYPEID SET_ENUM_ATTR((1 << 4) | 0x02)
|
|
|
|
#define SDL_ATTR_APP SET_ENUM_ATTR(1 << 5)
|
|
#define SDL_ATTR_TIMING SET_ENUM_ATTR(1 << 6)
|
|
#define SDL_ATTR_HDR SET_ENUM_ATTR(1 << 7)
|
|
|
|
/* Format Style Attributes */
|
|
#define SDL_ATTR_BORDER SET_ENUM_ATTR(1 << 8)
|
|
#define SDL_ATTR_JUSTIFY SET_ENUM_ATTR((1 << 9) | 0x00)
|
|
#define SDL_ATTR_JUSTIFY1 SET_ENUM_ATTR((1 << 9) | 0x01)
|
|
#define SDL_ATTR_JUSTIFY2 SET_ENUM_ATTR((1 << 9) | 0x02)
|
|
#define SDL_ATTR_VJUST SET_ENUM_ATTR(1 << 10)
|
|
|
|
/* Head Style Attributes */
|
|
#define SDL_ATTR_ORIENT SET_ENUM_ATTR(1 << 11)
|
|
#define SDL_ATTR_VORIENT SET_ENUM_ATTR(1 << 12)
|
|
#define SDL_ATTR_FLOW SET_ENUM_ATTR(1 << 13)
|
|
#define SDL_ATTR_WINDOW SET_ENUM_ATTR(1 << 14)
|
|
#define SDL_ATTR_PLACEMENT SET_ENUM_ATTR(1 << 15)
|
|
#define SDL_ATTR_STACK SET_ENUM_ATTR(1 << 16)
|
|
|
|
/* Link Attribute */
|
|
#define SDL_ATTR_TRAVERSAL SET_ENUM_ATTR(1 << 17)
|
|
|
|
/* Font Style Attributes */
|
|
#define SDL_ATTR_STYLE SET_ENUM_ATTR(1 << 18)
|
|
#define SDL_ATTR_SPACING SET_ENUM_ATTR(1 << 19)
|
|
#define SDL_ATTR_WEIGHT SET_ENUM_ATTR(1 << 20)
|
|
#define SDL_ATTR_SLANT SET_ENUM_ATTR(1 << 21)
|
|
#define SDL_ATTR_SPECIAL SET_ENUM_ATTR(1 << 22)
|
|
#define SDL_ATTR_INTERP SET_ENUM_ATTR(1 << 23)
|
|
|
|
/************************************************************************
|
|
* number types
|
|
************************************************************************/
|
|
/*
|
|
* LEVEL and RLEVEL share the same data element in the structure
|
|
*/
|
|
#define SDL_ATTR_LEVEL SET_NUMBER_ATTR(1 << 3)
|
|
#define SDL_ATTR_RLEVEL SET_NUMBER_ATTR(1 << 4)
|
|
|
|
#define SDL_ATTR_LENGTH SET_NUMBER_ATTR(1 << 5)
|
|
#define SDL_ATTR_NCOLS SET_NUMBER_ATTR(1 << 6)
|
|
#define SDL_ATTR_COUNT SET_NUMBER_ATTR(1 << 7)
|
|
|
|
/* Font Style Attributes */
|
|
#define SDL_ATTR_POINTSZ SET_NUMBER_ATTR(1 << 8)
|
|
#define SDL_ATTR_SETWIDTH SET_NUMBER_ATTR(1 << 9)
|
|
|
|
/* Format Style Attributes */
|
|
#define SDL_ATTR_FMARGIN SET_NUMBER_ATTR(1 << 10)
|
|
#define SDL_ATTR_LMARGIN SET_NUMBER_ATTR(1 << 11)
|
|
#define SDL_ATTR_RMARGIN SET_NUMBER_ATTR(1 << 12)
|
|
#define SDL_ATTR_TMARGIN SET_NUMBER_ATTR(1 << 13)
|
|
#define SDL_ATTR_BMARGIN SET_NUMBER_ATTR(1 << 14)
|
|
#define SDL_ATTR_SRCHWT SET_NUMBER_ATTR(1 << 15)
|
|
#define SDL_ATTR_OFFSET SET_NUMBER_ATTR(1 << 16)
|
|
|
|
/* Head Style Attributes */
|
|
#define SDL_ATTR_HEADWDTH SET_NUMBER_ATTR(1 << 17)
|
|
|
|
/************************************************************************
|
|
* string1 types
|
|
************************************************************************/
|
|
#define SDL_ATTR_VERSION SET_STRING_ATTR(1 << 0)
|
|
#define SDL_ATTR_LANGUAGE SET_STRING_ATTR(1 << 1)
|
|
#define SDL_ATTR_DOCID SET_STRING_ATTR(1 << 2)
|
|
|
|
/* style attr */
|
|
#define SDL_ATTR_PHRASE SET_STRING_ATTR(1 << 3)
|
|
|
|
/* refitem */
|
|
#define SDL_ATTR_BUTTON SET_STRING_ATTR(1 << 4)
|
|
|
|
/* link */
|
|
#define SDL_ATTR_DESCRIPT SET_STRING_ATTR(1 << 5)
|
|
#define SDL_ATTR_LINKINFO SET_STRING_ATTR(1 << 6)
|
|
|
|
/* Font Style Attributes */
|
|
#define SDL_ATTR_COLOR SET_STRING_ATTR(1 << 7)
|
|
#define SDL_ATTR_XLFD SET_STRING_ATTR(1 << 8)
|
|
#define SDL_ATTR_XLFDI SET_STRING_ATTR(1 << 9)
|
|
#define SDL_ATTR_XLFDB SET_STRING_ATTR(1 << 10)
|
|
#define SDL_ATTR_XLFDIB SET_STRING_ATTR(1 << 11)
|
|
#define SDL_ATTR_TYPENAM SET_STRING_ATTR(1 << 12)
|
|
#define SDL_ATTR_TYPENAMI SET_STRING_ATTR(1 << 13)
|
|
#define SDL_ATTR_TYPENAMB SET_STRING_ATTR(1 << 14)
|
|
#define SDL_ATTR_TYPENAMIB SET_STRING_ATTR(1 << 15)
|
|
|
|
/*
|
|
* start share of element 'id'.
|
|
*/
|
|
#define SDL_ATTR_ID SET_STRING_ATTR(1 << 16)
|
|
#define SDL_ATTR_NAME SET_STRING_ATTR(1 << 17)
|
|
#define SDL_ATTR_RID SET_STRING_ATTR(1 << 18)
|
|
#define SDL_ATTR_CELLS SET_STRING_ATTR(1 << 19)
|
|
#define SDL_ATTR_FRST_PG SET_STRING_ATTR(1 << 20)
|
|
|
|
/*
|
|
* SSI and RSSI share the same element 'ssi'.
|
|
*/
|
|
#define SDL_ATTR_SSI SET_STRING_ATTR(1 << 21)
|
|
#define SDL_ATTR_RSSI SET_STRING_ATTR(1 << 22)
|
|
|
|
/************************************************************************
|
|
* string2 types
|
|
************************************************************************/
|
|
/*
|
|
* Group A, B, C, and D all share the same data space
|
|
*
|
|
* Group A.
|
|
*/
|
|
#define SDL_ATTR_CHARSET SET_STRING2_ATTR(1 << 0)
|
|
#define SDL_ATTR_COLW SET_STRING2_ATTR(1 << 1)
|
|
#define SDL_ATTR_COLJ SET_STRING2_ATTR(1 << 2)
|
|
#define SDL_ATTR_TEXT SET_STRING2_ATTR(1 << 3)
|
|
#define SDL_ATTR_BRANCHES SET_STRING2_ATTR(1 << 4)
|
|
#define SDL_ATTR_ABBREV SET_STRING2_ATTR(1 << 5)
|
|
#define SDL_ATTR_ENTER SET_STRING2_ATTR(1 << 6)
|
|
#define SDL_ATTR_EXIT SET_STRING2_ATTR(1 << 7)
|
|
|
|
/*
|
|
* Group B.
|
|
*/
|
|
#define SDL_ATTR_PRODUCT SET_STRING2_ATTR(1 << 8)
|
|
#define SDL_ATTR_LICENSE SET_STRING2_ATTR(1 << 9)
|
|
#define SDL_ATTR_TIMESTAMP SET_STRING2_ATTR(1 << 10)
|
|
#define SDL_ATTR_PRODPN SET_STRING2_ATTR(1 << 11)
|
|
#define SDL_ATTR_PRODVER SET_STRING2_ATTR(1 << 12)
|
|
#define SDL_ATTR_AUTHOR SET_STRING2_ATTR(1 << 13)
|
|
#define SDL_ATTR_SDLDTD SET_STRING2_ATTR(1 << 14)
|
|
#define SDL_ATTR_SRCDTD SET_STRING2_ATTR(1 << 15)
|
|
#define SDL_ATTR_PUBID SET_STRING2_ATTR(1 << 16)
|
|
|
|
/*
|
|
* Group C.
|
|
* the group uses the SDL_ATTR_PRODUCT & SDL_ATTR_LICENSE
|
|
*/
|
|
#define SDL_ATTR_FORMAT SET_STRING2_ATTR(1 << 17)
|
|
#define SDL_ATTR_METHOD SET_STRING2_ATTR(1 << 18)
|
|
#define SDL_ATTR_XID SET_STRING2_ATTR(1 << 19)
|
|
#define SDL_ATTR_COMMAND SET_STRING2_ATTR(1 << 20)
|
|
#define SDL_ATTR_DATA SET_STRING2_ATTR(1 << 21)
|
|
|
|
/*
|
|
* Group D.
|
|
* Used for <entry>
|
|
*/
|
|
#define SDL_ATTR_MAIN SET_STRING2_ATTR(1 << 22)
|
|
#define SDL_ATTR_LOCS SET_STRING2_ATTR(1 << 23)
|
|
#define SDL_ATTR_SYNS SET_STRING2_ATTR(1 << 24)
|
|
#define SDL_ATTR_SORT SET_STRING2_ATTR(1 << 25)
|
|
|
|
/* Attribute Value defines */
|
|
enum SdlAttrValue
|
|
{
|
|
SdlAttrValueBad,
|
|
SdlAttrValueImplied,
|
|
SdlAttrValueRequired,
|
|
SdlAttrValueImpliedDef
|
|
};
|
|
|
|
/* Segment types */
|
|
#define SDL_ELEMENT CE_ELEMENT
|
|
#define SDL_STRING CE_STRING
|
|
#define SDL_GRAPHIC CE_GRAPHIC
|
|
|
|
#define SDL_ELEMENT_SHIFT CE_SHIFT_PAST_CHAR_SIZE
|
|
#define SDL_ELEMENT_MASK (0xfffff << SDL_ELEMENT_SHIFT)
|
|
|
|
/*
|
|
* this is the maximum number of bits in an unsigned long value.
|
|
* This is for the inclusion and exclustion masks.
|
|
*/
|
|
/* On Hewlett-Packard Machines! */
|
|
#define SDL_MASK_SIZE 32
|
|
#define SDL_MASK_LEN 2
|
|
|
|
/******** Private Macro Declarations ********/
|
|
|
|
#define SDLSetTypeOfSegment(x,y) (((x) & ~(CE_PRIMARY_MASK)) | (y))
|
|
#define SDLGetTypeOfSegent(x) _CEGetPrimaryType(x)
|
|
|
|
#define SDLSetTypeToElement(x) SDLSetTypeOfSegment((x), SDL_ELEMENT)
|
|
#define SDLSetTypeToString(x) SDLSetTypeOfSegment((x), SDL_STRING)
|
|
#define SDLSetTypeToGraphic(x) SDLSetTypeOfSegment((x), SDL_GRAPHIC)
|
|
#define SDLSetTypeToSpecial(x) SDLSetTypeOfSegment((x), CE_SPECIAL)
|
|
|
|
#ifndef SDLAttrOffset
|
|
#define SDLAttrOffset(p_type, field) \
|
|
(((char *)(&(((p_type)NULL)->field)))-((char *)NULL))
|
|
#endif
|
|
|
|
#define SDLSearchMask(mask, value) \
|
|
((mask[(value)/SDL_MASK_SIZE] & \
|
|
(((unsigned)1L) << ((value) % SDL_MASK_SIZE))) ? True : False)
|
|
|
|
#define SDLMaskValue1(value) \
|
|
(((value) < SDL_MASK_SIZE ? ((unsigned)1L) : 0) \
|
|
<< ((value) % SDL_MASK_SIZE))
|
|
|
|
#define SDLMaskValue2(value) \
|
|
(((value) < SDL_MASK_SIZE ? 0: ((unsigned)1L)) \
|
|
<< ((value) % SDL_MASK_SIZE))
|
|
|
|
#define SDLClearAllBits { 0, 0 }
|
|
|
|
#define SDLSetAllBits \
|
|
{ ~(SDLMaskValue1(SdlElementNone)), ~(SDLMaskValue2(SdlElementNone)) }
|
|
|
|
#define SDLCheckMask(mask) \
|
|
(((mask)[0] != 0 || (mask)[1] != 0) ? 1 : 0)
|
|
|
|
#define SDLStripFromMask(mask, value) \
|
|
(mask)[(value)/SDL_MASK_SIZE] = \
|
|
((mask)[(value)/SDL_MASK_SIZE] & \
|
|
(~(((unsigned)1L) << ((value) % SDL_MASK_SIZE))))
|
|
|
|
#define SDLInitMask(value) \
|
|
{ \
|
|
SDLMaskValue1(value), \
|
|
SDLMaskValue2(value), \
|
|
}
|
|
|
|
#define SDLInitMaskTwo(value1, value2) \
|
|
{ \
|
|
SDLMaskValue1(value1) | SDLMaskValue1(value2), \
|
|
SDLMaskValue2(value1) | SDLMaskValue2(value2), \
|
|
}
|
|
#define SDLInitMaskThree(value1, value2, value3) \
|
|
{ \
|
|
SDLMaskValue1(value1) | SDLMaskValue1(value2) | SDLMaskValue1(value3), \
|
|
SDLMaskValue2(value1) | SDLMaskValue2(value2) | SDLMaskValue2(value3), \
|
|
}
|
|
#define SDLInitMaskFour(value1, value2, value3, value4) \
|
|
{ \
|
|
SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
|
|
SDLMaskValue1(value3) | SDLMaskValue1(value4), \
|
|
SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
|
|
SDLMaskValue2(value3) | SDLMaskValue2(value4), \
|
|
}
|
|
#define SDLInitMaskFive(value1, value2, value3, value4, value5) \
|
|
{ \
|
|
SDLMaskValue1(value1) | SDLMaskValue1(value2) | SDLMaskValue1(value3) | \
|
|
SDLMaskValue1(value4) | SDLMaskValue1(value5),\
|
|
SDLMaskValue2(value1) | SDLMaskValue2(value2) | SDLMaskValue2(value3) | \
|
|
SDLMaskValue2(value4) | SDLMaskValue2(value5),\
|
|
}
|
|
#define SDLInitMaskSix(value1, value2, value3, value4, value5, value6) \
|
|
{ \
|
|
SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
|
|
SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
|
|
SDLMaskValue1(value5) | SDLMaskValue1(value6), \
|
|
SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
|
|
SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
|
|
SDLMaskValue2(value5) | SDLMaskValue2(value6), \
|
|
}
|
|
#define SDLInitMaskSeven(value1, value2, value3,\
|
|
value4, value5, value6, value7) \
|
|
{ \
|
|
SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
|
|
SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
|
|
SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
|
|
SDLMaskValue1(value7), \
|
|
SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
|
|
SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
|
|
SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
|
|
SDLMaskValue2(value7), \
|
|
}
|
|
|
|
#define SDLInitMaskEight(value1, value2, value3, value4, value5, \
|
|
value6, value7, value8) \
|
|
{ \
|
|
SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
|
|
SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
|
|
SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
|
|
SDLMaskValue1(value7) | SDLMaskValue1(value8), \
|
|
SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
|
|
SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
|
|
SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
|
|
SDLMaskValue2(value7) | SDLMaskValue2(value8), \
|
|
}
|
|
|
|
#define SDLInitMaskNine(value1, value2, value3, value4, value5, \
|
|
value6, value7, value8, value9) \
|
|
{ \
|
|
SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
|
|
SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
|
|
SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
|
|
SDLMaskValue1(value7) | SDLMaskValue1(value8) | \
|
|
SDLMaskValue1(value9), \
|
|
SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
|
|
SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
|
|
SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
|
|
SDLMaskValue2(value7) | SDLMaskValue2(value8) | \
|
|
SDLMaskValue2(value9), \
|
|
}
|
|
|
|
#define SDLInitMaskEleven(value1, value2, value3, value4, value5, \
|
|
value6, value7, value8, value9, value10, \
|
|
value11) \
|
|
{ \
|
|
SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
|
|
SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
|
|
SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
|
|
SDLMaskValue1(value7) | SDLMaskValue1(value8) | \
|
|
SDLMaskValue1(value9) | SDLMaskValue1(value10) | \
|
|
SDLMaskValue1(value11), \
|
|
SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
|
|
SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
|
|
SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
|
|
SDLMaskValue2(value7) | SDLMaskValue2(value8) | \
|
|
SDLMaskValue2(value9) | SDLMaskValue2(value10) | \
|
|
SDLMaskValue2(value11), \
|
|
}
|
|
|
|
#define SDLInitMaskTwelve(value1, value2, value3, value4, value5, \
|
|
value6, value7, value8, value9, value10, \
|
|
value11, value12) \
|
|
{ \
|
|
SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
|
|
SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
|
|
SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
|
|
SDLMaskValue1(value7) | SDLMaskValue1(value8) | \
|
|
SDLMaskValue1(value9) | SDLMaskValue1(value10) | \
|
|
SDLMaskValue1(value11) | SDLMaskValue1(value12), \
|
|
SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
|
|
SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
|
|
SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
|
|
SDLMaskValue2(value7) | SDLMaskValue2(value8) | \
|
|
SDLMaskValue2(value9) | SDLMaskValue2(value10) | \
|
|
SDLMaskValue2(value11) | SDLMaskValue2(value12), \
|
|
}
|
|
|
|
#define SDLInitMaskThirteen(value1, value2, value3, value4, value5, \
|
|
value6 , value7 , value8 , value9, value10, \
|
|
value11, value12, value13) \
|
|
{ \
|
|
SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
|
|
SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
|
|
SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
|
|
SDLMaskValue1(value7) | SDLMaskValue1(value8) | \
|
|
SDLMaskValue1(value9) | SDLMaskValue1(value10) | \
|
|
SDLMaskValue1(value11) | SDLMaskValue1(value12) | \
|
|
SDLMaskValue1(value13), \
|
|
SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
|
|
SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
|
|
SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
|
|
SDLMaskValue2(value7) | SDLMaskValue2(value8) | \
|
|
SDLMaskValue2(value9) | SDLMaskValue2(value10) | \
|
|
SDLMaskValue2(value11) | SDLMaskValue2(value12) | \
|
|
SDLMaskValue2(value13), \
|
|
}
|
|
|
|
#define SDLInitMaskFourteen(value1, value2, value3, value4, value5, \
|
|
value6 , value7 , value8 , value9, value10, \
|
|
value11, value12, value13, value14) \
|
|
{ \
|
|
SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
|
|
SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
|
|
SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
|
|
SDLMaskValue1(value7) | SDLMaskValue1(value8) | \
|
|
SDLMaskValue1(value9) | SDLMaskValue1(value10) | \
|
|
SDLMaskValue1(value11) | SDLMaskValue1(value12) | \
|
|
SDLMaskValue1(value13) | SDLMaskValue1(value14), \
|
|
SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
|
|
SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
|
|
SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
|
|
SDLMaskValue2(value7) | SDLMaskValue2(value8) | \
|
|
SDLMaskValue2(value9) | SDLMaskValue2(value10) | \
|
|
SDLMaskValue2(value11) | SDLMaskValue2(value12) | \
|
|
SDLMaskValue2(value13) | SDLMaskValue1(value14), \
|
|
}
|
|
|
|
/******** Private Typedef Declarations ********/
|
|
typedef char* SDLId;
|
|
typedef char* SDLCdata;
|
|
|
|
typedef int SDLNumber;
|
|
typedef unsigned long SDLMask; /* must be a 32 bit value */
|
|
|
|
typedef _DtHelpFontHints* _DtHelpFontHintPtr;
|
|
|
|
/******** Private Structures Declarations ********/
|
|
|
|
typedef struct {
|
|
const char *string;
|
|
SdlOption option_value;
|
|
} OptionList;
|
|
|
|
typedef struct {
|
|
unsigned long attr_value;
|
|
const OptionList *options;
|
|
} SDLAttributeOptions;
|
|
|
|
typedef struct {
|
|
const char *string;
|
|
_DtHelpFontValue option_value;
|
|
} FontSpecOption;
|
|
|
|
typedef struct {
|
|
unsigned long attr_value;
|
|
const FontSpecOption *options;
|
|
} SDLFontSpecList;
|
|
|
|
typedef struct {
|
|
SDLMask mask[SDL_MASK_LEN];
|
|
int (*model)();
|
|
} SDLContent;
|
|
|
|
enum SdlStructType {
|
|
SdlStructTypeBad = -1,
|
|
SdlIgnore,
|
|
SdlFontSpecific,
|
|
SdlElementSpecific,
|
|
SdlTableSpecific,
|
|
SdlContainerSpecific
|
|
};
|
|
|
|
typedef struct {
|
|
const char *name;
|
|
enum SdlAttrDataType data_type;
|
|
enum SdlStructType struct_type;
|
|
int sdl_attr_define;
|
|
int field_ptr;
|
|
} SDLAttribute;
|
|
|
|
typedef struct {
|
|
int sdl_attr_define;
|
|
enum SdlAttrValue sdl_value;
|
|
const char *def_string;
|
|
} SDLElementAttrList;
|
|
|
|
enum _sdlElToGeneral
|
|
{
|
|
SdlToNone,
|
|
SdlToContainer,
|
|
SdlToMarker,
|
|
SdlToGraphic,
|
|
SdlToString,
|
|
SdlToSpc,
|
|
SdlToSnb
|
|
};
|
|
|
|
typedef enum _sdlElToGeneral SdlToGeneral;
|
|
|
|
typedef struct _sdlElementInfo {
|
|
const char *element_str; /* the element string */
|
|
const char *element_end_str; /* the ending string */
|
|
int str_sig_chars; /* # of significant chars */
|
|
int end_sig_chars; /* # of significant chars */
|
|
enum SdlElement sdl_element; /* The element's value */
|
|
SDLMask exceptions[SDL_MASK_LEN];
|
|
/* what elements cannot
|
|
appear in this element */
|
|
const SDLElementAttrList *attrib_list; /* attribute list */
|
|
const SDLContent *content; /* The element's content */
|
|
int elim_flag; /* If this element's
|
|
segment list is null,
|
|
eleminate the element */
|
|
int cdata_flag; /* If no attributes, is
|
|
there cdata before the
|
|
end */
|
|
int formatting; /* does this cause a
|
|
formatting break */
|
|
int new_fonts; /* does this cause new
|
|
fonts to be pulled in? */
|
|
SdlToGeneral sdl_to_gen; /* What kind of general
|
|
type is this element? */
|
|
} SDLElementInfo;
|
|
|
|
/******** Private Macros Declarations ********/
|
|
|
|
#ifndef _SdlIsTossStyle
|
|
#define _SdlIsTossStyle(x) (SdlElementKeyStyle == (x) || \
|
|
SdlElementHeadStyle == (x) || \
|
|
SdlElementFormStyle == (x) || \
|
|
SdlElementFrmtStyle == (x) || \
|
|
SdlElementGrphStyle == (x))
|
|
#endif
|
|
|
|
/******** Private Function Declarations ********/
|
|
|
|
#ifdef __cplusplus
|
|
} /* Close scope of 'extern "C"' declaration which encloses file. */
|
|
#endif
|
|
|
|
#endif /* _DtHelpSDLI_h */
|
|
/* DON'T ADD ANYTHING AFTER THIS #endif */
|