home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / languages / obrn-a_1.5_lib.lha / oberon-a / source2.lha / Source / 3rdParty / IntuiSup.mod < prev    next >
Encoding:
Text File  |  1995-01-26  |  27.1 KB  |  776 lines

  1. (*************************************************************************
  2.  
  3.      $RCSfile: IntuiSup.mod $
  4.   Description: Interface to intuisup.library
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 2.10 $
  8.       $Author: fjc $
  9.         $Date: 1995/01/26 00:27:39 $
  10.  
  11.   Copyright © 1994-1995, Frank Copeland.
  12.   This file is part of the Oberon-A Library.
  13.   See Oberon-A.doc for conditions of use and distribution.
  14.  
  15. *************************************************************************)
  16.  
  17. <* STANDARD- *> <* INITIALISE- *> <* MAIN- *>
  18. <*$ CaseChk-  IndexChk- LongVars+ NilChk-  *>
  19. <*$ RangeChk- StackChk- TypeChk-  OvflChk- *>
  20.  
  21. MODULE [2] IntuiSup;
  22.  
  23. IMPORT
  24.   SYS := SYSTEM, Kernel, e := Exec, gfx := Graphics, df := DiskFont,
  25.   i := Intuition, s := Sets;
  26.  
  27.  
  28. (* $Revision Header *** Header built automatically - do not edit! ***********
  29.  *
  30.  *      (C) Copyright 1991 by Torsten Jürgeleit
  31.  *
  32.  *      Name .....: intuisup.h
  33.  *      Created ..: Sunday 22-Dec-91 20:34:40
  34.  *      Revision .: 14
  35.  *
  36.  *      Date        Author                 Comment
  37.  *      =========   ====================   ====================
  38.  *      08-Aug-92   Torsten Jürgeleit      new flags
  39.  *                                         gadgetDataFlagInputCENTER/RIGHT
  40.  *      06-Aug-92   Torsten Jürgeleit      new flag
  41.  *                                         gadgetDataFlagListviewEntryCOLOR
  42.  *      28-Jul-92   Torsten Jürgeleit      different centering types for
  43.  *                                         requesters
  44.  *      28-Jul-92   Torsten Jürgeleit      open window centered over position
  45.  *                                         of mouse pointer
  46.  *      11-Jul-92   Torsten Jürgeleit      use RAWKEY instead of VANILLAKEY
  47.  *                                         for gadget hotkeys
  48.  *      01-Jul-92   Torsten Jürgeleit      added support for custom slider
  49.  *                                         knob image
  50.  *      21-Jun-92   Torsten Jürgeleit      check for compiler and define
  51.  *                                         differences
  52.  *      03-Jun-92   Torsten Jürgeleit      alternate color for menu item texts
  53.  *      14-Apr-92   Torsten Jürgeleit      neq flag gadgetDataFlagNoCLEAR
  54.  *      12-May-92   Torsten Jürgeleit      text colors for IClearWindow()
  55.  *      30-Apr-92   Torsten Jürgeleit      rasters for IClearWindow() and
  56.  *                                         requesters
  57.  *      01-Apr-92   Torsten Jürgeleit      changed parameter size of
  58.  *                                         IModifyGadget() for new value of
  59.  *                                         useCurrentValue 31
  60.  *      31-Mar-92   Torsten Jürgeleit      changed useCurrentValue from ~0L
  61.  *                                         to 31
  62.  *      21-Mar-92   Torsten Jürgeleit      flags for converting numbers with
  63.  *                                         string gadgets
  64.  *      22-Dec-91   Torsten Jürgeleit      Created this file!
  65.  *
  66.  ****************************************************************************
  67.  *
  68.  *      Includes, defines, structures, prototypes and pragmas for IntuiSup
  69.  *      library
  70.  *
  71.  * $Revision Header ********************************************************)
  72.  
  73.  
  74. CONST
  75.  
  76.         (* Defines for library *)
  77.  
  78.   intuisupName * = "intuisup.library";
  79.   version      * = 4;
  80.  
  81.         (* Defines for render *)
  82.  
  83.   maxRenderImages = 11;
  84.  
  85.   riInnerWindow * = 0; (* use upper left corner of inner window as location (0,0) *)
  86.   riBackFill    * = 1; (* fill window back ground with different color *)
  87.   riAvailFonts  * = 2; (* scan available fonts and use this list for IAskFont/IOpenFont *)
  88.  
  89. TYPE
  90.  
  91.   RenderInfoPtr* = POINTER TO RenderInfo;
  92.   RenderInfo* = RECORD
  93.     id                   * : LONGINT; (* id = 'ISUP' *)
  94.     screen               * : i.ScreenPtr;
  95.     screenWidth          * : e.UWORD;
  96.     screenHeight         * : e.UWORD;
  97.     screenDepth          * : SHORTINT;
  98.     windowBorderTop      * : SHORTINT;
  99.     windowBorderLeft     * : SHORTINT;
  100.     windowBorderRight    * : SHORTINT;
  101.     windowBorderBottom   * : SHORTINT;
  102.     highlightPen         * : SHORTINT;
  103.     shadowPen            * : SHORTINT;
  104.     textPen1             * : SHORTINT;
  105.     textPen2             * : SHORTINT;
  106.     backPen              * : SHORTINT;
  107.     flags                * : s.SET16;
  108.     imageDataSize        * : e.ULONG;
  109.     imageData            * : e.APTR;
  110.     availFontsHeaderSize * : e.ULONG;
  111.     availFontsHeader     * : df.AvailFontsHeaderPtr;
  112.     textFont             * : gfx.TextFontPtr;
  113.     textAttr             * : gfx.TextAttr;
  114.     images               * : ARRAY maxRenderImages OF i.Image;
  115.   END; (* RenderInfo *)
  116.  
  117. CONST
  118.  
  119.   dataEnd * = 0;          (* mark end of data arry *)
  120.  
  121.   id *      = 49535550H;  (* "ISUP" *)
  122.  
  123.         (* Defines for open window flags *)
  124.  
  125.   owCenterScreen * = 0;   (* center window on screen *)
  126.   owRenderPens   * = 1;   (* use render pens for detail and backfill pen *)
  127.   owCenterMouse  * = 2;   (* center window over current position of mouse pointer *)
  128.  
  129.         (* Defines for clear window flags *)
  130.  
  131.   cwCustomDrawMode * = 0; (* don't change draw mode *)
  132.   cwCustomColor    * = 1; (* don't change background color *)
  133.   cwNormalColor    * = 2; (* use normal background color *)
  134.   cwUseRaster      * = 3; (* use standard raster for window background *)
  135.   cwAbsolutePos    * = 4; (* don't add window border offset to given upper left position *)
  136.   cwText1Color     * = 5; (* use text color 1 *)
  137.   cwText2Color     * = 6; (* use text color 2 *)
  138.  
  139.         (* Defines for texts *)
  140.  
  141.   text           * = 1;
  142.   numUnsignedDec * = 2;
  143.   numSignedDec   * = 3;
  144.   numHex         * = 4;
  145.   numBin         * = 5;
  146.  
  147.   tdBold             * = 0;
  148.   tdItalic           * = 1;
  149.   tdUnderlined       * = 2;
  150.   tdAbsolutePos      * = 3;  (* absolute text pos given - don't add border offsets *)
  151.   tdCenter           * = 4;  (* center text with in window width *)
  152.   tdPlaceLeft        * = 5;  (* place text left of given left edge *)
  153.   tdColor2           * = 6;  (* use 2nd text render pen *)
  154.   tdComplement       * = 7;  (* use complement of front and back pen *)
  155.   tdBackFill         * = 8;  (* use draw mode JAM2 to fill text background with riBackPen *)
  156.   tdNoPrint          * = 9;  (* don't print text - only calc width *)
  157.   tdNumIdentifier    * = 10; (* convert number with normal (assmebler style) leading identifier `$' or `%' *)
  158.   tdNumCStyle        * = 11; (* use C style identifier `0x' for hex numbers *)
  159.   tdNumLeadingZeroes * = 12; (* convert number includeing leading zeroes *)
  160.   tdNumUpperCase     * = 13; (* use upper case characters for hex number *)
  161.  
  162.   cIdentifier    * = 0; (* convert number with normal (assmebler style) leading identifier `$' or `%' *)
  163.   cCStyle        * = 1; (* use C style identifier `0x' for hex numbers *)
  164.   cLeadingZeroes * = 2; (* convert number includeing leading zeroes *)
  165.   cUpperCase     * = 3; (* use upper case characters for hex number *)
  166.  
  167. TYPE
  168.  
  169.         (* Structures for texts *)
  170.  
  171.   TextDataPtr * = POINTER TO TextData;
  172.   TextData * = RECORD
  173.     type     * : e.UWORD;
  174.     flags    * : s.SET16;
  175.     leftEdge * : INTEGER;
  176.     topEdge  * : INTEGER;
  177.     text     * : e.LSTRPTR;
  178.     textAttr * : gfx.TextAttrPtr;
  179.   END; (* TextData *)
  180.   TextDataListPtr * = POINTER TO ARRAY 32767 OF TextData;
  181.  
  182. CONST
  183.  
  184.         (* Defines for borders *)
  185.  
  186.   box1Out * = 1;
  187.   box1In  * = 2;
  188.   box2Out * = 3;
  189.   box2In  * = 4;
  190.  
  191. TYPE
  192.  
  193.         (* Structures for borders *)
  194.  
  195.   BorderDataPtr * = POINTER TO BorderData;
  196.   BorderData * = RECORD
  197.     type * : e.UWORD;
  198.     leftEdge * : INTEGER;
  199.     topEdge * : INTEGER;
  200.     width * : e.UWORD;
  201.     height * : e.UWORD;
  202.   END; (* BorderData *)
  203.   BorderDataListPtr * = POINTER TO ARRAY 32767 OF BorderData;
  204.  
  205. CONST
  206.  
  207.         (* Defines for gadgets *)
  208.  
  209.   button         * = 1;  (* button gadget *)
  210.   check          * = 2;  (* checkbox gadget *)
  211.   mx             * = 3;  (* mutual exclude gadget *)
  212.   string         * = 4;  (* string input gadget *)
  213.   integer        * = 5;  (* integer input gadget *)
  214.   slider         * = 6;  (* slider gadget *)
  215.   scroller       * = 7;  (* scroller gadget *)
  216.   cycle          * = 8;  (* cycle gadget *)
  217.   count          * = 9;  (* count gadget *)
  218.   listView       * = 10; (* list view gadget *)
  219.   palette        * = 11; (* palette gadget *)
  220.  
  221.   gdDisabled             * = 0;  (* gadget disabled (ghosted) - default enabled *)
  222.   gdNoBorder             * = 1;  (* no gadget border - default with border *)
  223.   gdHighComp             * = 2;  (* highliting by complement - default by select border *)
  224.   gdOrientationVert      * = 3;  (* vertical orientation - default horizontal *)
  225.   gdHotKey               * = 4;  (* hotkey given - default none *)
  226.   gdNoTextOutput         * = 5;  (* no text output, but scan gadget text for hotkey *)
  227.   gdTextLeft             * = 6;  (* place text left of gadget *)
  228.   gdTextRight            * = 7;  (* place text right of gadget *)
  229.   gdTextAbove            * = 8;  (* place text above of gadget *)
  230.   gdTextBelow            * = 9;  (* place text below of gadget *)
  231.   gdTextColor2           * = 10; (* use 2nd text render pen for gadget text *)
  232.   gdButtonToggle         * = 11; (* button gadgets: toggle button - default no toggle *)
  233.   gdButtonImage          * = 12; (* button gadgets: render image - default no image *)
  234.   gdInputAutoActivate    * = 13; (* input gadgets: acivate after GADGETUP next or previous input gadget *)
  235.   gdStringUnsignedDec    * = 14; (* string gadgets: input default no pointer to string but an unsigned decimal number *)
  236.   gdStringSignedDec      * = 15; (* string gadgets: input default no pointer to string but an signed decimal number *)
  237.   gdStringHex            * = 16; (* string gadgets: input default no pointer to string but an hex number *)
  238.   gdStringBin            * = 17; (* string gadgets: input default no pointer to string but an binary number *)
  239.   gdScrollerNoArrows     * = 18; (* scroller gadget: no arrows - default with arrows *)
  240.   gdCountSignedDec       * = 19; (* count gadget: signed dec - default unsigned dec *)
  241.   gdListviewReadOnly     * = 20; (* list view gadget: read only - default selection enabled *)
  242.   gdListviewShowSelected * = 21; (* list view gadget: show last selected entry - default no *)
  243.   gdPaletteNoIndicator   * = 22; (* palette gadget: no current color indicator - default with indicator *)
  244.   gdPaletteIndicatorTop  * = 23; (* palette gadget: place indicator at top - default at left *)
  245.   gdMovePointer          * = 24; (* move mouse pointer to center of this gadget *)
  246.   gdNoClear              * = 25; (* don't clear area occupied by this gadget before drawing *)
  247.   gdSliderImage          * = 26; (* kludge to define image for knob of proportional gadget in gdTextAttr (if text then default TextAttr used) *)
  248.   gdListviewEntryColor   * = 27; (* list view gadget: if first char of an entry text equals <Ctrl A> ($01) then this char will be skipped and the rest of this entry text will be printed in a different color *)
  249.   gdInputCenter          * = 28; (* input gadgets: center input string within gadget *)
  250.   gdInputRight           * = 29; (* input gadgets: right justify input string within gadget *)
  251.  
  252.   giButton       * = { i.gadgetUp,   i.rawKey };
  253.   giCheck        * = { i.gadgetDown, i.rawKey };
  254.   giMX           * = { i.gadgetDown, i.rawKey };
  255.   giString       * = { i.gadgetUp,   i.rawKey };
  256.   giInteger      * = { i.gadgetUp,   i.rawKey };
  257.   giSlider       * = { i.gadgetUp,   i.mouseMove, i.rawKey };
  258.   giScroller     * = { i.gadgetDown, i.gadgetUp,  i.mouseMove,
  259.                        i.intuiTicks, i.rawKey };
  260.   giCycle        * = { i.gadgetUp,   i.rawKey };
  261.   giCount        * = { i.gadgetDown, i.gadgetUp,  i.mouseMove, i.rawKey };
  262.   giListview     * = { i.gadgetDown, i.gadgetUp,  i.mouseMove,
  263.                        i.intuiTicks, i.rawKey };
  264.   giPalette      * = { i.gadgetUp,   i.rawKey };
  265.   giAll          * = { i.gadgetDown, i.gadgetUp,  i.mouseMove,
  266.                        i.intuiTicks, i.rawKey };
  267.  
  268.   useCurrentValue       * = 80000000H;
  269.     (* used for setgadgetattributes() to indicate data for which to use
  270.        the current value *)
  271.  
  272. TYPE
  273.  
  274.   GadgetList * = POINTER TO RECORD END;
  275.   TextArrayPtr * = POINTER TO ARRAY 32767 OF e.LSTRPTR;
  276.  
  277.         (* Structures for gadgets *)
  278.  
  279.   GadgetDataPtr * = POINTER TO GadgetData;
  280.   GadgetData * = RECORD
  281.     type     * : e.ULONG;
  282.     flags    * : s.SET32;
  283.     leftEdge * : e.UWORD;
  284.     topEdge  * : e.UWORD;
  285.     width    * : e.UWORD;
  286.     height   * : e.UWORD;
  287.     text     * : e.LSTRPTR;
  288.     textAttr * : gfx.TextAttrPtr;
  289.   END; (* GadgetData *)
  290.  
  291.   StandardDataPtr * = POINTER TO StandardData;
  292.   StandardData * = RECORD (GadgetData) (* standard data struct *)
  293.     data1 * : LONGINT;
  294.     data2 * : LONGINT;
  295.     data3 * : e.APTR;
  296.   END; (* StandardData *)
  297.  
  298.   ButtonDataPtr * = POINTER TO ButtonData;
  299.   ButtonData * = RECORD (GadgetData) (* for button gadgets *)
  300.     selected     * : e.ULONG;    (* selection state for toggle buttons - ZERO * = unselected, non ZERO * = selected *)
  301.     normalRender * : i.ImagePtr; (* normal render image *)
  302.     selectRender * : i.ImagePtr; (* select render image *)
  303.   END; (* ButtonData *)
  304.  
  305.   CheckDataPtr * = POINTER TO CheckData;
  306.   CheckData * = RECORD (GadgetData) (* for check gadgets *)
  307.     selected * : e.ULONG; (* selection state - ZERO * = unselected, non ZERO * = selected *)
  308.     pad1     * : e.ULONG;
  309.     pad2     * : e.ULONG;
  310.   END; (* CheckData *)
  311.  
  312.   MXDataPtr * = POINTER TO MXData;
  313.   MXData * = RECORD (GadgetData) (* for mutual exclude gadgets *)
  314.     spacing     * : e.ULONG;      (* pixel spacing between MX gadgets *)
  315.     activeEntry * : e.ULONG;      (* num of active entry from text array *)
  316.     textArray   * : TextArrayPtr; (* ptr to MX text ptr array *)
  317.   END; (* MXData *)
  318.  
  319.   InputDataPtr * = POINTER TO InputData;
  320.   InputData * = RECORD (GadgetData) (* for string and integer gadgets *)
  321.     len          * : e.ULONG; (* len of input buffer *)
  322.     activateNext * : e.UWORD; (* num of next string/num gadget to activate *)
  323.     activatePrev * : e.UWORD; (* num of previous string/num gadget to activate *)
  324.     default      * : e.APTR;  (* string: default text [syntax: "text"] *)
  325.                               (* integer: default number [syntax: (VOID * )num] *)
  326.   END; (* InputData *)
  327.  
  328.   SliderDataPtr * = POINTER TO SliderData;
  329.   SliderData * = RECORD (GadgetData) (* for slider gadgets *)
  330.     min   * : LONGINT; (* min level *)
  331.     max   * : LONGINT; (* max level *)
  332.     level * : LONGINT; (* current slider level *)
  333.   END; (* SliderData *)
  334.  
  335.   ScrollerDataPtr * = POINTER TO ScrollerData;
  336.   ScrollerData * = RECORD (GadgetData) (* for scroller gadgets *)
  337.     visible * : e.ULONG; (* visible entries *)
  338.     total   * : e.ULONG; (* total entries *)
  339.     top     * : e.ULONG; (* current top entry *)
  340.   END; (* ScrollerData *)
  341.  
  342.   CycleDataPtr * = POINTER TO CycleData;
  343.   CycleData * = RECORD (GadgetData) (* for cycle gadget *)
  344.     spacing   * : e.ULONG;      (* pixel spacing between pop up cycle list entries *)
  345.     active    * : e.ULONG;      (* num of current cycle text ptr array entry *)
  346.     textArray * : TextArrayPtr; (* ptr to cycle text ptr array *)
  347.   END; (* CycleData *)
  348.  
  349.   CountDataPtr * = POINTER TO CountData;
  350.   CountData * = RECORD (GadgetData) (* for count gadget *)
  351.     min   * : e.ULONG; (* min value *)
  352.     max   * : e.ULONG; (* max value *)
  353.     value * : e.ULONG; (* current count value *)
  354.   END; (* CountData *)
  355.  
  356.   ListViewDataPtr * = POINTER TO ListViewData;
  357.   ListViewData * = RECORD (GadgetData) (* for list view gadget *)
  358.     spacing * : e.ULONG;   (* pixel spacing between list view entries *)
  359.     top     * : e.ULONG;   (* current top entry *)
  360.     list    * : e.ListPtr; (* current list ptr *)
  361.   END; (* ListViewData *)
  362.  
  363.   PaletteDataPtr * = POINTER TO PaletteData;
  364.   PaletteData * = RECORD (GadgetData) (* for palette gadget *)
  365.     depth       * : e.ULONG; (* num of bitplanes for palette *)
  366.     colorOffset * : e.ULONG; (* first color of palette *)
  367.     activeColor * : e.ULONG; (* selected color *)
  368.   END; (* SpecialData *)
  369.  
  370. CONST
  371.  
  372.         (* Defines for auto request *)
  373.  
  374.   arBackFill       * = 0;
  375.   arRenderPens     * = 1;
  376.   arTextCenter     * = 2;
  377.   arTextColor2     * = 3;
  378.   arHotKey         * = 4;
  379.   arBeep           * = 5;
  380.   arMovePointerPos * = 6;
  381.   arMovePointerNeg * = 7;
  382.   arDrawRaster     * = 8; (* draw raster around text area *)
  383.   arCenterMouse    * = 9; (* center last gadget of auto requester over current position of mouse pointer *)
  384.  
  385.         (* Defines for requester *)
  386.  
  387.   rdBackFill     * = 0;
  388.   rdRenderPens   * = 1;
  389.   rdInnerWindow  * = 2;
  390.   rdAvailFonts   * = 3;
  391.   rdCenterScreen * = 4; (* center requester on window's screen *)
  392.   rdDragGadget   * = 5;
  393.   rdDepthGadget  * = 6;
  394.   rdDrawRaster   * = 7; (* draw raster between FIRST BORDER and window border - FIRST BORDER will not be used further *)
  395.   rdCenterWindow * = 8; (* center requester on window *)
  396.   rdCenterMouse  * = 9; (* center requester over current position of mouse pointer *)
  397.  
  398. TYPE
  399.  
  400.         (* Structures for requester *)
  401.  
  402.   RequesterListPtr * = POINTER TO RequesterList;
  403.   RequesterList * = RECORD
  404.     renderInfo * : RenderInfoPtr;
  405.     window     * : i.WindowPtr;   (* window requester displayed on *)
  406.     reqWindow  * : i.WindowPtr;   (* window of requester *)
  407.     gadgetList * : GadgetList;    (* requester gadgets *)
  408.     id         * : LONGINT;       (* id = 'ISUP' *)
  409.     flags      * : s.SET32;
  410.     mouseX     * : INTEGER;       (* saved position of mouse pointer before displaying requester *)
  411.     mouseY     * : INTEGER;       (* saved position of mouse pointer before displaying requester *)
  412.   END; (* RequesterList *)
  413.  
  414.   RequesterDataPtr * = POINTER TO RequesterData;
  415.   RequesterData * = RECORD
  416.     leftEdge * : INTEGER;
  417.     topEdge  * : INTEGER;
  418.     width    * : INTEGER;
  419.     height   * : INTEGER;
  420.     flags    * : s.SET32;
  421.     title    * : e.LSTRPTR;
  422.     texts    * : TextDataPtr;
  423.     borders  * : BorderDataPtr;
  424.     gadgets  * : GadgetDataPtr;
  425.   END; (* RequesterData *)
  426.  
  427. CONST
  428.  
  429.         (* Defines for menus *)
  430.  
  431.   title   * = 1;
  432.   item    * = 2;
  433.   subItem * = 3;
  434.  
  435.   mdDisabled   * = 0; (* disable menu or menu item *)
  436.   mdAttribute  * = 1; (* attribute menu item *)
  437.   mdSelected   * = 2; (* selected attribute menu item *)
  438.   mdEmptyLine  * = 3; (* insert empty line before this item *)
  439.   mdHighNone   * = 4; (* no highliting *)
  440.   mdHighBox    * = 5; (* highliting with box, otherwise with complement *)
  441.   mdTextColor2 * = 6; (* alternate color for item text *)
  442.  
  443. TYPE
  444.  
  445.   MenuList * = POINTER TO RECORD END;
  446.  
  447.         (* Structures for menus *)
  448.  
  449.   MenuDataPtr * = POINTER TO MenuData;
  450.   MenuData * = RECORD
  451.     type          * : e.UWORD;
  452.     flags         * : s.SET16;
  453.     name          * : e.LSTRPTR;
  454.     commandKey    * : e.LSTRPTR;
  455.     mutualExclude * : s.SET32;
  456.   END; (* MenuData *)
  457.   MenuDataListPtr * = POINTER TO ARRAY 32767 OF MenuData;
  458.  
  459. CONST
  460.  
  461.         (* Defines for text file *)
  462.  
  463.   tfTrimLine         * = 0; (* strip leading and trailing white space *)
  464.   tfSkipComments     * = 1; (* skip C style comments *)
  465.   tfSkipEmptyLines   * = 2; (* skip empty lines *)
  466.   tfLineContinuation * = 3; (* continue line with last character '\' in next line *)
  467.  
  468.   normal           * = 0;
  469.   eof              * = 1;
  470.  
  471.   noFileData       * = -1;
  472.   lineTooLong      * = -2;
  473.   noCommentEnd     * = -3;
  474.   readFailed       * = -4;
  475.  
  476. TYPE
  477.  
  478.         (* Structures for text file *)
  479.  
  480.   FileDataPtr * = POINTER TO FileData;
  481.   FileData * = RECORD
  482.     line    * : e.LSTRPTR;
  483.     lineLen * : e.UWORD;
  484.     lineNum * : e.UWORD;
  485.   END; (* FileData *)
  486.  
  487. TYPE
  488.  
  489.   PtrData * = POINTER TO ARRAY 32767 OF INTEGER;
  490.  
  491.         (* Structures for mouse pointer *)
  492.  
  493.   PointerDataPtr * = POINTER TO PointerData;
  494.   PointerData * = RECORD
  495.     width   * : e.UBYTE;
  496.     height  * : e.UBYTE;
  497.     xOffset * : SHORTINT;
  498.     yOffset * : SHORTINT;
  499.     data    * : PtrData;
  500.   END; (* PointerData *)
  501.  
  502.  
  503. (* --- Library Base variable -------------------------------------------- *)
  504.  
  505. VAR
  506.  
  507.   base *  : e.LibraryPtr;
  508.  
  509.  
  510. (* --- Library Functions ------------------------------------------------ *)
  511.  
  512.  
  513. PROCEDURE GetRenderInfo* [base,-30]
  514.   ( screen [8] : i.ScreenPtr;
  515.     flags  [0] : s.SET32 )
  516.   : RenderInfoPtr;
  517. PROCEDURE FreeRenderInfo* [base,-36]
  518.   ( ri [8] : RenderInfoPtr );
  519. PROCEDURE OpenWindow* [base,-42]
  520.   ( ri     [8] : RenderInfoPtr;
  521.     VAR nw [9] : i.NewWindowBase;
  522.     flags  [0] : s.SET32 )
  523.   : i.WindowPtr;
  524. PROCEDURE ClearWindow* [base,-48]
  525.   ( ri       [8] : RenderInfoPtr;
  526.     win      [9] : i.WindowPtr;
  527.     leftedge [0] : e.UWORD;
  528.     topedge  [1] : e.UWORD;
  529.     width    [2] : e.UWORD;
  530.     height   [3] : e.UWORD;
  531.     flags    [4] : s.SET32 );
  532. PROCEDURE CloseWindow* [base,-54]
  533.   ( win         [8] : i.WindowPtr;
  534.     morewindows [0] : e.LBOOL );
  535. PROCEDURE AvailFonts* [base,-60]
  536.   ( ri [8] : RenderInfoPtr )
  537.   : df.AvailFontsHeaderPtr;
  538. PROCEDURE AskFont* [base,-66]
  539.   ( ri     [8] : RenderInfoPtr;
  540.     VAR ta [9] : gfx.TextAttr )
  541.   : gfx.TextAttrPtr;
  542. PROCEDURE OpenFont* [base,-72]
  543.   ( ri     [8] : RenderInfoPtr;
  544.     VAR ta [9] : gfx.TextAttrPtr )
  545.   : gfx.TextFontPtr;
  546.  
  547. PROCEDURE DisplayTextsA* [base,-78]
  548.   ( ri       [8] : RenderInfoPtr;
  549.     win      [9] : i.WindowPtr;
  550.     td      [10] : ARRAY OF TextData;
  551.     hoffset  [0] : INTEGER;
  552.     voffset  [1] : INTEGER;
  553.     lta     [11] : TextArrayPtr );
  554. PROCEDURE DisplayTextsPtr* [base,-78]
  555.   ( ri       [8] : RenderInfoPtr;
  556.     win      [9] : i.WindowPtr;
  557.     td      [10] : TextDataListPtr;
  558.     hoffset  [0] : INTEGER;
  559.     voffset  [1] : INTEGER;
  560.     lta     [11] : TextArrayPtr );
  561. PROCEDURE PrintText* [base,-84]
  562.   ( ri        [8] : RenderInfoPtr;
  563.     win       [9] : i.WindowPtr;
  564.     text     [10] : ARRAY OF CHAR;
  565.     leftedge  [0] : e.UWORD;
  566.     topedge   [1] : e.UWORD;
  567.     type      [2] : e.UWORD;
  568.     flags     [3] : s.SET32;
  569.     textattr [11] : gfx.TextAttrPtr )
  570.   : e.UWORD;
  571. PROCEDURE ConvertUnsignedDec* [base,-90]
  572.   ( num        [0] : e.ULONG;
  573.     VAR buffer [8] : ARRAY OF CHAR;
  574.     flags      [1] : s.SET32 )
  575.   : e.UWORD;
  576. PROCEDURE ConvertSignedDec* [base,-96]
  577.   ( num        [0] : LONGINT;
  578.     VAR buffer [8] : ARRAY OF CHAR;
  579.     flags      [1] : s.SET32 )
  580.   : e.UWORD;
  581. PROCEDURE ConvertHex* [base,-102]
  582.   ( num        [0] : e.ULONG;
  583.     VAR buffer [8] : ARRAY OF CHAR;
  584.     flags      [1] : s.SET32 )
  585.   : e.UWORD;
  586. PROCEDURE ConvertBin* [base,-108]
  587.   ( num        [0] : e.ULONG;
  588.     VAR buffer [8] : ARRAY OF CHAR;
  589.     flags      [1] : s.SET32 )
  590.   : e.UWORD;
  591.  
  592. PROCEDURE DisplayBordersA* [base,-114]
  593.   ( ri      [8] : RenderInfoPtr;
  594.     win     [9] : i.WindowPtr;
  595.     bd     [10] : ARRAY OF BorderData;
  596.     hoffset [0] : INTEGER;
  597.     voffset [1] : INTEGER );
  598. PROCEDURE DisplayBordersPtr* [base,-114]
  599.   ( ri      [8] : RenderInfoPtr;
  600.     win     [9] : i.WindowPtr;
  601.     bd     [10] : BorderDataListPtr;
  602.     hoffset [0] : INTEGER;
  603.     voffset [1] : INTEGER );
  604. PROCEDURE DrawBorder* [base,-120]
  605.   ( ri       [8] : RenderInfoPtr;
  606.     win      [9] : i.WindowPtr;
  607.     leftedge [0] : e.UWORD;
  608.     topedge  [1] : e.UWORD;
  609.     width    [2] : e.UWORD;
  610.     height   [3] : e.UWORD;
  611.     type     [4] : e.UWORD );
  612.  
  613. PROCEDURE CreateGadgets* [base,-126]
  614.   ( ri       [8] : RenderInfoPtr;
  615.     VAR gd   [9] : GadgetData;
  616.     hoffset  [0] : INTEGER;
  617.     voffset  [1] : INTEGER;
  618.     lta     [10] : TextArrayPtr )
  619.   : GadgetList;
  620. PROCEDURE FreeGadgets* [base,-132]
  621.   ( gl [8] : GadgetList );
  622. PROCEDURE DisplayGadgets* [base,-138]
  623.   ( win [8] : i.WindowPtr;
  624.     gl  [9] : GadgetList );
  625. PROCEDURE RefreshGadgets* [base,-144]
  626.   ( gl [8] : GadgetList );
  627. PROCEDURE ModifyGadget* [base,-150]
  628.   ( gl        [8] : GadgetList;
  629.     dataentry [0] : e.UWORD;
  630.     leftedge  [1] : LONGINT;
  631.     topedge   [2] : LONGINT;
  632.     width     [3] : e.ULONG;
  633.     height    [4] : e.ULONG );
  634. PROCEDURE SetGadgetAttributes* [base,-156]
  635.   ( gl        [8] : GadgetList;
  636.     dataentry [0] : e.UWORD;
  637.     flagmask  [1] : s.SET32;
  638.     flagbits  [2] : s.SET32;
  639.     data1     [3] : SYS.LONGWORD;
  640.     data2     [4] : SYS.LONGWORD;
  641.     data3     [9] : SYS.LONGWORD )
  642.   : e.ULONG;
  643. PROCEDURE ActivateInputGadget* [base,-162]
  644.   ( gl        [8] : GadgetList;
  645.     dataentry [0] : e.UWORD );
  646. PROCEDURE GadgetAddress* [base,-168]
  647.   ( gl        [8] : GadgetList;
  648.     dataentry [0] : e.UWORD )
  649.   : i.GadgetPtr;
  650. PROCEDURE RemoveGadgets* [base,-174]
  651.   ( gl [8] : GadgetList )
  652.   : i.WindowPtr;
  653. PROCEDURE GetMsg* [base,-180]
  654.   ( uport [8] : e.MsgPortPtr )
  655.   : i.IntuiMessagePtr;
  656. PROCEDURE ReplyMsg* [base,-186]
  657.   ( imsg [8] : i.IntuiMessagePtr );
  658. PROCEDURE ConvertRawKeyToASCII* [base,-294]
  659.   ( imsg [8] : i.IntuiMessagePtr )
  660.   : CHAR;
  661.  
  662. PROCEDURE AutoRequest* [base,-192]
  663.   ( reqwin        [8] : i.WindowPtr;
  664.     title         [9] : e.LSTRPTR;
  665.     bodytext     [10] : ARRAY OF CHAR;
  666.     postext      [11] : e.LSTRPTR;
  667.     negtext       [0] : e.LSTRPTR;
  668.     posidcmpflags [1] : s.SET32;
  669.     negidcmpflags [2] : s.SET32;
  670.     reqflags      [3] : s.SET32;
  671.     lta           [4] : TextArrayPtr )
  672.   : BOOLEAN;
  673. PROCEDURE DisplayRequester* [base,-198]
  674.   ( reqwin  [8] : i.WindowPtr;
  675.     VAR rd  [9] : RequesterData;
  676.     lta    [10] : TextArrayPtr )
  677.   : RequesterListPtr;
  678. PROCEDURE RemoveRequester* [base,-204]
  679.   ( rl [8] : RequesterListPtr );
  680.  
  681. PROCEDURE CreateMenuA* [base,-210]
  682.   ( ri   [8] : RenderInfoPtr;
  683.     win  [9] : i.WindowPtr;
  684.     md  [10] : ARRAY OF MenuData;
  685.     ta  [11] : gfx.TextAttrPtr;
  686.     lta  [0] : TextArrayPtr )
  687.   : MenuList;
  688. PROCEDURE CreateMenu* [base,-210]
  689.   ( ri   [8] : RenderInfoPtr;
  690.     win  [9] : i.WindowPtr;
  691.     md  [10] : MenuDataListPtr;
  692.     ta  [11] : gfx.TextAttrPtr;
  693.     lta  [0] : TextArrayPtr )
  694.   : MenuList;
  695. PROCEDURE AttachMenu* [base,-216]
  696.   ( win [8] : i.WindowPtr;
  697.     ml  [9] : MenuList );
  698. PROCEDURE MenuItemAddress* [base,-222]
  699.   ( ml      [8] : MenuList;
  700.     menunum [0] : e.UWORD )
  701.   : i.MenuItemPtr;
  702. PROCEDURE RemoveMenu* [base,-228]
  703.   ( ml [8] : MenuList )
  704.   : i.WindowPtr;
  705. PROCEDURE FreeMenu* [base,-234]
  706.   ( ml [8] : MenuList );
  707.  
  708. PROCEDURE OpenTextFile* [base,-240]
  709.   ( name           [8] : ARRAY OF CHAR;
  710.     readbuffersize [0] : e.UWORD;
  711.     linebuffersize [1] : e.UWORD;
  712.     flags          [2] : s.SET32 )
  713.   : FileDataPtr;
  714. PROCEDURE ReadTextLine* [base,-246]
  715.   ( fd [8] : FileDataPtr )
  716.   : INTEGER;
  717. PROCEDURE CloseTextFile* [base,-252]
  718.   ( fd [8] : FileDataPtr );
  719.  
  720. PROCEDURE BuildLanguageTextArray* [base,-258]
  721.   ( name    [8] : ARRAY OF CHAR;
  722.     entries [0] : e.UWORD )
  723.   : TextArrayPtr;
  724. PROCEDURE GetLanguageText* [base,-264]
  725.   ( text      [8] : ARRAY OF CHAR;
  726.     textarray [9] : TextArrayPtr )
  727.   : e.LSTRPTR;
  728. PROCEDURE FreeLanguageTextArray* [base,-270]
  729.   ( textarray [8] : TextArrayPtr );
  730.  
  731. PROCEDURE ChangeMousePointer* [base,-276]
  732.   ( win           [8] : i.WindowPtr;
  733.     VAR pd        [9] : PointerData;
  734.     removegadgets [0] : e.LBOOL );
  735. PROCEDURE ChangeMousePointerPtr* [base,-276]
  736.   ( win           [8] : i.WindowPtr;
  737.     pd            [9] : PointerDataPtr;
  738.     removegadgets [0] : e.LBOOL );
  739. PROCEDURE RestoreMousePointer* [base,-282]
  740.   ( win [8] : i.WindowPtr );
  741. PROCEDURE MoveMousePointer* [base,-288]
  742.   ( win    [8] : i.WindowPtr;
  743.     x      [0] : INTEGER;
  744.     y      [1] : INTEGER;
  745.     button [2] : e.LBOOL );
  746.  
  747.  
  748. (* --- C Macros defined as procedures ----------------------------------- *)
  749.  
  750. <*$LongVars+*>
  751.  
  752. (*------------------------------------*)
  753. PROCEDURE [0] InputAutoActivate * (next, prev : e.UWORD) : e.ULONG;
  754. (*InputAutoActivate(next,prev)  * = ((((LONG)next) << 16) | prev)   (* macro for (gdInputActivateNext | gdInpuActivatePrev) *)*)
  755.  
  756. BEGIN (* InputAutoActivate *)
  757.   RETURN (next * 10000H) + prev
  758. END InputAutoActivate;
  759.  
  760.  
  761. (* --- Library Base variable -------------------------------------------- *)
  762.  
  763. <*$LongVars-*>
  764.  
  765. (*------------------------------------*)
  766. PROCEDURE* [0] CloseLib (VAR rc : LONGINT);
  767.  
  768. BEGIN (* CloseLib *)
  769.   IF base # NIL THEN e.CloseLibrary (base) END;
  770. END CloseLib;
  771.  
  772. BEGIN
  773.   base := e.OpenLibrary (intuisupName, version);
  774.   IF base # NIL THEN Kernel.SetCleanup (CloseLib) END
  775. END IntuiSup.
  776.