Sage-ST ä

Hypertxt

Documentation

CaseSensitivity DefineColors DefineFileMarkers DefineWindowMotion
ExitInformation OptimizePerformance STRExitInformation STRShowHyperText
ShowHyperText




  procedure ShowHyperText
             (const FileName    : array of char;
              const chapterName : array of char;
              const firstLine   : cardinal;
              const lastLine    : cardinal;
              const leftColumn  : cardinal;
              const rightColumn : cardinal;
              var   successful  : boolean); overload; stdcall;

  exports ShowHyperText (const FileName    : array of char;
                         const chapterName : array of char;
                         const firstLine   : cardinal;
                         const lastLine    : cardinal;
                         const leftColumn  : cardinal;
                         const rightColumn : cardinal;
                         var   successful  : boolean) name 'HyperTxt_ShowHyperText';

  //*
  //  ShowHyperText - Process a hypertext file.
  //
  //
  //  This procedure processes a hypertext file and displays
  //  it on the screen in the defined window area.  The hypertext
  //  display area reserves the top line, bottom line, right
  //  most and left most columns for border and command
  //  information.  Enough room should therefore be allowed
  //  in the remaining area for text display.
  //
  //  The user is allowed to negotiate the contents of the
  //  hypertext file by selecting links and going forward to linked
  //  chapters, or by returning from a linked chapter to the
  //  previous chapter. In a chapter, any alphanumeric key may
  //  be pressed to provide a quick search and locate and
  //  highlight capability.  The Backspace key may be used to reduce
  //  the size of the current search string as shown.  Help is
  //  available at anytime by pressing the help key indicated at
  //  the bottom of the displayed chapter.
  //
  //  The keys available to the user in hypertext are tied to the
  //  standard SAGE key definitions and may be change using
  //  'Display.DefineFunctionKey'.  if THE EXIT KEY (#21) IS NOT
  //  DEFINED, HYPERTEXT WILL NOT BE ALLOWED to CONTINUE.
  //
  //  function #  Name                   Description
  //  ----------  -------       -------------------------------
  //        1)      forward       Scroll right 1 column
  //        2)      backward      Scroll left 1 column
  //        3)      up            Scroll up 1 line
  //        4)      down          Scroll down 1 line
  //        5)      tab           Move to next highlighted link
  //        6)      backtab       Move to previous highlighted lnk
  //        8)      helpexit      Help
  //        10)     exitform      Progress to the next ref. chapt.
  //        13)     bw            Black & white toggle
  //        17)     copyscreen    Copy the current chapter to a file
  //        18)     pagedown      Scroll down 1 page
  //        19)     pageup        Scroll up 1 page
  //        21)     exit1         Terminate the hypertext session
  //        22)     exit2         Return to the previous chapter
  //        23)     exit3         Repeat the previous search from current loc.
  //        24)     exit4         Return to the first chapter shown
  //        25 .. 30) exit5-exit10  Terminate the hypertext session
  //        31)     firstpage     Move to top page
  //        32)     lastpage      Move to bottom page
  //        41 .. 59) exit11-exit28 Terminate the hypertext session
  //        59)     exit29        Go to first chapter then prev item's ref.
  //        60)     exit30        Go to first chapter then next item's ref.
  //
  //  This procedure reads and processes an ASCII text file
  //  which has been prepared with special markers to designate
  //  chapter beginnings, chapter names, links, highlighted areas
  //  and so forth.  This text file normally begins with a table of
  //  contents chapter with links to all major chapters.  A forward
  //  link may reference a chapter in the current text file, or
  //  a chapter from another designated text file.
  //
  //  This procedure may also be used to process an unmarked text file.
  //  If the file contains no chapter markings, then the entire file is
  //  assumed to be one chapter.  Of course, no forward links to other
  //  chapters will be recognized since they would not exist within an
  //  unmarked file.
  //
  //  By default, the special markers are defined as follows -
  //
  //      character         Default    Description
  //      --------------    --------   -------------------------------------
  //      chapterChar       ASCIIX.ff   chapter beginning
  //      linkChar          '@'        link entry
  //      fileChar          '^'        file reference in link entry
  //      searchChar        '%'        search reference in link entry
  //      highlightStart    '['        highlight start
  //      highlightEnd      ']'        highlight end
  //      boldStart         '^B'       Start of bold
  //      boldEnd           '^b'       End of bold
  //
  //  The marker characters may be changed using the
  //  'HyperTxt.DefineFileMarkers' procedure supplied with this package.
  //  If a special marker character needs to be used in normal text
  //  of the file, it may be used by entering it twice (e.g. '@@' to
  //  represent a '@' character).
  //
  //  An example of a file with markers which may be processed by this
  //  procedure follows
  //     (<ff> is used to designate the ASCIIX.ff character
  //  in this example) -
  //
  //     --------------------------------------------------------------
  //     <ff>* Sample HyperText Chapters
  //     @SubjectA[Information for Subject A]
  //     @SubjectB[Information for Subject B]
  //     @SubjectC[Information for Subject C]
  //     @SubjectD^DFILE%select[Information for Subject D]
  //     <ff>SubjectA
  //     ^BSubject-A Chapter Information^b
  //
  //        This is subject information for 'Subject A'.  For further
  //        information, you may select @MinorSubjectA1[Subject A.1]
  //        or @MinorSubjectA2^HFILE2[Subject A.2].
  //     --------------------------------------------------------------
  //
  //  A description of terminology follows -
  //
  //  Chapter - A section of material which may be paged through as
  //              a complete area within the library.  Each chapter
  //              is preceded by the 'chapterChar' (ASCIIX.ff by default)
  //              and is assigned a Chapter Name within the text.  The
  //              chapter name '*' is used for the chapter which
  //              contains the table of contents (normally the first
  //              chapter). A chapter name may be no longer than 20
  //              characters and may not contain embedded blanks.
  //              A chapter may not contain more than 2000 lines of
  //              text.
  //
  //              In the previous example, two chapter examples are
  //              given as follows -
  //
  //              <ff>* Sample HyperText Chapters
  //              <ff>SubjectA
  //
  //              The name of the first chapter is '*'.  Notice that a
  //              blank acts as a delimiter and the text which follows the
  //              '*' is part of the chapter's text.  The name of the
  //              second chapter shown is 'SubjectA' and because not text
  //              follows, the first line of that chapter is blank.
  //
  //  Link    - A reference from one chapter to another.  This item
  //              is displayed in bold characters and will cause a display
  //              of the associated chapter when selected.  One or more
  //              links may be present within a chapter.  If no links are
  //              present, the user may only return from a chapter.
  //              In the previous example, one of the links was shown as
  //              follows -
  //
  //              @SubjectD^DFILE%select[Information for Subject D]
  //
  //              In this example, the chapter name is 'SubjectD'.
  //              It will be found in another file which is named 'DFILE'.
  //              When the chapter is located, the first occurrence of
  //              'select' will be found, highlighted, and the cursor
  //              located there.  The user will be shown the link as
  //              the highlighted string 'Information for Subject D'.
  //
  //              Note in the example of a page of a hypertext file that
  //              link references may be embedded within the actual
  //              text of a chapter.
  //
  //  CALLING SEQUENCE -
  //
  //    ShowHyperText (fileName, chapterName, firstLine, lastLine,
  //                   leftColumn, rightColumn, successful)
  //
  //  ENTRY -
  //
  //    fileName : array of char
  //      Name of hypertext file.
  //
  //    chapterName : array of char
  //      The name of the first chapter in the given file
  //      to be shown.  If this name if a null string or
  //      a blank string, then the chapter named '*' is
  //      located if it exists, or the first chapter
  //      on the file if '*' does not exists.
  //
  //    firstLine : cardinal
  //      Top line of the screen where the text should
  //      appear (1 .. n).
  //
  //    lastLine : cardinal
  //      Bottom line of the screen where the text should
  //      appear (firstLine .. n).
  //
  //    leftColumn : cardinal
  //      Left most column on the screen where the text should
  //      appear (1 .. 80);
  //
  //    rightColumn : cardinal
  //      Right most column on the screen where the text should
  //      appear (leftColumn .. 80).
  //
  //  EXIT -
  //
  //    successful : boolean
  //      Access and processing of file was successful (True).
  //
  //  EXAMPLE -
  //
  //    MODULE HyperT;
  //
  //    IMPORT CmndLine;
  //
  //    IMPORT HyperTxt;
  //
  //    IMPORT Display;
  //
  //
  //    var
  //
  //      fileName : SageSpec.LongPathType;
  //
  //
  //      done : boolean;
  //
  //    begin
  //      GetCommandField (1, fileName, done);
  //      if (done) then begin
  //        DefineFunctionKey (8, ASCIIX.nul,  Chr (59));
  //        DefineFunctionKey (21, ASCIIX.nul,  Chr (68));
  //        DefineFunctionKey (22, ASCIIX.esc, ASCIIX.nul);
  //        DefineWindowMotion (2, 4, 2, 5, 20, 0);
  //        ShowHyperText (fileName, '', 1, 24, 1, 80, done);
  //      end;
  //    end;   HyperT.
  //




  procedure ShowHyperText
             (const FileName    : string;
              const chapterName : string;
              const firstLine   : cardinal;
              const lastLine    : cardinal;
              const leftColumn  : cardinal;
              const rightColumn : cardinal;
              var   successful  : boolean); overload; stdcall;

  exports ShowHyperText (const FileName    : string;
                         const chapterName : string;
                         const firstLine   : cardinal;
                         const lastLine    : cardinal;
                         const leftColumn  : cardinal;
                         const rightColumn : cardinal;
                         var   successful  : boolean) name 'HyperTxt_STRShowHyperText';

  //*
  //  STRShowHyperText - See documentation of ShowHyperText.
  //




  procedure DefineFileMarkers
             (const chapterChar    : char;
              const linkChar       : char;
              const fileChar       : char;
              const searchChar     : char;
              const highlightStart : char;
              const highlightEnd   : char;
              const prefixChar     : char;
              const boldStart      : char;
              const boldEnd        : char); stdcall;

  exports DefineFileMarkers name 'HyperTxt_DefineFileMarkers';

  //*
  //  DefineFileMarkers - Define the signal characters for the hypertext file.
  //
  //
  //  This procedure allows the redefinition of the special characters
  //  used by the hypertext file designate various available options.
  //  The characters and default characters are as follows -
  //
  //      character         Default    Description
  //      --------------    --------   -------------------------------------
  //      chapterChar       ASCIIX.ff   chapter beginning
  //      linkChar          '@'        link entry
  //      fileChar          '^'        file reference in link entry
  //      searchChar        '%'        search reference in link entry
  //      highlightStart    '['        char. designating the highlight start
  //      highlightEnd      ']'        char. designating the highlight end
  //      prefixChar        '^'        Prefix character for special effects
  //      boldStart         'B'        Start of bold (follows prefixChar)
  //      boldEnd           'b'        End of bold (follows prefixChar)
  //
  //  CALLING SEQUENCE -
  //
  //    DefineFileMarkers (chapterChar, linkChar, fileChar, searchChar,
  //                       highlightStart, highlightEnd, prefixChar,
  //                       boldStart, boldEnd)
  //
  //  ENTRY -
  //
  //    chapterChar : char
  //      The character which indicates the beginning of a new chapter
  //      and immediately precedes the chapter name.  The chapter
  //      name may be from 1 to 20 characters in length.  The special
  //      name '*' will be the first chapter shown and is therefore
  //      normally used for the table of contents.
  //      The first chapter of the text file is not preceded with
  //      a chapterChar.
  //
  //    linkChar : char
  //      The character which immediately precedes the link name
  //      of from 1 to 20 characters in length.  The entire
  //      link information area is given in the following example
  //      (using the default special indicator characters)
  //
  //      @linkname^filename%searchname[highlight text]
  //
  //      Note - filename and searchname information is optional
  //
  //      If a file name is given with a blank or empty chapter
  //      link name, then the file will be treated as an 'unmarked'
  //      file containing no chapters and presented accordingly.
  //
  //    fileChar : char
  //      The optional character which follows somewhere after the
  //      linkChar and link name and before the beginning of the
  //      link's highlightStart.  If given, this designates
  //      the file (other than the current file) where the indicated
  //      link's chapter information may be found.
  //
  //    searchChar : char
  //      The optional character which follows somewhere after the
  //      linkChar and link name and before the beginning of the
  //      link's highlightStart.  If given, this character is
  //      followed by a search string.  If this 'search string'
  //      is found (non case sensitive) in the linked chapter,
  //      the first occurrence will be highlighted when that chapter
  //      is displayed.
  //
  //    highlightStart : char
  //      The character which designates the beginning of the area
  //      which should be highlighted when a link is shown.
  //
  //    highlightEnd : char
  //      The character which designates the end of the area
  //      which should be highlighted when a link is shown.
  //
  //    prefixChar : char
  //      The character which procedes certain special effects
  //      chacters (such as boldStart).  If this character is
  //      to be used in the text 'as is', then it may be entered
  //      twice (e.g.  ^^).
  //
  //    boldStart : char
  //      The character which, when following the 'prefixChar',
  //      indicates the beginning of bold text.
  //
  //    boldEnd : char
  //      The character which, when following the 'prefixChar',
  //      indicates the end of bold text.
  //




  procedure DefineColors
             (const Normal       : char;
              const highlightIn  : char;
              const highlightOut : char;
              const searchFound  : char;
              const Header       : char;
              const footer       : char;
              const sides        : char;
              const Bold         : char;
              const Help         : char;
              const helpBorder   : char); stdcall;

  exports DefineColors name 'HyperTxt_DefineColors';

  //*
  //  DefineColors - Redefine the colors used by HyperText.
  //
  //
  //  This procedure allows the redefinition of the colors
  //  used by the HyperText system.  These colors and their
  //  defaults are as follows -
  //
  //   function           color                 description
  //   ------------  ------------------  ------------------------------
  //   normal          7 white on black  normal text color
  //   highlightIn   112 blank on white  highlight link when cursor in
  //   highlightOut   11 cyan on black   ighlight link outside cursor
  //   searchFound    14 yello on black  string found in search
  //   header         30 yellow on blue  header color
  //   footer         31 white on blue   color of footer information
  //   sides          48 blank on cyan   color of side borders
  //   bold           15 intense white   bold color
  //   help           47 white on green  help area color
  //   helpBorder     10 green on black  help top and bottom border color
  //
  //  For a description of color numbers, reference the
  //  ThorPort.SetAppearance procedure.
  //
  //  CALLING SEQUENCE -
  //
  //    DefineColors (normal, highlightIn, highlightOut, header, footer,
  //                  sides, bold, help)
  //
  //  ENTRY -
  //
  //    normal : char
  //      Color of the normal text of a chapter.
  //
  //    highlightIn : char
  //      The color of the highlighted part of a link when the
  //      cursor is in that link area.
  //
  //    highlightOut : char
  //      The color of the highlighted part of a link when the
  //      cursor is not in that link area.
  //
  //    searchFound : char
  //      The color of the portion of the string within the
  //      text which matches the string search.
  //
  //    header : char
  //      The color of the general information at the top of
  //      the display.
  //
  //    footer : char
  //      The color of the general information at the bottom of
  //      the display.
  //
  //    sides : char
  //      The color of the border at both sides of the display.
  //
  //    bold : char
  //      The color of the text when bold is required.
  //
  //    help : char
  //      The color of the help area (when presented).
  //
  //    helpBorder : char
  //      The color of the help area border on the top and bottom.
  //




  procedure DefineWindowMotion
             (const topRowChange     : integer;
              const leftColumnChange : integer;
              const heightChange     : cardinal;
              const widthChange      : cardinal;
              const minimumHeight    : cardinal;
              const minimumWidth     : cardinal); stdcall;

  exports DefineWindowMotion name 'HyperTxt_DefineWindowMotion';

  //*
  //  DefineWindowMotion - Define a changing window.
  //
  //
  //  This procedure defines a changing window for the
  //  hypertext page display as the user moves through each
  //  successive level of links.  By default, the window
  //  position and size remain the same as the original.
  //  The window may be defined to change in location
  //  and/or size as the user selects a link.  The window
  //  may never be larger than the original definition.
  //  The window will continue to move as the link
  //  selection is stacked until the required size can
  //  no longer fit on the screen.
  //
  //  Using these options, a layered or drop down effect window
  //  may be presented.
  //
  //  CALLING SEQUENCE -
  //
  //    DefineWindowMition (topRowChange, leftColumnChange,
  //                        heightChange, widthChange,
  //                        minimumHeight, minimumWwidth);
  //
  //  ENTRY -
  //
  //    topRowChange : integer
  //      The amount that the top row of the window
  //      will change with each link selection.  If
  //      the number is negative, the window will move
  //      up, positive will move down.  For example,
  //      if the original window was defined to be
  //      positioned on row 1 and this value was +2,
  //      then the first selected link would show a
  //      window which was position beginning at
  //      row 3, a link selected from that chapter
  //      would display in a window beginning at row
  //      5, etc.
  //
  //    leftColumnChange : integer
  //      The amount that the left column edge of the
  //      window will change with each link selection.
  //      If the number is negative, the window will
  //      move left, positive will move right.
  //
  //    heightChange : cardinal
  //      The number of rows that the windos wize will
  //      be REDUCED BY with each successive link
  //      selection.
  //
  //    widthChange : cardinal
  //      The number of columns that the window size
  //      will be REDUCED BY with each successive
  //      link selection.
  //
  //    minimumHeight : cardinal
  //      The minimum number of rows to which the window
  //      should be allowed to shrink.
  //
  //    minimumWidth : cardinal
  //      The minimum number of columns to which the window
  //      should be allowed to shrink.
  //




  procedure OptimizePerformance
             (const optMethod : optType); stdcall;

  exports OptimizePerformance name 'HyperTxt_OptimizePerformance';




  procedure CaseSensitivity
             (const upperLowerCase : boolean); stdcall;

  exports CaseSensitivity name 'HyperTxt_CaseSensitivity';

  //*
  //  CaseSensitivity - Set the case sensitivity for links.
  //
  //
  //  This procedure sets the upper/lower case sensitivity for
  //  the link references within the hypertext source file.
  //  Iff 'upperLowerCase' is set, then the upper and lower
  //  case of ASCII characters for each link reference is
  //  honored (e.g.  ABC < Abc < abc in ASCII sort order).
  //  By default, when the 'HyperTxt' library is used,
  //  upper/lower case sensitivity is set to False (all
  //  ASCII characters compare as upper case characters).
  //
  //  CALLING SEQUENCE -
  //
  //    CaseSensitivity (upperLowerCase)
  //
  //  ENTRY -
  //
  //    upperLowerCase : boolean
  //      Search and compare is upper and lower case sensitive
  //      (True) or all character compare as upper case (False).
  //




  procedure ExitInformation
             (var   currentChapter : array of char;
              var   nextChapter    : array of char;
              var   exitFunction   : cardinal); overload; stdcall;

  exports ExitInformation (var   currentChapter : array of char;
                           var   nextChapter    : array of char;
                           var   exitFunction   : cardinal) name 'HyperTxt_ExitInformation';

  //*
  //  ExitInformation - Return information about the last exit.
  //
  //
  //  This procedure returns information about the last exit
  //  from hypertxt.  This information remains in the hypertext
  //  library until again executed.
  //
  //  CALLING SEQUENCE -
  //
  //    ExitInformation (currentChapter, nextChapter, exitFunction)
  //
  //  EXIT -
  //
  //    currentChapter : array of char
  //      The chapter in which the user was resident when the
  //      hypertext session was terminated.
  //
  //    nextChapter : array of char
  //      The next chapter to which the user would have gone
  //      if a forward reference were requested instead of
  //      a hypertxt exit.
  //
  //    exitFunction : cardinal
  //      The type of exit requested.  This would normall be
  //      one of the following -
  //
  //      21)     exit1          Terminate the hypertext session
  //      22)     exit2          Return to the previous chapter
  //      25-30)  exit5-exit10   Terminate the hypertext session
  //      41-60)  exit11-exit30  Terminate the hypertext session
  //




  procedure ExitInformation
             (var   currentChapter : string;
              var   nextChapter    : string;
              var   exitFunction   : cardinal); overload; stdcall;

  exports ExitInformation (var   currentChapter : string;
                           var   nextChapter    : string;
                           var   exitFunction   : cardinal) name 'HyperTxt_STRExitInformation';

  //*
  //  STRExitInformation - See documentation of ExitInformation.
  //




Send mail to   warren.merrill@inl.gov with questions or comments about this web site.
Copyright © 1989-2006 Battelle Energy Alliance