DEFINITION Intuition; IMPORT e := Exec, g := Graphics, ie := InputEvent, t := Timer, u := Utility, km := KeyMap; TYPE MenuPtr = UNTRACED POINTER TO Menu; MenuItemPtr = UNTRACED POINTER TO MenuItem; RequesterPtr = UNTRACED POINTER TO Requester; GadgetPtr = UNTRACED POINTER TO Gadget; GadSpecialInfoPtr = UNTRACED POINTER TO GadSpecialInfo; BoolInfoPtr = UNTRACED POINTER TO BoolInfo; PropInfoPtr = UNTRACED POINTER TO PropInfo; StringInfoPtr = UNTRACED POINTER TO StringInfo; IntuiTextPtr = UNTRACED POINTER TO IntuiText; BorderPtr = UNTRACED POINTER TO Border; ImagePtr = UNTRACED POINTER TO Image; IntuiMessagePtr = UNTRACED POINTER TO IntuiMessage; IBoxPtr = UNTRACED POINTER TO IBox; WindowPtr = UNTRACED POINTER TO Window; NewWindowPtr = UNTRACED POINTER TO NewWindow; ExtNewWindowPtr = UNTRACED POINTER TO ExtNewWindow; RememberPtr = UNTRACED POINTER TO Remember; ColorSpecPtr = UNTRACED POINTER TO ColorSpec; EasyStructPtr = UNTRACED POINTER TO EasyStruct; GadgetInfoPtr = UNTRACED POINTER TO GadgetInfo; PGXPtr = UNTRACED POINTER TO PGX; MsgPtr = UNTRACED POINTER TO Msg; OpSetPtr = UNTRACED POINTER TO OpSet; OpUpdatePtr = UNTRACED POINTER TO OpUpdate; OpGetPtr = UNTRACED POINTER TO OpGet; OpAddTailPtr = UNTRACED POINTER TO OpAddTail; OpMemberPtr = UNTRACED POINTER TO OpMember; IClassPtr = UNTRACED POINTER TO IClass; ObjectPtr = UNTRACED POINTER TO Object; HitTestPtr = UNTRACED POINTER TO HitTest; RenderPtr = UNTRACED POINTER TO Render; InputPtr = UNTRACED POINTER TO Input; GoInactivePtr = UNTRACED POINTER TO GoInactive; FrameBoxPtr = UNTRACED POINTER TO FrameBox; DrawPtr = UNTRACED POINTER TO Draw; ErasePtr = UNTRACED POINTER TO Erase; IMHitTestPtr = UNTRACED POINTER TO IMHitTest; PreferencesPtr = UNTRACED POINTER TO Preferences; DrawInfoPtr = UNTRACED POINTER TO DrawInfo; ScreenPtr = UNTRACED POINTER TO Screen; NewScreenPtr = UNTRACED POINTER TO NewScreen; ExtNewScreenPtr = UNTRACED POINTER TO ExtNewScreen; PubScreenNodePtr = UNTRACED POINTER TO PubScreenNode; StringExtendPtr = UNTRACED POINTER TO StringExtend; SGWorkPtr = UNTRACED POINTER TO SGWork; IntuitionBasePtr = UNTRACED POINTER TO IntuitionBase; Menu = STRUCT nextMenu : MenuPtr; leftEdge,topEdge : INTEGER; width,height : INTEGER; flags : SET; menuName : e.STRPTR; firstItem : MenuItemPtr; jazzX,jazzY,beatX,beatY : INTEGER; END; CONST menuEnabled = 0; miDrawn = 8; TYPE MenuItem = STRUCT nextItem : MenuItemPtr; leftEdge,topEdge : INTEGER; width,height : INTEGER; flags : SET; mutualExclude : LONGSET; itemFill : e.APTR; selectFill : e.APTR; command : CHAR; subItem : MenuItemPtr; nextSelect : INTEGER; END; CONST checkIt = 0; itemText = 1; commSeq = 2; menuToggle = 3; itemEnabled = 4; highFlags = {6, 7}; highImage = {}; highComp = 6; highBox = 7; highNone = {highBox, highComp}; checked = 8; isDrawn = 12; highItem = 13; menuToggled = 14; TYPE Requester = STRUCT olderRequest : RequesterPtr; leftEdge,topEdge : INTEGER; width,height : INTEGER; relLeft,relTop : INTEGER; reqGadget : GadgetPtr; reqBorder : BorderPtr; reqText : IntuiTextPtr; flags : SET; backFill : SHORTINT; reqLayer : g.LayerPtr; reqPad1 : ARRAY 32 OF e.BYTE; imageBMap : g.BitMapPtr; rWindow : WindowPtr; reqImage : ImagePtr; reqPad2 : ARRAY 32 OF e.BYTE; END; CONST pointRel = 0; preDrawn = 1; noisyReq = 2; simpleReq = 4; useReqImage = 5; noReqBackFill = 6; reqOffWindow = 12; reqActive = 13; sysRequest = 14; deferRefresh = 15; TYPE Gadget = STRUCT nextGadget : GadgetPtr; leftEdge,topEdge : INTEGER; width,height : INTEGER; flags : SET; activation : SET; gadgetType : INTEGER; gadgetRender : e.APTR; selectRender : e.APTR; gadgetText : IntuiTextPtr; mutualExclude : LONGSET; specialInfo : GadSpecialInfoPtr; gadgetID : INTEGER; userData : e.APTR; END; GadSpecialInfo = STRUCT END; CONST gadgHighBits = {0, 1}; gadgHComp = {}; gadgHBox = 0; gadgHImage = 1; gadgHNone = {0, 1}; gadgImage = 2; gRelBottom = 3; gRelRight = 4; gRelWidth = 5; gRelHeight = 6; selected = 7; gadgDisabled = 8; labelMask = {12, 13}; labelIText = {}; labelString = 12; labelImage = 13; tabCycle = 9; stringExtend = 10; relVerify = 0; gadgImmediate = 1; endGadget = 2; followMouse = 3; rightBorder = 4; leftBorder = 5; topBorder = 6; bottomBorder = 7; borderSniff = 15; toggleSelect = 8; boolExtend = 13; stringLeft = {}; stringCenter = 9; stringRight = 10; longint = 11; altKeyMap = 12; actStringExtend = 13; activeGadget = 14; gadgetType = 0FC00U; sysGadget = 08000U; scrGadget = 04000U; gzzGadget = 02000U; reqGadget = 01000U; sizing = 00010U; wDragging = 00020U; sDragging = 00030U; wUpFront = 00040U; sUpFront = 00050U; wDownBack = 00060U; sDownBack = 00070U; close = 00080U; boolGadget = 00001U; gadget0002 = 00002U; propGadget = 00003U; strGadget = 00004U; customGadget = 00005U; gTypeMask = 00007U; TYPE BoolInfo = STRUCT flags : SET; mask : e.APTR; reserved : LONGINT; END; CONST boolMask = 0; TYPE PropInfo = STRUCT flags : SET; horizPot : INTEGER; vertPot : INTEGER; horizBody : INTEGER; vertBody : INTEGER; cWidth : INTEGER; cHeight : INTEGER; hPotRes,vPotRes : INTEGER; leftBorder : INTEGER; topBorder : INTEGER; END; CONST autoKnob = 0; freeHoriz = 1; freeVert = 2; propBorderless = 3; knobHit = 8; propNewLook = 4; knobHmin = 6; knobVmin = 4; maxBody = 0FFFFU; maxPot = 0FFFFU; TYPE StringInfo = STRUCT buffer : e.STRPTR; undoBuffer : e.STRPTR; bufferPos : INTEGER; maxChars : INTEGER; dispPos : INTEGER; undoPos : INTEGER; numChars : INTEGER; dispCount : INTEGER; cLeft,cTop : INTEGER; extension : StringExtendPtr; longInt : LONGINT; altKeyMap : km.KeyMapPtr; END; IntuiText = STRUCT frontPen,backPen : SHORTINT; drawMode : SHORTSET; leftEdge : INTEGER; topEdge : INTEGER; iTextFont : g.TextAttrPtr; iText : e.STRPTR; nextText : IntuiTextPtr; END; Border = STRUCT leftEdge,topEdge : INTEGER; frontPen,backPen : SHORTINT; drawMode : SHORTSET; count : SHORTINT; xy : e.APTR; nextBorder : BorderPtr; END; Image = STRUCT leftEdge : INTEGER; topEdge : INTEGER; width : INTEGER; height : INTEGER; depth : INTEGER; imageData : e.APTR; planePick,planeOnOff : SHORTSET; nextImage : ImagePtr; END; IntuiMessage = STRUCT (execMessage : e.Message) class : LONGSET; code : INTEGER; qualifier : SET; iAddress : e.APTR; mouseX,mouseY : INTEGER; time : t.TimeVal; idcmpWindow : WindowPtr; specialLink : IntuiMessagePtr; END; CONST sizeVerify = 0; newSize = 1; refreshWindow = 2; mouseButtons = 3; mouseMove = 4; gadgetDown = 5; gadgetUp = 6; reqSet = 7; menuPick = 8; closeWindow = 9; rawKey = 10; reqVerify = 11; reqClear = 12; menuVerify = 13; newPrefs = 14; diskInserted = 15; diskRemoved = 16; wbenchMessage = 17; activeWindow = 18; inactiveWindow = 19; deltaMove = 20; vanillaKey = 21; intuiTicks = 22; idcmpUpdate = 23; menuHelp = 24; changeWindow = 25; lonelyMessage = 31; menuHot = 0001H; menuCancel = 0002H; menuWaiting = 0003H; okOk = menuHot; okAbort = 0004H; okCancel = menuCancel; wbenchOpen = 0001H; wbenchClose = 0002H; TYPE IBox = STRUCT left : INTEGER; top : INTEGER; width : INTEGER; height : INTEGER; END; Window = STRUCT nextWindow : WindowPtr; leftEdge,topEdge : INTEGER; width,height : INTEGER; mouseY,mouseX : INTEGER; minWidth,minHeight : INTEGER; maxWidth,maxHeight : INTEGER; flags : LONGSET; menuStrip : MenuPtr; title : e.STRPTR; firstRequest : RequesterPtr; dmRequest : RequesterPtr; reqCount : INTEGER; wScreen : ScreenPtr; rPort : g.RastPortPtr; borderLeft,borderTop,borderRight,borderBottom : SHORTINT; borderRPort : g.RastPortPtr; firstGadget : GadgetPtr; parent,descendant : WindowPtr; pointer : e.APTR; ptrHeight : SHORTINT; ptrWidth : SHORTINT; xOffset,yOffset : SHORTINT; idcmpFlags : LONGSET; userPort : e.MsgPortPtr; windowPort : e.MsgPortPtr; messageKey : IntuiMessagePtr; detailPen,blockPen : SHORTINT; checkMark : ImagePtr; screenTitle : e.STRPTR; gzzMouseX : INTEGER; gzzMouseY : INTEGER; gzzWidth : INTEGER; gzzHeight : INTEGER; extData : e.APTR; userData : e.APTR; wLayer : g.LayerPtr; iFont : g.TextFontPtr; moreFlags : LONGSET; END; CONST windowSizing = 0; windowDrag = 1; windowDepth = 2; windowClose = 3; sizeBRight = 4; sizeBBottom = 5; refreshBits = LONGSET{6, 7}; smartRefresh = LONGSET{}; simpleRefresh = 6; superBitMap = 7; otherRefresh = LONGSET{6, 7}; backDrop = 8; reportMouse = 9; gimmeZeroZero = 10; borderless = 11; activate = 12; windowActive = 13; inRequest = 14; menuState = 15; rmbTrap = 16; noCareRefresh = 17; windowRefresh = 24; wbenchWindow = 25; windowTicked = 26; nwExtended = 18; visitor = 27; zoomed = 28; hasZoom = 29; defaultMouseQueue = 5; TYPE NewWindow = STRUCT leftEdge,topEdge : INTEGER; width,height : INTEGER; detailPen,blockPen : SHORTINT; idcmpFlags : LONGSET; flags : LONGSET; firstGadget : GadgetPtr; checkMark : ImagePtr; title : e.STRPTR; screen : ScreenPtr; bitMap : g.BitMapPtr; minWidth,minHeight : INTEGER; maxWidth,maxHeight : INTEGER; type : SET; END; ExtNewWindow = STRUCT (nw : NewWindow) extension : u.TagItemPtr; END; CONST waDummy = u.user + 99; waLeft = waDummy + 001H; waTop = waDummy + 002H; waWidth = waDummy + 003H; waHeight = waDummy + 004H; waDetailPen = waDummy + 005H; waBlockPen = waDummy + 006H; waIDCMP = waDummy + 007H; waFlags = waDummy + 008H; waGadgets = waDummy + 009H; waCheckmark = waDummy + 00AH; waTitle = waDummy + 00BH; waScreenTitle = waDummy + 00CH; waCustomScreen = waDummy + 00DH; waSuperBitMap = waDummy + 00EH; waMinWidth = waDummy + 00FH; waMinHeight = waDummy + 010H; waMaxWidth = waDummy + 011H; waMaxHeight = waDummy + 012H; waInnerWidth = waDummy + 013H; waInnerHeight = waDummy + 014H; waPubScreenName = waDummy + 015H; waPubScreen = waDummy + 016H; waPubScreenFallBack = waDummy + 017H; waWindowName = waDummy + 018H; waColors = waDummy + 019H; waZoom = waDummy + 01AH; waMouseQueue = waDummy + 01BH; waBackFill = waDummy + 01CH; waRptQueue = waDummy + 01DH; waSizeGadget = waDummy + 01EH; waDragBar = waDummy + 01FH; waDepthGadget = waDummy + 020H; waCloseGadget = waDummy + 021H; waBackdrop = waDummy + 022H; waReportMouse = waDummy + 023H; waNoCareRefresh = waDummy + 024H; waBorderless = waDummy + 025H; waActivate = waDummy + 026H; waRMBTrap = waDummy + 027H; waWBenchWindow = waDummy + 028H; waSimpleRefresh = waDummy + 029H; waSmartRefresh = waDummy + 02AH; waSizeBRight = waDummy + 02BH; waSizeBBottom = waDummy + 02CH; waAutoAdjust = waDummy + 02DH; waGimmeZeroZero = waDummy + 02EH; waMenuHelp = waDummy + 02FH; TYPE Remember = STRUCT nextRemember : RememberPtr; rememberSize : LONGINT; memory : e.APTR; END; ColorSpec = STRUCT colorIndex : INTEGER; red : INTEGER; green : INTEGER; blue : INTEGER; END; EasyStruct = STRUCT structSize : LONGINT; flags : LONGSET; title : e.STRPTR; textFormat : e.STRPTR; gadgetFormat : e.STRPTR; END; CONST noMenu = 0001FU; noItem = 0003FU; noSub = 0001FU; menuNull = 0FFFFU; checkWidth = 19; commWidth = 27; lowCheckWidth = 13; lowCommWidth = 16; alertType = 80000000H; recoveryAlert = 00000000H; deadendAlert = 80000000H; autoFrontPen = 0; autoBackPen = 1; autoDrawMode = g.jam2; autoLeftEdge = 6; autoTopEdge = 3; autoITextFont = NIL; autoNextText = NIL; selectUp = ie.lButton + ie.upPrefix; selectDown = ie.lButton; menuUp = ie.rButton + ie.upPrefix; menuDown = ie.rButton; middleDown = ie.mButton; middleUp = ie.mButton + ie.upPrefix; altLeft = {ie.lAlt}; altRight = {ie.rAlt}; amigaLeft = {ie.lCommand}; amigaRight = {ie.rCommand}; amigaKeys = amigaLeft + amigaRight; cursorUp = 04CH; cursorLeft = 04FH; cursorRight = 04EH; cursorDown = 04DH; keyCodeQ = 010H; keyCodeZ = 031H; keyCodeX = 032H; keyCodeV = 034H; keyCodeB = 035H; keyCodeN = 036H; keyCodeM = 037H; keyCodeLess = 038H; keyCodeGreater = 039H; TYPE GadgetInfo = STRUCT screen : ScreenPtr; window : WindowPtr; requester : RequesterPtr; rastPort : g.RastPortPtr; layer : g.LayerPtr; domain : IBox; pens : STRUCT detailPen : SHORTINT; blockPen : SHORTINT; END; drInfo : DrawInfoPtr; reserved : ARRAY 6 OF LONGINT; END; PGX = STRUCT container : IBox; newKnob : IBox; END; ObjectUsr = LONGINT; ClassID = e.BYTE; Msg = STRUCT methodID : LONGINT; END; CONST rootClass = "rootclass"; imageClass = "imageclass"; frameIClass = "frameiclass"; sysIClass = "sysiclass"; fillRectClass = "fillrectclass"; gadgetClass = "gadgetclass"; progGClass = "propgclass"; strGClass = "strgclass"; buttonGClass = "buttongclass"; frButtonClass = "frbuttonclass"; groupGClass = "groupgclass"; icClass = "icclass"; modelClass = "modelclass"; dummy = 0100H; new = 0101H; dispose = 0102H; set = 0103H; get = 0104H; addTail = 0105H; remove = 0106H; notify = 0107H; update = 0108H; addMember = 0109H; remMember = 010AH; TYPE OpSet = STRUCT (msg : Msg) attrList : u.TagItemPtr; gInfo : GadgetInfoPtr; END; OpUpdate = STRUCT (msg : Msg) attrList : u.TagItemPtr; gInfo : GadgetInfoPtr; flags : LONGSET; END; CONST interim = 0; TYPE OpGet = STRUCT (msg : Msg) attrID : LONGINT; storage : e.APTR; END; OpAddTail = STRUCT (msg : Msg) list : e.ListPtr; END; OpMember = STRUCT (msg : Msg) object : ObjectPtr; END; IClass = STRUCT (dispatcher : u.Hook) reserved : LONGINT; super : IClassPtr; id : ClassID; instOffset : INTEGER; instSize : INTEGER; userData : LONGINT; subclassCount : LONGINT; objectCount : LONGINT; flags : LONGSET; END; CONST inList = 0; TYPE Object = STRUCT (node : e.MinNode) class : IClassPtr; END; CONST gaDummy = u.user + 30000H; gaLeft = gaDummy + 0001H; gaRelRight = gaDummy + 0002H; gaTop = gaDummy + 0003H; gaRelBottom = gaDummy + 0004H; gaWidth = gaDummy + 0005H; gaRelWidth = gaDummy + 0006H; gaHeight = gaDummy + 0007H; gaRelHeight = gaDummy + 0008H; gaText = gaDummy + 0009H; gaImage = gaDummy + 000AH; gaBorder = gaDummy + 000BH; gaSelectRender = gaDummy + 000CH; gaHighlight = gaDummy + 000DH; gaDisabled = gaDummy + 000EH; gaGZZGadget = gaDummy + 000FH; gaID = gaDummy + 0010H; gaUserData = gaDummy + 0011H; gaSpecialInfo = gaDummy + 0012H; gaSelected = gaDummy + 0013H; gaEndGadget = gaDummy + 0014H; gaImmediate = gaDummy + 0015H; gaRelVerify = gaDummy + 0016H; gaFollowMouse = gaDummy + 0017H; gaRightBorder = gaDummy + 0018H; gaLeftBorder = gaDummy + 0019H; gaTopBorder = gaDummy + 001AH; gaBottomBorder = gaDummy + 001BH; gaToggleSelect = gaDummy + 001CH; gaSysGadget = gaDummy + 001DH; gaSysGType = gaDummy + 001EH; gaPrevious = gaDummy + 001FH; gaNext = gaDummy + 0020H; gaDrawInfo = gaDummy + 0021H; gaIntuiText = gaDummy + 0022H; gaLabelImage = gaDummy + 0023H; gaTabCycle = gaDummy + 0024H; pgaDummy = u.user + 31000H; pgaFreedom = pgaDummy + 0001H; pgaBorderless = pgaDummy + 0002H; pgaHorizPot = pgaDummy + 0003H; pgaHorizBody = pgaDummy + 0004H; pgaVertPot = pgaDummy + 0005H; pgaVertBody = pgaDummy + 0006H; pgaTotal = pgaDummy + 0007H; pgaVisible = pgaDummy + 0008H; pgaTop = pgaDummy + 0009H; pgaNewLook = pgaDummy + 000AH; stringaDummy = u.user + 32000H; stringaMaxChars = stringaDummy + 0001H; stringaBuffer = stringaDummy + 0002H; stringaUndoBuffer = stringaDummy + 0003H; stringaWorkBuffer = stringaDummy + 0004H; stringaBufferPos = stringaDummy + 0005H; stringaDispPos = stringaDummy + 0006H; stringaAltKeyMap = stringaDummy + 0007H; stringaFont = stringaDummy + 0008H; stringaPens = stringaDummy + 0009H; stringaActivePens = stringaDummy + 000AH; stringaEditHook = stringaDummy + 000BH; stringaEditModes = stringaDummy + 000CH; stringaReplaceMode = stringaDummy + 000DH; stringaFixedFieldMode = stringaDummy + 000EH; stringaNoFilterMode = stringaDummy + 000FH; stringaJustification = stringaDummy + 0010H; stringaLongVal = stringaDummy + 0011H; stringaTextVal = stringaDummy + 0012H; stringaExitHelp = stringaDummy + 0013H; sgDefaultMaxChars = 128; layoutaDummy = u.user + 38000H; layoutaLayoutObj = layoutaDummy + 0001H; layoutaSpacing = layoutaDummy + 0002H; layoutaOrientation = layoutaDummy + 0003H; lorientNone = 0; lorientHoriz = 1; lorientVert = 2; gmDummy = -1; gmHitTest = 0; gmRender = 1; gmGoActive = 2; gmHandleInput = 3; gmGoInactive = 4; TYPE HitTest = STRUCT (msg : Msg) gInfo : GadgetInfoPtr; mouse : g.Point; END; CONST gadgetHit = 000000004; TYPE Render = STRUCT (msg : Msg) gInfo : GadgetInfoPtr; rPort : g.RastPortPtr; redraw : LONGINT; END; CONST gRedrawUpdate = 2; gRedrawRedraw = 1; gRedrawToggle = 0; TYPE Input = STRUCT (msg : Msg) gInfo : GadgetInfoPtr; iEvent : ie.InputEventPtr; termination : e.APTR; mouse : g.Point; END; CONST gmrMeActive = 0; gmrNoReuse = 2; gmrReuse = 4; gmrVerify = 8; gmrNextActive = 16; gmrPrevActive = 32; TYPE GoInactive = STRUCT (msg : Msg) gInfo : GadgetInfoPtr; abort : LONGINT; END; CONST icmDummy = 00401H; icmSetLoop = 00402H; icmClearLoop = 00403H; icmCheckLoop = 00404H; icaDummy = u.user + 040000H; icatarget = icaDummy + 1; icamap = icaDummy + 2; icSpecialCode = icaDummy + 3; icTargetIDCMP = -LONGSET{}; customImageDepth = -1; iaDummy = u.user + 20000H; iaLeft = iaDummy + 001H; iaTop = iaDummy + 002H; iaWidth = iaDummy + 003H; iaHeight = iaDummy + 004H; iaFGPen = iaDummy + 005H; iaBGPen = iaDummy + 006H; iaData = iaDummy + 007H; iaLineWidth = iaDummy + 008H; iaPens = iaDummy + 00EH; iaResolution = iaDummy + 00FH; iaAPattern = iaDummy + 010H; iaAPatSize = iaDummy + 011H; iaMode = iaDummy + 012H; iaFont = iaDummy + 013H; iaOutline = iaDummy + 014H; iaRecessed = iaDummy + 015H; iaDoubleEmboss = iaDummy + 016H; iaEdgesOnly = iaDummy + 017H; sysiaSize = iaDummy + 00BH; sysiaDepth = iaDummy + 00CH; sysiaWhich = iaDummy + 00DH; sysiaDrawInfo = iaDummy + 018H; sysiaPens = iaPens; iaShadowPen = iaDummy + 009H; iaHighlightPen = iaDummy + 00AH; sysIsSizeMedRes = 0; sysIsSizeLowRes = 1; sysIsSizeHires = 2; depthImage = 000H; zoomImage = 001H; sizeImage = 002H; closeImage = 003H; sDepthImage = 005H; leftImage = 00AH; upImage = 00BH; rightImage = 00CH; downImage = 00DH; checkImage = 00EH; mxImage = 00FH; imDraw = 0202H; imHitTest = 0203H; imErase = 0204H; imMove = 0205H; imDrawFrame = 0206H; imFrameBox = 0207H; imHitFrame = 0208H; imEraseFrame = 0209H; idsNormal = 0; idsSelected = 1; idsDisabled = 2; idsBusy = 3; idsIndeterminate = 4; idsInactiveNormal = 5; idsInactiveSelected = 6; idsInactiveDisabled = 7; TYPE FrameBox = STRUCT (msg : Msg) contentsBox : IBoxPtr; frameBox : IBoxPtr; drInfo : DrawInfoPtr; frameFlags : LONGSET; END; CONST frameFSpecify = 0; TYPE Dimensions = STRUCT width : INTEGER; height : INTEGER; END; Draw = STRUCT (msg : Msg) rPort : g.RastPortPtr; offset : g.Point; state : LONGINT; drInfo : DrawInfoPtr; dimensions : Dimensions; END; Erase = STRUCT (msg : Msg) rPort : g.RastPortPtr; offset : g.Point; dimensions : Dimensions; END; IMHitTest = STRUCT (msg : Msg) point : g.Point; dimensions : Dimensions; END; CONST filenameSize = 30; pointerSize = (1 + 16 + 1) * 2; topazEighty = 8; topazSixty = 9; TYPE Filename = ARRAY filenameSize OF CHAR; Preferences = STRUCT fontHeight : SHORTINT; printerPort : SHORTINT; baudRate : INTEGER; keyRptSpeed : t.TimeVal; keyRptDelay : t.TimeVal; doubleClick : t.TimeVal; pointerMatrix : ARRAY pointerSize OF INTEGER; xOffset : SHORTINT; yOffset : SHORTINT; color17 : INTEGER; color18 : INTEGER; color19 : INTEGER; pointerTicks : INTEGER; color0 : INTEGER; color1 : INTEGER; color2 : INTEGER; color3 : INTEGER; viewXOffset : SHORTINT; viewYOffset : SHORTINT; viewInitX,viewInitY : INTEGER; enableCLI : SET; printerType : INTEGER; printerFilename : Filename; printPitch : INTEGER; printQuality : INTEGER; printSpacing : INTEGER; printLeftMargin : INTEGER; printRightMargin : INTEGER; printImage : INTEGER; printAspect : INTEGER; printShade : INTEGER; printThreshold : INTEGER; paperSize : INTEGER; paperLength : INTEGER; paperType : INTEGER; serRWBits : e.BYTE; serStopBuf : e.BYTE; serParShk : e.BYTE; laceWB : SHORTSET; workName : Filename; rowSizeChange : SHORTINT; columnSizeChange : SHORTINT; printFlags : SET; printMaxWidth : INTEGER; printMaxHeight : INTEGER; printDensity : SHORTINT; printXOffset : SHORTINT; width : INTEGER; height : INTEGER; depth : SHORTINT; extSize : SHORTINT; END; CONST laceWB = 0; lwReserved = 1; screenDrag = 14; mouseAccel = 15; parallelPrinter = 00H; serialPrinter = 01H; baud110 = 000H; baud300 = 001H; baud1200 = 002H; baud2400 = 003H; baud4800 = 004H; baud9600 = 005H; baud19200 = 006H; baudMidi = 007H; fanfold = 000H; single = 080H; pica = 0000H; elite = 0400H; fine = 0800H; draft = 0000H; letter = 0100H; sixLPI = 0000H; eightLPI = 0200H; imagePositive = 000H; imageNegative = 001H; aspectHoriz = 000H; aspectVert = 001H; shadeBW = 000H; shadeGreyScale = 001H; shadeColor = 002H; usLetter = 000H; usLegal = 010H; nTractor = 020H; wTractor = 030H; custom = 040H; customName = 000H; alphaP101 = 001H; brother15XL = 002H; cbmMps1000 = 003H; diab630 = 004H; diabAdvD25 = 005H; diabC150 = 006H; epson = 007H; epsonJX80 = 008H; okimate20 = 009H; qumeLP20 = 00AH; hpLaserjet = 00BH; hpLaserjetPlus = 00CH; buf512 = 000H; buf1024 = 001H; buf2048 = 002H; buf4096 = 003H; buf8000 = 004H; buf16000 = 005H; readBits = 0F0X; writeBits = 00FX; stopBits = 0F0X; bufSizeBits = 00FX; parityBits = 0F0X; hShakeBits = 00FX; parityNone = 0; parityEven = 1; parityOdd = 2; shakeXon = 0; shakeRts = 1; shakeNone = 2; correctRed = 0; correctGreen = 1; correctBlue = 2; centerImage = 3; ignoreDimensions = {}; boundedDimensions = 4; absoluteDimensions = 5; pixelDimensions = 6; multiplyDimensions = 7; integerScaling = 8; orderedDithering = {}; halftoneDithering = 9; floydDithering = 10; antiAlias = 11; greyScale2 = 12; correctRGBMask = {correctRed, correctGreen, correctBlue}; dimensionsMask = {boundedDimensions, absoluteDimensions, pixelDimensions, multiplyDimensions}; ditheringMask = {halftoneDithering, floydDithering}; driVersion = 1; TYPE DrawInfo = STRUCT version : INTEGER; numPens : INTEGER; pens : e.APTR; font : g.TextFontPtr; depth : INTEGER; resolution : g.Point; flags : LONGSET; reserved : ARRAY 7 OF LONGINT; END; CONST drifNewLook = 0; detailPen = 0000H; blockPen = 0001H; textPen = 0002H; shinePen = 0003H; shadowPen = 0004H; fillPen = 0005H; fillTextPen = 0006H; backGroundPen = 0007H; highLightTextPen = 0008H; numDRIPens = 0009H; TYPE Screen = STRUCT nextScreen : ScreenPtr; firstWindow : WindowPtr; leftEdge,topEdge : INTEGER; width,height : INTEGER; mouseY,mouseX : INTEGER; flags : SET; title : e.STRPTR; defaultTitle : e.STRPTR; barHeight,barVBorder,barHBorder,menuVBorder,menuHBorder : SHORTINT; wBorTop,wBorLeft,wBorRight,wBorBottom : SHORTINT; font : g.TextAttrPtr; viewPort : g.ViewPort; rastPort : g.RastPort; bitMap : g.BitMap; layerInfo : g.LayerInfo; firstGadget : GadgetPtr; detailPen,blockPen : SHORTINT; saveColor0 : INTEGER; barLayer : g.LayerPtr; extData : e.APTR; userData : e.APTR; END; CONST screenType = {0.reenType..3}; wbenchScreen = 0; publicScreen = 1; customScreen = {0.stomScreen..3}; showTitle = 4; beeping = 5; customBitMap = 6; screenBehind = 7; screenQuiet = 8; screenHiRes = 9; nsExtended = 12; autoScroll = 14; stdScreenHeight = -1; stdScreenWidth = -1; saDummy = u.user + 32; saLeft = saDummy + 00001H; saTop = saDummy + 00002H; saWidth = saDummy + 00003H; saHeight = saDummy + 00004H; saDepth = saDummy + 00005H; saDetailPen = saDummy + 00006H; saBlockPen = saDummy + 00007H; saTitle = saDummy + 00008H; saColors = saDummy + 00009H; saErrorCode = saDummy + 0000AH; saFont = saDummy + 0000BH; saSysFont = saDummy + 0000CH; saType = saDummy + 0000DH; saBitMap = saDummy + 0000EH; saPubName = saDummy + 0000FH; saPubSig = saDummy + 00010H; saPubTask = saDummy + 00011H; saDisplayID = saDummy + 00012H; saDClip = saDummy + 00013H; saOverscan = saDummy + 00014H; saObsolete1 = saDummy + 00015H; saShowTitle = saDummy + 00016H; saBehind = saDummy + 00017H; saQuiet = saDummy + 00018H; saAutoScroll = saDummy + 00019H; saPens = saDummy + 0001AH; saFullPalette = saDummy + 0001BH; osErrNoMonitor = 1; osErrNoChips = 2; osErrNoMem = 3; osErrNoChipMem = 4; osErrPubNotUnique = 5; osErrUnknownMode = 6; TYPE NewScreen = STRUCT leftEdge,topEdge,width,height,depth : INTEGER; detailPen,blockPen : SHORTINT; viewModes : SET; type : SET; font : g.TextAttrPtr; defaultTitle : e.STRPTR; gadgets : GadgetPtr; customBitMap : g.BitMapPtr; END; ExtNewScreen = STRUCT (ns : NewScreen) extension : u.TagItemPtr; END; CONST oScanText = 1; oScanStandard = 2; oScanMax = 3; oScanVideo = 4; TYPE PubScreenNode = STRUCT (node : e.Node) screen : ScreenPtr; flags : SET; size : INTEGER; visitorCount : INTEGER; sigTask : e.TaskPtr; sigBit : SHORTINT; END; CONST psnfPrivate = 0; maxPubScreenName = 139; shanghai = 0; popPubScreen = 1; TYPE StringExtend = STRUCT font : g.TextFontPtr; pens : ARRAY 2 OF SHORTINT; activePens : ARRAY 2 OF SHORTINT; initialMode : LONGSET; editHook : u.HookPtr; workBuffer : e.APTR; reserved : ARRAY 4 OF LONGINT; END; SGWork = STRUCT gadget : GadgetPtr; stringInfo : StringInfoPtr; workBuffer : e.APTR; prevBuffer : e.APTR; modes : LONGSET; iEvent : ie.InputEventPtr; code : INTEGER; bufferPos : INTEGER; numChars : INTEGER; actions : LONGSET; longInt : LONGINT; gadgetInfo : GadgetInfoPtr; editOp : INTEGER; END; CONST eoNoOp = 01H; eoDelBackward = 02H; eoDelForward = 03H; eoMoveCursor = 04H; eoEnter = 05H; eoReset = 06H; eoReplaceChar = 07H; eoInsertChar = 08H; eoBadFormat = 09H; eoBigChange = 0AH; eoUndo = 0BH; eoClear = 0CH; eoSpecial = 0DH; sgmReplace = 0; sgmFixedField = 1; sgmNoFilter = 2; sgmExitHelp = 7; sgmNoChange = 3; sgmNoWorkB = 4; sgmControl = 5; sgmLongint = 6; sgaUse = 0; sgaEnd = 1; sgaBeep = 2; sgaReuse = 3; sgaRedisplay = 4; sgaNextActive = 5; sgaPrevActive = 6; sghKey = 1; sghClick = 2; dModeCount = 2; hiresPick = 0; lowresPick = 1; eventMax = 10; resCount = 2; hiresGadget = 0; lowresGadget = 1; gadgetCount = 8; upFrontGadget = 0; downBackGadget = 1; sizeGadget = 2; closeGadget = 3; dragGadget = 4; sUpFrontGadget = 5; sDownBackGadget = 6; sDragGadget = 7; TYPE IntuitionBase = STRUCT (libNode : e.Library) viewLord : g.View; activeWindow : WindowPtr; activeScreen : ScreenPtr; firstScreen : ScreenPtr; flags : LONGSET; mouseY,mouseX : INTEGER; time : t.TimeVal END; TYPE LONGBOOL = LONGINT; CONST LTRUE = -1; LFALSE = 0; VAR int : IntuitionBasePtr; PROCEDURE OpenIntuition(); PROCEDURE Intuition(iEvent: ie.InputEventPtr); PROCEDURE AddGadget(window: WindowPtr; VAR gadget: Gadget; position: LONGINT): INTEGER; PROCEDURE ClearDMRequest(window: WindowPtr): BOOLEAN; PROCEDURE ClearMenuStrip(window: WindowPtr); PROCEDURE ClearPointer(window: WindowPtr); PROCEDURE CloseScreen(screen: ScreenPtr): BOOLEAN; PROCEDURE OldCloseScreen(screen: ScreenPtr); PROCEDURE CloseWindow(window: WindowPtr); PROCEDURE CloseWorkBench(): BOOLEAN; PROCEDURE CurrentTime(VAR seconds: LONGINT; VAR micros: LONGINT); PROCEDURE DisplayAlert(alertNumber: LONGINT; string: ARRAY OF CHAR; height: LONGINT): BOOLEAN; PROCEDURE DisplayBeep(screen: ScreenPtr); PROCEDURE DoubleClick(sSeconds: LONGINT; sMicros: LONGINT; cSeconds: LONGINT; cMicros: LONGINT): BOOLEAN; PROCEDURE DrawBorder(rp: g.RastPortPtr; border: BorderPtr; leftOffset: LONGINT; topOffset: LONGINT); PROCEDURE DrawImage(rp: g.RastPortPtr; image: Image; leftOffset: LONGINT; topOffset: LONGINT); PROCEDURE EndRequest(requester: RequesterPtr; window: WindowPtr); PROCEDURE GetDefPrefs(VAR preferences: ARRAY OF e.BYTE; size: LONGINT); PROCEDURE GetPrefs(VAR preferences: ARRAY OF e.BYTE; size: LONGINT); PROCEDURE InitRequester(VAR requester: Requester); PROCEDURE ItemAddress(menuStrip: Menu; menuNumber: LONGINT): MenuItemPtr; PROCEDURE ModifyIDCMP(window: WindowPtr; flags: LONGSET): BOOLEAN; PROCEDURE OldModifyIDCMP(window: WindowPtr; flags: LONGSET); PROCEDURE ModifyProp(VAR gadget: Gadget; window: WindowPtr; requester: RequesterPtr; flags: SET; horizPot: LONGINT; vertPot: LONGINT; horizBody: LONGINT; vertBody: LONGINT); PROCEDURE MoveScreen(screen: ScreenPtr; dx: LONGINT; dy: LONGINT); PROCEDURE MoveWindow(window: WindowPtr; dx: LONGINT; dy: LONGINT); PROCEDURE OffGadget(VAR gadget: Gadget; window: WindowPtr; requester: RequesterPtr); PROCEDURE OffMenu(window: WindowPtr; menuNumber: LONGINT); PROCEDURE OnGadget(VAR gadget: Gadget; window: WindowPtr; requester: RequesterPtr); PROCEDURE OnMenu(window: WindowPtr; menuNumber: LONGINT); PROCEDURE OpenScreen(newScreen: NewScreen): ScreenPtr; PROCEDURE OpenWindow(newWindow: NewWindow): WindowPtr; PROCEDURE OpenWorkBench(): ScreenPtr; PROCEDURE PrintIText(rp: g.RastPortPtr; iText: IntuiText; left: LONGINT; top: LONGINT); PROCEDURE RefreshGadgets(gadgets: GadgetPtr; window: WindowPtr; requester: RequesterPtr); PROCEDURE RemoveGadget(window: WindowPtr; VAR gadget: Gadget): INTEGER; PROCEDURE ReportMouse(window: WindowPtr; flag: LONGBOOL); PROCEDURE Request(requester: RequesterPtr; window: WindowPtr): BOOLEAN; PROCEDURE ScreenToBack(screen: ScreenPtr); PROCEDURE ScreenToFront(screen: ScreenPtr); PROCEDURE SetDMRequest(window: WindowPtr; requester: RequesterPtr): BOOLEAN; PROCEDURE SetMenuStrip(window: WindowPtr; VAR menu: Menu): BOOLEAN; PROCEDURE SetPointer(window: WindowPtr; pointer: ARRAY OF e.BYTE; height: LONGINT; width: LONGINT; xOffset: LONGINT; yOffset: LONGINT); PROCEDURE SetWindowTitles(window: WindowPtr; windowTitle: e.ADDRESS; screenTitle: e.ADDRESS); PROCEDURE SetWindowTitlesStr(window: WindowPtr; windowTitle: ARRAY OF CHAR; screenTitle: ARRAY OF CHAR); PROCEDURE ShowTitle(screen: ScreenPtr; showIt: LONGBOOL); PROCEDURE SizeWindow(window: WindowPtr; dx: LONGINT; dy: LONGINT); PROCEDURE ViewAddress(): g.ViewPtr; PROCEDURE ViewPortAddress(window: WindowPtr): g.ViewPortPtr; PROCEDURE WindowToBack(window: WindowPtr); PROCEDURE WindowToFront(window: WindowPtr); PROCEDURE WindowLimits(window: WindowPtr; widthMin: LONGINT; heightMin: LONGINT; widthMax: LONGINT; heightMax: LONGINT): BOOLEAN; PROCEDURE SetPrefs(preferences: ARRAY OF e.BYTE; size: LONGINT; inform: LONGBOOL); PROCEDURE IntuiTextLength(iText: IntuiText): INTEGER; PROCEDURE WBenchToBack(): BOOLEAN; PROCEDURE WBenchToFront(): BOOLEAN; PROCEDURE AutoRequest(window: WindowPtr; body: IntuiTextPtr; posText: IntuiTextPtr; negText: IntuiTextPtr; pFlag: LONGSET; nFlag: LONGSET; width: LONGINT; height: LONGINT): BOOLEAN; PROCEDURE BeginRefresh(window: WindowPtr); PROCEDURE BuildSysRequest(window: WindowPtr; body: IntuiTextPtr; posText: IntuiTextPtr; negText: IntuiTextPtr; flags: LONGSET; width: LONGINT; height: LONGINT): WindowPtr; PROCEDURE EndRefresh(window: WindowPtr; complete: LONGBOOL); PROCEDURE FreeSysRequest(window: WindowPtr); PROCEDURE MakeScreen(screen: ScreenPtr); PROCEDURE RemakeDisplay(); PROCEDURE RethinkDisplay(); PROCEDURE AllocRemember(VAR rememberKey: RememberPtr; size: LONGINT; flags: LONGSET): e.APTR; PROCEDURE AlohaWorkbench(wbport: e.MsgPortPtr); PROCEDURE FreeRemember(VAR rememberKey: RememberPtr; reallyForget: LONGBOOL); PROCEDURE LockIBase(dontknow: LONGINT): LONGINT; PROCEDURE UnlockIBase(ibLock: LONGINT); PROCEDURE GetScreenData(VAR buffer: Screen; size: LONGINT; type: SET; screen: ScreenPtr): BOOLEAN; PROCEDURE RefreshGList(gadgets: GadgetPtr; window: WindowPtr; requester: RequesterPtr; numGad: LONGINT); PROCEDURE AddGList(window: WindowPtr; gadget: GadgetPtr; position: LONGINT; numGad: LONGINT; requester: RequesterPtr): INTEGER; PROCEDURE RemoveGList(remPtr: WindowPtr; gadget: GadgetPtr; numGad: LONGINT): INTEGER; PROCEDURE ActivateWindow(window: WindowPtr): BOOLEAN; PROCEDURE OldActivateWindow(window: WindowPtr); PROCEDURE RefreshWindowFrame(window: WindowPtr); PROCEDURE ActivateGadget(VAR gadget: Gadget; window: WindowPtr; requester: RequesterPtr): BOOLEAN; PROCEDURE NewModifyProp(VAR gadget: Gadget; window: WindowPtr; requester: RequesterPtr; flags: SET; horizPot: LONGINT; vertPot: LONGINT; horizBody: LONGINT; vertBody: LONGINT; numGad: LONGINT); PROCEDURE QueryOverscan(displayID: LONGINT; rect: g.Rectangle; oScanType: LONGINT): LONGINT; PROCEDURE MoveWindowInFrontOf(window: WindowPtr; behindWindow: WindowPtr); PROCEDURE ChangeWindowBox(window: WindowPtr; left: LONGINT; top: LONGINT; width: LONGINT; height: LONGINT); PROCEDURE SetEditHook(hook: u.HookPtr): u.HookPtr; PROCEDURE SetMouseQueue(window: LONGINT; queueLength: LONGINT): LONGINT; PROCEDURE ZipWindow(window: WindowPtr); PROCEDURE LockPubScreen(name: ARRAY OF CHAR): ScreenPtr; PROCEDURE UnlockPubScreen(name: ARRAY OF CHAR; screen: ScreenPtr); PROCEDURE LockPubScreenList(): e.ListPtr; PROCEDURE UnlockPubScreenList(); PROCEDURE NextPubScreen(screen: ScreenPtr; VAR name: ARRAY OF CHAR): e.STRPTR; PROCEDURE SetDefaultPubScreen(name: ARRAY OF CHAR); PROCEDURE SetPubScreenModes(modes: SET): SET; PROCEDURE PubScreenStatus(screen: ScreenPtr; statusFlags: SET): SET; PROCEDURE ObtainGIRPort(gInfo: GadgetInfoPtr): g.RastPortPtr; PROCEDURE ReleaseGIRPort(rp: g.RastPortPtr); PROCEDURE GadgetMouse(VAR gadget: Gadget; gInfo: GadgetInfoPtr; VAR mousePoint: g.Point); PROCEDURE SetIPrefs(ptr: e.APTR; size: LONGINT; type: LONGINT); PROCEDURE GetDefaultPubScreen(VAR nameBuffer: ARRAY OF CHAR); PROCEDURE EasyRequestArgs(window: WindowPtr; easyStruct: EasyStructPtr; idcmpPtr: e.APTR; args: e.APTR): LONGINT; PROCEDURE EasyRequest(window: WindowPtr; easyStruct: EasyStructPtr; idcmpPtr: e.APTR; arg1..: e.APTR): LONGINT; PROCEDURE BuildEasyRequestArgs(window: WindowPtr; easyStruct: EasyStructPtr; idcmp: LONGSET; args: e.APTR): WindowPtr; PROCEDURE BuildEasyRequest(window: WindowPtr; easyStruct: EasyStructPtr; idcmp: LONGSET; arg1..: e.APTR): WindowPtr; PROCEDURE SysReqHandler(window: WindowPtr; idcmpPtr: e.APTR; waitInput: LONGBOOL): LONGINT; PROCEDURE OpenWindowTagList(newWindow: NewWindow; tagList: ARRAY OF u.TagItem): WindowPtr; PROCEDURE OpenWindowTags(newWindow: NewWindow; tag1..: u.Tag): WindowPtr; PROCEDURE OpenWindowTagListA(newWindow: NewWindowPtr; tagList: ARRAY OF u.TagItem): WindowPtr; PROCEDURE OpenWindowTagsA(newWindow: NewWindowPtr; tag1..: u.Tag): WindowPtr; PROCEDURE OpenScreenTagList(newScreen: NewScreen; tagList: ARRAY OF u.TagItem): ScreenPtr; PROCEDURE OpenScreenTags(newScreen: NewScreen; tag1..: u.Tag): ScreenPtr; PROCEDURE OpenScreenTagListA(newScreen: NewScreenPtr; tagList: ARRAY OF u.TagItem): ScreenPtr; PROCEDURE OpenScreenTagsA(newScreen: NewScreenPtr; tag1..: u.Tag): ScreenPtr; PROCEDURE DrawImageState(rp: g.RastPortPtr; image: Image; leftOffset: LONGINT; topOffset: LONGINT; state: LONGINT; drawInfo: DrawInfoPtr); PROCEDURE PointInImage(point: LONGINT; image: Image): BOOLEAN; PROCEDURE EraseImage(rp: g.RastPortPtr; image: Image; leftOffset: LONGINT; topOffset: LONGINT); PROCEDURE NewObjectA(clacc: IClassPtr; classID: ARRAY OF CHAR; tagList: ARRAY OF u.TagItem): e.APTR; PROCEDURE NewObject(clacc: IClassPtr; classID: ARRAY OF CHAR; tag1..: u.Tag): e.APTR; PROCEDURE DisposeObject(object: e.APTR); PROCEDURE SetAttrsA(object: e.APTR; tagList: ARRAY OF u.TagItem): LONGINT; PROCEDURE SetAttrs(object: e.APTR; tag1..: u.Tag): LONGINT; PROCEDURE GetAttr(attrID: LONGINT; object: e.APTR; VAR storage: ARRAY OF e.BYTE): LONGINT; PROCEDURE SetGadgetAttrsA(VAR gadget: Gadget; window: WindowPtr; requester: RequesterPtr; tagList: ARRAY OF u.TagItem): LONGINT; PROCEDURE SetGadgetAttrs(VAR gadget: Gadget; window: WindowPtr; requester: RequesterPtr; tag1..: u.Tag): LONGINT; PROCEDURE NextObject(VAR objectPtr: ObjectPtr): e.APTR; PROCEDURE FindClass(classID: ARRAY OF CHAR): IClassPtr; PROCEDURE MakeClass(classID: ARRAY OF CHAR; superClassID: ARRAY OF CHAR; superClassPtr: IClassPtr; instanceSize: LONGINT; flags: LONGSET): IClassPtr; PROCEDURE AddClass(class: IClassPtr); PROCEDURE GetScreenDrawInfo(screen: ScreenPtr): DrawInfoPtr; PROCEDURE FreeScreenDrawInfo(screen: ScreenPtr; drawInfo: DrawInfoPtr); PROCEDURE ResetMenuStrip(window: WindowPtr; VAR menu: Menu): BOOLEAN; PROCEDURE RemoveClass(classPtr: IClassPtr); PROCEDURE FreeClass(classPtr: IClassPtr): BOOLEAN; PROCEDURE lockPubClass(); PROCEDURE unlockPubClass(); PROCEDURE MenuNum(n: INTEGER): INTEGER; PROCEDURE ItemNum(n: INTEGER): INTEGER; PROCEDURE SubNum(n: INTEGER): INTEGER; PROCEDURE ShiftMenu(n: INTEGER): INTEGER; PROCEDURE ShiftItem(n: INTEGER): INTEGER; PROCEDURE ShiftSub(n: INTEGER): INTEGER; PROCEDURE FullMenuNum(menu, item, sub: INTEGER): INTEGER; PROCEDURE SRBNum(n: e.BYTE): INTEGER; PROCEDURE SWBNum(n: e.BYTE): INTEGER; PROCEDURE SSBNum(n: e.BYTE): INTEGER; PROCEDURE SPARNum(n: e.BYTE): INTEGER; PROCEDURE SHAKNum(n: e.BYTE): INTEGER; PROCEDURE CustomHook(VAR g: Gadget): u.HookPtr; PROCEDURE GadgetBox(VAR g: Gadget): IBoxPtr; PROCEDURE IMBox(VAR i: Image): IBoxPtr; PROCEDURE FGPen(VAR i: Image): SHORTINT; PROCEDURE BGPen(VAR i: Image): SHORTINT; PROCEDURE BoolToLong(b: BOOLEAN): LONGBOOL; PROCEDURE UIntToLong(i: INTEGER): LONGINT; PROCEDURE LongToUInt(l: LONGINT): INTEGER; PROCEDURE ScreenToRastPort(s: ScreenPtr): g.RastPortPtr; PROCEDURE ScreenToViewPort(s: ScreenPtr): g.ViewPortPtr; END Intuition.