home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 5 Edit
/
05-Edit.zip
/
ppwizard.zip
/
ol_doc.dh
< prev
next >
Wrap
Text File
|
2000-02-19
|
87KB
|
1,308 lines
;----------------------------------------------------------------------------
; MODULE NAME: OL_DOC.DH
;
; $Author: Dennis_Bareis $
; $Revision: 1.22 $
; $Date: 19 Feb 2000 15:06:10 $
; $Logfile: E:/DB/PVCS.IT/OS2/PPWIZARD/OL_DOC.DHV $
;
; DOCUMENTED: In PPWIZARD manual.
; ~~~~~~~~~~~~~~~~~~~
;
; DESCRIPTION: This is a header file for handling generic input files
; and generating INF or HTML files.
;
; The user can #undef and re-#define any of the definitions
; created here to get different backgrounds etc.
;
; The user can of course define their own macros and should
; also definately have a look at the #AsIs command and its
; examples. Unless you wish to disable IPF generation etc
; you should code your macros very carefully to work with
; all document types.
;
;
; INPUT: You must have set up the "DocType" variable to be "HTML"
; or "IPF" prior to including this header. It is
; recommended that the "/define" switch be used to keep
; your source input independant from the generated type.
;
;
; NOTE: Both the IPF and HTML version of PPWIZARD's documentation
; use this header to generate the manuals.
;
; When I get time I will document this header file and the
; macros etc. In the mean time please see the example in
; manual, or email me for help. I could send you the
; source for PPWIZARD's manual.
;----------------------------------------------------------------------------
;#define OL_DOC_TRY_JAVA_NAVIGATION ;;Not happy with current state of java applet/JVMs
;--- Define the version number of this header file --------------------------
#define VERSION_OL_DOC_OH 00.042
#require 99.352
;--- This Header only support HTML & IPF ------------------------------------
#if '<$DocType>' <> 'HTML' & '<$DocType>' <> 'IPF'
#error 'OL_DOC.OH: The document type "<$DocType>" is unsupported in version <$VERSION_OL_DOC_OH>'
#endif
;--- Warnings generated by this header file ---------------------------------
#define WARNINGID_INVALID_HEADING_REF 'HIDR'
#define WARNINGID_IPF_ONLY 'IPFO'
#define WARNING_NOW_IPF_ONLY \
#warning <$WARNINGID_IPF_ONLY> "A tag that is currently only supported by IPF was used"
;--- Define some aliases for characters we need to be careful with ----------
#define PlaySafe ;;Sometimes need to be careful about what starts a line (example read in "#if" - we don't want to execute!)
#if ['<$DocType>' = 'HTML']
;--- HTML ------------------------------------------------------------
#RexxVar "LT" =x= "<" ;;'<' Char
#RexxVar "GT" =x= ">" ;;'>' Char
#RexxVar "AMP" =x= "&" ;;'&' Char
#RexxVar "COL" =x= ":" ;;':' Char
#elseif
;--- IPF -------------------------------------------------------------
#RexxVar "LT" =x= "<" ;;'<' Char
#RexxVar "GT" =x= ">" ;;'>' Char
#RexxVar "AMP" =x= "&." ;;'&' Char
#RexxVar "COL" =x= "&colon." ;;':' Char
#endif
#RexxVar "HASH" =x= "#" ;;'#' Char
#RexxVar "SEMICOLON" =x= ";" ;;';' Char
;--- Set up AsIs Mode -------------------------------------------------------
#AutoTagState +
;--- Define characters that should be automatically modified -------------
#AutoTag "<" "<?xLT>"
#AutoTag ">" "<?xGT>"
#AutoTag "&" "<?xAMP>"
#AutoTag ":" "<?xCOL>"
#AutoTag "#" "<?xHASH>"
;--- "PROGRAM" ASIS mode (save as "ASIS_OL_DOC") -------------------------
#AsIs SETUP ASIS_OL_DOC
#AutoTagState -
;--- Generating IPF or HTML (or whatever)? ----------------------------------
#if ['<$DocType>' = 'HTML']
;--- Determine what extension to use for generated files -------------
#define HtmlExtension htm ;;For now hardcode
;--- Generating HTML -------------------------------------------------
#ifndef OL_DOC_HTML_BODY
#define OL_DOC_HTML_BODY <BODY> ;;User did not provide alternative BODY tag
#endif
#ifndef OL_DOC_HTML_GENERATOR_TAGS ;;Empty to not generate anything!
#define OL_DOC_HTML_GENERATOR_TAGS <META NAME="GENERATOR" CONTENT="FREE PPWIZARD v<?Version> using 'OL_DOC.DH' v<$VERSION_OL_DOC_OH> (<?PpwizardHomePage>)"><?NewLine>
#endif
#ifndef OL_DOC_HTML_META_TAGS
#define OL_DOC_HTML_META_TAGS
#endif
#define HeadingCodes \
<HTML><HEAD> %\
<TITLE>{$Text}</TITLE> %\
#ifndef OL_DOC_HTML_ALLOW_ROBOTS -\
<META name="robots" content="NOINDEX"> %\
#endif -\
<$OL_DOC_HTML_GENERATOR_TAGS> %\
<$OL_DOC_HTML_META_TAGS TITLE={$Text $$AQ}> %\
</HEAD> %\
<$OL_DOC_HTML_BODY>
#define TrailingCodes </BODY></HTML>
#define Colon :
#define Amp &
#define LT <
#define GT >
;;; #define NoBreakingBlank
#define NoBreakingBlank ;;Better supported (so I hear!)
;--- Whitespace Macros -----------------------------------------------
#define P <?NewLine><?NewLine><P>
#define BR <?NewLine><BR>
;--- Different text colors and effects -------------------------------
#define Red <FONT COLOR=RED>{$Text}</FONT>
#define DarkGreen <FONT COLOR=GREEN>{$Text}</FONT>
#define Magenta <FONT COLOR=MAGENTA>{$Text}</FONT>
#define Bold <B>{$Text}</B>
#define Italic <I>{$Text}</I>
#define BoldUnderline <B><U>{$Text}</U></B>
#define BoldItalic <$Bold Text=<$Italic Text={$Text}>>
;--- Work out what extension to use (.htm, .HTM, .html etc) ----------
#evaluate "" ^parse value _filespec('name', '<?OutputFile>') with .'.'HtmlExtn^
#elseif
;---------------------------------------------------------------------
;--- Generating IPF -------------------------------------------------
;---------------------------------------------------------------------
#define HeadingCodes :userdoc.<?NewLine>:Title.{$Text}<?NewLine>:docprof toc=123456.
#define TrailingCodes :euserdoc.
#define Colon &colon.
#define Amp &.
#define NoBreakingBlank &rbl.
#define LT <?xLT>
#define GT <?xGT>
;--- What characters are invalid in IPF IDs --------------------------
#RexxVar InvalidIdChars = " `~!@%^&-+=',.\|" ;;Must include SPACE!
;--- Whitespace Macros -----------------------------------------------
#define P :p.
#define BR .BR<?NewLine> ;;Must be used at start of line, text immediately follows.
;--- Different text colors and effects -------------------------------
#define Red :hp8.{$Text}:ehp8.
#define DarkGreen :color fc=darkgreen.{$Text}:color fc=default.
#define Magenta :hp9.{$Text}:ehp9.
#define Bold :hp2.{$Text}:ehp2.
#define Italic :hp1.{$Text}:ehp1.
#define BoldUnderline :hp7.{$Text}:ehp7.
#define BoldItalic :hp3.{$Text}:ehp3.
#endif
#define Para <$P> ;;Set up alias which user may prefer to use
;----------------------------------------------------------------------------
;--- Generates a valid ID for a heading section -----------------------------
;----------------------------------------------------------------------------
#if ['<$DocType>' = 'HTML']
;--- HTML ------------------------------------------------------------
#evaluate '' ^call GetIdPrepare 'OL_DOC'^ ;;Prepare for generating headings
#ifdef OL_DOC_IDS_ARE_CASE_SENSITIVE
;--- User cares about case of generated HTML ---------------------
#ifndef OL_DOC_HTML_8_3_NAMES
;--- Long filenames for HTML OK ----------------------------
#define RexxGenerateValidId \
RxValidId = EnsureFileHasCorrectCase( GetId('OL_DOC', '2_', ExpandXCodes('{$Id $$SQx2}')) )
#elseif
;--- Want 8.3 filenames for HTML ---------------------------
#define RexxGenerateValidId \
RxValidId = EnsureFileHasCorrectCase( GetId('OL_DOC', 'MAXCHARS', ExpandXCodes('{$Id $$SQx2}')) )
#endif
#else
;--- User wants IDs to match no matter what the case -------------
#ifndef OL_DOC_HTML_8_3_NAMES
;--- Long filenames for HTML OK ----------------------------
#define RexxGenerateValidId \
RxValidId = EnsureFileHasCorrectCase( GetId('OL_DOC', '2_', translate(ExpandXCodes('{$Id $$SQx2}'))) )
#elseif
;--- Want 8.3 filenames for HTML ---------------------------
#define RexxGenerateValidId \
RxValidId = EnsureFileHasCorrectCase( GetId('OL_DOC', 'MAXCHARS', translate(ExpandXCodes('{$Id $$SQx2}'))) )
#endif
#endif
#elseif
;--- IPF ID's don't need to look pretty as no one sees them ----------
#define RexxGenerateValidId \
RxValidId = translate(translate(ExpandXCodes('{$Id $$SQx2}')),, InvalidIdChars, '_')
#endif
;----------------------------------------------------------------------------
;--- The following provide some validations of headings against references --
;----------------------------------------------------------------------------
#DefineRexx RexxRememberHeading ;;Remember heading ID (should only be called once for each ID!)
HeadIdFlag = '!RxHeadId_' || c2x(RxValidId);
if symbol(HeadIdFlag) = 'VAR' then
Error('Duplicated Heading ID, first used at ' || _valueG(HeadIdFlag))
call _valueS HeadIdFlag, CurrentSourceLocation();
#DefineRexx
#DefineRexx HeadingIdReference ;;Someone wants to link to a heading, remember this
RxHeadingRefCnt = RxHeadingRefCnt + 1;
RxHeadingRefID.RxHeadingRefCnt = RxValidId;
RxHeadingRefLOC.RxHeadingRefCnt = CurrentSourceLocation();
#DefineRexx
#DefineRexx RexxValidateHeadingReferences ;;At EOF we need to check references against headings
RefErrCnt = 0;
do HeadIndex = 1 to RxHeadingRefCnt
HeadIdFlag = '!RxHeadId_' || c2x(RxHeadingRefID.HeadIndex);
if symbol(HeadIdFlag) <> 'VAR' then
do
RefErrCnt = RefErrCnt + 1;
#option PUSH AllowPack=NO
call Warning <$WARNINGID_INVALID_HEADING_REF>, 'Unknown ID of "' || RxHeadingRefID.HeadIndex || '" used at ' || RxHeadingRefLOC.HeadIndex;
#option POP
end;
end;
if RefErrCnt <> 0 then
call Summary 'Inv References', RefErrCnt || ' (missing headings?)';
#DefineRexx
#OnExit <$ValidateHeadingReferences>
#define ValidateHeadingReferences \
#evaluate ^^ ^<$RexxValidateHeadingReferences>^
;----------------------------------------------------------------------------
;--- MAIN DOCUMENT Start/End Macros -----------------------------------------
;----------------------------------------------------------------------------
#evaluate '' ^parse value _filespec("name", "<?OutputFile>") with ContentsId'.'.^
#if ['<$DocType>' = 'HTML']
#evaluate '' ^RxValidId=ContentsId; <$RexxRememberHeading>^ ;;Remember contents ID
#endif
#RexxVar RexxHeadingIdLastUsed = '' ;;Initialize values
#RexxVar HtmlNextId = ''
#RexxVar HtmlNextIdText = ''
#RexxVar HtmlPrevId1 = ContentsId
#RexxVar HtmlPrevIdText1 = 'Contents'
#RexxVar HtmlPrevId2 = ''
#RexxVar HtmlPrevIdText2 = ''
#RexxVar HtmlPagesGenerated = 1 ;;Count contents page!
#ifndef OL_DOC_HTML_CONTENTS_TITLE
#define OL_DOC_HTML_CONTENTS_TITLE Contents
#endif
#define DocumentStart \
#ifdef _DocumentStart_ -\
#error "OL_DOC: Only allowed to start document once!" -\
#endif -\
#define _DocumentStart_ -\
#Rexxvar RxHeadingLevel = 1 -\
#Rexxvar RxHeadingRefCnt = 0 -\
#if ['<$DocType>' = 'IPF'] -\
<$HeadingCodes TEXT={$Text='No Title'}><?NewLine> -\
#endif
#define DocumentEnd \
#if ['<$DocType>' = 'HTML'] -\
#RexxVar RexxHeadingIdLastUsed = '' ;;Not in heading -\
#if [<?OutputLevel> <> 1] -\
#RexxVar HtmlNextId = '' -\
#RexxVar HtmlNextIdText = '' -\
<$_HeadingEndHtml> ;;Finish off previous heading -\
#endif -\
<$_GenerateContentsHtml> ;;Output contents -\
#endif -\
#if ['<$DocType>' = 'IPF'] -\
<$TrailingCodes> ;;Output trailing HTML codes -\
#endif -\
#eof {$EndIf=""} ;;Thats All Folks
;----------------------------------------------------------------------------
;--- HEADINGS ---------------------------------------------------------------
;----------------------------------------------------------------------------
#if ['<$DocType>' = 'HTML']
;--- HTML version ----------------------------------------------------
#OnExit <$DisplayPagesInSummary>
#define DisplayPagesInSummary \
#evaluate ^^ ^call Summary 'Generated', HtmlPagesGenerated || ' HTML Pages'^
#define Target <A NAME="{$NAME}">
#define Heading \
;--- Count pages --------------------------------------- -\
#RexxVar HtmlPagesGenerated + 1 -\
-\
;--- Generate ID save heading info --------------------- -\
#evaluate ^^ ^<$RexxGenerateValidId ID={$ID={$Text}}>;<$RexxRememberHeading>^ -\
#RexxVar RexxHeadingLastUsed = "{$Text}" -\
#RexxVar RexxHeadingIdLastUsed = RxValidId -\
-\
;--- Previous heading complete ------------------------- -\
#if [<?OutputLevel> <> 1] -\
#RexxVar HtmlNextId = RxValidId -\
#RexxVar HtmlNextIdText = "{$Text}" -\
<$_HeadingEndHtml> -\
#endif -\
-\
;--- Wrap PREV heading IDs ----------------------------- -\
#RexxVar HtmlPrevId2 = HtmlPrevId1 -\
#RexxVar HtmlPrevId1 = RexxHeadingIdLastUsed -\
#RexxVar HtmlPrevIdText2 = HtmlPrevIdText1 -\
#RexxVar HtmlPrevIdText1 = RexxHeadingLastUsed -\
-\
;--- Update Contents List ------------------------------ -\
-\
;--- Start New HTML file for new section --------------- -\
#output "<??RxValidId>" -\
<$HeadingCodes TEXT={$Text}> -\
-\
;--- Label the top of the file ------------------------- -\
<A NAME="TOP"></A> -\
-\
;--- Generate start HTML buttons ----------------------- -\
#OutputHold -\
<$_GenerateStartOfHtmlButtons> -\
-\
;--- Generate TITLE unless user said not to ------------ -\
#ifndef OL_DOC_HEADINGS_DONT_GENERATE_TITLE -\
<CENTER><H1>{$Text}</H1></CENTER> -\
#endif -\
<$_AddToContents ID=■{$ID={$Text}}■ TEXT={$Text}>
#define _HeadingEndHtml \
#if [<?OutputLevel> <> 1] -\
<A NAME="BOTTOM"></A> -\
#OutputHold "FixUpNextPageLink" -\
<$_GenerateEndOfHtmlButtons> -\
#endif -\
<$TrailingCodes> ;;Output trailing HTML codes -\
#if [<?OutputLevel> <> 1] -\
#output ;;Close off generated HTML file -\
#endif
#define _GenerateStartOfHtmlButtons \
<CENTER> -\
#ifdef OL_DOC_HTML_NOCONTENTS_HEADER -\
<$OL_DOC_HTML_NOCONTENTS_HEADER> -\
#endif -\
<TABLE BORDER=3 CELLSPACING=3 CELLPADDING=3> -\
<TR> -\
<TD><$OL_DOC_HTML_BOTTOM> -\
<TD><$OL_DOC_HTML_CONTENTS> -\
<$OL_DOC_HTML_SEARCH> -\
#if [HtmlPrevId2 <> ''] -\
<TD><$OL_DOC_HTML_PREV Page="<??HtmlPrevId2>" TITLE="<??HtmlPrevIdText2>"> -\
#endif -\
<$OL_DOC_HTML_HOME> -\
<TD><$OL_DOC_HTML_NEXT Page="[#Page]" TITLE="[#Title]"> -\
</TR> -\
</TABLE></CENTER> -\
<HR>
#define _GenerateEndOfHtmlButtons \
<P><HR> -\
<CENTER> -\
<TABLE BORDER=3 CELLSPACING=3 CELLPADDING=3> -\
<TR> -\
<TD><$OL_DOC_HTML_TOP> -\
<TD><$OL_DOC_HTML_CONTENTS> -\
<$OL_DOC_HTML_SEARCH> -\
#if [HtmlPrevId2 <> ''] -\
<TD><$OL_DOC_HTML_PREV Page="<??HtmlPrevId2>" TITLE="<??HtmlPrevIdText2>"> -\
#endif -\
#if [HtmlNextId <> ''] -\
<TD><$OL_DOC_HTML_NEXT Page="<??HtmlNextId>" TITLE="<??HtmlNextIdText>"> -\
#endif -\
<$OL_DOC_HTML_HOME> -\
</TR></TABLE> -\
</CENTER> -\
#ifdef OL_DOC_HTML_FOOTER -\
<$OL_DOC_HTML_FOOTER CONTENTS='N'> -\
#endif
#DefineRexx "FixUpNextPageLink"
;--- We now know next page, fix up links at top of page ---
Nid = HtmlNextId;
NTit = HtmlNextIdText;
if Nid = '' then
do
;--- Bit of a cludge (really should get rid of link) --
Nid = ContentsId;
NTit = '[CONTENTS]';
end;
HeldOutput = ReplaceString(HeldOutput, "[#Page]", Nid);
HeldOutput = ReplaceString(HeldOutput, "[#Title]", NTit);
#DefineRexx
#elseif
;--- IPF version -----------------------------------------------------
#define Target ;;No support for targets!
#define Heading \
;--- Generate ID save heading info --------------------- -\
#evaluate ^^ ^<$RexxGenerateValidId ID={$ID={$Text}}>;<$RexxRememberHeading>^ -\
#RexxVar RexxHeadingLastUsed = "{$Text}" -\
#RexxVar RexxHeadingIdLastUsed = RxValidId -\
-\
;--- Generate the heading ------------------------------ -\
:h<??RxHeadingLevel> id=<??RxValidId>.{$Text} -\
-\
;--- Generate TITLE unless user said not to ------------ -\
#ifndef OL_DOC_HEADINGS_DONT_GENERATE_TITLE -\
<$Title TEXT={$Text}> -\
#endif
#endif
#define HeadingAt \
#Rexxvar RxHeadingLevel = "{$Level}" \
<$ValidateRxHeadingLevel>
#define HeadingUp \
#Rexxvar RxHeadingLevel - 1 \
<$ValidateRxHeadingLevel>
#define HeadingDown \
#Rexxvar RxHeadingLevel + 1 \
<$ValidateRxHeadingLevel>
#define HeadingSave \
#Rexxvar RxHLvl_{$NAME=""} = RxHeadingLevel
#define HeadingRestore \
#Rexxvar RxHeadingLevel = RxHLvl_{$NAME=""}
#define ValidateRxHeadingLevel \
;--- Validate the heading level -------------------------- \
#if [RxHeadingLevel < 1] \
#Error "Heading level of <??RxHeadingLevel> is invalid (must be 1-6)." \
#endif \
#if [RxHeadingLevel > 6] \
#Error "Heading level of <??RxHeadingLevel> is invalid (must be 1-6)." \
#endif
;----------------------------------------------------------------------------
;--- LINKS ------------------------------------------------------------------
;----------------------------------------------------------------------------
#if ['<$DocType>' = 'HTML']
;--- HTML version ----------------------------------------------------
#define LinkTo \
#evaluate ^^ ^<$RexxGenerateValidId ID={$ID={$Text}}>;<$HeadingIdReference>^ -\
#if ['{$Target=''}' = ''] -\
;--- No TARGET ----------------- -\
#if [RexxHeadingIdLastUsed = RxValidId] -\
<$PlaySafe>{$Text} -\
#elseif -\
<A HREF="<??RxValidId>.<$HtmlExtension>">{$Text}</A> -\
#endif -\
#elseif -\
#if [RexxHeadingIdLastUsed = RxValidId] -\
<A HREF="#{$Target}">{$Text}</A> -\
#elseif -\
<A HREF="<??RxValidId>.<$HtmlExtension>#{$Target}">{$Text}</A> -\
#endif -\
#endif
#elseif
;--- IPF version -----------------------------------------------------
#define LinkTo \
#evaluate ^^ ^<$RexxGenerateValidId ID={$ID={$Text}}>;<$HeadingIdReference>^ -\
#if [RexxHeadingIdLastUsed = RxValidId] -\
<$PlaySafe>{$Text} -\
#elseif -\
:link reftype=hd refid=<??RxValidId>.{$Text}:elink. -\
#endif
#endif
#define LinkToRoutine <$LinkTo Id='{$Text}' Text='{$Text}()'>
;----------------------------------------------------------------------------
;--- INDEX ------------------------------------------------------------------
;----------------------------------------------------------------------------
#if ['<$DocType>' = 'IPF']
;--- IPF -------------------------------------------------------------
#define Index1 \
#evaluate ^^ ^<$RexxGenerateValidId ID={$ID={$Text=¡<??RexxHeadingLastUsed $$Sqx2>¡}}>^ -\
#RexxVar RexxLastIndex1Id = RxValidId -\
:i1 id=<??RxValidId>.{$Text=¡<??RexxHeadingLastUsed>¡}
#define Index2 \
#evaluate ^^ ^<$RexxGenerateValidId ID={$Index1=<??RexxLastIndex1Id>}>^ -\
:i2 refid=<??RxValidId>.{$Text=¡<??RexxHeadingLastUsed>¡}
#endif
#if ['<$DocType>' = 'HTML']
;--- HTML ------------------------------------------------------------
#define Index1 <$WARNING_NOW_IPF_ONLY>
#define Index2 <$WARNING_NOW_IPF_ONLY>
#endif
;----------------------------------------------------------------------------
;--- TITLE (Big Text in Highlight Color) ------------------------------------
;----------------------------------------------------------------------------
#if ['<$DocType>' = 'IPF']
;--- IPF -------------------------------------------------------------
#define Title \
:p.:color fc={$Color="neutral"}. -\
:font facename={$Font="Helv size=24x24."}:hp7. -\
{$Text=¡<??RexxHeadingLastUsed>¡} -\
:color fc=default. -\
:font facename=default size=0x0.:ehp7.
#endif
#if ['<$DocType>' = 'HTML']
;--- HTML ------------------------------------------------------------
#define Title \
<H1><CENTER>{$Text=¡<??RexxHeadingLastUsed>¡}</CENTER></H1>
#endif
;----------------------------------------------------------------------------
;--- We must assign all images used in doco an alias (faster) ---------------
;----------------------------------------------------------------------------
#ifndef OL_DOC_IMAGE_IPF_LOCAL
#define OL_DOC_IMAGE_IPF_LOCAL ;;Location at "IPFC.EXE" time! Could also add dir to IPFC search path
#endif
#ifndef OL_DOC_IMAGE_HTML_LOCAL
#define OL_DOC_IMAGE_HTML_LOCAL .\ ;;Location at "PPWIZARD" time!
#endif
#ifndef OL_DOC_IMAGE_HTML_REMOTE
#define OL_DOC_IMAGE_HTML_REMOTE ;;Location at HTML "runtime"!
#endif
#DefineRexx "_SaveTaggedImageUnderAlias"
;--- If we know where the file is add as dependancy -------------
#if ['<$DocType>' = 'IPF']
;--- IPF List ---------------------------------------------
Locfile = '<$OL_DOC_IMAGE_IPF_LOCAL>{$Image}.bmp';
#elseif
;--- HTML List --------------------------------------------
Locfile = '<$OL_DOC_IMAGE_HTML_LOCAL>{$Image}.{$Type='gif'}';
#endif
LocfileFull = stream(Locfile, 'c', 'query exists');
if LocfileFull <> '' then
call AddInputFileToDependancyList LocfileFull;
;--- Save IMAGE tag information for bullet (do once to save time etc) ---
#if ['<$DocType>' = 'IPF']
;--- IPF List ---------------------------------------------
ToSave = ":artwork runin name='" || Locfile || "'{$IPF=^^ $$SPCPLUS}.";
#elseif
;--- HTML List --------------------------------------------
TmpSize = GetImageHeightWidth(Locfile);
ToSave = '<IMG SRC="<$OL_DOC_IMAGE_HTML_REMOTE>{$Image}.{$Type='gif'}" ' || TmpSize || '{$HTML=^^ $$SPCPLUS}>';
#endif
AliasVar = 'DIMG_' || c2x('{$ALIAS}');
call _valueS AliasVar, ToSave;
#DefineRexx
#DefineRexx "_RetrieveTaggedImageUsingAlias"
Alias = '{$Alias=^?^}';
AliasVar = 'DIMG_' || c2x(Alias);
if symbol(AliasVar) <> 'VAR' then
error('Alias "' || Alias || '" is unknown, define with "DefineImage" macro!');
{$ResultVar} = _valueG(AliasVar);
#DefineRexx
#define DefineImage ;;Define Image \
#evaluate ^^ ^<$_SaveTaggedImageUnderAlias {$?} LFILEVAR="DocImgFile">^
#define Image ;;Use Image \
#evaluate ^^ ^<$_RetrieveTaggedImageUsingAlias Alias={$#1=^?^ $$AQ} RESULTVAR="DocImgTags">^ -\
<??DocImgTags>
;** CommentBlock /* (Thursday 02/12/1999, 10:35:06, by Dennis_Bareis) */
;**+--------------------------------------------------------------------------
;**|;----------------------------------------------------------------------------
;**|;--- GRAPHIC IMAGE MACROS ---------------------------------------------------
;**|;----------------------------------------------------------------------------
;**|#if ['<$DocType>' = 'HTML']
;**| ;--- HTML ------------------------------------------------------------
;**| #define Image \
;**| #evaluate+ TmpSize ^GetImageHeightWidth("<$OL_DOC_IMAGE_HTML_LOCAL>{$Image}.{$Type='gif'}")^ -\
;**| <IMG SRC="<$OL_DOC_IMAGE_HTML_REMOTE>{$Image}.{$Type='gif'}" <$TmpSize>>
;**|#else
;**| ;--- IPF -------------------------------------------------------------
;**| #define Image \
;**| :artwork runin name='<$OL_DOC_IMAGE_IPF_LOCAL>{$Image}.bmp'.
;**|#endif
;**+--------------------------------------------------------------------------
;** /* (Thursday 02/12/1999, 10:35:06, by Dennis_Bareis) */
;----------------------------------------------------------------------------
;--- Define START of Lists --------------------------------------------------
;----------------------------------------------------------------------------
#RexxVar ListLevel = 0 ;;Init List level (nesting level)
#DefineRexx ListStart
;--- Increase List Level (save old Information) ---
if ListLevel > 0 then
do
;--- Save variables onto stack ---
ListMem.ListLevel.!LiCount = LiCount; ;;Save list item count
ListMem.ListLevel.!LiB = LiB; ;;Save START List Item
ListMem.ListLevel.!LiA = LiA; ;;Save END List Item
ListMem.ListLevel.!LiEnd = LiEnd; ;;Save End List
end;
ListLevel = ListLevel + 1;
;--- Reset the List Item counter ---
LiCount = 0;
;--- Set up stuff ---------------------------------------------------
ListType = '{$ListType}';
select
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
when ListType = 'ORDLIST' | ListType = 'ORDLIST_C' then
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
do
;--- Simple ordered list -----------------------------------------
#if ['<$DocType>' = 'HTML']
;--- HTML List --------------------------------------------
if ListType = 'ORDLIST' then
LiB = '<P><LI>'; ;;Space out
else
LiB = '<LI>'; ;;Compact!
LiStart = '<OL>';
LiEnd = '</OL>';
#elseif
;--- IPF List ---------------------------------------------
if ListType = 'ORDLIST' then
LiStart = ':lm Margin=5.:ol.'; ;;Space out
else
LiStart = ':lm Margin=5.:ol compact.'; ;;Compact!
LiB = ':li.';
LiEnd = ':eol.:lm Margin=1.';
#endif
;--- Both HTML + IPF ---------------------------------------------
LiA = '';
end;
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
when ListType = 'UNUMBLIST' | ListType = 'UNUMBLIST_C' then
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
do
;--- Simple ordered list -----------------------------------------
#if ['<$DocType>' = 'HTML']
;--- HTML List --------------------------------------------
if ListType = 'UNUMBLIST' then
LiB = '<P><LI>'; ;;Space out
else
LiB = '<LI>'; ;;Compact!
LiStart = '<UL>';
LiEnd = '</UL>';
#elseif
;--- IPF List ---------------------------------------------
if ListType = 'UNUMBLIST' then
LiStart = ':lm Margin=5.:ul.'; ;;Space out
else
LiStart = ':lm Margin=5.:ul compact.'; ;;Compact!
LiB = ':li.';
LiEnd = ':eul.:lm Margin=1.';
#endif
;--- Both HTML + IPF ---------------------------------------------
LiA = '';
end;
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
when ListType = 'SIMPLELIST' | ListType = 'SIMPLELIST_C' then
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
do
;--- Simple ordered list -----------------------------------------
#if ['<$DocType>' = 'HTML']
;--- HTML List --------------------------------------------
if ListType = 'SIMPLELIST' then
LiB = '<P>'; ;;Space out
else
LiB = '<BR>'; ;;Compact!
LiStart = '<OL>';
LiEnd = '</OL>';
#elseif
;--- IPF List ---------------------------------------------
if ListType = 'SIMPLELIST' then
LiStart = ':lm Margin=5.:sl.'; ;;Space out
else
LiStart = ':lm Margin=5.:sl compact.'; ;;Compact!
LiB = ':li.';
LiEnd = ':esl.:lm Margin=1.';
#endif
;--- Both HTML + IPF ---------------------------------------------
LiA = '';
end;
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
when ListType = 'IMGLIST' | ListType = 'IMGLIST_C' then
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
do
;--- Get IMG tags -------------------------------------------------
<$_RetrieveTaggedImageUsingAlias {$Alias=^^ $$PASSAQ} ResultVar="AliasImg">
;--- Simple ordered list -----------------------------------------
#if ['<$DocType>' = 'HTML']
;--- HTML List --------------------------------------------
if ListType = 'IMGLIST' then
LiB = '<TR VALIGN="TOP"><TD>' || AliasImg || '</TD><TD>'; ;;Space out
else
LiB = '<TR VALIGN="TOP"><TD>' || AliasImg || '</TD><TD>'; ;;Compact!
LiA = '</TD></TR>';
LiStart = '<TABLE BORDER=0 CELLSPACING=10>';
LiEnd = '</TABLE>';
#elseif
;--- IPF List ---------------------------------------------
if ListType = 'IMGLIST' then
LiStart = ':lm Margin=5.:dl compact tsize={$IMGSIZE=^1^}.'; ;;Space out
else
LiStart = ':lm Margin=5.:dl compact tsize={$IMGSIZE=^1^}.'; ;;Compact!
LiB = ':dt.' || AliasImg || ':dd.';
LiEnd = ':edl.:lm Margin=1.';
LiA = '';
#endif
end;
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
otherwise
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
error('Unknown list type of "' || ListType || '"');
end;
#DefineRexx
#define OrdList \
#evaluate ^^ ^<$ListStart ListType="ORDLIST">^ -\
<??LiStart>
#define OrdListCompact \
#evaluate ^^ ^<$ListStart ListType="ORDLIST_C">^ -\
<??LiStart>
#define UnNumberedList \
#evaluate ^^ ^<$ListStart ListType="UNUMBLIST">^ -\
<??LiStart>
#define UnNumberedListCompact \
#evaluate ^^ ^<$ListStart ListType="UNUMBLIST_C">^ -\
<??LiStart>
#define SimpleList \
#evaluate ^^ ^<$ListStart ListType="SIMPLELIST">^ -\
<??LiStart>
#define SimpleListCompact \
#evaluate ^^ ^<$ListStart ListType="SIMPLELIST_C">^ -\
<??LiStart>
#define ImgList \
#evaluate ^^ ^<$ListStart ListType="IMGLIST" ALIAS=^{$#1}^>^ -\
<??LiStart>
#define ImgListCompact \
#evaluate ^^ ^<$ListStart ListType="IMGLIST_C" ALIAS=^{$#1}^>^ -\
<??LiStart>
;----------------------------------------------------------------------------
;--- Define List Item Stuff -------------------------------------------------
;----------------------------------------------------------------------------
#DefineRexx ListItem
if LiCount = 0 then
LiThis = LiB; ;;Start new
else
LiThis = LiA || LiB; ;;Finish old + start new
LiCount = LiCount + 1;
#DefineRexx
#define LI \
#evaluate ^^ ^<$ListItem>^ -\
<??LiThis>
;----------------------------------------------------------------------------
;--- Define END of Lists ----------------------------------------------------
;----------------------------------------------------------------------------
#DefineRexx ListEnd
;--- Make sure we are in a list! -----------------------------------------
if ListLevel < 1 then
error("Found End of List. We are not in one!");
;--- What do we need to generate to complete the list? -------------------
if LiCount = 0 then
LiThis = LiEnd; ;;No list items so just end the list
else
LiThis = LiA || LiEnd; ;;Finish old item + finish list
;--- Restore information -------------------------------------------------
ListLevel = ListLevel - 1;
if ListLevel > 0 then
do
LiCount = ListMem.ListLevel.!LiCount;
LiB = ListMem.ListLevel.!LiB;
LiA = ListMem.ListLevel.!LiA;
LiEnd = ListMem.ListLevel.!LiEnd;
end;
#DefineRexx
#define eAllLists \
#evaluate ^^ ^<$ListEnd>^ -\
<??LiThis>
#define eOrdList <$eAllLists>
#define eOrdListCompact <$eAllLists>
#define eUnNumberedList <$eAllLists>
#define eUnNumberedListCompact <$eAllLists>
#define eSimpleList <$eAllLists>
#define eSimpleListCompact <$eAllLists>
#define eImgList <$eAllLists>
#define eImgListCompact <$eAllLists>
;----------------------------------------------------------------------------
;--- SIMPLE CONDITIONAL INCLUSION (only use for non-important formatting!) --
;----------------------------------------------------------------------------
#if ['<$DocType>' = 'HTML']
;--- HTML ------------------------------------------------------------
#define HTML {$#1}
#define IPF
#else
;--- IPF -------------------------------------------------------------
#define IPF {$#1}
#define HTML
#endif
;----------------------------------------------------------------------------
;--- COMMENT RELATED MACROS -------------------------------------------------
;----------------------------------------------------------------------------
#if ['<$DocType>' = 'HTML']
;--- HTML ------------------------------------------------------------
#define Comment <!-- {$#1} -->
#elseif
;--- IPF -------------------------------------------------------------
#define Comment .*-- {$#1} ---
#endif
#define DComment \
#if ['<?DebugOn>' = 'Y'] -\
<$Comment ={$#1 $$AQ}> -\
#endif
;----------------------------------------------------------------------------
;--- TABLE Support ----------------------------------------------------------
;----------------------------------------------------------------------------
#ifndef OL_DOC_IPF_TABLE ;;Allows you to define extra IPF TABLE tags
#define OL_DOC_IPF_TABLE
#endif
#ifndef OL_DOC_IPF_TH_ATTRIB ;;Allows you to define how IPF table headers are formatted (don't use BOLD!)
#define OL_DOC_IPF_TH_ATTRIB :hp9.{$#1}:ehp9. ;;Magenta by default
#endif
#ifndef OL_DOC_HTML_TABLE ;;Allows you to define extra TABLE tags
#define OL_DOC_HTML_TABLE
#endif
#ifndef OL_DOC_HTML_TR ;;Allows you to define extra TR tags
#define OL_DOC_HTML_TR
#endif
#ifndef OL_DOC_HTML_TH ;;Allows you to define extra TH tags
#define OL_DOC_HTML_TH
#endif
#ifndef OL_DOC_HTML_TC ;;Allows you to define extra TC (html TD) tags
#define OL_DOC_HTML_TC
#endif
#if ['<$DocType>' = 'IPF']
;--- IPF -------------------------------------------------------------
#define Table \
:table cols='{$WIDTHS}' -\
#if ["{$BORDER=''}" = ""] -\
<?Space>rules=none frame=none -\
#endif -\
<$OL_DOC_IPF_TABLE $$SPCPLUS> -\
.
#define eTable :eTable.
#define TR :row.
#define eTR
#define TH :c.<$OL_DOC_IPF_TH_ATTRIB ={$#1 $$AQ}>
#define TC :c.
#define eTD
#else
;--- HTML ------------------------------------------------------------
#DefineRexx SaveHtmlWidths
;--- Want to die if invalid column used! ------------
drop HtmlWidth.
;--- Work out total width (so we can calculate %) ---
TblColCount = words(ColWidths);
ColWidthTotal = 0;
do i = 1 to TblColCount
ColWidthTotal = ColWidthTotal + word(ColWidths, i);
end
;--- Now save each width as percentage of total -----
TotalPercent = 0;
do i = 1 to TblColCount
if i = TblColCount then
ThisPercent = 100 - TotalPercent; ;;Left overs!
else
do
;--- Not the last column! ---------------------
ThisPercent = (word(ColWidths, i) * 100) % ColWidthTotal;
TotalPercent = TotalPercent + ThisPercent;
end;
HtmlWidth.i = ThisPercent || '%';
end
#DefineRexx
#define Table \
#RexxVar ColWidths = ^{$Widths}^ -\
#evaluate ^^ ^<$SaveHtmlWidths>^ -\
<TABLE -\
#if ["{$BORDER=''}" <> ""] -\
<?Space>BORDER=1 -\
#endif -\
<$OL_DOC_HTML_TABLE $$SPCPLUS> -\
>
#define eTable </TABLE>
#define TR \
<TR<$OL_DOC_HTML_TR $$SPCPLUS>> -\
#RexxVar ColumnCount = 0
#define eTR </TR>
#define TH \
#RexxVar ColumnCount + 1 -\
<TH WIDTH="<??HtmlWidth.ColumnCount>" -\
<$OL_DOC_HTML_TH $$SPCPLUS> -\
> -\
{$#1} -\
</TH>
#define TC \
#RexxVar ColumnCount + 1 -\
<TD WIDTH="<??HtmlWidth.ColumnCount>" -\
<$OL_DOC_HTML_TC $$SPCPLUS> -\
>
#define eTC </TD>
#endif
;----------------------------------------------------------------------------
;--- References to Internet HTML pages --------------------------------------
;----------------------------------------------------------------------------
#if ['<$DocType>' = 'IPF']
;--- IPF -------------------------------------------------------------
#define HtmlPage <$DarkGreen Text=^http<$colon>//{$Page}^>
#elseif
;--- HTML ------------------------------------------------------------
#ifndef OL_DOC_HTML_TARGET
#define HtmlPage <A HREF="http://{$Page}">http://{$Page}</A>
#elseif
#define HtmlPage <A HREF="http://{$Page}" TARGET="<$OL_DOC_HTML_TARGET>">http://{$Page}</A>
#endif
#endif
;----------------------------------------------------------------------------
;--- References to Internet Newsgroups --------------------------------------
;----------------------------------------------------------------------------
#if ['<$DocType>' = 'IPF']
#define NewsGroup <$DarkGreen Text=^{$Group}^> ;;IPF
#elseif
#define NewsGroup <A HREF="news:{$Group}">{$Group}</A> ;;HTML
#endif
;----------------------------------------------------------------------------
;--- References to EMAIL ADDRESSES ------------------------------------------
;----------------------------------------------------------------------------
#DefineRexx REXX_$$FIX_EMAIL_SUBJECT
;--- The value is not allowed to contain spaces -----------------
TheValue = ReplaceString(TheValue, ' ', '%20');
#DefineRexx
#if ['<$DocType>' = 'IPF']
#define EmailAddress <$DarkGreen Text=^{$Email}^> ;;IPF
#define EmailAddressSubject <$DarkGreen Text=^{$Email}^>
#elseif
#define EmailAddress <A HREF="mailto:{$Email}">{$Email}</A> ;;HTML
#define EmailAddressSubject <A HREF="mailto:{$Email}?subject={$Subject $$FIX_EMAIL_SUBJECT}">{$Email}</A>
#endif
;----------------------------------------------------------------------------
;--- EXAMPLE (DO ALL YOUR OWN TAGGING - special symbols like colons as well)-
;----------------------------------------------------------------------------
#if ['<$DocType>' = 'IPF']
;--- IPF -------------------------------------------------------------
#ifndef PRE_COLOR_IPF
#define PRE_COLOR_IPF darkred
#endif
#define ExampleFormatted \
:xmp. ;;Start Example -\
:color fc=<$PRE_COLOR_IPF>. -\
:font facename='Courier' size=8x8. ;;Small Mono Font
#define eExampleFormatted \
:font facename=default size=0x0. ;;Restore Font -\
:color fc=default. -\
:exmp. ;;End of Example
#endif
#if ['<$DocType>' = 'HTML']
#ifndef PRE_COLOR_HTML
;--- Orange is default - looks good against black text and on white background ---
#define PRE_COLOR_HTML #FF6600
#endif
#ifndef PRE_STYLE_OTHER_HTML
;--- Default style is to scale font down a bit --------------
#define PRE_STYLE_OTHER_HTML ;font-size:80%
#endif
;--- HTML ------------------------------------------------------------
#define ExampleFormatted \
<FONT COLOR=<$PRE_COLOR_HTML>> ;;Set up font (older browsers) -\
<PRE STYLE="color:<$PRE_COLOR_HTML><$PRE_STYLE_OTHER_HTML>"> ;;Start Example
#define eExampleFormatted \
</PRE> ;;End of Example -\
</FONT> ;;Restore Font (older browsers)
#endif
;----------------------------------------------------------------------------
;--- ALLOW SPELL CHECKING IN EXAMPLES? --------------------------------------
;----------------------------------------------------------------------------
#ifndef PRE_SPELL_CHECKING
#define PRE_SPELL_CHECKING OFF
#endif
;----------------------------------------------------------------------------
;--- EXAMPLE (NO TAGGING - EXCEPT AUTOTAGGING ALLOWED) ----------------------
;----------------------------------------------------------------------------
#define Example \
<$ExampleFormatted> -\
#AutoTagState + {$STATE=''} ;;User can set up own tags -\
#option PUSH AllowSpell={$SPELL="<$PRE_SPELL_CHECKING>"} ExtraIndent=^copies(' ', {$Indent='4'})^ -\
#option PUSH replace=OFF -\
#AutoTag '<?xLT>$eExample<?xGT>' '<$eExample>' #1 -\
#option POP ;;Restore REPLACE mode -\
#AutoTag ON -\
#AsIs ON ASIS_OL_DOC {$ASIS=''}
#define eExample \
#AsIs OFF -\
#option POP -\
#AutoTagState - -\
<$eExampleFormatted>
;----------------------------------------------------------------------------
;--- EXAMPLE FILE INCLUSION -------------------------------------------------
;----------------------------------------------------------------------------
#define ExampleFile \
<$ExampleFormatted> -\
#AutoTagState + {$STATE=''} ;;User can set up own tags -\
#option PUSH AllowSpell={$SPELL="<$PRE_SPELL_CHECKING>"} ExtraIndent=^copies(' ', {$Indent='4'})^ -\
#AutoTag ON -\
#AsIs ON ASIS_OL_DOC {$ASIS=''} -\
#include "{$File}" "{$Fragment=''}" -\
#AsIs OFF -\
#option POP -\
#AutoTagState - -\
<$eExampleFormatted>
;----------------------------------------------------------------------------
;--- Define LINKS between HTML pages ----------------------------------------
;----------------------------------------------------------------------------
#if ['<$DocType>' = 'HTML']
;--- Define macro to rebuild files from binary representation --------
#define RebuildFile \
#if ['{$KeepCase='N'}' = 'N'] -\
#evaluate "" ^NewFile = EnsureFileHasCorrectCase(_filespec('drive', '<?OutputFile>') || _filespec('path', '<?OutputFile>') || '{$FILE}')^ -\
#elseif -\
#evaluate "" ^NewFile = _filespec('drive', '<?OutputFile>') || _filespec('path', '<?OutputFile>') || '{$FILE}'^ -\
#endif -\
#DependsOn OUTPUT "<??NewFile>" -\
#evaluate "" ^CloseRc = stream(NewFile, 'c', 'close');^ -\
#if stream(NewFile, 'c', 'query exists') <> '' -\
#evaluate "" ^DelRc = _SysFileDelete(NewFile)^ -\
#if stream(NewFile, 'c', 'query exists') <> '' -\
#evaluate "" ^CloseRc = stream(NewFile, 'c', 'close');^ -\
#error ^Could not delete "<??NewFile>" (is it in use?)^ -\
#endif -\
#endif -\
#evaluate "" ^WriteRc = charout(NewFile, NewFileData)^ -\
#evaluate "" ^CloseRc = stream(NewFile, 'c', 'close');^ -\
#if [WriteRc <> 0] -\
#error ^Could not write to "<??NewFile>"^ -\
#endif
;--- Allow user to define OPTIONAL buttons ---------------------------
#ifndef OL_DOC_HTML_SEARCH
#define OL_DOC_HTML_SEARCH ;;Do nothing
#elseif
#evaluate+ OL_DOC_HTML_SEARCH ^'<TD><$OL_DOC_HTML_SEARCH>'^ ;;Want in own table cell
#endif
#ifndef OL_DOC_HTML_HOME
#define OL_DOC_HTML_HOME ;;Do nothing
#elseif
#evaluate OL_DOC_HTML_HOME ^'<TD><$OL_DOC_HTML_HOME>'^ ;;Want in own table cell
#endif
;--- Defile "PREV" details -------------------------------------------
#ifndef OL_DOC_HTML_PREV
;--- Define the link -----------------------------------------
#define OL_DOC_HTML_PREV <A HREF="{$Page}.<??HtmlExtn>"><IMG SRC="prev.gif" BORDER=0 WIDTH=49 HEIGHT=31 ALT="[Prev]: {$Title}"></A>
;--- Create the graphic --------------------------------------
#DefineRexx ""
NewFileData = "47494638396132002600B3000000262600525200989801B8B800EDED78E0E0C8D8D878979768F8F800000000000000000000000000000000000000000021FF0B4E45545343415045322E300301000000"x
NewFileData = NewFileData || "21F90409030008002C00000900310016000004EA10C949D1A938EBCD650917671C64699E66470D01106686D002746DDF81A17A8240EB99426F482C0E03821DC230E8B55E9498714ACC2985434020D3A4"x
NewFileData = NewFileData || "5241D7220D83F51AC1BB721650919ACF40D10129CE19EECC773100C2C7A3327C7C37845A823385895A074031488F3238877C3281939798828C0605040304A0A082000203A6A7A1A0A7ABACADA7050513"x
NewFileData = NewFileData || "06A1A79601ADAA9FAEAD02049DBF7FB2A07B5A7EB39E7A595022C3445A6DCDC92DC11BC7CE5B159D5DC9C54AB35D4F19D1DCCBCC4DE118D6C991E51B9D81D41EC8EBD3DE0432F112C7BBBB324A4B03DA"x
NewFileData = NewFileData || "458145B0A04183F960FC5B8821020021F90409030008002C00000A00300015000004E310C949A5A938EBCD9109D7668C6469965D7500E07604702CCF0170A4D35BDF994EFF319C4710030042940FCCC8"x
NewFileData = NewFileData || "6C3A59B0C3A1804C1288CB63C520101006E0B0784C1E542D846B514B3978BFE5B898BA2DA4BF6BD5E00E9793096706057B7760355032846984608B8C8C7449768A7D03015D985D858C858E8B91758502"x
NewFileData = NewFileData || "63017E44A3A503A7AA862D22775845A96278403F2C6718766A32465593B6B7AEAFBC873C13067BB1C145B91806B5C6BAD1CC32387658BE19C0D545C7AF9646011AD0AADDDE29D058CE12937E6501DF1A"x
NewFileData = NewFileData || "E6EC1383EF6502F51602F219270003EEB320A4A086080021F90409030008002C00000A00300012000004CD10C9398DA138EBCD350957871845699E681A6AC507760621CC746DDBC78AC5EEBB1184C16D"x
NewFileData = NewFileData || "88EB008581A46ED23A0E9ED0A87470E8349F820000B0E405055041F0391E7C0B30E7530BA85680E56F1C3A5E5248E428DB2D8163E57F7442761278535801374E62426173038423523789445900899897"x
NewFileData = NewFileData || "99493E1A86585BA29A436CA3A7A37C1C0561A801072788A8B35B9E1B86A6A2AA064297B4B391148DB96D180560BEBFA73930A1B5B612C74859D489D6D5D4C1926C5991C796E002681C035AB0E31BBDE1"x
NewFileData = NewFileData || "44CC9FED22F0F0110021F90409030008002C00000800310016000004FE10C94991A938EBCD65395D2872C600805C11AC6CEBBA575798409C95C2ABC361390480C06636281A8FC841CEB6F11501B50C51"x
NewFileData = NewFileData || "691414ADD72A4A76046E274EAA121BB8620502D1F41AC44C03567476BE0C15B0D536C529FF99FF75246348390107878747677F833F414C7B07396893703B94402B41409B9B9A5F7B68963950A53B96A5"x
NewFileData = NewFileData || "A9AAA68790123EA2A4A994B495A72E9E8637050493AA563333044A96B7B7AE16339C4150150604C385C6A707C8CF2B564090BC49DDDE0405C860C345DACED03F71657E83027A2308DC3F4218CFC4E564"x
NewFileData = NewFileData || "F84A27F012D1BA52A22D6A44260ABC6BA0F6A0F34668453F040402887B55A0A2C58B182D4EBCB1F1E18608003B"x
#DefineRexx
<$RebuildFile FILE="prev.gif">
#endif
#ifndef OL_DOC_HTML_NEXT
;--- Define the link -----------------------------------------
#define OL_DOC_HTML_NEXT <A HREF="{$Page}.<??HtmlExtn>"><IMG SRC="next.gif" BORDER=0 WIDTH=49 HEIGHT=31 ALT="[Next]: {$Title}"></A>
;--- Create the graphic --------------------------------------
#DefineRexx ""
NewFileData = "47494638396132002600B3000000262600525200989801B8B800EDED78E0E0C8D8D878979768F8F800000000000000000000000000000000000000000021FF0B4E45545343415045322E300301000000"x
NewFileData = NewFileData || "21F90409030008002C01000700310016000004E710C949ABBD18996C4DF96028861B770C253705C2E0BE703C1044DAB1B53A19002BFCC0607056C01802B8A24E72E8099F419A6DD264CDA62600742BA0"x
NewFileData = NewFileData || "5D9AC0EB5213D07285444B399A5BF27C67A0B4B2666331E078586AE81F9D76171E030584033F3232042E343248482D8C73121F89968A348D31023D48998D04057D078FA5A6A7A5022CABA600AEAEABAA"x
NewFileData = NewFileData || "B22506A4AFB7B8B9ADB9B8A602777EB5707A88C17F5007771547C3C453AE4F4A3AA4C441D213D041CA16D4D58817753FD71C47DE407755C563DDDEE33BD9EE4665BCF42CDB5503630807FCFDFEFFFEB6"x
NewFileData = NewFileData || "3109104F9FC10C075444000021F90409030008002C02000700300015000004E210C949ABBD18993C8DFF60286E1C520864760E6CEBBE6E511A8120978700EF2F715F34808090CA1C0081A472C9AC0D88"x
NewFileData = NewFileData || "980000F92C628ECDACF2F9A318A6C96137A32D07B8962332592D69D6E6A50E4A512B87F44C30CE4477C072043E33527C4B4F3085818256153467033A024E0367933A3C952F9882058D1A054F042C82A2"x
NewFileData = NewFileData || "A3A5A602AAAB932E82A53E5606A1A8B5A3A2A6A34D60A4AF039E8EB79930AFA307158067AFC05EA1C3998202C75EC9788D06CFCF0493B2D579CD07074A53E4E5E670D7D59F17864CD3696BEF6E58ED01"x
NewFileData = NewFileData || "F28E52F73323FC1F1C34EBDC0814187042040021F90409030008002C02000A00300012000004D110C949ABBD189963F01660288E649121457100819915642CBB96110800200C5D6608B7207028140E04"x
NewFileData = NewFileData || "B4892D90D30D78A74D734A9DDE7649C4CA7ACC5E0AD570F30A9D6CB98342CFC714576FCF94BC3DDDC54F92B37B2CA337ED716B3501843A4C844C402C322045404F908214064F049004803B9895982370"x
NewFileData = NewFileData || "90A069924A9A97769B9B0304AB145B01A0ABA23E9597A6AA97AB82AEB804A31430B7B49599AAB91506399FAB5EADA1CECEAB04CC4B37D127078C8CC56C84C6171FD98CBD514CD23E72E8E9EA72BEC701"x
NewFileData = NewFileData || "0478F1F251ED08110021F90409030008002C01000800310016000004FF10C949ABBDD8189C8BFF60F86D9C11101C1604C2E0BE304C10E4759C753A1940E0B6030170D8221430B7A2CE7200B404BE012B"x
NewFileData = NewFileData || "189DD22E2B977159093883C0EAD337CB2178D1C1B55488B9DFB223054DC55D0CB7957ECFEF5BD713003D823D03056612057E8B7D504586900284824202468808798C8B8E2C9595933D8E4598784DA1A8"x
NewFileData = NewFileData || "932C8CA1ABA398993D7AA2822BB2A2429CAEB90207B02685603F43C32F07C7C77A314203B03B5341C552D2CD5D5F3002722926442E51CCCC2F165E402FDA2907DDD1C2D32F884D692E5CE9C43FF6F786"x
NewFileData = NewFileData || "17058230CE138AE5E0B839672D8A3F092636F969E18C0700793A122AF44390C9C3835C3222A9A8B1E3361D110100003B"x
#DefineRexx
<$RebuildFile FILE="next.gif">
#endif
#ifndef OL_DOC_HTML_TOP
;--- Define the link -----------------------------------------
#define OL_DOC_HTML_TOP <A HREF="#TOP"><IMG SRC="top.gif" BORDER=0 WIDTH=30 HEIGHT=30 ALT="[Top]"></A>
;--- Create the graphic --------------------------------------
#DefineRexx ""
NewFileData = "4749463839611E001E00FE0000C0C0C0080031F7180800C66BEFDE008C00A531FFFF7384000042A5DE6B6B00DED673A573FF3939FFFFFF8C00738C0800009CD6006318006BBDA5FFFF29BD299CD618C6"x
NewFileData = NewFileData || "EF0839009408005AFF8C0000299473CEB5F74208BDB5637BC621520042FF5A5A39949C52CE21A5429400C68C42427B001084FFADADFFB500944A00FF6300297B423900636BFFE700D6ADC600AD00B531"x
NewFileData = NewFileData || "FFD6D6DEC600A529296B006394842910008C008C94001863CE94ADDE5A0073397B4AA58C4A6B08FF5252FF8C8C94398400844A310042B5000000B552219C7B00316B4AFFCEDE10086B8429BD73636300"x
NewFileData = NewFileData || "A584FFFF39638C006B9C21CE9C00104294CEC6C6FFFFD63100ADC61029631063BD9C948C0063004A4AAD2110D6BD00947300BD4ABD946300ADBD008CB500427BA50084DE7B7B846300942929BDD62184"x
NewFileData = NewFileData || "21008CAD6B5A005A18AD390073424A8410FFE7E708B5D6DEFFFF08AD8C94007B00294A6BBD1818D6D642397318B55A08AD397BC6A500317B1094BDFF4A4A633973009C9400521863A57300000021F904"x
NewFileData = NewFileData || "01000000002C000000001E001E004007FE800082838485398588898274010150382691929138381850188A887D1111309FA09F6976767E9A8866A91CABACAD534AA78A1F1F586161700E0E23B1824E37"x
NewFileData = NewFileData || "376D6D5E0AC4C5C6C406525206C221A73D070716D3D4D36554541DBC8348020CDFE0E0203F0D09DB89405834BAE7887B0142422C4BF44B2CF7F7DB4D50717808FF0003FEC363A46093423C7858599850"x
NewFileData = NewFileData || "4D902024224A8CF8E4488B28513668B4C24353958F22428A149925CB99766352A258C972A58C975DDA3D183284811E1F38718238014200AC7685D4ED028A6ED6BA5C0E881202F2010D8D172F70E51ADA"x
NewFileData = NewFileData || "AE91BC0B58B3DEC380A1C436478F34881D4B164F251C5E133529E8E4CB17087C70E3CA959BC789DD4221F8789933470B1FBDC78C1998D0C08D1B294CB43853A4A6F180C7901F1779F2E44EBB2A9D2868"x
NewFileData = NewFileData || "DEAC398DE605ED7A40AB40BA74690F544E9E8B768580EBD7AECB4CD3762E85ED0CB873E7D6A123E6B9073305081F2E5C0F03243FB70DE9162E9C18366CCC9D53A22481F5EBD8C58839912810003B"x
#DefineRexx
<$RebuildFile FILE="top.gif">
#endif
#ifndef OL_DOC_HTML_BOTTOM
;--- Define the link -----------------------------------------
#define OL_DOC_HTML_BOTTOM <A HREF="#BOTTOM"><IMG SRC="bottom.gif" BORDER=0 WIDTH=30 HEIGHT=30 ALT="[Bottom]"></A>
;--- Create the graphic --------------------------------------
#DefineRexx ""
NewFileData = "4749463839611E001E00FE0000C0C0C0080031F7180800C66BEFDE008C00A531FFFF7384000042A5DE6B6B00DED673A573FF3939FFFFFF8C00738C0800009CD6006318006BBDA5FFFF29BD299CD618C6"x
NewFileData = NewFileData || "EF0839009408005AFF8C0000299473CEB5F74208BDB5637BC621520042FF5A5A39949C52CE21A5429400C68C42427B001084FFADADFFB500944A00FF6300297B423900636BFFE700D6ADC600AD00B531"x
NewFileData = NewFileData || "FFD6D6DEC600A529296B006394842910008C008C94001863CE94ADDE5A0073397B4AA58C4A6B08FF5252FF8C8C94398400844A310042B5000000B552219C7B00316B4AFFCEDE10086B8429BD73636300"x
NewFileData = NewFileData || "A584FFFF39638C006B9C21CE9C00104294CEC6C6FFFFD63100ADC61029631063BD9C948C0063004A4AAD2110D6BD00947300BD4ABD946300ADBD008CB500427BA50084DE7B7B846300942929BDD62184"x
NewFileData = NewFileData || "21008CAD6B5A005A18AD390073424A8410FFE7E708B5D6DEFFFF08AD8C94007B00294A6BBD1818D6D642397318B55A08AD397BC6A500317B1094BDFF4A4A633973009C9400521863A57300000021F904"x
NewFileData = NewFileData || "01000000002C000000001E001E004007FE80008283824A4A0988898A626227848F90070757049596956516161D9083217C5E73735A7CA00AA7A8A806130D6E6E524C5A219D84401F68342F2F700EBD23"x
NewFileData = NewFileData || "B4C00F0F4302C5C6C57A0C484AC09055111114D2D3D269D20BCD83015050381ADFE0E17838E425D9B45834BFE7B44348020CF1F2F1626C6C09EC8229FB19FDFEFE3A7474C907A0478F0315122A54E881"x
NewFileData = NewFileData || "CA19826A220E9848716291274FEE346B62C488932F5F20881C4992641E2728B305082084C585973059B0C080C11C4141B63ED0E8D5EBE6A077F38282F8D1005FBE614318E8F1C194298813200430CB67"x
NewFileData = NewFileData || "A62A87AB58B34E99CA6E8C571460C38295417660BE830734A9555B860A154E80F9AAC81541B76EDD2C591EE6EB030D86DFBF7ED3D8B1E387160F1E56121F5613240889C7901F3F39D2224A940D98ADF0"x
NewFileData = NewFileData || "20E4E4C68D366DBCA41AAD4A8A1403A167416A02250E1E04B063CB868DA7A39126CDE8ACEC66A2B7EFDEE43040C1906F0FCB964B922F91C9DCA7A00F1FB08409C3CBC13AE78380A4B38E9D568E7C8100"x
NewFileData = NewFileData || "003B"x
#DefineRexx
<$RebuildFile FILE="bottom.gif">
#endif
#ifndef OL_DOC_HTML_CONTENTS
;--- Define the link -----------------------------------------
#define OL_DOC_HTML_CONTENTS <A HREF="<??ContentsId>.<??HtmlExtn>"><IMG SRC="contents.gif" BORDER=0 WIDTH=63 HEIGHT=37 ALT="[Contents]"></A>
;--- Create the graphic --------------------------------------
#DefineRexx ""
NewFileData = "4749463839613F002500B30800000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF21F90401000008002C000000003F0025000004"x
NewFileData = NewFileData || "FF10C949ABAD20EB7CBBFF6097296449021E17AE2C60BEA7A53D286B8B2EFC6EF343D737890AB7D96976BEA412181C5236C95C09B0442A253EA68DEACC28B356B0A9764094A34DEF0FFAA521B1D2581B"x
NewFileData = NewFileData || "BD55CFDB7105351A4E9E7F5B087B771207593C76797B154B2B8873658677876E630F58774E388282979166085F66732396A1A29259201CAC9313939553578C5F5A18AC828349AFBB147CB23EA0B0AA1D"x
NewFileData = NewFileData || "09282A839FA8789697A7C351B608C6B942B0A3A4C098D0B5B6D49C07BAC1859963BACA84DD15C6C7B983DB3EA9BF27EF779F7F741409D4ED76BDCF7FE2CC80E76B922609DFFABDC3872F961E1A4A2241"x
NewFileData = NewFileData || "63A5411FBF6AFEE23D9BF750D7468364C22AEA6B87F1DD466C8F207A1A56B1CCC1699C6A509C038F54B06E3C9E1CCBB06FC2BE762E8578FC1865893891B7B400E8E9F362B55CBB48B948645486C83282"x
NewFileData = NewFileData || "F625B0C04F265671B5ACA8A198738206ADC5BA0A318B33CF892C6B1021D2BAF54342B3D6D698D5219727DDBF7557FC5CCBA9D341B77D9906B99050A63BA145C614984C99E7620F680BC77C9C8B9D9EA5"x
NewFileData = NewFileData || "940B9CBD0CC258509764973245F1738362D2697756AC9879DD5FD8821B73A08BBBB7ED0DD35EFB1E1E3CB870E2C46B230F1201003B"x
#DefineRexx
<$RebuildFile FILE="contents.gif">
#endif
#ifdef OL_DOC_HTML_GENERATE_SEARCH_ICON
;--- Create the graphic --------------------------------------
#DefineRexx ""
NewFileData = "4749463839613B002800C40A0000000080000000800080800000008080008000808080808004040404649CBFC3C534CCCC6464640D646404046464349C64C3FC"x
NewFileData = NewFileData || "9CCBFC34343464A0C5043434344A9C3433646464A1C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF21F9040100000A002C000000003B0028004005"x
NewFileData = NewFileData || "FFA0228E64699E68AAAA4B12414A34C99332DDF8754D57D5FB9547055891FC7ABB9B2C9268209E4F536B86B9ED7416DF0D78B578BD158B6498CD4A8448DFAE09"x
NewFileData = NewFileData || "8D965AB1F8D256C5D5ECD6B40E6FAF46626C6D52093132081208334E4F0D633113080D90860D8650118D11869A9A81502BA0A1A2A32D3037753F755661AC5F60"x
NewFileData = NewFileData || "65653F4068379E6E242D9C370A10AA7F3259ADACACAB6359574949B608837314899A4E4A3708158913D655894E9A85D23C089C4C8B9F2514E7E8E9EAEBECEDEE"x
NewFileData = NewFileData || "E86DCCA3F3F4F32D09F8F9FAFBFCFDFEFFE46E8DC8C5AB8A8D1C47D4E8E861AC8CB03143902451B06CD09D2A4878847935A4A3AB57B0C60881A86542C5372E1E"x
NewFileData = NewFileData || "FFF1D85303C29F8E6460B15AC80AA2C40A3C4C069487CB85CB471868E090A1A087C399AB90F2C10068E7A03810A030C0040507A23DD69E48B0D2064391179338"x
NewFileData = NewFileData || "9DECF9C7E59F439824748BA0F589214895B8954DAB296C27A728FFE9DDCB371FDE7A80030B1E4CB8B0E1140B122B5ECCB8B1E3C79013FF1D48686D9C3B07ED20"x
NewFileData = NewFileData || "D313B163C65335FE8CA55C68429DCC7960CA129645C810216892CC182D024E2F3C3A4ADAD042A415C72122555F1817EFA9E91C6A567DFCB271E351E09D33D256"x
NewFileData = NewFileData || "30C54EC96147B67871D01C5630D55C741647A94A63C71ABBF71805794C58E788CA26D726E412A31D18322EB077E825D94C3525AD211F7595155217684BF4D0C0"x
NewFileData = NewFileData || "B030C668710519EAE1419C2028FD62960CE5CD908343EA2574051FBC5034602E172A610A1F39E4F4618AA744C0D40C628DE8425DD0D4F0958B3720B21538D820"x
NewFileData = NewFileData || "B003021684080103143C124E8CE3F5642006CF28720805D158C0D6053620F08C5A124009A302D664F9CC2F1396D3D34F4B58104E05456A7201946F4DC2402218"x
NewFileData = NewFileData || "44C24951694E52C874B92C218E81738A03E69E7E6A829F85610A545B038826AAE8A28C36EAE8A3882679D8A494565A4208003B5031444449520D0A5031444449"x
NewFileData = NewFileData || "520D0A5031444449520D0A5031444449520D0A5031444449520D0A5031444449520D0A"x
#DefineRexx
<$RebuildFile FILE="search.gif">
#endif
#endif
;----------------------------------------------------------------------------
;--- CONTENTS VARIABLES -----------------------------------------------------
;----------------------------------------------------------------------------
#RexxVar RxUniqueContentsNumb = 0 ;;Number each item 1,2,3 ...
#RexxVar RxContentsLevel = 0 ;;"Indenting" level
#RexxVar RxContentsSimple = "" ;;Simple list based contents (fully expanded)
#RexxVar RxContentsJava = "" ;;Java based contents
;----------------------------------------------------------------------------
;--- CONTENTS ---------------------------------------------------------------
;----------------------------------------------------------------------------
#if ['<$DocType>' = 'HTML']
#define _AddToContents \
;--- Have another contents item ------------------------------- -\
#RexxVar RxUniqueContentsNumb + '1' -\
-\
;--- Simple - Need to change levels? ------------------------- -\
#if [RxHeadingLevel <> RxContentsLevel] -\
;--- Simple - Need to generate at least one "<UL>" or "</UL>" -- -\
#if [RxHeadingLevel > RxContentsLevel] -\
#evaluate "" do RxHeadingLevel-RxContentsLevel; RxContentsSimple = RxContentsSimple || '<UL><?NewLine>'; end -\
#elseif -\
#evaluate "" do RxContentsLevel-RxHeadingLevel; RxContentsSimple = RxContentsSimple || '</UL><?NewLine>'; end -\
#endif -\
#RexxVar RxContentsLevel = RxHeadingLevel -\
#endif -\
-\
;--- Simple - Add contents item ------------------------------ -\
#evaluate "" RxContentsSimple = RxContentsSimple || "<LI><" || '$LinkTo ID=■{$Id $$SQx2}■ TEXT=■{$Text $$SQx2}■><?NewLine>' -\
-\
;--- Want Java based Navigation? ----------------------------- -\
#ifdef OL_DOC_TRY_JAVA_NAVIGATION -\
;--- Java - Remember this item was at this level --------- -\
#RexxVar RxLastContentsItem.<??RxHeadingLevel> = '{$Text}' -\
-\
;--- Java - Add contents item ---------------------------- -\
#evaluate "" RxContentsJava = RxContentsJava || '<param name="item<??RxUniqueContentsNumb>" value ="' || RxLastContentsItem.1 -\
#evaluate "" do I=2 to RxHeadingLevel; RxContentsJava = RxContentsJava || '/' || RxLastContentsItem.I; end; -\
#evaluate "" RxContentsJava = RxContentsJava || ';' || ';<??RxValidId>.<$HtmlExtension>;{$Text}"><?NewLine>' -\
#endif
#define _GenerateContentsHtml \
;--- Simple - Output Start of HTML --------------------------- -\
<$HeadingCodes TEXT='<$OL_DOC_HTML_CONTENTS_TITLE>'><?NewLine> -\
<CENTER><H1><$OL_DOC_HTML_CONTENTS_TITLE></H1></CENTER><?NewLine> -\
-\
;--- Simple - Output contents (use d2c(10) to process macros - -\
#evaluate "" do RxContentsLevel; RxContentsSimple = RxContentsSimple || '</UL><?NewLine>'; end -\
#evaluate "" "RxContentsSimple = RxContentsSimple || d2c(10)" -\
<UL><??RxContentsSimple></UL> ;;Extra indenting -\
-\
;--- Want Java based Navigation? ----------------------------- -\
#ifdef OL_DOC_TRY_JAVA_NAVIGATION -\
;--- Generate separate contents for testing for now ---------- -\
<P>Please try the <A HREF="treecont.htm">Java TREE</A> version of \
this contents and <A HREF="mailto:<?PpwizardAuthorEmail>?subject=PPWIZARD JAVA TREE CONTENTS">tell me</A> \
if it works and if it does what operating system, browser, java version ("java -version") etc \
you are using and whether you liked the way it works. THANKS. -\
#output "treecont.htm" -\
<$HeadingCodes TEXT='JAVA TREE TEST - <$OL_DOC_HTML_CONTENTS_TITLE>'><?NewLine> -\
<CENTER><H1>JAVA TREE TEST - <$OL_DOC_HTML_CONTENTS_TITLE></H1></CENTER><?NewLine> -\
<?NewLine> -\
<applet width="100%" height="70%" name="Tree" code="TreeApp.class" align="top"> -\
<?NewLine><??RxContentsJava> -\
</applet> -\
<?NewLine> -\
#ifdef OL_DOC_HTML_FOOTER -\
<$OL_DOC_HTML_FOOTER CONTENTS='Y'> -\
#endif -\
<?NewLine> -\
</BODY></HTML> -\
#output -\
#endif -\
-\
;--- Complete the HTML index page ---------------------------- -\
#RexxVar HtmlPrevId1 = '' -\
#RexxVar HtmlPrevIdText1 = '' -\
#RexxVar HtmlPrevId2 = '' -\
#RexxVar HtmlPrevIdText2 = '' -\
#RexxVar HtmlNextId = '' -\
#RexxVar HtmlNextIdText = '' -\
#ifdef OL_DOC_HTML_FOOTER -\
<$OL_DOC_HTML_FOOTER CONTENTS='Y'> -\
#endif -\
<$_HeadingEndHtml> ;;Finish off contents
#endif