1 /* $XConsortium: SDLI.h /main/7 1995/11/28 14:24:36 cde-hp $ */
2 /*************************************<+>*************************************
3 *****************************************************************************
9 ** Description: Public Header file for Canvas.c
11 ** (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 Hewlett-Packard Company
13 ** (c) Copyright 1993, 1994 Hewlett-Packard Company
14 ** (c) Copyright 1993, 1994 International Business Machines Corp.
15 ** (c) Copyright 1993, 1994 Sun Microsystems, Inc.
16 ** (c) Copyright 1993, 1994 Novell, Inc.
18 *******************************************************************
19 *************************************<+>*************************************/
28 /*****************************************************************************
29 * SDL DTD versioning defines
30 *****************************************************************************/
34 #define SDL_DTD_VERSION 1
37 * The first minor version
42 * Virpage levels went from 1-n.
43 * Any virpage with a level of
44 * zero (or less) are hidden.
48 /*****************************************************************************
49 * Attribute type enumerations
50 *****************************************************************************/
51 enum SdlAttrDataType {
53 SdlAttrDataTypeInvalid,
54 /* valid data types */
55 SdlAttrDataTypeId , SdlAttrDataTypeNumber, SdlAttrDataTypeCdata,
56 SdlAttrDataTypeFont, SdlAttrDataTypeEnum };
58 /*****************************************************************************
60 *****************************************************************************/
64 * all _DtCv enums are from the canvas engine
66 /* bad option indicator */
67 SdlOptionBad = _DtCvOPTION_BAD,
68 /* string breakng types */
69 SdlLiteral = _DtCvLITERAL,
70 SdlDynamic = _DtCvDYNAMIC,
71 /* table border types */
72 SdlBorderNone = _DtCvBORDER_NONE,
73 SdlBorderFull = _DtCvBORDER_FULL,
74 SdlBorderHorz = _DtCvBORDER_HORZ,
75 SdlBorderVert = _DtCvBORDER_VERT,
76 SdlBorderTop = _DtCvBORDER_TOP,
77 SdlBorderBottom = _DtCvBORDER_BOTTOM,
78 SdlBorderLeft = _DtCvBORDER_LEFT,
79 SdlBorderRight = _DtCvBORDER_RIGHT,
80 /* horizontal orientation */
81 SdlJustifyLeftCorner = _DtCvJUSTIFY_LEFT_CORNER,
82 SdlJustifyLeft = _DtCvJUSTIFY_LEFT,
83 SdlJustifyLeftMargin = _DtCvJUSTIFY_LEFT_MARGIN,
84 SdlJustifyCenter = _DtCvJUSTIFY_CENTER,
85 SdlJustifyRightMargin = _DtCvJUSTIFY_RIGHT_MARGIN,
86 SdlJustifyRight = _DtCvJUSTIFY_RIGHT,
87 SdlJustifyRightCorner = _DtCvJUSTIFY_RIGHT_CORNER,
88 /* extra horizontal text placement */
89 SdlJustifyNum = _DtCvJUSTIFY_NUM,
90 /* extra vertical orientation */
91 SdlJustifyTop = _DtCvJUSTIFY_TOP,
92 SdlJustifyBottom = _DtCvJUSTIFY_BOTTOM,
95 SdlNoWrap = _DtCvWRAP_NONE,
96 SdlWrapJoin = _DtCvWRAP_JOIN,
97 /* SDL specific options */
99 SdlBoolYes , SdlBoolNo ,
102 SdlClassAcro , SdlClassBook , SdlClassEmph , SdlClassJargon ,
103 SdlClassL10n , SdlClassName , SdlClassQuote , SdlClassProduct,
104 SdlClassTermdef , SdlClassTerm , SdlClassMachIn , SdlClassMachOut,
105 SdlClassMachCont, SdlClassPubLit , SdlClassUdefkey ,
108 SdlClassLabel , SdlClassHead , SdlClassCaption ,
109 SdlClassAnnotation, SdlClassPHead, SdlClassUdefhead,
112 SdlClassTable , SdlClassCell , SdlClassList,
113 SdlClassItem , SdlClassText , SdlClassUdeffrmt,
115 /* graphic classes */
116 SdlClassFigure, SdlClassInLine , SdlClassButton ,
117 SdlClassIcon , SdlClassUdefgraph,
120 SdlClassSuper , SdlClassSub ,
123 SdlAppAll , SdlAppHelp , SdlAppTutorial ,
124 SdlAppRef , SdlAppSys ,
127 SdlTimingSync , SdlTimingAsync ,
130 SdlTypeLiteral , SdlTypeLined ,
131 SdlTypeDynamic , SdlTypeUnlinedLiteral,
135 SdlWindowCurrent , SdlWindowNew, SdlWindowPopup,
137 SdlTraversalReturn, SdlTraversalNoReturn,
139 SdlIdVirpage , SdlIdBlock , SdlIdForm , SdlIdPara ,
140 SdlIdCPara , SdlIdHead , SdlIdSubHead , SdlIdAnchor ,
141 SdlIdSwitch , SdlIdSnRef , SdlIdGraphic , SdlIdText ,
142 SdlIdAudio , SdlIdVideo , SdlIdAnimate ,
143 SdlIdCrossDoc, SdlIdManPage , SdlIdTextFile,
144 SdlIdSysCmd , SdlIdScript , SdlIdCallback,
145 /* <script> interpreter types */
146 SdlInterpKsh, SdlInterpTcl, SdlInterpCsh, SdlInterpSh,
147 /* <headstyle> placement types */
148 SdlPlaceParent, SdlPlaceObject,
149 /* <headstyle> stack types */
150 SdlStackHoriz , SdlStackVert
153 typedef enum sdlOption SdlOption;
155 /*****************************************************************************
156 * SDL Element enumerations
157 *****************************************************************************/
177 /* System notations */
189 /* System notations (end) */
204 /* Conditionals (end) */
205 /* The sgml header to the document */
209 /* Generated elements in the document */
219 /* Generated elements (end) */
220 /* Table of styles and sematics. */
226 /* Table of styles and sematics.(end) */
228 /* Support asyncronous blocks */
229 SdlElementBlockAsync,
230 /* Support getting the title of a virpage */
232 /* Support content that has optional markup followed by PCDATA */
236 /******** Private Defines Declarations ********/
237 /* sort of enumerated types */
238 #define ENUM_VALUE 0x01
239 #define NUMBER_VALUE 0x02
240 #define STRING1_VALUE 0x03
241 #define STRING2_VALUE 0x04
243 #define VALUE_MASK 0x07
245 #define VALUE_TYPE_SHIFT 3
246 #define MINOR_MASK (0x07 << VALUE_TYPE_SHIFT)
248 #define SET_ENUM_ATTR(x) ((x) << VALUE_TYPE_SHIFT | ENUM_VALUE)
249 #define SET_NUMBER_ATTR(x) ((x) << VALUE_TYPE_SHIFT | NUMBER_VALUE)
250 #define SET_STRING_ATTR(x) ((x) << VALUE_TYPE_SHIFT | STRING1_VALUE)
251 #define SET_STRING2_ATTR(x) ((x) << VALUE_TYPE_SHIFT | STRING2_VALUE)
253 #define ATTRS_EQUAL(type, x, y) \
254 (((type) != SdlAttrDataTypeEnum) ? \
255 ((x) == (y) ? 1 : 0) : \
256 (((((x) & VALUE_MASK) == ((y) & VALUE_MASK)) && \
257 ((x) & (y) & ~(VALUE_MASK))) ? 1 : 0))
259 #define SDLIsString1(x) ((((x) & VALUE_MASK) == STRING1_VALUE) ? 1 : 0)
260 #define SDLIsString2(x) ((((x) & VALUE_MASK) == STRING2_VALUE) ? 1 : 0)
262 #define SDLIsStrAttrSet(pa, attr) \
263 (((((attr) & VALUE_MASK)==STRING1_VALUE) ? ((pa).str1_values & attr) : \
264 ((((attr) & VALUE_MASK)==STRING2_VALUE) ? \
265 ((pa).str2_values & attr) : 0)) & (~VALUE_MASK))
267 #define SDLIsAttrSet(pa, attr) \
268 (((((attr) & VALUE_MASK)==ENUM_VALUE) ? ((pa).enum_values & attr) : \
269 ((((attr) & VALUE_MASK)==NUMBER_VALUE) ? ((pa).num_values & attr) : \
270 ((((attr) & VALUE_MASK)==STRING1_VALUE) ? ((pa).str1_values & attr) : \
271 ((pa).str2_values & attr)))) & (~VALUE_MASK))
273 #define SDLAttrFlagType(x) ((x) & VALUE_MASK)
275 /************************************************************************
277 ************************************************************************/
279 * this set has the same attribute 'class',
280 * but each has a different set of values.
282 #define SDL_ATTR_CLASS SET_ENUM_ATTR(1 << 3)
283 #define SDL_ATTR_CLASSALL (SDL_ATTR_CLASS)
284 #define SDL_ATTR_CLASSH SET_ENUM_ATTR((1 << 3) | 0x01)
285 #define SDL_ATTR_CLASSF SET_ENUM_ATTR((1 << 3) | 0x02)
286 #define SDL_ATTR_CLASSK SET_ENUM_ATTR((1 << 3) | 0x03)
287 #define SDL_ATTR_CLASSG SET_ENUM_ATTR((1 << 3) | 0x04)
288 #define SDL_ATTR_CLASSFG SET_ENUM_ATTR((1 << 3) | 0x05)
289 #define SDL_ATTR_CLASSP SET_ENUM_ATTR((1 << 3) | 0x06)
292 * this set has the same attribute 'type',
293 * but each has a different set of values.
295 #define SDL_ATTR_TYPE SET_ENUM_ATTR((1 << 4) | 0x00)
296 #define SDL_ATTR_TYPEFRMT SET_ENUM_ATTR((1 << 4) | 0x01)
297 #define SDL_ATTR_TYPEID SET_ENUM_ATTR((1 << 4) | 0x02)
299 #define SDL_ATTR_APP SET_ENUM_ATTR(1 << 5)
300 #define SDL_ATTR_TIMING SET_ENUM_ATTR(1 << 6)
301 #define SDL_ATTR_HDR SET_ENUM_ATTR(1 << 7)
303 /* Format Style Attributes */
304 #define SDL_ATTR_BORDER SET_ENUM_ATTR(1 << 8)
305 #define SDL_ATTR_JUSTIFY SET_ENUM_ATTR((1 << 9) | 0x00)
306 #define SDL_ATTR_JUSTIFY1 SET_ENUM_ATTR((1 << 9) | 0x01)
307 #define SDL_ATTR_JUSTIFY2 SET_ENUM_ATTR((1 << 9) | 0x02)
308 #define SDL_ATTR_VJUST SET_ENUM_ATTR(1 << 10)
310 /* Head Style Attributes */
311 #define SDL_ATTR_ORIENT SET_ENUM_ATTR(1 << 11)
312 #define SDL_ATTR_VORIENT SET_ENUM_ATTR(1 << 12)
313 #define SDL_ATTR_FLOW SET_ENUM_ATTR(1 << 13)
314 #define SDL_ATTR_WINDOW SET_ENUM_ATTR(1 << 14)
315 #define SDL_ATTR_PLACEMENT SET_ENUM_ATTR(1 << 15)
316 #define SDL_ATTR_STACK SET_ENUM_ATTR(1 << 16)
319 #define SDL_ATTR_TRAVERSAL SET_ENUM_ATTR(1 << 17)
321 /* Font Style Attributes */
322 #define SDL_ATTR_STYLE SET_ENUM_ATTR(1 << 18)
323 #define SDL_ATTR_SPACING SET_ENUM_ATTR(1 << 19)
324 #define SDL_ATTR_WEIGHT SET_ENUM_ATTR(1 << 20)
325 #define SDL_ATTR_SLANT SET_ENUM_ATTR(1 << 21)
326 #define SDL_ATTR_SPECIAL SET_ENUM_ATTR(1 << 22)
327 #define SDL_ATTR_INTERP SET_ENUM_ATTR(1 << 23)
329 /************************************************************************
331 ************************************************************************/
333 * LEVEL and RLEVEL share the same data element in the structure
335 #define SDL_ATTR_LEVEL SET_NUMBER_ATTR(1 << 3)
336 #define SDL_ATTR_RLEVEL SET_NUMBER_ATTR(1 << 4)
338 #define SDL_ATTR_LENGTH SET_NUMBER_ATTR(1 << 5)
339 #define SDL_ATTR_NCOLS SET_NUMBER_ATTR(1 << 6)
340 #define SDL_ATTR_COUNT SET_NUMBER_ATTR(1 << 7)
342 /* Font Style Attributes */
343 #define SDL_ATTR_POINTSZ SET_NUMBER_ATTR(1 << 8)
344 #define SDL_ATTR_SETWIDTH SET_NUMBER_ATTR(1 << 9)
346 /* Format Style Attributes */
347 #define SDL_ATTR_FMARGIN SET_NUMBER_ATTR(1 << 10)
348 #define SDL_ATTR_LMARGIN SET_NUMBER_ATTR(1 << 11)
349 #define SDL_ATTR_RMARGIN SET_NUMBER_ATTR(1 << 12)
350 #define SDL_ATTR_TMARGIN SET_NUMBER_ATTR(1 << 13)
351 #define SDL_ATTR_BMARGIN SET_NUMBER_ATTR(1 << 14)
352 #define SDL_ATTR_SRCHWT SET_NUMBER_ATTR(1 << 15)
353 #define SDL_ATTR_OFFSET SET_NUMBER_ATTR(1 << 16)
355 /* Head Style Attributes */
356 #define SDL_ATTR_HEADWDTH SET_NUMBER_ATTR(1 << 17)
358 /************************************************************************
360 ************************************************************************/
361 #define SDL_ATTR_VERSION SET_STRING_ATTR(1 << 0)
362 #define SDL_ATTR_LANGUAGE SET_STRING_ATTR(1 << 1)
363 #define SDL_ATTR_DOCID SET_STRING_ATTR(1 << 2)
366 #define SDL_ATTR_PHRASE SET_STRING_ATTR(1 << 3)
369 #define SDL_ATTR_BUTTON SET_STRING_ATTR(1 << 4)
372 #define SDL_ATTR_DESCRIPT SET_STRING_ATTR(1 << 5)
373 #define SDL_ATTR_LINKINFO SET_STRING_ATTR(1 << 6)
375 /* Font Style Attributes */
376 #define SDL_ATTR_COLOR SET_STRING_ATTR(1 << 7)
377 #define SDL_ATTR_XLFD SET_STRING_ATTR(1 << 8)
378 #define SDL_ATTR_XLFDI SET_STRING_ATTR(1 << 9)
379 #define SDL_ATTR_XLFDB SET_STRING_ATTR(1 << 10)
380 #define SDL_ATTR_XLFDIB SET_STRING_ATTR(1 << 11)
381 #define SDL_ATTR_TYPENAM SET_STRING_ATTR(1 << 12)
382 #define SDL_ATTR_TYPENAMI SET_STRING_ATTR(1 << 13)
383 #define SDL_ATTR_TYPENAMB SET_STRING_ATTR(1 << 14)
384 #define SDL_ATTR_TYPENAMIB SET_STRING_ATTR(1 << 15)
387 * start share of element 'id'.
389 #define SDL_ATTR_ID SET_STRING_ATTR(1 << 16)
390 #define SDL_ATTR_NAME SET_STRING_ATTR(1 << 17)
391 #define SDL_ATTR_RID SET_STRING_ATTR(1 << 18)
392 #define SDL_ATTR_CELLS SET_STRING_ATTR(1 << 19)
393 #define SDL_ATTR_FRST_PG SET_STRING_ATTR(1 << 20)
396 * SSI and RSSI share the same element 'ssi'.
398 #define SDL_ATTR_SSI SET_STRING_ATTR(1 << 21)
399 #define SDL_ATTR_RSSI SET_STRING_ATTR(1 << 22)
401 /************************************************************************
403 ************************************************************************/
405 * Group A, B, C, and D all share the same data space
409 #define SDL_ATTR_CHARSET SET_STRING2_ATTR(1 << 0)
410 #define SDL_ATTR_COLW SET_STRING2_ATTR(1 << 1)
411 #define SDL_ATTR_COLJ SET_STRING2_ATTR(1 << 2)
412 #define SDL_ATTR_TEXT SET_STRING2_ATTR(1 << 3)
413 #define SDL_ATTR_BRANCHES SET_STRING2_ATTR(1 << 4)
414 #define SDL_ATTR_ABBREV SET_STRING2_ATTR(1 << 5)
415 #define SDL_ATTR_ENTER SET_STRING2_ATTR(1 << 6)
416 #define SDL_ATTR_EXIT SET_STRING2_ATTR(1 << 7)
421 #define SDL_ATTR_PRODUCT SET_STRING2_ATTR(1 << 8)
422 #define SDL_ATTR_LICENSE SET_STRING2_ATTR(1 << 9)
423 #define SDL_ATTR_TIMESTAMP SET_STRING2_ATTR(1 << 10)
424 #define SDL_ATTR_PRODPN SET_STRING2_ATTR(1 << 11)
425 #define SDL_ATTR_PRODVER SET_STRING2_ATTR(1 << 12)
426 #define SDL_ATTR_AUTHOR SET_STRING2_ATTR(1 << 13)
427 #define SDL_ATTR_SDLDTD SET_STRING2_ATTR(1 << 14)
428 #define SDL_ATTR_SRCDTD SET_STRING2_ATTR(1 << 15)
429 #define SDL_ATTR_PUBID SET_STRING2_ATTR(1 << 16)
433 * the group uses the SDL_ATTR_PRODUCT & SDL_ATTR_LICENSE
435 #define SDL_ATTR_FORMAT SET_STRING2_ATTR(1 << 17)
436 #define SDL_ATTR_METHOD SET_STRING2_ATTR(1 << 18)
437 #define SDL_ATTR_XID SET_STRING2_ATTR(1 << 19)
438 #define SDL_ATTR_COMMAND SET_STRING2_ATTR(1 << 20)
439 #define SDL_ATTR_DATA SET_STRING2_ATTR(1 << 21)
445 #define SDL_ATTR_MAIN SET_STRING2_ATTR(1 << 22)
446 #define SDL_ATTR_LOCS SET_STRING2_ATTR(1 << 23)
447 #define SDL_ATTR_SYNS SET_STRING2_ATTR(1 << 24)
448 #define SDL_ATTR_SORT SET_STRING2_ATTR(1 << 25)
450 /* Attribute Value defines */
455 SdlAttrValueRequired,
456 SdlAttrValueImpliedDef
460 #define SDL_ELEMENT CE_ELEMENT
461 #define SDL_STRING CE_STRING
462 #define SDL_GRAPHIC CE_GRAPHIC
464 #define SDL_ELEMENT_SHIFT CE_SHIFT_PAST_CHAR_SIZE
465 #define SDL_ELEMENT_MASK (0xfffff << SDL_ELEMENT_SHIFT)
468 * this is the maximum number of bits in an unsigned long value.
469 * This is for the inclusion and exclustion masks.
471 /* On Hewlett-Packard Machines! */
472 #define SDL_MASK_SIZE 32
473 #define SDL_MASK_LEN 2
475 /******** Private Macro Declarations ********/
477 #define SDLSetTypeOfSegment(x,y) (((x) & ~(CE_PRIMARY_MASK)) | (y))
478 #define SDLGetTypeOfSegent(x) _CEGetPrimaryType(x)
480 #define SDLSetTypeToElement(x) SDLSetTypeOfSegment((x), SDL_ELEMENT)
481 #define SDLSetTypeToString(x) SDLSetTypeOfSegment((x), SDL_STRING)
482 #define SDLSetTypeToGraphic(x) SDLSetTypeOfSegment((x), SDL_GRAPHIC)
483 #define SDLSetTypeToSpecial(x) SDLSetTypeOfSegment((x), CE_SPECIAL)
485 #ifndef SDLAttrOffset
486 #define SDLAttrOffset(p_type, field) \
487 (((char *)(&(((p_type)NULL)->field)))-((char *)NULL))
490 #define SDLSearchMask(mask, value) \
491 ((mask[(value)/SDL_MASK_SIZE] & \
492 (((unsigned)1L) << ((value) % SDL_MASK_SIZE))) ? True : False)
494 #define SDLMaskValue1(value) \
495 (((value) < SDL_MASK_SIZE ? ((unsigned)1L) : 0) \
496 << ((value) % SDL_MASK_SIZE))
498 #define SDLMaskValue2(value) \
499 (((value) < SDL_MASK_SIZE ? 0: ((unsigned)1L)) \
500 << ((value) % SDL_MASK_SIZE))
502 #define SDLClearAllBits { 0, 0 }
504 #define SDLSetAllBits \
505 { ~(SDLMaskValue1(SdlElementNone)), ~(SDLMaskValue2(SdlElementNone)) }
507 #define SDLCheckMask(mask) \
508 (((mask)[0] != 0 || (mask)[1] != 0) ? 1 : 0)
510 #define SDLStripFromMask(mask, value) \
511 (mask)[(value)/SDL_MASK_SIZE] = \
512 ((mask)[(value)/SDL_MASK_SIZE] & \
513 (~(((unsigned)1L) << ((value) % SDL_MASK_SIZE))))
515 #define SDLInitMask(value) \
517 SDLMaskValue1(value), \
518 SDLMaskValue2(value), \
521 #define SDLInitMaskTwo(value1, value2) \
523 SDLMaskValue1(value1) | SDLMaskValue1(value2), \
524 SDLMaskValue2(value1) | SDLMaskValue2(value2), \
526 #define SDLInitMaskThree(value1, value2, value3) \
528 SDLMaskValue1(value1) | SDLMaskValue1(value2) | SDLMaskValue1(value3), \
529 SDLMaskValue2(value1) | SDLMaskValue2(value2) | SDLMaskValue2(value3), \
531 #define SDLInitMaskFour(value1, value2, value3, value4) \
533 SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
534 SDLMaskValue1(value3) | SDLMaskValue1(value4), \
535 SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
536 SDLMaskValue2(value3) | SDLMaskValue2(value4), \
538 #define SDLInitMaskFive(value1, value2, value3, value4, value5) \
540 SDLMaskValue1(value1) | SDLMaskValue1(value2) | SDLMaskValue1(value3) | \
541 SDLMaskValue1(value4) | SDLMaskValue1(value5),\
542 SDLMaskValue2(value1) | SDLMaskValue2(value2) | SDLMaskValue2(value3) | \
543 SDLMaskValue2(value4) | SDLMaskValue2(value5),\
545 #define SDLInitMaskSix(value1, value2, value3, value4, value5, value6) \
547 SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
548 SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
549 SDLMaskValue1(value5) | SDLMaskValue1(value6), \
550 SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
551 SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
552 SDLMaskValue2(value5) | SDLMaskValue2(value6), \
554 #define SDLInitMaskSeven(value1, value2, value3,\
555 value4, value5, value6, value7) \
557 SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
558 SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
559 SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
560 SDLMaskValue1(value7), \
561 SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
562 SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
563 SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
564 SDLMaskValue2(value7), \
567 #define SDLInitMaskEight(value1, value2, value3, value4, value5, \
568 value6, value7, value8) \
570 SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
571 SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
572 SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
573 SDLMaskValue1(value7) | SDLMaskValue1(value8), \
574 SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
575 SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
576 SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
577 SDLMaskValue2(value7) | SDLMaskValue2(value8), \
580 #define SDLInitMaskNine(value1, value2, value3, value4, value5, \
581 value6, value7, value8, value9) \
583 SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
584 SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
585 SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
586 SDLMaskValue1(value7) | SDLMaskValue1(value8) | \
587 SDLMaskValue1(value9), \
588 SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
589 SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
590 SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
591 SDLMaskValue2(value7) | SDLMaskValue2(value8) | \
592 SDLMaskValue2(value9), \
595 #define SDLInitMaskEleven(value1, value2, value3, value4, value5, \
596 value6, value7, value8, value9, value10, \
599 SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
600 SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
601 SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
602 SDLMaskValue1(value7) | SDLMaskValue1(value8) | \
603 SDLMaskValue1(value9) | SDLMaskValue1(value10) | \
604 SDLMaskValue1(value11), \
605 SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
606 SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
607 SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
608 SDLMaskValue2(value7) | SDLMaskValue2(value8) | \
609 SDLMaskValue2(value9) | SDLMaskValue2(value10) | \
610 SDLMaskValue2(value11), \
613 #define SDLInitMaskTwelve(value1, value2, value3, value4, value5, \
614 value6, value7, value8, value9, value10, \
617 SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
618 SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
619 SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
620 SDLMaskValue1(value7) | SDLMaskValue1(value8) | \
621 SDLMaskValue1(value9) | SDLMaskValue1(value10) | \
622 SDLMaskValue1(value11) | SDLMaskValue1(value12), \
623 SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
624 SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
625 SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
626 SDLMaskValue2(value7) | SDLMaskValue2(value8) | \
627 SDLMaskValue2(value9) | SDLMaskValue2(value10) | \
628 SDLMaskValue2(value11) | SDLMaskValue2(value12), \
631 #define SDLInitMaskThirteen(value1, value2, value3, value4, value5, \
632 value6 , value7 , value8 , value9, value10, \
633 value11, value12, value13) \
635 SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
636 SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
637 SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
638 SDLMaskValue1(value7) | SDLMaskValue1(value8) | \
639 SDLMaskValue1(value9) | SDLMaskValue1(value10) | \
640 SDLMaskValue1(value11) | SDLMaskValue1(value12) | \
641 SDLMaskValue1(value13), \
642 SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
643 SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
644 SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
645 SDLMaskValue2(value7) | SDLMaskValue2(value8) | \
646 SDLMaskValue2(value9) | SDLMaskValue2(value10) | \
647 SDLMaskValue2(value11) | SDLMaskValue2(value12) | \
648 SDLMaskValue2(value13), \
651 #define SDLInitMaskFourteen(value1, value2, value3, value4, value5, \
652 value6 , value7 , value8 , value9, value10, \
653 value11, value12, value13, value14) \
655 SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
656 SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
657 SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
658 SDLMaskValue1(value7) | SDLMaskValue1(value8) | \
659 SDLMaskValue1(value9) | SDLMaskValue1(value10) | \
660 SDLMaskValue1(value11) | SDLMaskValue1(value12) | \
661 SDLMaskValue1(value13) | SDLMaskValue1(value14), \
662 SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
663 SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
664 SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
665 SDLMaskValue2(value7) | SDLMaskValue2(value8) | \
666 SDLMaskValue2(value9) | SDLMaskValue2(value10) | \
667 SDLMaskValue2(value11) | SDLMaskValue2(value12) | \
668 SDLMaskValue2(value13) | SDLMaskValue1(value14), \
671 /******** Private Typedef Declarations ********/
673 typedef char* SDLCdata;
675 typedef int SDLNumber;
676 typedef unsigned long SDLMask; /* must be a 32 bit value */
678 typedef _DtHelpFontHints* _DtHelpFontHintPtr;
680 /******** Private Structures Declarations ********/
684 SdlOption option_value;
688 unsigned long attr_value;
689 const OptionList *options;
690 } SDLAttributeOptions;
694 _DtHelpFontValue option_value;
698 unsigned long attr_value;
699 const FontSpecOption *options;
703 SDLMask mask[SDL_MASK_LEN];
708 SdlStructTypeBad = -1,
718 enum SdlAttrDataType data_type;
719 enum SdlStructType struct_type;
726 enum SdlAttrValue sdl_value;
727 const char *def_string;
728 } SDLElementAttrList;
741 typedef enum _sdlElToGeneral SdlToGeneral;
743 typedef struct _sdlElementInfo {
744 const char *element_str; /* the element string */
745 const char *element_end_str; /* the ending string */
746 int str_sig_chars; /* # of significant chars */
747 int end_sig_chars; /* # of significant chars */
748 enum SdlElement sdl_element; /* The element's value */
749 SDLMask exceptions[SDL_MASK_LEN];
750 /* what elements cannot
751 appear in this element */
752 const SDLElementAttrList *attrib_list; /* attribute list */
753 const SDLContent *content; /* The element's content */
754 int elim_flag; /* If this element's
755 segment list is null,
756 eleminate the element */
757 int cdata_flag; /* If no attributes, is
758 there cdata before the
760 int formatting; /* does this cause a
762 int new_fonts; /* does this cause new
763 fonts to be pulled in? */
764 SdlToGeneral sdl_to_gen; /* What kind of general
765 type is this element? */
768 /******** Private Macros Declarations ********/
770 #ifndef _SdlIsTossStyle
771 #define _SdlIsTossStyle(x) (SdlElementKeyStyle == (x) || \
772 SdlElementHeadStyle == (x) || \
773 SdlElementFormStyle == (x) || \
774 SdlElementFrmtStyle == (x) || \
775 SdlElementGrphStyle == (x))
778 /******** Private Function Declarations ********/
781 } /* Close scope of 'extern "C"' declaration which encloses file. */
784 #endif /* _DtHelpSDLI_h */
785 /* DON'T ADD ANYTHING AFTER THIS #endif */