home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 079.lha / SpiroGraph / IntuiCommon.Def next >
Encoding:
Modula Definition  |  1986-11-20  |  4.5 KB  |  123 lines

  1. DEFINITION MODULE IntuiCommon;
  2.  
  3.               (* * * * * * * * * * * * * * * * * * * * * * *)
  4.               (* Common Intuition-related routines.        *)
  5.           (* Originally written for the TDI package,   *)
  6.           (* but was quickly modified for the Oxxi     *)
  7.           (* compiler.                                 *)
  8.               (*                                           *)
  9.           (* (c) Copyright 1987 by Steve Faiwiszewski. *)
  10.           (* This program may be freely distributed,   *)
  11.           (* but it is not to be sold.                 *)
  12.           (* Please leave this notice intact.          *)
  13.               (* * * * * * * * * * * * * * * * * * * * * * *)
  14.  
  15. FROM Rasters   IMPORT DrawModeSet;
  16. FROM Intuition IMPORT Border, BorderPtr, Gadget, GadgetPtr, GadgetFlagsSet,
  17.               GadgetActivationSet, GadgetTypeSet, RememberPtr,
  18.                       Requester, IntuiText,
  19.                       IntuiTextPtr, Menu, MenuPtr, MenuItem, MenuItemPtr;
  20. FROM SYSTEM    IMPORT BYTE, ADDRESS;
  21.  
  22. TYPE
  23.     CoordinateType = RECORD
  24.                         Left,
  25.                         Top  : INTEGER;
  26.                      END;    
  27.  
  28.     StandardCoordType = ARRAY [0..4] OF CoordinateType;
  29.  
  30. VAR
  31.     RKey: RememberPtr;
  32.  
  33. PROCEDURE ReleaseAllocations;
  34.  
  35. PROCEDURE InitMenuRec (VAR Amenu : Menu;
  36.                        left, top, width, height : INTEGER;
  37.                        text : ADDRESS) : MenuPtr;
  38. (* Initialize a menu record.        *)
  39.  
  40. PROCEDURE InitItemRec (VAR mi : MenuItem;
  41.                        left, top, width, height : INTEGER;
  42.                        Cmd : CHAR;  ItemFillPtr : ADDRESS) : MenuItemPtr;
  43. (* Initialize an item record.       *)
  44.  
  45. PROCEDURE InitTextRec (VAR it : IntuiText;
  46.                        left, top : INTEGER;
  47.                        front, back : BYTE;
  48.                Mode : DrawModeSet;
  49.                        text : ADDRESS) : IntuiTextPtr;
  50. (* Initialize menu text record.     *)
  51.  
  52.  
  53. PROCEDURE InitBorder(VAR border : Border;
  54.                      Left, Top : INTEGER;
  55.                      Front, Back,
  56.                      count : BYTE;
  57.              Mode : DrawModeSet;
  58.                      Coords : ADDRESS;
  59.                      Next : BorderPtr);
  60.  
  61.  
  62. PROCEDURE InitReq(VAR requester : Requester;
  63.                   Left, Top : INTEGER;
  64.                   width, height : INTEGER;
  65.                   gadget : GadgetPtr;
  66.                   border : BorderPtr;
  67.                   Text   : IntuiTextPtr;
  68.                   Fill   : BYTE);
  69. (* Initialize a requester *)
  70.  
  71. PROCEDURE InitCoordEntry(VAR coords : ARRAY OF CoordinateType;
  72.                          offset : CARDINAL;
  73.                          left, top : INTEGER);
  74. (* Initialize coordinates *)
  75.  
  76. PROCEDURE SetUpAborder(VAR Coords: ARRAY OF CoordinateType;
  77.                        GadWidth, GadHeight : CARDINAL;
  78.                        VAR border : Border;
  79.                        Left, Top : INTEGER;
  80.                        Front, Back,
  81.                        count : BYTE;
  82.                Mode : DrawModeSet;
  83.                        NextBorder : BorderPtr);
  84. (* Initialize a border *)
  85.  
  86. PROCEDURE AllocateStandardBorder(Width, Height : CARDINAL;
  87.                          Front, Back : BYTE; Mode : DrawModeSet): BorderPtr;
  88. (* Create a simple rectangular border *)
  89.  
  90. PROCEDURE AllocateReqBorder(Width, Height : CARDINAL;
  91.                          Front, Back : BYTE; Mode : DrawModeSet): BorderPtr;
  92. (* Same as AllocateStandardBorder, with minor variation for requesters *)
  93.  
  94. PROCEDURE InitGadget(VAR gadget : Gadget;
  95.                       Left, Top : INTEGER;
  96.                       width, height : INTEGER;
  97.                       flags : GadgetFlagsSet;
  98.                       Activate : GadgetActivationSet;
  99.                       Type : GadgetTypeSet;
  100.                       Render : ADDRESS;
  101.                       Select : ADDRESS;
  102.                       Special: ADDRESS;
  103.                       ID     : CARDINAL;
  104.                       User   : ADDRESS;
  105.                       Text   : IntuiTextPtr) : GadgetPtr;
  106. (* Initialize a gadget *)
  107.  
  108. PROCEDURE AddGadgetToList(VAR GadList : GadgetPtr;
  109.                           Left, Top : INTEGER;
  110.                           width, height : INTEGER;
  111.                           flags : GadgetFlagsSet;
  112.                           Activate : GadgetActivationSet;
  113.                           Type : GadgetTypeSet;
  114.                           Render : ADDRESS;
  115.                           Select : ADDRESS;
  116.                           Special: ADDRESS;
  117.                           ID     : CARDINAL;
  118.                           User   : ADDRESS;
  119.                           Text   : IntuiTextPtr) : GadgetPtr;
  120. (* Initialize a gadget and add it to a gadget list *)
  121.  
  122. END IntuiCommon.
  123.