home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / MODULAV2GERMAN.DMS / in.adf / Def.zoo / Intuition.def < prev    next >
Encoding:
Modula Definition  |  1988-11-30  |  24.1 KB  |  968 lines

  1. DEFINITION MODULE Intuition {"intuition.library",33};
  2.  
  3. FROM SYSTEM IMPORT
  4.  ADDRESS,BITSET,BYTE,CAST,LONGSET;
  5. FROM Exec IMPORT
  6.  Byte,Interrupt,IOStdReq,Library,List,MemReqSet,Message,
  7.  MsgPortPtr,SignalSemaphore,UByte;
  8. FROM Graphics IMPORT
  9.  jam2,BitMap,BitMapPtr,ClipRect,DrawModeSet,GfxBasePtr,
  10.  LayerInfo,LayerPtr,RastPort,RastPortPtr,RegionPtr,
  11.  SimpleSpritePtr,TextAttr,TextAttrPtr,TextFontPtr,TmpRas,
  12.  View,ViewModeSet,ViewPort,ViewPortPtr,ViewPtr;
  13. FROM Timer IMPORT
  14.  IOTimer,TimeVal;
  15. FROM InputEvent IMPORT
  16.  lButton,rButton,upPrefix,InputEvent,InputEventPtr,
  17.  Qualifiers,QualifierSet;
  18. FROM KeyMap IMPORT
  19.  KeyMapPtr;
  20.  
  21. TYPE
  22.  BorderPtr=POINTER TO Border;
  23.  GadgetPtr=POINTER TO Gadget;
  24.  ImagePtr=POINTER TO Image;
  25.  IntuiMessagePtr=POINTER TO IntuiMessage;
  26.  IntuiTextPtr=POINTER TO IntuiText;
  27.  MenuItemPtr=POINTER TO MenuItem;
  28.  MenuPtr=POINTER TO Menu;
  29.  PreferencesPtr=POINTER TO Preferences;
  30.  PropInfoPtr=POINTER TO PropInfo;
  31.  RememberPtr=POINTER TO Remember;
  32.  RequesterPtr=POINTER TO Requester;
  33.  ScreenPtr=POINTER TO Screen;
  34.  StringInfoPtr=POINTER TO StringInfo;
  35.  WindowPtr=POINTER TO Window;
  36.  
  37. CONST
  38.  menuEnabled=0;
  39.  miDrawn=8;
  40.  
  41. TYPE
  42.  Menu=RECORD
  43.   nextMenu:MenuPtr;
  44.   leftEdge:INTEGER;
  45.   topEdge:INTEGER;
  46.   width:INTEGER;
  47.   height:INTEGER;
  48.   flags:BITSET;
  49.   menuName:ADDRESS;
  50.   firstItem:MenuItemPtr;
  51.   jazzX:INTEGER;
  52.   jazzY:INTEGER;
  53.   beatX:INTEGER;
  54.   beatY:INTEGER;
  55.  END;
  56.  MenuItemFlags=(
  57.   checkIt,itemText,commSeq,menuToggle,itemEnabled,mif5,
  58.   highComp,highBox,checked,mif9,mif10,mif11,isDrawn,
  59.   highItem,menuToggled
  60.  );
  61.  MenuItemFlagSet=SET OF MenuItemFlags;
  62.  
  63. CONST
  64.  highNone=MenuItemFlagSet{highBox,highComp};
  65.  checkWidth=19;
  66.  commWidth=27;
  67.  lowCheckWidth=13;
  68.  lowCommWidth=16;
  69.  
  70. TYPE
  71.  MenuItem=RECORD
  72.   nextItem:MenuItemPtr;
  73.   leftEdge:INTEGER;
  74.   topEdge:INTEGER;
  75.   width:INTEGER;
  76.   height:INTEGER;
  77.   flags:MenuItemFlagSet;
  78.   mutualExclude:LONGSET;
  79.   itemFill:ADDRESS;
  80.   selectFill:ADDRESS;
  81.   command:CHAR;
  82.   subItem:MenuItemPtr;
  83.   nextSelect:CARDINAL;
  84.  END;
  85.  RequesterFlags=(
  86.   pointRel,preDrawn,noisyReq,rf3,rf4,rf5,rf6,rf7,rf8,rf9,
  87.   rf10,rf11,reqOffWindow,reqActive,sysRequest,deferRefresh
  88.  );
  89.  RequesterFlagSet=SET OF RequesterFlags;
  90.  Requester=RECORD
  91.   olderRequest:RequesterPtr;
  92.   leftEdge:INTEGER;
  93.   topEdge:INTEGER;
  94.   width:INTEGER;
  95.   height:INTEGER;
  96.   relLeft:INTEGER;
  97.   relTop:INTEGER;
  98.   reqGadget:GadgetPtr;
  99.   reqBorder:BorderPtr;
  100.   reqText:IntuiTextPtr;
  101.   flags:RequesterFlagSet;
  102.   backFill:UByte;
  103.   reqLayer:LayerPtr;
  104.   reqPad1:ARRAY [0..31] OF BYTE;
  105.   imageBMap:BitMapPtr;
  106.   rWindow:WindowPtr;
  107.   reqPad2:ARRAY [0..35] OF BYTE;
  108.  END;
  109.  GadgetFlags=(
  110.   gadgHBox,gadgHImage,gadgImage,gRelBottom,gRelRight,
  111.   gRelWidth,gRelHeight,selected,gadgDisabled
  112.  );
  113.  GadgetFlagSet=SET OF GadgetFlags;
  114.  ActivationFlags=(
  115.   relVerify,gadgImmediate,endGadget,followMouse,rightBorder,
  116.   leftBorder,topBorder,bottomBorder,toggleSelect,stringCenter,
  117.   stringRight,longint,altKeyMap,boolExtend
  118.  );
  119.  ActivationFlagSet=SET OF ActivationFlags;
  120.  
  121. CONST
  122.  gadgHighbits=CAST(GadgetFlagSet,03H);
  123.  gadgHNone=GadgetFlagSet{gadgHBox,gadgHImage};
  124.  boolGadget=0001H;
  125.  gadget0002=0002H;
  126.  propGadget=0003H;
  127.  strGadget=0004H;
  128.  sizing=0010H;
  129.  wDragging=0020H;
  130.  sDragging=0030H;
  131.  wUpFront=0040H;
  132.  sUpFront=0050H;
  133.  wDownBack=0060H;
  134.  sDownBack=0070H;
  135.  close=0080H;
  136.  reqGadget=1000H;
  137.  gzzGadget=2000H;
  138.  scrGadget=4000H;
  139.  sysGadget=8000H;
  140.  gadgetType=CAST(BITSET,0FC00H);
  141.  
  142. TYPE
  143.  Gadget=RECORD
  144.   nextGadget:GadgetPtr;
  145.   leftEdge:INTEGER;
  146.   topEdge:INTEGER;
  147.   width:INTEGER;
  148.   height:INTEGER;
  149.   flags:GadgetFlagSet;
  150.   activation:ActivationFlagSet;
  151.   gadgetType:CARDINAL;
  152.   gadgetRender:ADDRESS;
  153.   selectRender:ADDRESS;
  154.   gadgetText:IntuiTextPtr;
  155.   mutualExclude:LONGSET;
  156.   specialInfo:ADDRESS;
  157.   gadgetID:INTEGER;
  158.   userData:ADDRESS;
  159.  END;
  160.  
  161. CONST
  162.  boolMask=1;
  163.  
  164. TYPE
  165.  BoolInfo=RECORD
  166.   flags:BITSET;
  167.   mask:ADDRESS;
  168.   reserved:LONGCARD;
  169.  END;
  170.  PropInfoFlags=(
  171.   autoKnob,freeHoriz,freeVert,propBorderless,pf4,pf5,pf6,pf7,
  172.   knobHit
  173.  );
  174.  PropInfoFlagSet=SET OF PropInfoFlags;
  175.  
  176. CONST
  177.  knobVmin=4;
  178.  knobHmin=6;
  179.  maxBody=0FFFFH;
  180.  maxPot=0FFFFH;
  181.  
  182. TYPE
  183.  PropInfo=RECORD
  184.   flags:PropInfoFlagSet;
  185.   horizPot:CARDINAL;
  186.   vertPot:CARDINAL;
  187.   horizBody:CARDINAL;
  188.   vertBody:CARDINAL;
  189.   cWidth:CARDINAL;
  190.   cHeight:CARDINAL;
  191.   hPotRes:CARDINAL;
  192.   vPotRes:CARDINAL;
  193.   leftBorder:CARDINAL;
  194.   topBorder:CARDINAL;
  195.  END;
  196.  
  197.  StringInfo=RECORD
  198.   buffer:ADDRESS;
  199.   undoBuffer:ADDRESS;
  200.   bufferPos:INTEGER;
  201.   maxChars:INTEGER;
  202.   dispPos:INTEGER;
  203.   undoPos:INTEGER;
  204.   numChars:INTEGER;
  205.   dispCount:INTEGER;
  206.   cLeft:INTEGER;
  207.   cTop:INTEGER;
  208.   layerPtr:LayerPtr;
  209.   longInt:LONGINT;
  210.   altKeyMap:KeyMapPtr;
  211.  END;
  212.  
  213. CONST
  214.  autoFrontPen=0;
  215.  autoBackPen=1;
  216.  autoDrawMode=jam2;
  217.  autoLeftEdge=6;
  218.  autoTopEdge=3;
  219.  autoITextFont=NIL;
  220.  autoNextText=NIL;
  221. TYPE
  222.  IntuiText=RECORD
  223.   frontPen:UByte;
  224.   backPen:UByte;
  225.   drawMode:DrawModeSet;
  226.   leftEdge:INTEGER;
  227.   topEdge:INTEGER;
  228.   iTextFont:TextAttrPtr;
  229.   iText:ADDRESS;
  230.   nextText:IntuiTextPtr;
  231.  END;
  232.  
  233.  Border=RECORD
  234.   leftEdge:INTEGER;
  235.   topEdge:INTEGER;
  236.   frontPen:UByte;
  237.   backPen:UByte;
  238.   drawMode:DrawModeSet;
  239.   count:UByte;
  240.   xy:ADDRESS;
  241.   nextBorder:BorderPtr;
  242.  END;
  243.  
  244.  Image=RECORD
  245.   leftEdge:INTEGER;
  246.   topEdge:INTEGER;
  247.   width:INTEGER;
  248.   height:INTEGER;
  249.   depth:INTEGER;
  250.   imageData:ADDRESS;
  251.   planePick:UByte;
  252.   planeOnOff:UByte;
  253.   nextImage:ImagePtr;
  254.  END;
  255.  
  256.  IDCMPFlags=(
  257.   sizeVerify,newSize,refreshWindow,mouseButtons,mouseMove,
  258.   gadgetDown,gadgetUp,reqSet,menuPick,closeWindow,rawKey,
  259.   reqVerify,reqClear,menuVerify,newPrefs,diskInserted,
  260.   diskRemoved,wbenchMessage,activeWindow,inactiveWindow,
  261.   deltaMove,vanillaKey,intuiTicks,c23,c24,c25,c26,c27,c28,
  262.   c29,c30,lonelyMessage
  263.  );
  264.  IDCMPFlagSet=SET OF IDCMPFlags;
  265.  
  266. CONST
  267.  selectUp=lButton+upPrefix;    (* mouseButtons *)
  268.  selectDown=lButton;
  269.  menuUp=rButton+upPrefix;
  270.  menuDown=rButton;
  271.  menuNull=0FFFFH;              (* menuPick *)
  272.  noMenu=1FH; noItem=3FH; noSub=1FH;
  273.  keyCodeQ=10H;                 (* rawKey *)
  274.  keyCodeX=32H;
  275.  keyCodeV=34H;
  276.  keyCodeB=35H;
  277.  keyCodeN=36H;
  278.  keyCodeM=37H;
  279.  cursorUp=4CH;
  280.  cursorDown=4DH;
  281.  cursorRight=4EH;
  282.  cursorLeft=4FH;
  283.  menuHot=1;                   (* menuVerify *)
  284.  menuCancel=2;
  285.  menuWaiting=3;
  286.  okOk=menuHot;
  287.  okAbort=4;
  288.  okCancel=menuCancel;
  289.  wbenchOpen=1;                   (* wbenchMessage *)
  290.  wbenchClose=2;
  291. (* IntuiMessage.qualifier *)
  292.  altLeft=QualifierSet{lAlt};
  293.  altRight=QualifierSet{rAlt};
  294.  amigaLeft=QualifierSet{lCommand};
  295.  amigaRight=QualifierSet{rCommand};
  296.  amigaKeys=amigaLeft+amigaRight;
  297.  
  298. TYPE
  299.  IntuiMessage=RECORD
  300.   execMessage:Message;
  301.   class:IDCMPFlagSet;
  302.   code:CARDINAL;
  303.   qualifier:QualifierSet;
  304.   iAddress:ADDRESS;
  305.   mouseX:INTEGER;
  306.   mouseY:INTEGER;
  307.   seconds:LONGCARD;
  308.   micros:LONGCARD;
  309.   idcmpWindow:WindowPtr;
  310.   specialLink:IntuiMessagePtr;
  311.  END;
  312.  
  313. TYPE
  314.  WindowFlags=(
  315.   windowSizing,windowDrag,windowDepth,windowClose,sizeBRight,
  316.   sizeBBottom,simpleRefresh,superBitMap,backDrop,reportMouse,
  317.   gimmeZeroZero,borderless,activate,windowActive,inRequest,
  318.   menuState,rmbTrap,noCareRefresh,wf18,wf19,wf20,wf21,wf22,
  319.   wf23,windowRefresh,wbenchWindow,windowTicked,wf27,wf28,
  320.   wf29,wf30,wf31
  321.  );
  322.  WindowFlagSet=SET OF WindowFlags;
  323.  ScreenFlags=(
  324.   wbenchScreen,sf1,sf2,sf3,showTitle,beeping,customBitMap,
  325.   screenBehind,screenQuiet);
  326.  ScreenFlagSet=SET OF ScreenFlags;
  327.  
  328. CONST
  329.  otherRefresh=WindowFlagSet{simpleRefresh,superBitMap};
  330.  superUnused=WindowFlagSet{wf18..wf23,wf27..wf31};
  331.  stdScreenHeight=-1;
  332.  customScreen=ScreenFlagSet{wbenchScreen..sf3};
  333.  
  334. TYPE
  335.  NewWindow=RECORD
  336.   leftEdge:INTEGER;
  337.   topEdge:INTEGER;
  338.   width:INTEGER;
  339.   height:INTEGER;
  340.   detailPen:Byte;
  341.   blockPen:Byte;
  342.   idcmpFlags:IDCMPFlagSet;
  343.   flags:WindowFlagSet;
  344.   firstGadget:GadgetPtr;
  345.   checkMark:ImagePtr;
  346.   title:ADDRESS;
  347.   screen:ScreenPtr;
  348.   bitMap:BitMapPtr;
  349.   minWidth:INTEGER;
  350.   minHeight:INTEGER;
  351.   maxWidth:INTEGER;
  352.   maxHeight:INTEGER;
  353.   type:ScreenFlagSet;
  354.  END;
  355.  NewScreen=RECORD
  356.   leftEdge:INTEGER;
  357.   topEdge:INTEGER;
  358.   width:INTEGER;
  359.   height:INTEGER;
  360.   depth:INTEGER;
  361.   detailPen:Byte;
  362.   blockPen:Byte;
  363.   viewModes:ViewModeSet;
  364.   type:ScreenFlagSet;
  365.   font:TextAttrPtr;
  366.   defaultTitle:ADDRESS;
  367.   gadgets:GadgetPtr;
  368.   customBitMap:BitMapPtr;
  369.  END;
  370.  Window=RECORD
  371.   nextWindow:WindowPtr;
  372.   leftEdge:INTEGER;
  373.   topEdge:INTEGER;
  374.   width:INTEGER;
  375.   height:INTEGER;
  376.   mouseY:INTEGER;
  377.   mouseX:INTEGER;
  378.   minWidth:INTEGER;
  379.   minHeight:INTEGER;
  380.   maxWidth:INTEGER;
  381.   maxHeight:INTEGER;
  382.   flags:WindowFlagSet;
  383.   menuStrip:MenuPtr;
  384.   title:ADDRESS;
  385.   firstRequest:RequesterPtr;
  386.   dmRequest:RequesterPtr;
  387.   reqCount:INTEGER;
  388.   wScreen:ScreenPtr;
  389.   rPort:RastPortPtr;
  390.   borderLeft:Byte;
  391.   borderTop:Byte;
  392.   borderRight:Byte;
  393.   borderBottom:Byte;
  394.   borderRPort:RastPortPtr;
  395.   firstGadget:GadgetPtr;
  396.   parent:WindowPtr;
  397.   descendant:WindowPtr;
  398.   pointer:ADDRESS;
  399.   ptrHeight:Byte;
  400.   ptrWidth:[0..16];
  401.   xOffset:Byte;
  402.   yOffset:Byte;
  403.   idcmpFlags:IDCMPFlagSet;
  404.   userPort:MsgPortPtr;
  405.   windowPort:MsgPortPtr;
  406.   messageKey:IntuiMessagePtr;
  407.   detailPen:UByte;
  408.   blockPen:UByte;
  409.   checkMark:ImagePtr;
  410.   screenTitle:ADDRESS;
  411.   gzzMouseX:INTEGER;
  412.   gzzMouseY:INTEGER;
  413.   gzzWidth:INTEGER;
  414.   gzzHeight:INTEGER;
  415.   extData:ADDRESS;
  416.   userData:ADDRESS;
  417.   wLayer:LayerPtr;
  418.   iFont:TextFontPtr;
  419.  END;
  420.  Screen=RECORD
  421.   nextScreen:ScreenPtr;
  422.   firstWindow:WindowPtr;
  423.   leftEdge:INTEGER;
  424.   topEdge:INTEGER;
  425.   width:INTEGER;
  426.   height:INTEGER;
  427.   mouseY:INTEGER;
  428.   mouseX:INTEGER;
  429.   flags:ScreenFlagSet;
  430.   title:ADDRESS;
  431.   defaultTitle:ADDRESS;
  432.   barHeight:Byte;
  433.   barVBorder:Byte;
  434.   barHBorder:Byte;
  435.   menuVBorder:Byte;
  436.   menuHBorder:Byte;
  437.   wBorTop:Byte;
  438.   wBorLeft:Byte;
  439.   wBorRight:Byte;
  440.   wBorBottom:Byte;
  441.   font:TextAttrPtr;
  442.   viewPort:ViewPort;
  443.   rastPort:RastPort;
  444.   bitMap:BitMap;
  445.   layerInfo:LayerInfo;
  446.   firstGadget:GadgetPtr;
  447.   detailPen:UByte;
  448.   blockPen:UByte;
  449.   saveColor0:CARDINAL;
  450.   barLayer:LayerPtr;
  451.   extData:ADDRESS;
  452.   userData:ADDRESS;
  453.  END;
  454.  
  455. CONST
  456.  filenameSize=30;
  457.  pointerSize=(1+16+1)*2;
  458.  topazEighty=8;
  459.  topazSixty=9;
  460.  
  461. TYPE
  462.  PrinterPort=(parallelPrinter,serialPrinter);
  463.  PrinterType=(
  464.   customName,alphaP101,brother15XL,cbmMps1000,diab630,
  465.   diabAdvD25,diabC150,epson,epsonJX80,okimate20,QumeLP20,
  466.   hpLaserjet,hpLaserjetPlus
  467.  );
  468.  SerParShk=(
  469.   shakeXon,shakeRts,shakeNone,sps3,parityNone,parityEven,
  470.   parityOdd
  471.  );
  472.  SerParShkSet=SET OF SerParShk;
  473.  Preferences=RECORD
  474.   fontHeight:UByte;
  475.   printerPort:PrinterPort;
  476.   baudRate:CARDINAL;
  477.   keyRptSpeed:TimeVal;
  478.   keyRptDelay:TimeVal;
  479.   doubleClick:TimeVal;
  480.   pointerMatrix:ARRAY [0..pointerSize-1] OF CARDINAL;
  481.   xOffset:Byte;
  482.   yOffset:Byte;
  483.   color17:CARDINAL;
  484.   color18:CARDINAL;
  485.   color19:CARDINAL;
  486.   pointerTicks:CARDINAL;
  487.   color0:CARDINAL;
  488.   color1:CARDINAL;
  489.   color2:CARDINAL;
  490.   color3:CARDINAL;
  491.   viewXOffset:Byte;
  492.   viewYOffset:Byte;
  493.   viewInitX:INTEGER;
  494.   viewInitY:INTEGER;
  495.   enableCLI:BOOLEAN;
  496.   printerType:PrinterType;
  497.   printerFilename:ARRAY [0..filenameSize-1] OF CHAR;
  498.   printPitch:CARDINAL;
  499.   printQuality:CARDINAL;
  500.   printSpacing:CARDINAL;
  501.   printLeftMargin:CARDINAL;
  502.   printRightMargin:CARDINAL;
  503.   printImage:CARDINAL;
  504.   printAspect:CARDINAL;
  505.   printShade:CARDINAL;
  506.   printThreshold:INTEGER;
  507.   paperSize:CARDINAL;
  508.   paperLength:CARDINAL;
  509.   paperType:CARDINAL;
  510.   serRWBits:UByte;
  511.   serStopBuf:UByte;
  512.   serParShk:SerParShkSet;
  513.   laceWB:BOOLEAN;
  514.   workName:ARRAY [0..filenameSize-1] OF CHAR;
  515.   padding:ARRAY [0..15] OF BYTE;
  516.  END;
  517. CONST
  518.  baud110=0;
  519.  baud300=1;
  520.  baud1200=2;
  521.  baud2400=3;
  522.  baud4800=4;
  523.  baud9600=5;
  524.  baud19200=6;
  525.  baudMidi=7;
  526.  pica=0H;
  527.  elite=0400H;
  528.  fine=0800H;
  529.  draft=0H;
  530.  letter=0100H;
  531.  sixLPI=0H;
  532.  eightLPI=0200H;
  533.  imagePositive=0;
  534.  imageNegative=1;
  535.  aspectHoriz=0;
  536.  aspectVert=1;
  537.  shadeBW=0;
  538.  shadeGreyscale=1;
  539.  shadeColor=2;
  540.  usLetter=0H;
  541.  usLegal=010H;
  542.  nTractor=020H;
  543.  wTractor=030H;
  544.  custom=040H;
  545.  fanfold=0H;
  546.  single=080H;
  547.  readBits=0F0H;
  548.  writeBits=0FH;
  549.  stopBits=0F0H;
  550.  bufSizeBits=0FH;
  551.  buf512=0;
  552.  buf1024=1;
  553.  buf2048=2;
  554.  buf4096=3;
  555.  buf8000=4;
  556.  buf16000=5;
  557.  
  558. TYPE
  559.  Remember=RECORD
  560.   nextRemember:RememberPtr;
  561.   rememberSize:LONGCARD;
  562.   memory:ADDRESS;
  563.  END;
  564.  
  565. CONST
  566.  deadendAlert=80000000H; recoveryAlert=0;
  567.  
  568. TYPE
  569.  DisplayMode=(hiresPick,lowresPick);
  570.  
  571. CONST
  572.  dModeCount=ORD(MAX(DisplayMode))+1;
  573.  eventMax=10;
  574.  
  575. TYPE
  576.  Res=(hiresGadget,lowresGadget);
  577.  
  578. CONST
  579.  resCount=ORD(MAX(Res))+1;
  580.  
  581. TYPE
  582.  Gadgets=(
  583.   upFrontGadget,downBackGadget,sizeGadget,closeGadget,
  584.   dragGadget,sUpFrontGadget,sDownBackGadget,sDragGadget
  585.  );
  586.  
  587. CONST
  588.  gadgetCount=ORD(MAX(Gadgets))+1;
  589.  
  590. TYPE
  591.  ILocks=(
  592.   iStateLock,layerInfoLock,gadgetsLock,layerRomLock,viewLock,
  593.   iBaseLock,rpLock
  594.  );
  595. CONST
  596.  numILocks=ORD(MAX(ILocks))+1;
  597.  
  598. TYPE
  599.  FatIntuiMessage=RECORD
  600.   intuiMessage:IntuiMessage;
  601.   prevKeys:LONGCARD;
  602.  END;
  603.  IBox=RECORD
  604.   left:INTEGER;
  605.   top:INTEGER;
  606.   width:INTEGER;
  607.   height:INTEGER;
  608.  END;
  609.  Point=RECORD
  610.   x:INTEGER;
  611.   y:INTEGER;
  612.  END;
  613.  PenPair=RECORD
  614.   detailPen:UByte;
  615.   blockPen:UByte;
  616.  END;
  617.  GListEnv=RECORD
  618.   screen:ScreenPtr;
  619.   window:WindowPtr;
  620.   requester:RequesterPtr;
  621.   rastPort:RastPortPtr;
  622.   layer:LayerPtr;
  623.   gzzLayer:LayerPtr;
  624.   pens:PenPair;
  625.   domain:IBox;
  626.   gzzDims:IBox;
  627.  END;
  628.  GListEnvPtr=POINTER TO GListEnv;
  629.  GadgetInfo=RECORD
  630.   environ:GListEnvPtr;
  631.   gadget:GadgetPtr;
  632.   box:IBox;
  633.   container:IBox;
  634.   layer:LayerPtr;
  635.   newKnob:IBox;
  636.  END;
  637.  
  638. CONST
  639.  numIEvents=4;
  640.  
  641. TYPE
  642.  IntuitionBase=RECORD
  643.   libNode:Library;
  644.   viewLord:View;
  645.   activeWindow:WindowPtr;
  646.   activeScreen:ScreenPtr;
  647.   firstScreen:ScreenPtr;
  648.   flags:LONGSET;
  649.   mouseY:INTEGER;
  650.   mouseX:INTEGER;
  651.   seconds:LONGCARD;
  652.   micros:LONGCARD;
  653.   minXMouse:INTEGER;
  654.   maxXMouse:INTEGER;
  655.   minYMouse:INTEGER;
  656.   maxYMouse:INTEGER;
  657.   startSecs:LONGCARD;
  658.   startMicros:LONGCARD;
  659.   sysBase:ADDRESS;
  660.   gfxBase:GfxBasePtr;
  661.   layersBase:ADDRESS;
  662.   consoleDevice:ADDRESS;
  663.   aPointer:ADDRESS;
  664.   aPtrHeight:UByte;
  665.   aPtrWidth:[0..16];
  666.   aXOffset:UByte;
  667.   aYOffset:UByte;
  668.   menuDrawn:CARDINAL;
  669.   menuSelected:CARDINAL;
  670.   optionList:CARDINAL;
  671.   menuRPort:RastPort;
  672.   menuTmpRas:TmpRas;
  673.   itemCRect:ClipRect;
  674.   subCRect:ClipRect;
  675.   iBitMap:BitMap;
  676.   sBitMap:BitMap;
  677.   inputRequest:IOStdReq;
  678.   inputInterrupt:Interrupt;
  679.   eventKey:RememberPtr;
  680.   iEvents:ADDRESS;
  681.   eventCount:INTEGER;
  682.   ieBuffer:ARRAY [0..numIEvents-1] OF InputEvent;
  683.   activeGadget:GadgetPtr;
  684.   activePInfo:PropInfoPtr;
  685.   activeImage:ImagePtr;
  686.   gadgetEnv:GListEnv;
  687.   gadgetInfo:GadgetInfo;
  688.   knobOffset:Point;
  689.   getOKWindow:WindowPtr;
  690.   getOKMessage:IntuiMessagePtr;
  691.   setWExcept:CARDINAL;
  692.   gadgetReturn:CARDINAL;
  693.   stateReturn:CARDINAL;
  694.   rp:RastPortPtr;
  695.   iTmpRas:TmpRas;
  696.   oldClipRegion:RegionPtr;
  697.   oldScroll:Point;
  698.   iFrame:IBox;
  699.   hthick:INTEGER;
  700.   vthick:INTEGER;
  701.   frameChange:PROC;
  702.   sizeDrag:PROC;
  703.   firstPt:Point;
  704.   oldPt:Point;
  705.   sysGadgets:ARRAY Res,Gadgets OF GadgetPtr;
  706.   checkImage:ARRAY Res OF ImagePtr;
  707.   amigaIcon:ARRAY Res OF ImagePtr;
  708.   aPattern:ARRAY [0..7] OF CARDINAL;
  709.   bPattern:ARRAY [0..3] OF CARDINAL;
  710.   iPointer:ADDRESS;
  711.   iPtrHeight:UByte;
  712.   iPtrWidth:[0..16];
  713.   iXOffset:UByte;
  714.   iYOffset:UByte;
  715.   doubleSeconds:LONGINT;
  716.   doubleMicros:LONGINT;
  717.   wBorLeft,
  718.   wBorTop,
  719.   wBorRight,
  720.   wBorBottom,
  721.   barVBorder,
  722.   barHBorder,
  723.   menuVBorder,
  724.   menuHBorder:ARRAY DisplayMode OF Byte;
  725.   color0:CARDINAL;
  726.   color1:CARDINAL;
  727.   color2:CARDINAL;
  728.   color3:CARDINAL;
  729.   color17:CARDINAL;
  730.   color18:CARDINAL;
  731.   color19:CARDINAL;
  732.   sysFont:TextAttr;
  733.   preferences:PreferencesPtr;
  734.   echoes:ADDRESS;
  735.   viewInitX:INTEGER;
  736.   viewInitY:INTEGER;
  737.   cursorDX:INTEGER;
  738.   cursorDY:INTEGER;
  739.   keyMap:KeyMapPtr;
  740.   mouseYMinimum:INTEGER;
  741.   errorX:INTEGER;
  742.   errorY:INTEGER;
  743.   ioExcess:IOTimer;
  744.   holdMinYMouse:INTEGER;
  745.   wbPort:MsgPortPtr;
  746.   fnkuhdPort:MsgPortPtr;
  747.   wbMessage:IntuiMessage;
  748.   hitScreen:ScreenPtr;
  749.   simpleSprite:SimpleSpritePtr;
  750.   attachedSSprite:SimpleSpritePtr;
  751.   gotSpritel:BOOLEAN;
  752.   semaphoreList:List;
  753.   iSemaphore:ARRAY ILocks OF SignalSemaphore;
  754.   maxDisplayHeight:INTEGER;
  755.   maxDisplayRow:INTEGER;
  756.   reserved:ARRAY [0..7] OF LONGCARD;
  757.  END;
  758.  IntuitionBasePtr=POINTER TO IntuitionBase;
  759.  
  760. (*
  761.  * Die Prozedure AllocRemember, OpenScreen und OpenWindow
  762.  * haben eine VAR Parameter.
  763.  *)
  764.  
  765. PROCEDURE ActivateGadget(
  766.            gadget{8}:GadgetPtr;
  767.            window{9}:WindowPtr;
  768.            requester{10}:RequesterPtr):BOOLEAN; CODE -462;
  769. PROCEDURE ActivateWindow(window{8}:WindowPtr); CODE -450;
  770. PROCEDURE AddGadget(window{8}:WindowPtr;
  771.                     gadget{9}:GadgetPtr;
  772.                     position{0}:INTEGER):INTEGER; CODE -42;
  773. PROCEDURE AddGList(
  774.            window{8}:WindowPtr;
  775.            gadget{9}:GadgetPtr;
  776.            position{0}:INTEGER;
  777.            numGad{1}:INTEGER;
  778.            requester{10}:RequesterPtr):INTEGER; CODE -438;
  779. PROCEDURE AllocRemember(
  780.            VAR rememberKey{8}:ADDRESS;
  781.            size{0}:LONGCARD;
  782.            flags{1}:MemReqSet):ADDRESS; CODE -396;
  783. PROCEDURE AlohaWorkbench(wbPort{8}:MsgPortPtr); CODE -402; 
  784. PROCEDURE AutoRequest(window{8}:WindowPtr;
  785.                       bodyText{9}:IntuiTextPtr;
  786.                       positiveText{10}:IntuiTextPtr;
  787.                       negativeText{11}:IntuiTextPtr;
  788.                       positiveFlags{0}:IDCMPFlagSet;
  789.                       negativeFlags{1}:IDCMPFlagSet;
  790.                       width{2}:INTEGER;
  791.                       height{3}:INTEGER):BOOLEAN; CODE -348;
  792. PROCEDURE BeginRefresh(window{8}:WindowPtr); CODE -354;
  793. PROCEDURE BuildSysRequest(
  794.            window{8}:WindowPtr;
  795.            bodyText{9}:IntuiTextPtr;
  796.            positiveText{10}:IntuiTextPtr;
  797.            negativeText{11}:IntuiTextPtr;
  798.            idcmpFlags{0}:IDCMPFlagSet;
  799.            width{1}:INTEGER;
  800.            height{2}:INTEGER):WindowPtr; CODE -360;
  801. PROCEDURE ClearDMRequest(
  802.            window{8}:WindowPtr):BOOLEAN; CODE -48;
  803. PROCEDURE ClearMenuStrip(window{8}:WindowPtr); CODE -54;
  804. PROCEDURE ClearPointer(window{8}:WindowPtr); CODE -60;
  805. PROCEDURE CloseScreen(screen{8}:ScreenPtr); CODE -66;
  806. PROCEDURE CloseWindow(window{8}:WindowPtr); CODE -72;
  807. PROCEDURE CloseWorkBench():BOOLEAN; CODE -78;
  808. PROCEDURE CurrentTime(seconds{8}:ADDRESS;
  809.                       micros{9}:ADDRESS); CODE -84;
  810. PROCEDURE DisplayAlert(alertNumber{0}:LONGCARD;
  811.                        string{8}:ADDRESS;
  812.                        height{1}:LONGCARD):BOOLEAN; CODE -90;
  813. PROCEDURE DisplayBeep(screen{8}:ScreenPtr); CODE -96;
  814. PROCEDURE DoubleClick(
  815.            startSecs{0}:LONGINT;
  816.            startMicros{1}:LONGINT;
  817.            currentSecs{2}:LONGINT;
  818.            currentMicros{3}:LONGINT):BOOLEAN; CODE -102;
  819. PROCEDURE DrawBorder(rastPort{8}:RastPortPtr;
  820.                      border{9}:BorderPtr;
  821.                      leftOffset{0}:INTEGER;
  822.                      topOffset{1}:INTEGER); CODE -108;
  823. PROCEDURE DrawImage(rastPort{8}:RastPortPtr;
  824.                     image{9}:ImagePtr;
  825.                     leftOffset{0}:INTEGER;
  826.                     topOffset{1}:INTEGER); CODE -114;
  827. PROCEDURE EndRefresh(window{8}:WindowPtr;
  828.                      complete{0}:BOOLEAN); CODE -366;
  829. PROCEDURE EndRequest(requester{8}:RequesterPtr;
  830.                      window{9}:WindowPtr); CODE -120;
  831. PROCEDURE FreeRemember(rememberKey{8}:ADDRESS;
  832.                        reallyForget{0}:BOOLEAN); CODE -408;
  833. PROCEDURE FreeSysRequest(window{8}:WindowPtr); CODE -372;
  834. PROCEDURE GetDefPrefs(prefBuffer{8}:PreferencesPtr;
  835.                       size{0}:INTEGER); CODE -126;
  836. PROCEDURE GetPrefs(prefBuffer{8}:PreferencesPtr;
  837.                    size{0}:INTEGER); CODE -132;
  838. PROCEDURE GetScreenData(
  839.            buffer{8}:ADDRESS;
  840.            size{0}:CARDINAL;
  841.            type{1}:ScreenFlagSet;
  842.            screen{9}:ScreenPtr):BOOLEAN; CODE -426;
  843. PROCEDURE InitRequester(requester{8}:RequesterPtr); CODE -138;
  844. PROCEDURE IntuiTextLength(
  845.            iText{8}:IntuiTextPtr):INTEGER; CODE -330;
  846. PROCEDURE Intuition(inputEvent{8}:InputEventPtr); CODE -36;
  847. PROCEDURE ItemAddress(
  848.            menuStrip{8}:MenuPtr;
  849.            menuNumber{0}:CARDINAL):MenuItemPtr; CODE -144;
  850. PROCEDURE LockIBase(
  851.            lockNumber{0}:LONGCARD):LONGCARD; CODE -414;
  852. PROCEDURE MakeScreen(screen{8}:ScreenPtr); CODE -378;
  853. PROCEDURE ModifyIDCMP(window{8}:WindowPtr;
  854.                       idcmpFlags{0}:IDCMPFlagSet); CODE -150;
  855. PROCEDURE ModifyProp(gadget{8}:GadgetPtr;
  856.                      window{9}:WindowPtr;
  857.                      requester{10}:RequesterPtr;
  858.                      flags{0}:PropInfoFlagSet;
  859.                      horizPot{1}:CARDINAL;
  860.                      vertPot{2}:CARDINAL;
  861.                      horizBody{3}:CARDINAL;
  862.                      vertBody{4}:CARDINAL); CODE -156;
  863. PROCEDURE MoveScreen(screen{8}:ScreenPtr;
  864.                      deltaX{0}:INTEGER;
  865.                      deltaY{1}:INTEGER); CODE -162;
  866. PROCEDURE MoveWindow(window{8}:WindowPtr;
  867.                      deltaX{0}:INTEGER;
  868.                      deltaY{1}:INTEGER); CODE -168;
  869. PROCEDURE NewModifyProp(gadget{8}:GadgetPtr;
  870.                         window{9}:WindowPtr;
  871.                         requester{10}:RequesterPtr;
  872.                         flags{0}:PropInfoFlagSet;
  873.                         horizPot{1}:CARDINAL;
  874.                         vertPot{2}:CARDINAL;
  875.                         horizBody{3}:CARDINAL;
  876.                         vertBody{4}:CARDINAL;
  877.                         numGad{5}:INTEGER); CODE -468;
  878. PROCEDURE OffGadget(gadget{8}:GadgetPtr;
  879.                     window{9}:WindowPtr;
  880.                     requester{10}:RequesterPtr); CODE -174;
  881. PROCEDURE OffMenu(window{8}:WindowPtr;
  882.                   menuNumber{0}:CARDINAL); CODE -180;
  883. PROCEDURE OnGadget(gadget{8}:GadgetPtr;
  884.                    window{9}:WindowPtr;
  885.                    requester{10}:RequesterPtr); CODE -186;
  886. PROCEDURE OnMenu(window{8}:WindowPtr;
  887.                  menuNumber{0}:CARDINAL); CODE -192;
  888. PROCEDURE OpenIntuition():IntuitionBasePtr; CODE -30;
  889. PROCEDURE OpenScreen(
  890.            VAR newScreen{8}:NewScreen):ScreenPtr; CODE -198;
  891. PROCEDURE OpenWindow(
  892.            VAR newWindow{8}:NewWindow):WindowPtr; CODE -204;
  893. PROCEDURE OpenWorkBench():ScreenPtr; CODE -210;
  894. PROCEDURE PrintIText(rastPort{8}:RastPortPtr;
  895.                      iText{9}:IntuiTextPtr;
  896.                      leftOffset{0}:INTEGER;
  897.                      topOffset{1}:INTEGER); CODE -216;
  898. PROCEDURE RefreshGadgets(
  899.            gadgets{8}:GadgetPtr;
  900.            window{9}:WindowPtr;
  901.            requester{10}:RequesterPtr); CODE -222;
  902. PROCEDURE RefreshGList(gadgets{8}:GadgetPtr;
  903.                        window{9}:WindowPtr;
  904.                        requester{10}:RequesterPtr;
  905.                        numGad{0}:INTEGER); CODE -432;
  906. PROCEDURE RefreshWindowFrame(window{8}:WindowPtr); CODE -456;
  907. PROCEDURE RemakeDisplay(); CODE -384;
  908. PROCEDURE RemoveGadget(
  909.            window{8}:WindowPtr;
  910.            gadget{9}:GadgetPtr):INTEGER; CODE -228;
  911. PROCEDURE RemoveGList(window{8}:WindowPtr;
  912.                       gadget{9}:GadgetPtr;
  913.                       numgad{0}:INTEGER):INTEGER; CODE -444;
  914. PROCEDURE ReportMouse(window{8}:WindowPtr;
  915.                       boolean{0}:BOOLEAN); CODE -234;
  916. PROCEDURE Request(requester{8}:RequesterPtr;
  917.                   window{9}:WindowPtr):BOOLEAN; CODE -240;
  918. PROCEDURE RethinkDisplay(); CODE -390;
  919. PROCEDURE ScreenToBack(screen{8}:ScreenPtr); CODE -246;
  920. PROCEDURE ScreenToFront(screen{8}:ScreenPtr); CODE -252;
  921. PROCEDURE SetDMRequest(
  922.            window{8}:WindowPtr;
  923.            dmRequester{9}:RequesterPtr):BOOLEAN; CODE -258;
  924. PROCEDURE SetMenuStrip(window{8}:WindowPtr;
  925.                        menu{9}:MenuPtr):BOOLEAN; CODE -264;
  926. PROCEDURE SetPointer(window{8}:WindowPtr;
  927.                      pointer{9}:ADDRESS;
  928.                      height{0}:INTEGER;
  929.                      width{1}:INTEGER;
  930.                      xOffset{2}:INTEGER;
  931.                      yOffset{3}:INTEGER); CODE -270;
  932. PROCEDURE SetPrefs(prefBuffer{8}:PreferencesPtr;
  933.                    Size{0}:INTEGER;
  934.                    Inform{1}:BOOLEAN); CODE -324;
  935. PROCEDURE SetWindowTitles(
  936.            window{8}:WindowPtr;
  937.            windowTitle{9}:ADDRESS;
  938.            screenTitle{10}:ADDRESS); CODE -276;
  939. PROCEDURE ShowTitle(screen{8}:ScreenPtr;
  940.                     showIt{0}:BOOLEAN); CODE -282;
  941. PROCEDURE SizeWindow(window{8}:WindowPtr;
  942.                      deltaX{0}:INTEGER;
  943.                      deltaY{1}:INTEGER); CODE -288;
  944. PROCEDURE UnlockIBase(lock{8}:LONGCARD); CODE -420;
  945. PROCEDURE ViewAddress():ViewPtr; CODE -294;
  946. PROCEDURE ViewPortAddress(
  947.            window{8}:WindowPtr):ViewPortPtr; CODE -300;
  948. PROCEDURE WBenchToBack():BOOLEAN; CODE -336;
  949. PROCEDURE WBenchToFront():BOOLEAN; CODE -342;
  950. (*
  951.  * Den Paramentern maxWidth und maxHeight darf man auch den
  952.  * Wert -1 zuweisen, falls man die Window Grösse nicht
  953.  * beschränken will. Damit dies nicht zu einem Laufzeitfehler
  954.  * führt wurden diese Parameter im Gegensatz zu den
  955.  * C Deklarationen als INTEGER und nicht als CARDINAL
  956.  * deklariert.
  957.  *)
  958. PROCEDURE WindowLimits(
  959.            window{8}:WindowPtr;
  960.            minWidth{0}:INTEGER;
  961.            minHeight{1}:INTEGER;
  962.            maxWidth{2}:INTEGER;
  963.            maxHeight{3}:INTEGER):BOOLEAN; CODE -318;
  964. PROCEDURE WindowToBack(window{8}:WindowPtr); CODE -306;
  965. PROCEDURE WindowToFront(window{8}:WindowPtr); CODE -312;
  966.  
  967. END Intuition.
  968.