2 * CDE - Common Desktop Environment
4 * Copyright (c) 1993-2012, The Open Group. All rights reserved.
6 * These libraries and programs are free software; you can
7 * redistribute them and/or modify them under the terms of the GNU
8 * Lesser General Public License as published by the Free Software
9 * Foundation; either version 2 of the License, or (at your option)
12 * These libraries and programs are distributed in the hope that
13 * they will be useful, but WITHOUT ANY WARRANTY; without even the
14 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU Lesser General Public License for more
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with these libraries and programs; if not, write
20 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21 * Floor, Boston, MA 02110-1301 USA
23 /* $XConsortium: SDLI.h /main/7 1995/11/28 14:24:36 cde-hp $ */
24 /*************************************<+>*************************************
25 *****************************************************************************
31 ** Description: Public Header file for Canvas.c
33 ** (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 Hewlett-Packard Company
35 ** (c) Copyright 1993, 1994 Hewlett-Packard Company
36 ** (c) Copyright 1993, 1994 International Business Machines Corp.
37 ** (c) Copyright 1993, 1994 Sun Microsystems, Inc.
38 ** (c) Copyright 1993, 1994 Novell, Inc.
40 *******************************************************************
41 *************************************<+>*************************************/
50 /*****************************************************************************
51 * SDL DTD versioning defines
52 *****************************************************************************/
56 #define SDL_DTD_VERSION 1
59 * The first minor version
64 * Virpage levels went from 1-n.
65 * Any virpage with a level of
66 * zero (or less) are hidden.
70 /*****************************************************************************
71 * Attribute type enumerations
72 *****************************************************************************/
73 enum SdlAttrDataType {
75 SdlAttrDataTypeInvalid,
76 /* valid data types */
77 SdlAttrDataTypeId , SdlAttrDataTypeNumber, SdlAttrDataTypeCdata,
78 SdlAttrDataTypeFont, SdlAttrDataTypeEnum };
80 /*****************************************************************************
82 *****************************************************************************/
86 * all _DtCv enums are from the canvas engine
88 /* bad option indicator */
89 SdlOptionBad = _DtCvOPTION_BAD,
90 /* string breakng types */
91 SdlLiteral = _DtCvLITERAL,
92 SdlDynamic = _DtCvDYNAMIC,
93 /* table border types */
94 SdlBorderNone = _DtCvBORDER_NONE,
95 SdlBorderFull = _DtCvBORDER_FULL,
96 SdlBorderHorz = _DtCvBORDER_HORZ,
97 SdlBorderVert = _DtCvBORDER_VERT,
98 SdlBorderTop = _DtCvBORDER_TOP,
99 SdlBorderBottom = _DtCvBORDER_BOTTOM,
100 SdlBorderLeft = _DtCvBORDER_LEFT,
101 SdlBorderRight = _DtCvBORDER_RIGHT,
102 /* horizontal orientation */
103 SdlJustifyLeftCorner = _DtCvJUSTIFY_LEFT_CORNER,
104 SdlJustifyLeft = _DtCvJUSTIFY_LEFT,
105 SdlJustifyLeftMargin = _DtCvJUSTIFY_LEFT_MARGIN,
106 SdlJustifyCenter = _DtCvJUSTIFY_CENTER,
107 SdlJustifyRightMargin = _DtCvJUSTIFY_RIGHT_MARGIN,
108 SdlJustifyRight = _DtCvJUSTIFY_RIGHT,
109 SdlJustifyRightCorner = _DtCvJUSTIFY_RIGHT_CORNER,
110 /* extra horizontal text placement */
111 SdlJustifyNum = _DtCvJUSTIFY_NUM,
112 /* extra vertical orientation */
113 SdlJustifyTop = _DtCvJUSTIFY_TOP,
114 SdlJustifyBottom = _DtCvJUSTIFY_BOTTOM,
117 SdlNoWrap = _DtCvWRAP_NONE,
118 SdlWrapJoin = _DtCvWRAP_JOIN,
119 /* SDL specific options */
121 SdlBoolYes , SdlBoolNo ,
124 SdlClassAcro , SdlClassBook , SdlClassEmph , SdlClassJargon ,
125 SdlClassL10n , SdlClassName , SdlClassQuote , SdlClassProduct,
126 SdlClassTermdef , SdlClassTerm , SdlClassMachIn , SdlClassMachOut,
127 SdlClassMachCont, SdlClassPubLit , SdlClassUdefkey ,
130 SdlClassLabel , SdlClassHead , SdlClassCaption ,
131 SdlClassAnnotation, SdlClassPHead, SdlClassUdefhead,
134 SdlClassTable , SdlClassCell , SdlClassList,
135 SdlClassItem , SdlClassText , SdlClassUdeffrmt,
137 /* graphic classes */
138 SdlClassFigure, SdlClassInLine , SdlClassButton ,
139 SdlClassIcon , SdlClassUdefgraph,
142 SdlClassSuper , SdlClassSub ,
145 SdlAppAll , SdlAppHelp , SdlAppTutorial ,
146 SdlAppRef , SdlAppSys ,
149 SdlTimingSync , SdlTimingAsync ,
152 SdlTypeLiteral , SdlTypeLined ,
153 SdlTypeDynamic , SdlTypeUnlinedLiteral,
157 SdlWindowCurrent , SdlWindowNew, SdlWindowPopup,
159 SdlTraversalReturn, SdlTraversalNoReturn,
161 SdlIdVirpage , SdlIdBlock , SdlIdForm , SdlIdPara ,
162 SdlIdCPara , SdlIdHead , SdlIdSubHead , SdlIdAnchor ,
163 SdlIdSwitch , SdlIdSnRef , SdlIdGraphic , SdlIdText ,
164 SdlIdAudio , SdlIdVideo , SdlIdAnimate ,
165 SdlIdCrossDoc, SdlIdManPage , SdlIdTextFile,
166 SdlIdSysCmd , SdlIdScript , SdlIdCallback,
167 /* <script> interpreter types */
168 SdlInterpKsh, SdlInterpTcl, SdlInterpCsh, SdlInterpSh,
169 /* <headstyle> placement types */
170 SdlPlaceParent, SdlPlaceObject,
171 /* <headstyle> stack types */
172 SdlStackHoriz , SdlStackVert
175 typedef enum sdlOption SdlOption;
177 /*****************************************************************************
178 * SDL Element enumerations
179 *****************************************************************************/
199 /* System notations */
211 /* System notations (end) */
226 /* Conditionals (end) */
227 /* The sgml header to the document */
231 /* Generated elements in the document */
241 /* Generated elements (end) */
242 /* Table of styles and sematics. */
248 /* Table of styles and sematics.(end) */
250 /* Support asyncronous blocks */
251 SdlElementBlockAsync,
252 /* Support getting the title of a virpage */
254 /* Support content that has optional markup followed by PCDATA */
258 /******** Private Defines Declarations ********/
259 /* sort of enumerated types */
260 #define ENUM_VALUE 0x01
261 #define NUMBER_VALUE 0x02
262 #define STRING1_VALUE 0x03
263 #define STRING2_VALUE 0x04
265 #define VALUE_MASK 0x07
267 #define VALUE_TYPE_SHIFT 3
268 #define MINOR_MASK (0x07 << VALUE_TYPE_SHIFT)
270 #define SET_ENUM_ATTR(x) ((x) << VALUE_TYPE_SHIFT | ENUM_VALUE)
271 #define SET_NUMBER_ATTR(x) ((x) << VALUE_TYPE_SHIFT | NUMBER_VALUE)
272 #define SET_STRING_ATTR(x) ((x) << VALUE_TYPE_SHIFT | STRING1_VALUE)
273 #define SET_STRING2_ATTR(x) ((x) << VALUE_TYPE_SHIFT | STRING2_VALUE)
275 #define ATTRS_EQUAL(type, x, y) \
276 (((type) != SdlAttrDataTypeEnum) ? \
277 ((x) == (y) ? 1 : 0) : \
278 (((((x) & VALUE_MASK) == ((y) & VALUE_MASK)) && \
279 ((x) & (y) & ~(VALUE_MASK))) ? 1 : 0))
281 #define SDLIsString1(x) ((((x) & VALUE_MASK) == STRING1_VALUE) ? 1 : 0)
282 #define SDLIsString2(x) ((((x) & VALUE_MASK) == STRING2_VALUE) ? 1 : 0)
284 #define SDLIsStrAttrSet(pa, attr) \
285 (((((attr) & VALUE_MASK)==STRING1_VALUE) ? ((pa).str1_values & attr) : \
286 ((((attr) & VALUE_MASK)==STRING2_VALUE) ? \
287 ((pa).str2_values & attr) : 0)) & (~VALUE_MASK))
289 #define SDLIsAttrSet(pa, attr) \
290 (((((attr) & VALUE_MASK)==ENUM_VALUE) ? ((pa).enum_values & attr) : \
291 ((((attr) & VALUE_MASK)==NUMBER_VALUE) ? ((pa).num_values & attr) : \
292 ((((attr) & VALUE_MASK)==STRING1_VALUE) ? ((pa).str1_values & attr) : \
293 ((pa).str2_values & attr)))) & (~VALUE_MASK))
295 #define SDLAttrFlagType(x) ((x) & VALUE_MASK)
297 /************************************************************************
299 ************************************************************************/
301 * this set has the same attribute 'class',
302 * but each has a different set of values.
304 #define SDL_ATTR_CLASS SET_ENUM_ATTR(1 << 3)
305 #define SDL_ATTR_CLASSALL (SDL_ATTR_CLASS)
306 #define SDL_ATTR_CLASSH SET_ENUM_ATTR((1 << 3) | 0x01)
307 #define SDL_ATTR_CLASSF SET_ENUM_ATTR((1 << 3) | 0x02)
308 #define SDL_ATTR_CLASSK SET_ENUM_ATTR((1 << 3) | 0x03)
309 #define SDL_ATTR_CLASSG SET_ENUM_ATTR((1 << 3) | 0x04)
310 #define SDL_ATTR_CLASSFG SET_ENUM_ATTR((1 << 3) | 0x05)
311 #define SDL_ATTR_CLASSP SET_ENUM_ATTR((1 << 3) | 0x06)
314 * this set has the same attribute 'type',
315 * but each has a different set of values.
317 #define SDL_ATTR_TYPE SET_ENUM_ATTR((1 << 4) | 0x00)
318 #define SDL_ATTR_TYPEFRMT SET_ENUM_ATTR((1 << 4) | 0x01)
319 #define SDL_ATTR_TYPEID SET_ENUM_ATTR((1 << 4) | 0x02)
321 #define SDL_ATTR_APP SET_ENUM_ATTR(1 << 5)
322 #define SDL_ATTR_TIMING SET_ENUM_ATTR(1 << 6)
323 #define SDL_ATTR_HDR SET_ENUM_ATTR(1 << 7)
325 /* Format Style Attributes */
326 #define SDL_ATTR_BORDER SET_ENUM_ATTR(1 << 8)
327 #define SDL_ATTR_JUSTIFY SET_ENUM_ATTR((1 << 9) | 0x00)
328 #define SDL_ATTR_JUSTIFY1 SET_ENUM_ATTR((1 << 9) | 0x01)
329 #define SDL_ATTR_JUSTIFY2 SET_ENUM_ATTR((1 << 9) | 0x02)
330 #define SDL_ATTR_VJUST SET_ENUM_ATTR(1 << 10)
332 /* Head Style Attributes */
333 #define SDL_ATTR_ORIENT SET_ENUM_ATTR(1 << 11)
334 #define SDL_ATTR_VORIENT SET_ENUM_ATTR(1 << 12)
335 #define SDL_ATTR_FLOW SET_ENUM_ATTR(1 << 13)
336 #define SDL_ATTR_WINDOW SET_ENUM_ATTR(1 << 14)
337 #define SDL_ATTR_PLACEMENT SET_ENUM_ATTR(1 << 15)
338 #define SDL_ATTR_STACK SET_ENUM_ATTR(1 << 16)
341 #define SDL_ATTR_TRAVERSAL SET_ENUM_ATTR(1 << 17)
343 /* Font Style Attributes */
344 #define SDL_ATTR_STYLE SET_ENUM_ATTR(1 << 18)
345 #define SDL_ATTR_SPACING SET_ENUM_ATTR(1 << 19)
346 #define SDL_ATTR_WEIGHT SET_ENUM_ATTR(1 << 20)
347 #define SDL_ATTR_SLANT SET_ENUM_ATTR(1 << 21)
348 #define SDL_ATTR_SPECIAL SET_ENUM_ATTR(1 << 22)
349 #define SDL_ATTR_INTERP SET_ENUM_ATTR(1 << 23)
351 /************************************************************************
353 ************************************************************************/
355 * LEVEL and RLEVEL share the same data element in the structure
357 #define SDL_ATTR_LEVEL SET_NUMBER_ATTR(1 << 3)
358 #define SDL_ATTR_RLEVEL SET_NUMBER_ATTR(1 << 4)
360 #define SDL_ATTR_LENGTH SET_NUMBER_ATTR(1 << 5)
361 #define SDL_ATTR_NCOLS SET_NUMBER_ATTR(1 << 6)
362 #define SDL_ATTR_COUNT SET_NUMBER_ATTR(1 << 7)
364 /* Font Style Attributes */
365 #define SDL_ATTR_POINTSZ SET_NUMBER_ATTR(1 << 8)
366 #define SDL_ATTR_SETWIDTH SET_NUMBER_ATTR(1 << 9)
368 /* Format Style Attributes */
369 #define SDL_ATTR_FMARGIN SET_NUMBER_ATTR(1 << 10)
370 #define SDL_ATTR_LMARGIN SET_NUMBER_ATTR(1 << 11)
371 #define SDL_ATTR_RMARGIN SET_NUMBER_ATTR(1 << 12)
372 #define SDL_ATTR_TMARGIN SET_NUMBER_ATTR(1 << 13)
373 #define SDL_ATTR_BMARGIN SET_NUMBER_ATTR(1 << 14)
374 #define SDL_ATTR_SRCHWT SET_NUMBER_ATTR(1 << 15)
375 #define SDL_ATTR_OFFSET SET_NUMBER_ATTR(1 << 16)
377 /* Head Style Attributes */
378 #define SDL_ATTR_HEADWDTH SET_NUMBER_ATTR(1 << 17)
380 /************************************************************************
382 ************************************************************************/
383 #define SDL_ATTR_VERSION SET_STRING_ATTR(1 << 0)
384 #define SDL_ATTR_LANGUAGE SET_STRING_ATTR(1 << 1)
385 #define SDL_ATTR_DOCID SET_STRING_ATTR(1 << 2)
388 #define SDL_ATTR_PHRASE SET_STRING_ATTR(1 << 3)
391 #define SDL_ATTR_BUTTON SET_STRING_ATTR(1 << 4)
394 #define SDL_ATTR_DESCRIPT SET_STRING_ATTR(1 << 5)
395 #define SDL_ATTR_LINKINFO SET_STRING_ATTR(1 << 6)
397 /* Font Style Attributes */
398 #define SDL_ATTR_COLOR SET_STRING_ATTR(1 << 7)
399 #define SDL_ATTR_XLFD SET_STRING_ATTR(1 << 8)
400 #define SDL_ATTR_XLFDI SET_STRING_ATTR(1 << 9)
401 #define SDL_ATTR_XLFDB SET_STRING_ATTR(1 << 10)
402 #define SDL_ATTR_XLFDIB SET_STRING_ATTR(1 << 11)
403 #define SDL_ATTR_TYPENAM SET_STRING_ATTR(1 << 12)
404 #define SDL_ATTR_TYPENAMI SET_STRING_ATTR(1 << 13)
405 #define SDL_ATTR_TYPENAMB SET_STRING_ATTR(1 << 14)
406 #define SDL_ATTR_TYPENAMIB SET_STRING_ATTR(1 << 15)
409 * start share of element 'id'.
411 #define SDL_ATTR_ID SET_STRING_ATTR(1 << 16)
412 #define SDL_ATTR_NAME SET_STRING_ATTR(1 << 17)
413 #define SDL_ATTR_RID SET_STRING_ATTR(1 << 18)
414 #define SDL_ATTR_CELLS SET_STRING_ATTR(1 << 19)
415 #define SDL_ATTR_FRST_PG SET_STRING_ATTR(1 << 20)
418 * SSI and RSSI share the same element 'ssi'.
420 #define SDL_ATTR_SSI SET_STRING_ATTR(1 << 21)
421 #define SDL_ATTR_RSSI SET_STRING_ATTR(1 << 22)
423 /************************************************************************
425 ************************************************************************/
427 * Group A, B, C, and D all share the same data space
431 #define SDL_ATTR_CHARSET SET_STRING2_ATTR(1 << 0)
432 #define SDL_ATTR_COLW SET_STRING2_ATTR(1 << 1)
433 #define SDL_ATTR_COLJ SET_STRING2_ATTR(1 << 2)
434 #define SDL_ATTR_TEXT SET_STRING2_ATTR(1 << 3)
435 #define SDL_ATTR_BRANCHES SET_STRING2_ATTR(1 << 4)
436 #define SDL_ATTR_ABBREV SET_STRING2_ATTR(1 << 5)
437 #define SDL_ATTR_ENTER SET_STRING2_ATTR(1 << 6)
438 #define SDL_ATTR_EXIT SET_STRING2_ATTR(1 << 7)
443 #define SDL_ATTR_PRODUCT SET_STRING2_ATTR(1 << 8)
444 #define SDL_ATTR_LICENSE SET_STRING2_ATTR(1 << 9)
445 #define SDL_ATTR_TIMESTAMP SET_STRING2_ATTR(1 << 10)
446 #define SDL_ATTR_PRODPN SET_STRING2_ATTR(1 << 11)
447 #define SDL_ATTR_PRODVER SET_STRING2_ATTR(1 << 12)
448 #define SDL_ATTR_AUTHOR SET_STRING2_ATTR(1 << 13)
449 #define SDL_ATTR_SDLDTD SET_STRING2_ATTR(1 << 14)
450 #define SDL_ATTR_SRCDTD SET_STRING2_ATTR(1 << 15)
451 #define SDL_ATTR_PUBID SET_STRING2_ATTR(1 << 16)
455 * the group uses the SDL_ATTR_PRODUCT & SDL_ATTR_LICENSE
457 #define SDL_ATTR_FORMAT SET_STRING2_ATTR(1 << 17)
458 #define SDL_ATTR_METHOD SET_STRING2_ATTR(1 << 18)
459 #define SDL_ATTR_XID SET_STRING2_ATTR(1 << 19)
460 #define SDL_ATTR_COMMAND SET_STRING2_ATTR(1 << 20)
461 #define SDL_ATTR_DATA SET_STRING2_ATTR(1 << 21)
467 #define SDL_ATTR_MAIN SET_STRING2_ATTR(1 << 22)
468 #define SDL_ATTR_LOCS SET_STRING2_ATTR(1 << 23)
469 #define SDL_ATTR_SYNS SET_STRING2_ATTR(1 << 24)
470 #define SDL_ATTR_SORT SET_STRING2_ATTR(1 << 25)
472 /* Attribute Value defines */
477 SdlAttrValueRequired,
478 SdlAttrValueImpliedDef
482 #define SDL_ELEMENT CE_ELEMENT
483 #define SDL_STRING CE_STRING
484 #define SDL_GRAPHIC CE_GRAPHIC
486 #define SDL_ELEMENT_SHIFT CE_SHIFT_PAST_CHAR_SIZE
487 #define SDL_ELEMENT_MASK (0xfffff << SDL_ELEMENT_SHIFT)
490 * this is the maximum number of bits in an unsigned long value.
491 * This is for the inclusion and exclustion masks.
493 /* On Hewlett-Packard Machines! */
494 #define SDL_MASK_SIZE 32
495 #define SDL_MASK_LEN 2
497 /******** Private Macro Declarations ********/
499 #define SDLSetTypeOfSegment(x,y) (((x) & ~(CE_PRIMARY_MASK)) | (y))
500 #define SDLGetTypeOfSegent(x) _CEGetPrimaryType(x)
502 #define SDLSetTypeToElement(x) SDLSetTypeOfSegment((x), SDL_ELEMENT)
503 #define SDLSetTypeToString(x) SDLSetTypeOfSegment((x), SDL_STRING)
504 #define SDLSetTypeToGraphic(x) SDLSetTypeOfSegment((x), SDL_GRAPHIC)
505 #define SDLSetTypeToSpecial(x) SDLSetTypeOfSegment((x), CE_SPECIAL)
507 #ifndef SDLAttrOffset
508 #define SDLAttrOffset(p_type, field) \
509 (((char *)(&(((p_type)NULL)->field)))-((char *)NULL))
512 #define SDLSearchMask(mask, value) \
513 ((mask[(value)/SDL_MASK_SIZE] & \
514 (((unsigned)1L) << ((value) % SDL_MASK_SIZE))) ? True : False)
516 #define SDLMaskValue1(value) \
517 (((value) < SDL_MASK_SIZE ? ((unsigned)1L) : 0) \
518 << ((value) % SDL_MASK_SIZE))
520 #define SDLMaskValue2(value) \
521 (((value) < SDL_MASK_SIZE ? 0: ((unsigned)1L)) \
522 << ((value) % SDL_MASK_SIZE))
524 #define SDLClearAllBits { 0, 0 }
526 #define SDLSetAllBits \
527 { ~(SDLMaskValue1(SdlElementNone)), ~(SDLMaskValue2(SdlElementNone)) }
529 #define SDLCheckMask(mask) \
530 (((mask)[0] != 0 || (mask)[1] != 0) ? 1 : 0)
532 #define SDLStripFromMask(mask, value) \
533 (mask)[(value)/SDL_MASK_SIZE] = \
534 ((mask)[(value)/SDL_MASK_SIZE] & \
535 (~(((unsigned)1L) << ((value) % SDL_MASK_SIZE))))
537 #define SDLInitMask(value) \
539 SDLMaskValue1(value), \
540 SDLMaskValue2(value), \
543 #define SDLInitMaskTwo(value1, value2) \
545 SDLMaskValue1(value1) | SDLMaskValue1(value2), \
546 SDLMaskValue2(value1) | SDLMaskValue2(value2), \
548 #define SDLInitMaskThree(value1, value2, value3) \
550 SDLMaskValue1(value1) | SDLMaskValue1(value2) | SDLMaskValue1(value3), \
551 SDLMaskValue2(value1) | SDLMaskValue2(value2) | SDLMaskValue2(value3), \
553 #define SDLInitMaskFour(value1, value2, value3, value4) \
555 SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
556 SDLMaskValue1(value3) | SDLMaskValue1(value4), \
557 SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
558 SDLMaskValue2(value3) | SDLMaskValue2(value4), \
560 #define SDLInitMaskFive(value1, value2, value3, value4, value5) \
562 SDLMaskValue1(value1) | SDLMaskValue1(value2) | SDLMaskValue1(value3) | \
563 SDLMaskValue1(value4) | SDLMaskValue1(value5),\
564 SDLMaskValue2(value1) | SDLMaskValue2(value2) | SDLMaskValue2(value3) | \
565 SDLMaskValue2(value4) | SDLMaskValue2(value5),\
567 #define SDLInitMaskSix(value1, value2, value3, value4, value5, value6) \
569 SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
570 SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
571 SDLMaskValue1(value5) | SDLMaskValue1(value6), \
572 SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
573 SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
574 SDLMaskValue2(value5) | SDLMaskValue2(value6), \
576 #define SDLInitMaskSeven(value1, value2, value3,\
577 value4, value5, value6, value7) \
579 SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
580 SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
581 SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
582 SDLMaskValue1(value7), \
583 SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
584 SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
585 SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
586 SDLMaskValue2(value7), \
589 #define SDLInitMaskEight(value1, value2, value3, value4, value5, \
590 value6, value7, value8) \
592 SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
593 SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
594 SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
595 SDLMaskValue1(value7) | SDLMaskValue1(value8), \
596 SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
597 SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
598 SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
599 SDLMaskValue2(value7) | SDLMaskValue2(value8), \
602 #define SDLInitMaskNine(value1, value2, value3, value4, value5, \
603 value6, value7, value8, value9) \
605 SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
606 SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
607 SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
608 SDLMaskValue1(value7) | SDLMaskValue1(value8) | \
609 SDLMaskValue1(value9), \
610 SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
611 SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
612 SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
613 SDLMaskValue2(value7) | SDLMaskValue2(value8) | \
614 SDLMaskValue2(value9), \
617 #define SDLInitMaskEleven(value1, value2, value3, value4, value5, \
618 value6, value7, value8, value9, value10, \
621 SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
622 SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
623 SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
624 SDLMaskValue1(value7) | SDLMaskValue1(value8) | \
625 SDLMaskValue1(value9) | SDLMaskValue1(value10) | \
626 SDLMaskValue1(value11), \
627 SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
628 SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
629 SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
630 SDLMaskValue2(value7) | SDLMaskValue2(value8) | \
631 SDLMaskValue2(value9) | SDLMaskValue2(value10) | \
632 SDLMaskValue2(value11), \
635 #define SDLInitMaskTwelve(value1, value2, value3, value4, value5, \
636 value6, value7, value8, value9, value10, \
639 SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
640 SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
641 SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
642 SDLMaskValue1(value7) | SDLMaskValue1(value8) | \
643 SDLMaskValue1(value9) | SDLMaskValue1(value10) | \
644 SDLMaskValue1(value11) | SDLMaskValue1(value12), \
645 SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
646 SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
647 SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
648 SDLMaskValue2(value7) | SDLMaskValue2(value8) | \
649 SDLMaskValue2(value9) | SDLMaskValue2(value10) | \
650 SDLMaskValue2(value11) | SDLMaskValue2(value12), \
653 #define SDLInitMaskThirteen(value1, value2, value3, value4, value5, \
654 value6 , value7 , value8 , value9, value10, \
655 value11, value12, value13) \
657 SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
658 SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
659 SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
660 SDLMaskValue1(value7) | SDLMaskValue1(value8) | \
661 SDLMaskValue1(value9) | SDLMaskValue1(value10) | \
662 SDLMaskValue1(value11) | SDLMaskValue1(value12) | \
663 SDLMaskValue1(value13), \
664 SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
665 SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
666 SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
667 SDLMaskValue2(value7) | SDLMaskValue2(value8) | \
668 SDLMaskValue2(value9) | SDLMaskValue2(value10) | \
669 SDLMaskValue2(value11) | SDLMaskValue2(value12) | \
670 SDLMaskValue2(value13), \
673 #define SDLInitMaskFourteen(value1, value2, value3, value4, value5, \
674 value6 , value7 , value8 , value9, value10, \
675 value11, value12, value13, value14) \
677 SDLMaskValue1(value1) | SDLMaskValue1(value2) | \
678 SDLMaskValue1(value3) | SDLMaskValue1(value4) | \
679 SDLMaskValue1(value5) | SDLMaskValue1(value6) | \
680 SDLMaskValue1(value7) | SDLMaskValue1(value8) | \
681 SDLMaskValue1(value9) | SDLMaskValue1(value10) | \
682 SDLMaskValue1(value11) | SDLMaskValue1(value12) | \
683 SDLMaskValue1(value13) | SDLMaskValue1(value14), \
684 SDLMaskValue2(value1) | SDLMaskValue2(value2) | \
685 SDLMaskValue2(value3) | SDLMaskValue2(value4) | \
686 SDLMaskValue2(value5) | SDLMaskValue2(value6) | \
687 SDLMaskValue2(value7) | SDLMaskValue2(value8) | \
688 SDLMaskValue2(value9) | SDLMaskValue2(value10) | \
689 SDLMaskValue2(value11) | SDLMaskValue2(value12) | \
690 SDLMaskValue2(value13) | SDLMaskValue1(value14), \
693 /******** Private Typedef Declarations ********/
695 typedef char* SDLCdata;
697 typedef int SDLNumber;
698 typedef unsigned long SDLMask; /* must be a 32 bit value */
700 typedef _DtHelpFontHints* _DtHelpFontHintPtr;
702 /******** Private Structures Declarations ********/
706 SdlOption option_value;
710 unsigned long attr_value;
711 const OptionList *options;
712 } SDLAttributeOptions;
716 _DtHelpFontValue option_value;
720 unsigned long attr_value;
721 const FontSpecOption *options;
725 SDLMask mask[SDL_MASK_LEN];
730 SdlStructTypeBad = -1,
740 enum SdlAttrDataType data_type;
741 enum SdlStructType struct_type;
748 enum SdlAttrValue sdl_value;
749 const char *def_string;
750 } SDLElementAttrList;
763 typedef enum _sdlElToGeneral SdlToGeneral;
765 typedef struct _sdlElementInfo {
766 const char *element_str; /* the element string */
767 const char *element_end_str; /* the ending string */
768 int str_sig_chars; /* # of significant chars */
769 int end_sig_chars; /* # of significant chars */
770 enum SdlElement sdl_element; /* The element's value */
771 SDLMask exceptions[SDL_MASK_LEN];
772 /* what elements cannot
773 appear in this element */
774 const SDLElementAttrList *attrib_list; /* attribute list */
775 const SDLContent *content; /* The element's content */
776 int elim_flag; /* If this element's
777 segment list is null,
778 eleminate the element */
779 int cdata_flag; /* If no attributes, is
780 there cdata before the
782 int formatting; /* does this cause a
784 int new_fonts; /* does this cause new
785 fonts to be pulled in? */
786 SdlToGeneral sdl_to_gen; /* What kind of general
787 type is this element? */
790 /******** Private Macros Declarations ********/
792 #ifndef _SdlIsTossStyle
793 #define _SdlIsTossStyle(x) (SdlElementKeyStyle == (x) || \
794 SdlElementHeadStyle == (x) || \
795 SdlElementFormStyle == (x) || \
796 SdlElementFrmtStyle == (x) || \
797 SdlElementGrphStyle == (x))
800 /******** Private Function Declarations ********/
803 } /* Close scope of 'extern "C"' declaration which encloses file. */
806 #endif /* _DtHelpSDLI_h */
807 /* DON'T ADD ANYTHING AFTER THIS #endif */