@DATABASE "Intuition.mod" (* @NODE MAIN "Intuition.mod" *) (************************************************************************** $RCSfile: Intuition.mod $ Description: Interface to intuition.library Created by: fjc (Frank Copeland) $Revision: 1.2 $ $Author: fjc $ $Date: 1994/05/12 19:11:02 $ Copyright © 1994, Frank Copeland. This file is part of the Oberon-A Library. See Oberon-A.doc for conditions of use and distribution. Log entries are at the end of this node. ***************************************************************************) MODULE Intuition; (* @{" Pointers " link Pointers} @{" Menu " link Menu} @{" MenuItem " link MenuItem} @{" Requester " link Requester} @{" Gadget " link Gadget} @{" IntuiText " link IntuiText} @{" Border " link Border} @{" Image " link Image} @{" IntuiMessage " link IntuiMessage} @{" IBox " link IBox} @{" Window " link Window} @{" NewWindow " link NewWindow} @{" DrawInfo " link DrawInfo} @{" Screen " link Screen} @{" NewScreen " link NewScreen} @{" PubScreenNode " link PubScreenNode} @{" Preferences " link Preferences} @{" Remember " link Remember} @{" ColorSpec " link ColorSpec} @{" EasyStruct " link EasyStruct} @{" Miscellaneous " link Miscellaneous} @{" StringExtend " link StringExtend} @{" Custom gadgets " link CustomGadgets} @{" BOOPSI Users " link BOOPSIUser} @{" BOOPSI Implementors " link BOOPSIImpl} @{" BOOPSI gadgets " link BOOPSIGadgets} @{" BOOPSI interconnection " link BOOPSIConnect} @{" BOOPSI images " link BOOPSIImage} @{" IntuitionBase " link IntuitionBase} @{" Functions " link Functions} @{" Macros " link Macros} @{" Initialisation " link Initialisation} **************************************************************************** $Log: Intuition.mod $ Revision 1.2 1994/05/12 19:11:02 fjc - Prepared for release Revision 1.1 1994/01/15 20:49:58 fjc - Start of revision control **************************************************************************** *) (* $P- allow non-portable code *) IMPORT Types, Exec, Timer, Utility, Graphics, InputEvents, KeyMaps, SYSTEM; (* @ENDNODE *) (* @NODE Pointers "Pointers" *) TYPE MenuPtr * = CPOINTER TO Menu; MenuItemPtr * = CPOINTER TO MenuItem; RequesterPtr * = CPOINTER TO Requester; GadgetPtr * = CPOINTER TO Gadget; BoolInfoPtr * = CPOINTER TO BoolInfo; PropInfoPtr * = CPOINTER TO PropInfo; StringInfoPtr * = CPOINTER TO StringInfo; IntuiTextPtr * = CPOINTER TO IntuiText; BorderPtr * = CPOINTER TO Border; ImagePtr * = CPOINTER TO Image; IntuiMessagePtr * = CPOINTER TO IntuiMessage; IBoxPtr * = CPOINTER TO IBox; WindowPtr * = CPOINTER TO Window; NewWindowPtr * = CPOINTER TO NewWindow; ExtNewWindowPtr * = CPOINTER TO ExtNewWindow; DrawInfoPtr * = CPOINTER TO DrawInfo; ScreenPtr * = CPOINTER TO Screen; NewScreenPtr * = CPOINTER TO NewScreen; ExtNewScreenPtr * = CPOINTER TO ExtNewScreen; PubScreenNodePtr * = CPOINTER TO PubScreenNode; PreferencesPtr * = CPOINTER TO Preferences; RememberPtr * = CPOINTER TO Remember; ColorSpecPtr * = CPOINTER TO ColorSpec; EasyStructPtr * = CPOINTER TO EasyStruct; StringExtendPtr * = CPOINTER TO StringExtend; SGWorkPtr * = CPOINTER TO SGWork; GadgetInfoPtr * = CPOINTER TO GadgetInfo; PGXPtr * = CPOINTER TO PGX; Msg * = CPOINTER TO MsgStruct; opSetPtr * = CPOINTER TO opSet; opUpdatePtr * = CPOINTER TO opUpdate; opGetPtr * = CPOINTER TO opGet; opAddTailPtr * = CPOINTER TO opAddTail; IClassPtr * = CPOINTER TO IClass; uObjectPtr * = CPOINTER TO uObject; opMemberPtr * = CPOINTER TO opMember; gpHitTestPtr * = CPOINTER TO gpHitTest; gpRenderPtr * = CPOINTER TO gpRender; gpInputPtr * = CPOINTER TO gpInput; gpGoInactivePtr * = CPOINTER TO gpGoInactive; impFrameBoxPtr * = CPOINTER TO impFrameBox; impDrawPtr * = CPOINTER TO impDraw; impErasePtr * = CPOINTER TO impErase; impHitTestPtr * = CPOINTER TO impHitTest; (* @ENDNODE *) (* @NODE Menu "Menu" *) TYPE Menu * = RECORD NextMenu * : MenuPtr; LeftEdge *, TopEdge * : INTEGER; Width *, Height * : INTEGER; Flags * : Types.WSET; MenuName * : Types.STRPTR; FirstItem * : MenuItemPtr; JazzX *, JazzY *, BeatX *, BeatY * : INTEGER; END; CONST MenuEnabled * = 0; MiDrawn * = 8; (* @ENDNODE *) (* @NODE MenuItem "MenuItem" *) TYPE MenuItem * = RECORD NextItem * : MenuItemPtr; LeftEdge *, TopEdge * : INTEGER; Width *, Height * : INTEGER; Flags * : Types.WSET; MutualExclude * : SET; ItemFill * : Types.APTR; SelectFill * : Types.APTR; Command * : CHAR; SubItem * : MenuItemPtr; NextSelect * : Types.UWORD; END; CONST CheckIt * = 0; ItemText * = 1; CommSeq * = 2; MenuToggle * = 3; ItemEnabled * = 4; HighFlags * = {6,7}; HighImage * = {}; HighComp * = {6}; HighBox * = {7}; HighNone * = {6,7}; Checked * = 8; IsDrawn * = 12; HighItem * = 13; MenuToggled * = 14; (* @ENDNODE *) (* @NODE Requester "Requester" *) TYPE Requester * = RECORD OlderRequest * : RequesterPtr; LeftEdge *, TopEdge * : INTEGER; Width *, Height * : INTEGER; RelLeft *, RelTop * : INTEGER; ReqGadget * : GadgetPtr; ReqBorder * : BorderPtr; ReqText * : IntuiTextPtr; Flags * : Types.WSET; BackFill * : Types.UBYTE; ReqLayer * : Graphics.LayerPtr; ReqPad1 * : ARRAY 32 OF Types.UBYTE; ImageBMap * : Graphics.BitMapPtr; RWindow * : WindowPtr; ReqImage * : ImagePtr; ReqPad2 * : ARRAY 32 OF Types.UBYTE; END; CONST PointRel * = 0; PreDrawn * = 1; NoisyReq * = 2; SimpleReq * = 4; UseReqImage * = 5; NoReqBackFill * = 6; ReqOffWindow * = 12; ReqActive * = 13; SysRequest * = 14; DeferRefresh * = 15; (* @ENDNODE *) (* @NODE Gadget "Gadget" *) TYPE Gadget * = RECORD NextGadget * : GadgetPtr; LeftEdge* , TopEdge * : INTEGER; Width* , Height * : INTEGER; Flags * : Types.WSET; Activation * : Types.WSET; GadgetType * : Types.WSET; GadgetRender * : Types.APTR; SelectRender * : Types.APTR; GadgetText * : IntuiTextPtr; MutualExclude * : LONGINT; SpecialInfo * : Types.APTR; GadgetID * : Types.UWORD; UserData * : Types.APTR; END; CONST gflgGadgHighBits * = {0,1}; gflgGadgHComp * = {}; gflgGadgHBox * = {0}; gflgGadgHImage * = {1}; gflgGadgHNone * = {0,1}; gflgGadgImage * = 2; gflgRelBottom * = 3; gflgRelRight * = 4; gflgRelWidth * = 5; gflgRelHeight * = 6; gflgSelected * = 7; gflgDisabled * = 8; gflgLabelMask * = {12,13}; gflgLabelIText * = {}; gflgLabelString * = {12}; gflgLabelImage * = {13}; gflgTabCycle * = 9; gflgStringExtend * = 10; gactRelVerify * = 0; gactImmediate * = 1; gactEndGadget * = 2; gactFollowMouse * = 3; gactRightBorder * = 4; gactLeftBorder * = 5; gactTopBorder * = 6; gactBottomBorder * = 7; gactBorderSniff * = 15; gactToggleSelect * = 8; gactBoolExtend * = 13; gactStringLeft * = {}; gactStringCenter * = 9; gactStringRight * = 10; gactLongint * = 11; gactAltKeymap * = 12; gactStringExtend * = 13; gactActiveGadget * = 14; gtypGadgetType * = {10..15}; gtypSysGadget * = {15}; gtypScrGadget * = {14}; gtypGZZGadget * = {13}; gtypReqGadget * = {12}; gtypSizing * = {4}; gtypWDragging * = {5}; gtypSDragging * = {4,5}; gtypWUpFront * = {6}; gtypSUpFront * = {4,6}; gtypWDownback * = {5,6}; gtypSDownback * = {4,5,6}; gtypClose * = {7}; gtypBoolGadget * = {0}; gtypGadget0002 * = {1}; gtypPropGadget * = {0,1}; gtypStrGadget * = {2}; gtypCustomGadget * = {0,2}; gtypGTypeMask * = {0,1,2}; (* @{" BoolInfo " link BoolInfo} @{" PropInfo " link PropInfo} @{" StringInfo " link StringInfo} *) (* @ENDNODE *) (* @NODE BoolInfo "BoolInfo" *) TYPE BoolInfo * = RECORD Flags * : Types.WSET; Mask * : Types.APTR; Reserved * : Types.ULONG; END; CONST BoolMask * = {0}; (* @ENDNODE *) (* @NODE PropInfo "PropInfo" *) TYPE PropInfo * = RECORD Flags * : Types.WSET; HorizPot * : Types.UWORD; VertPot * : Types.UWORD; HorizBody * : Types.UWORD; VertBody * : Types.UWORD; CWidth * : Types.UWORD; CHeight * : Types.UWORD; HPotRes *, VPotRes * : Types.UWORD; LeftBorder * : Types.UWORD; TopBorder * : Types.UWORD; END; CONST AutoKnob * = 0; FreeHoriz * = 1; FreeVert * = 2; PropBorderless * = 3; KnobHit * = 8; PropNewlook * = 4; KnobHMin * = 6; KnobVMin * = 4; MaxBody * = 0FFFFH; MaxPot * = 0FFFFH; (* @ENDNODE *) (* @NODE StringInfo "StringInfo" *) TYPE StringInfo * = RECORD Buffer * : Types.STRPTR; UndoBuffer * : Types.STRPTR; BufferPos * : INTEGER; MaxChars * : INTEGER; DispPos * : INTEGER; UndoPos * : INTEGER; NumChars * : INTEGER; DispCount * : INTEGER; CLeft *, CTop * : INTEGER; Extension * : StringExtendPtr; LongInt * : LONGINT; AltKeyMap * : KeyMaps.KeyMapPtr; END; (* @ENDNODE *) (* @NODE IntuiText "IntuiText" *) TYPE IntuiText * = RECORD FrontPen *, BackPen * : Types.UBYTE; DrawMode * : Types.BSET; LeftEdge * : INTEGER; TopEdge * : INTEGER; ITextFont * : Graphics.TextAttrPtr; IText * : Types.STRPTR; NextText * : IntuiTextPtr; END; (* @ENDNODE *) (* @NODE Border "Border" *) TYPE Border * = RECORD LeftEdge *, TopEdge * : INTEGER; FrontPen *, BackPen * : Types.UBYTE; DrawMode * : Types.UBYTE; Count * : SHORTINT; XY * : Types.APTR; NextBorder * : BorderPtr; END; (* @ENDNODE *) (* @NODE Image "Image" *) TYPE Image * = RECORD LeftEdge * : INTEGER; TopEdge * : INTEGER; Width * : INTEGER; Height * : INTEGER; Depth * : INTEGER; ImageData * : Types.APTR; PlanePick *, PlaneOnOff * : Types.UBYTE; NextImage * : ImagePtr; END; (* @ENDNODE *) (* @NODE IntuiMessage "IntuiMessage" *) TYPE IntuiMessage * = RECORD (Exec.Message) Class * : SET; Code * : Types.UWORD; Qualifier * : Types.WSET; IAddress * : Types.APTR; MouseX *, MouseY * : INTEGER; Seconds *, Micros * : Types.ULONG; IDCMPWindow * : WindowPtr; SpecialLink * : IntuiMessagePtr; END; CONST idcmpSizeVerify * = 0; idcmpNewSize * = 1; idcmpRefreshWindow * = 2; idcmpMouseButtons * = 3; idcmpMouseMove * = 4; idcmpGadgetDown * = 5; idcmpGadgetUp * = 6; idcmpReqset * = 7; idcmpMenuPick * = 8; idcmpCloseWindow * = 9; idcmpRawKey * = 10; idcmpReqVerify * = 11; idcmpReqClear * = 12; idcmpMenuVerify * = 13; idcmpNewPrefs * = 14; idcmpDiskInserted * = 15; idcmpDiskRemoved * = 16; idcmpWBenchMessage * = 17; idcmpActiveWindow * = 18; idcmpInactiveWindow * = 19; idcmpDeltaMove * = 20; idcmpVanillaKey * = 21; idcmpIntuiTicks * = 22; idcmpIDCMPUpdate * = 23; idcmpMenuHelp * = 24; idcmpChangeWindow * = 25; idcmpLonelyMessage * = 31; MenuHot * = 0001H; MenuCancel * = 0002H; MenuWaiting * = 0003H; OkOk * = MenuHot; OkAbort * = 0004H; OkCancel * = MenuCancel; WBenchOpen * = 0001H; WBenchClose * = 0002H; (* @ENDNODE *) (* @NODE IBox "IBox" *) TYPE IBox * = RECORD Left * : INTEGER; Top * : INTEGER; Width * : INTEGER; Height * : INTEGER; END; (* @ENDNODE *) (* @NODE Window "Window" *) TYPE Window * = RECORD NextWindow * : WindowPtr; LeftEdge *, TopEdge * : INTEGER; Width *, Height * : INTEGER; MouseY *, MouseX * : INTEGER; MinWidth *, MinHeight * : INTEGER; MaxWidth *, MaxHeight * : Types.UWORD; Flags * : SET; MenuStrip * : MenuPtr; Title * : Types.STRPTR; FirstRequest * : RequesterPtr; DMRequest * : RequesterPtr; ReqCount * : INTEGER; WScreen * : ScreenPtr; RPort * : Graphics.RastPortPtr; BorderLeft *, BorderTop *, BorderRight *, BorderBottom * : SHORTINT; BorderRPort * : Graphics.RastPortPtr; FirstGadget * : GadgetPtr; Parent *, Descendant * : WindowPtr; Pointer * : Types.APTR; PtrHeight * : SHORTINT; PtrWidth * : SHORTINT; XOffset *, YOffset * : SHORTINT; IDCMPFlags * : SET; UserPort *, WindowPort * : Exec.MsgPortPtr; MessageKey * : IntuiMessagePtr; DetailPen *, BlockPen * : Types.UBYTE; CheckMark * : ImagePtr; ScreenTitle * : Types.STRPTR; GZZMouseX * : INTEGER; GZZMouseY * : INTEGER; GZZWidth * : INTEGER; GZZHeight * : INTEGER; ExtData * : Types.APTR; UserData * : Types.APTR; WLayer * : Graphics.LayerPtr; IFont * : Graphics.TextFontPtr; MoreFlags * : SET; END; CONST wflgSizeGadget * = 0; wflgDragbar * = 1; wflgDepthGadget * = 2; wflgCloseGadget * = 3; wflgSizeBRight * = 4; wflgSizeBBottom * = 5; wflgRefreshBits * = {6,7}; wflgSmartRefresh * = {}; wflgSimpleRefresh * = {6}; wflgSuperBitmap * = {7}; wflgOtherRefresh * = {6,7}; wflgBackdrop * = 8; wflgReportMouse * = 9; wflgGimmeZeroZero * = 10; wflgBorderless * = 11; wflgActivate * = 12; wflgWindowActive * = 13; wflgInRequest * = 14; wflgMenuState * = 15; wflgRMBTrap * = 16; wflgNoCareRefresh * = 17; wflgWindowRefresh * = 24; wflgWBenchWindow * = 25; wflgWindowTicked * = 26; wflgNwExtended * = 18; wflgVisitor * = 27; wflgZoomed * = 28; wflgHasZoom * = 29; DefaultMouseQueue * = 5; (* @ENDNODE *) (* @NODE NewWindow "NewWindow" *) TYPE NewWindow * = RECORD LeftEdge *, TopEdge * : INTEGER; Width *, Height * : INTEGER; DetailPen *, BlockPen * : Types.UBYTE; IDCMPFlags * : SET; Flags * : SET; FirstGadget * : GadgetPtr; CheckMark * : ImagePtr; Title * : Types.STRPTR; Screen * : ScreenPtr; BitMap * : Graphics.BitMapPtr; MinWidth *, MinHeight * : INTEGER; MaxWidth *, MaxHeight * : Types.UWORD; Type * : Types.WSET; END; ExtNewWindow * = RECORD (NewWindow) Extension * : Utility.TagItemPtr; END; CONST waDummy * = Utility.tagUser + 99; waLeft * = waDummy + 01H; waTop * = waDummy + 02H; waWidth * = waDummy + 03H; waHeight * = waDummy + 04H; waDetailPen * = waDummy + 05H; waBlockPen * = waDummy + 06H; waIDCMP * = waDummy + 07H; waFlags * = waDummy + 08H; waGadgets * = waDummy + 09H; waCheckmark * = waDummy + 0AH; waTitle * = waDummy + 0BH; waScreenTitle * = waDummy + 0CH; waCustomScreen * = waDummy + 0DH; waSuperBitMap * = waDummy + 0EH; waMinWidth * = waDummy + 0FH; waMinHeight * = waDummy + 10H; waMaxWidth * = waDummy + 11H; waMaxHeight * = waDummy + 12H; waInnerWidth * = waDummy + 13H; waInnerHeight * = waDummy + 14H; waPubScreenName * = waDummy + 15H; waPubScreen * = waDummy + 16H; waPubScreenFallBack * = waDummy + 17H; waWindowName * = waDummy + 18H; waColors * = waDummy + 19H; waZoom * = waDummy + 1AH; waMouseQueue * = waDummy + 1BH; waBackFill * = waDummy + 1CH; waRptQueue * = waDummy + 1DH; waSizeGadget * = waDummy + 1EH; waDragBar * = waDummy + 1FH; waDepthGadget * = waDummy + 20H; waCloseGadget * = waDummy + 21H; waBackdrop * = waDummy + 22H; waReportMouse * = waDummy + 23H; waNoCareRefresh * = waDummy + 24H; waBorderless * = waDummy + 25H; waActivate * = waDummy + 26H; waRMBTrap * = waDummy + 27H; waWBenchWindow * = waDummy + 28H; waSimpleRefresh * = waDummy + 29H; waSmartRefresh * = waDummy + 2AH; waSizeBRight * = waDummy + 2BH; waSizeBBottom * = waDummy + 2CH; waAutoAdjust * = waDummy + 2DH; waGimmeZeroZero * = waDummy + 2EH; waMenuHelp * = waDummy + 2FH; (* @ENDNODE *) (* @NODE DrawInfo "DrawInfo" *) (*-- These keep popping up ... ---------------------------------*) TYPE XY* = RECORD X * : INTEGER; Y * : INTEGER; END; Dimension = RECORD Width * : INTEGER; Height * : INTEGER; END; CONST riVersion * = 1; driVersion * = 1; TYPE DrawInfo * = RECORD driVersion * : Types.UWORD; driNumPens * : Types.UWORD; driPens * : Types.APTR; driFont * : Graphics.TextFontPtr; driDepth * : Types.UWORD; driResolution * : XY; driFlags * : SET; driReserved * : ARRAY 7 OF Types.ULONG; END; CONST driNewLook * = {0}; DetailPen * = 0; BlockPen * = 1; TextPen * = 2; ShinePen * = 3; ShadowPen * = 4; FillPen * = 5; FillTextPen * = 6; BackgroundPen * = 7; HighlightTextPen * = 8; NumDriPens * = 9; (* @ENDNODE *) (* @NODE Screen "Screen" *) TYPE Screen * = RECORD NextScreen * : ScreenPtr; FirstWindow * : WindowPtr; LeftEdge *, TopEdge * : INTEGER; Width *, Height * : INTEGER; MouseY *, MouseX * : INTEGER; Flags * : Types.WSET; Title * : Types.STRPTR; DefaultTitle * : Types.STRPTR; BarHeight *, BarVBorder *, BarHBorder *, MenuVBorder *, MenuHBorder * : SHORTINT; WBorTop *, WBorLeft *, WBorRight *, WBorBottom * : SHORTINT; Font * : Graphics.TextAttrPtr; ViewPort * : Graphics.ViewPort; RastPort * : Graphics.RastPort; BitMap * : Graphics.BitMap; LayerInfo * : Graphics.LayerInfo; FirstGadget * : GadgetPtr; DetailPen *, BlockPen * : Types.UBYTE; SaveColor0 * : Types.UWORD; BarLayer * : Graphics.LayerPtr; ExtData * : Types.APTR; UserData * : Types.APTR; END; CONST ScreenType * = {0..3}; WBenchScreen * = {0}; PublicScreen * = {1}; CustomScreen * = {0..3}; ShowTitle * = 4; Beeping * = 5; CustomBitmap * = 6; ScreenBehind * = 7; ScreenQuiet * = 8; ScreenHires * = 9; nsExtended * = 12; AutoScroll * = 14; StdScreenHeight * = -1; StdScreenWidth * = -1; saDummy * = Utility.tagUser + 32; saLeft * = saDummy + 0001H; saTop * = saDummy + 0002H; saWidth * = saDummy + 0003H; saHeight * = saDummy + 0004H; saDepth * = saDummy + 0005H; saDetailPen * = saDummy + 0006H; saBlockPen * = saDummy + 0007H; saTitle * = saDummy + 0008H; saColors * = saDummy + 0009H; saErrorCode * = saDummy + 000AH; saFont * = saDummy + 000BH; saSysFont * = saDummy + 000CH; saType * = saDummy + 000DH; saBitMap * = saDummy + 000EH; saPubName * = saDummy + 000FH; saPubSig * = saDummy + 0010H; saPubTask * = saDummy + 0011H; saDisplayID * = saDummy + 0012H; saDClip * = saDummy + 0013H; saOverscan * = saDummy + 0014H; saObsolete1 * = saDummy + 0015H; saShowTitle * = saDummy + 0016H; saBehind * = saDummy + 0017H; saQuiet * = saDummy + 0018H; saAutoScroll * = saDummy + 0019H; saPens * = saDummy + 001AH; saFullPalette * = saDummy + 001BH; nstagExtVPMode * = Utility.tagUser + 1; osErrNoMonitor * = 1; osErrNoChips * = 2; osErrNoMem * = 3; osErrNoChipMem * = 4; osErrPubNotUnique * = 5; osErrUnknownMode * = 6; (* @ENDNODE *) (* @NODE NewScreen "NewScreen" *) TYPE NewScreen * = RECORD LeftEdge *, TopEdge *, Width *, Height *, Depth * : INTEGER; DetailPen *, BlockPen * : Types.UBYTE; ViewModes * : Types.WSET; Type * : Types.WSET; Font * : Graphics.TextAttrPtr; DefaultTitle * : Types.STRPTR; Gadgets * : GadgetPtr; CustomBitMap * : Graphics.BitMapPtr; END; ExtNewScreen * = RECORD (NewScreen) Extension * : Utility.TagItemPtr; END; CONST oscanText * = 1; oscanStandard * = 2; oscanMax * = 3; oscanVideo * = 4; (* @ENDNODE *) (* @NODE PubScreenNode "PubScreenNode" *) TYPE PubScreenNode * = RECORD (Exec.Node) psnScreen * : ScreenPtr; psnFlags * : Types.WSET; psnSize * : INTEGER; psnVisitorCount * : INTEGER; psnSigTask * : Exec.TaskPtr; psnSigBit * : Types.UBYTE; END; CONST psnPrivate * = {0}; MaxPubScreenName * = 139; Shanghai * = 0001H; PopPubScreen * = 0002H; (* @ENDNODE *) (* @NODE Preferences "Preferences" *) CONST FilenameSize * = 30; PointerSize * = (1 + 16 + 1) * 2; topazEighty * = 8; topazSixty * = 9; TYPE Preferences * = RECORD FontHeight * : SHORTINT; PrinterPort * : Types.UBYTE; BaudRate * : Types.UWORD; KeyRptSpeed * : Timer.timeval; KeyRptDelay * : Timer.timeval; DoubleClick * : Timer.timeval; PointerMatrix * : ARRAY PointerSize OF Types.UWORD; XOffset * : SHORTINT; YOffset * : SHORTINT; color17 * : Types.UWORD; color18 * : Types.UWORD; color19 * : Types.UWORD; PointerTicks * : Types.UWORD; color0 * : Types.UWORD; color1 * : Types.UWORD; color2 * : Types.UWORD; color3 * : Types.UWORD; ViewXOffset * : SHORTINT; ViewYOffset * : SHORTINT; ViewInitX *, ViewInitY * : INTEGER; EnableCLI * : Types.BOOL; PrinterType * : Types.UWORD; PrinterFilename * : ARRAY FilenameSize OF CHAR; PrintPitch * : Types.UWORD; PrintQuality * : Types.UWORD; PrintSpacing * : Types.UWORD; PrintLeftMargin * : Types.UWORD; PrintRightMargin * : Types.UWORD; PrintImage * : Types.UWORD; PrintAspect * : Types.UWORD; PrintShade * : Types.UWORD; PrintThreshold * : INTEGER; PaperSize * : Types.UWORD; PaperLength * : Types.UWORD; PaperType * : Types.UWORD; SerRWBits * : Types.UBYTE; SerStopBuf * : Types.UBYTE; SerParShk * : Types.UBYTE; LaceWB * : Types.UBYTE; WorkName * : ARRAY FilenameSize OF CHAR; RowSizeChange * : SHORTINT; ColumnSizeChange * : SHORTINT; PrintFlags * : Types.WSET; PrintMaxWidth * : Types.UWORD; PrintMaxHeight * : Types.UWORD; PrintDensity * : Types.UBYTE; PrintXOffset * : Types.UBYTE; wbWidth * : Types.UWORD; wbHeight * : Types.UWORD; wbDepth * : Types.UBYTE; extsize * : Types.UBYTE; END; CONST LaceWB * = 0; lwReserved * = 1; screenDrag * = 14; mouseAccel * = 15; parallelPrinter * = 00H; serialPrinter * = 01H; baud110 * = 00H; baud300 * = 01H; baud1200 * = 02H; baud2400 * = 03H; baud4800 * = 04H; baud9600 * = 05H; baud19200 * = 06H; baudMIDI * = 07H; Fanfold * = 00H; Single * = 80H; Pica * = 000H; Elite * = 400H; Fine * = 800H; Draft * = 000H; Letter * = 100H; sixLPI * = 000H; eightLPI * = 200H; imagePositive * = 00H; imageNegative * = 01H; aspectHoriz * = 00H; aspectVert * = 01H; shadeBW * = 00H; shadeGreyscale * = 01H; shadeColor * = 02H; USletter * = 00H; USlegal * = 10H; NTractor * = 20H; WTractor * = 30H; Custom * = 40H; euroA0 * = 50H; euroA1 * = 60H; euroA2 * = 70H; euroA3 * = 80H; euroA4 * = 90H; euroA5 * = 0A0H; euroA6 * = 0B0H; euroA7 * = 0C0H; euroA8 * = 0D0H; customName * = 00H; alphaP101 * = 01H; brother15XL * = 02H; cbmMPS1000 * = 03H; diab630 * = 04H; diabAdvD25 * = 05H; diabC150 * = 06H; epson * = 07H; epsonJx80 * = 08H; okimate20 * = 09H; qumeLp20 * = 0AH; hpLaserJet * = 0BH; hpLaserJetPlus * = 0CH; sbuf512 * = 00H; sbuf1024 * = 01H; sbuf2048 * = 02H; sbuf4096 * = 03H; sbuf8000 * = 04H; sbuf16000 * = 05H; sReadBits * = 0F0H; sWriteBits * = 0FH; sStopBits * = 0F0H; sBufsizeBits * = 0FH; sParityBits * = 0F0H; sHShakeBits * = 0FH; sParityNone * = 0; sParityEven * = 1; sParityOdd * = 2; sParityMark * = 3; sParitySpace * = 4; sHShakeXON * = 0; sHShakeRTS * = 1; sHShakeNone * = 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 }; (* @ENDNODE *) (* @NODE Remember "Remember" *) TYPE Remember * = RECORD NextRemember * : RememberPtr; RememberSize * : Types.ULONG; Memory * : Types.APTR; END; (* @ENDNODE *) (* @NODE ColorSpec "ColorSpec" *) TYPE ColorSpec * = RECORD ColorIndex * : INTEGER; Red * : Types.UWORD; Green * : Types.UWORD; Blue * : Types.UWORD; END; (* @ENDNODE *) (* @NODE EasyStruct "EasyStruct" *) TYPE EasyStruct * = RECORD esStructSize * : Types.ULONG; esFlags * : SET; esTitle * : Types.STRPTR; esTextFormat * : Types.STRPTR; esGadgetFormat * : Types.STRPTR; END; (* @ENDNODE *) (* @NODE Miscellaneous "Miscellaneous" *) CONST NoMenu * = 001FH; NoItem * = 003FH; NoSub * = 001FH; MenuNull * = -1; CheckWidth * = 19; CommWidth * = 27; LowCheckWidth * = 13; LowCommWidth * = 16; AlertType * = 80000000H; RecoveryAlert * = 00000000H; DeadendAlert * = 80000000H; AutoFrontPen * = 0; AutoBackPen * = 1; AutoDrawMode * = Graphics.jam2; AutoLeftEdge * = 6; AutoTopEdge * = 3; AutoITextFont * = Types.NULL; AutoNextText * = Types.NULL; SelectUp * = 0E8H; SelectDown * = InputEvents.ieCodeLButton; MenuUp * = 0E9H; MenuDown * = InputEvents.ieCodeRButton; MiddleDown * = InputEvents.ieCodeMButton; MiddleUp * = 0EAH; AltLeft * = { InputEvents.ieQualifierLAlt }; AltRight * = { InputEvents.ieQualifierRAlt }; AmigaLeft * = { InputEvents.ieQualifierLCommand }; AmigaRight * = { InputEvents.ieQualifierRCommand }; AmigaKeys * = AmigaLeft + AmigaRight; CursorUp * = 4CH; CursorLeft * = 4FH; CursorRight * = 4EH; CursorDown * = 4DH; keycodeQ * = 10H; keycodeZ * = 31H; keycodeX * = 32H; keycodeV * = 34H; keycodeB * = 35H; keycodeN * = 36H; keycodeM * = 37H; keycodeLess * = 38H; keycodeGreater * = 39H; (* @ENDNODE *) (* @NODE StringExtend "StringExtend" *) TYPE StringExtend * = RECORD Font * : Graphics.TextFontPtr; Pens * : ARRAY 2 OF Types.UBYTE; ActivePens * : ARRAY 2 OF Types.UBYTE; InitialModes * : SET; EditHook * : Utility.HookPtr; WorkBuffer * : Types.STRPTR; Reserved * : ARRAY 4 OF Types.ULONG; END; SGWork * = RECORD Gadget * : GadgetPtr; StringInfo * : StringInfoPtr; WorkBuffer * : Types.STRPTR; PrevBuffer * : Types.STRPTR; Modes * : SET; IEvent * : InputEvents.InputEventPtr; Code * : Types.UWORD; BufferPos * : INTEGER; NumChars * : INTEGER; Actions * : SET; LongInt * : LONGINT; GadgetInfo * : GadgetInfoPtr; EditOp * : Types.UWORD; END; CONST eoNOOP * = 0001H; eoDelBackward * = 0002H; eoDelForward * = 0003H; eoMoveCursor * = 0004H; eoEnter * = 0005H; eoReset * = 0006H; eoReplaceChar * = 0007H; eoInsertChar * = 0008H; eoBadFormat * = 0009H; eoBigChange * = 000AH; eoUndo * = 000BH; eoClear * = 000CH; eoSpecial * = 000DH; 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; (* @ENDNODE *) (* @NODE CustomGadgets "Custom gadgets" *) TYPE GadgetInfo * = RECORD giScreen * : ScreenPtr; giWindow * : WindowPtr; giRequester * : RequesterPtr; giRastPort * : Graphics.RastPortPtr; giLayer * : Graphics.LayerPtr; giDomain * : IBox; giPens * : RECORD DetailPen * : Types.UBYTE; BlockPen * : Types.UBYTE; END; giDrInfo * : DrawInfoPtr; giReserved * : ARRAY 6 OF Types.ULONG; END; PGX * = RECORD pgxContainer * : IBox; pgxNewKnob * : IBox; END; (* @ENDNODE *) (* @NODE BOOPSIUser "BOOPSI Users" *) TYPE Object * = Types.ULONG; ClassID * = Types.STRPTR; MsgStruct * = RECORD MethodID * : Types.ULONG END; CONST RootClass * = "rootclass"; ImageClass * = "imageclass"; FrameIClass * = "frameiclass"; SysIClass * = "sysiclass"; FillRectClass * = "fillrectclass"; GadgetClass * = "gadgetclass"; PropGClass * = "propgclass"; StrGClass * = "strgclass"; ButtonGClass * = "buttongclass"; FRButtonClass * = "frbuttonclass"; GroupGClass * = "groupgclass"; ICClass * = "icclass"; ModelClass * = "modelclass"; omDummy * = 100H; omNew * = 101H; omDispose * = 102H; omSet * = 103H; omGet * = 104H; omAddTail * = 105H; omRemove * = 106H; omNotify * = 107H; omUpdate * = 108H; omAddMember * = 109H; omRemMember * = 10AH; TYPE opSet * = RECORD (MsgStruct) opsAttrList * : Utility.TagItemPtr; opsGInfo * : GadgetInfoPtr; END; opUpdate * = RECORD (MsgStruct) opuAttrList * : Utility.TagItemPtr; opuGInfo * : GadgetInfoPtr; opuFlags * : SET; END; CONST opuInterim * = 0; TYPE opGet * = RECORD (MsgStruct) opgAttrID * : Types.ULONG; opgStorage * : Types.APTR; END; opAddTail * = RECORD (MsgStruct) opatList * : Exec.ListPtr; END; opMember * = RECORD (MsgStruct) opamObject : uObjectPtr; END; opAddMember * = opMember; (* @ENDNODE *) (* @NODE BOOPSIImpl "BOOPSI Implementors" *) TYPE IClass * = RECORD (Utility.Hook) clReserved * : Types.ULONG; clSuper * : IClassPtr; clID * : ClassID; clInstOffset * : Types.UWORD; clInstSize * : Types.UWORD; clUserData * : Types.ULONG; clSubclassCount * : Types.ULONG; clObjectCount * : Types.ULONG; clFlags * : SET; END; Class * = IClass; CONST clInList * = 0; TYPE uObject * = RECORD (Exec.MinNode) oClass * : IClassPtr; END; (* @ENDNODE *) (* @NODE BOOPSIGadgets "BOOPSI gadgets" *) CONST gaDummy * = Utility.tagUser +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 * = Utility.tagUser + 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 * = Utility.tagUser+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 * = Utility.tagUser + 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 gpHitTest * = RECORD (MsgStruct) gphtGInfo * : GadgetInfoPtr; gphtMouse * : XY; END; CONST gmrGadgetHit * = 00000004H; TYPE gpRender * = RECORD (MsgStruct) gprGInfo * : GadgetInfoPtr; gprRPort * : Graphics.RastPortPtr; gprRedraw * : LONGINT; END; CONST gRedrawUpdate * = 2; gRedrawRedraw * = 1; gRedrawToggle * = 0; TYPE gpInput * = RECORD (MsgStruct) gpiGInfo * : GadgetInfoPtr; gpiIEvent * : InputEvents.InputEventPtr; gpiTermination * : Types.APTR; gpiMouse * : XY; END; CONST gmrMeActive * = {}; gmrNoReuse * = 1; gmrReuse * = 2; gmrVerify * = 3; gmrNextActive * = 4; gmrPrevActive * = 5; TYPE gpGoInactive * = RECORD (MsgStruct) gpgiGInfo * : GadgetInfoPtr; gpgiAbort * : Types.ULONG; END; (* @ENDNODE *) (* @NODE BOOPSIConnect "BOOPSI interconnection" *) CONST icmDummy * = 0401H; icmSetLoop * = 0402H; icmClearLoop * = 0403H; icmCheckLoop * = 0404H; icaDummy * = Utility.tagUser+40000H; icaTarget * = icaDummy + 1; icaMap * = icaDummy + 2; icSpecialCode * = icaDummy + 3; icTargetIDCMP * = 0FFFFFFFFH; (* @ENDNODE *) (* @NODE BOOPSIImage "BOOPSI images" *) CONST CustomImageDepth * = -1; iaDummy * = Utility.tagUser + 20000H; iaLeft * = iaDummy + 01H; iaTop * = iaDummy + 02H; iaWidth * = iaDummy + 03H; iaHeight * = iaDummy + 04H; iaFGPen * = iaDummy + 05H; iaBGPen * = iaDummy + 06H; iaData * = iaDummy + 07H; iaLineWidth * = iaDummy + 08H; iaPens * = iaDummy + 0EH; iaResolution * = iaDummy + 0FH; iaAPattern * = iaDummy + 10H; iaAPatSize * = iaDummy + 11H; iaMode * = iaDummy + 12H; iaFont * = iaDummy + 13H; iaOutline * = iaDummy + 14H; iaRecessed * = iaDummy + 15H; iaDoubleEmboss * = iaDummy + 16H; iaEdgesOnly * = iaDummy + 17H; sysIaSize * = iaDummy + 0BH; sysIaDepth * = iaDummy + 0CH; sysIaWhich * = iaDummy + 0DH; sysIaDrawInfo * = iaDummy + 18H; sysIaPens * = iaPens; iaShadowPen * = iaDummy + 09H; iaHighlightPen * = iaDummy + 0AH; sysISizeMedRes * = 0; sysISizeLowRes * = 1; sysISizeHires * = 2; DepthImage * = 00H; ZoomImage * = 01H; SizeImage * = 02H; CloseImage * = 03H; SDepthImage * = 05H; LeftImage * = 0AH; UpImage * = 0BH; RightImage * = 0CH; DownImage * = 0DH; CheckImage * = 0EH; MXImage * = 0FH; imDraw * = 202H; imHitTest * = 203H; imErase * = 204H; imMove * = 205H; imDrawFrame * = 206H; imFrameBox * = 207H; imHitFrame * = 208H; imEraseFrame * = 209H; idsNormal * = 0; idsSelected * = 1; idsDisabled * = 2; idsBusy * = 3; idsIndeterminate * = 4; idsInactiveNormal * = 5; idsInactiveSelected * = 6; idsInactiveDisabled * = 7; idsIndeterminant * = idsIndeterminate; TYPE impFrameBox * = RECORD (MsgStruct) impContentsBox * : IBoxPtr; impFrameBox * : IBoxPtr; impDrInfo * : DrawInfoPtr; impFrameFlags * : SET; END; CONST FramefSpecify * = {0}; TYPE impDraw * = RECORD (MsgStruct) impRPort * : Graphics.RastPortPtr; impOffset * : XY; impState * : Types.ULONG; impDrInfo * : DrawInfoPtr; impDimensions * : Dimension; END; TYPE impErase * = RECORD (MsgStruct) impRPort * : Graphics.RastPortPtr; impOffset * : XY; impDimensions * : Dimension; END; TYPE impHitTest * = RECORD (MsgStruct) impPoint * : XY; impDimensions * : Dimension; END; (* @ENDNODE *) (* @NODE IntuitionBase "IntuitionBase" *) CONST DModeCount * = 0002H; HiresPick * = 0000H; LowresPick * = 0001H; 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 IntuitionBasePtr * = CPOINTER TO IntuitionBase; IntuitionBase * = RECORD (Exec.Library) ViewLord * : Graphics.View; ActiveWindow * : WindowPtr; ActiveScreen * : ScreenPtr; FirstScreen * : ScreenPtr; Flags * : SET; MouseY *, MouseX * : INTEGER; Seconds * : Types.ULONG; Micros * : Types.ULONG; END; (*-- Library Base variable --------------------------------------------*) VAR Base * : IntuitionBasePtr; cleanup : PROCEDURE (rc : LONGINT); CONST Name * = "intuition.library"; (* @ENDNODE *) (* @NODE Functions "Functions" *) (*-- Library Functions ------------------------------------------------*) LIBCALL (base : IntuitionBasePtr) OpenIntuition * (); -30; LIBCALL (base : IntuitionBasePtr) Intuition* ( iEvent {8} : InputEvents.InputEventPtr ); -36; LIBCALL (base : IntuitionBasePtr) AddGadget* ( window {8} : WindowPtr; VAR gadget {9} : Gadget; position {0} : LONGINT ) : Types.UWORD; -42; LIBCALL (base : IntuitionBasePtr) ClearDMRequest* ( window {8} : WindowPtr ) : BOOLEAN; -48; LIBCALL (base : IntuitionBasePtr) ClearMenuStrip* ( window {8} : WindowPtr ); -54; LIBCALL (base : IntuitionBasePtr) ClearPointer* ( window {8} : WindowPtr ); -60; LIBCALL (base : IntuitionBasePtr) CloseScreen* ( screen {8} : ScreenPtr ) : BOOLEAN; -66; LIBCALL (base : IntuitionBasePtr) CloseWindow* ( window {8} : WindowPtr ); -72; LIBCALL (base : IntuitionBasePtr) CloseWorkBench * () : BOOLEAN; -78; LIBCALL (base : IntuitionBasePtr) CurrentTime* ( VAR seconds {8} : Types.ULONG; VAR micros {9} : Types.ULONG ); -84; LIBCALL (base : IntuitionBasePtr) DisplayAlert* ( alertNumber {0} : Types.ULONG; string {8} : ARRAY OF CHAR; height {1} : LONGINT ) : BOOLEAN; -90; LIBCALL (base : IntuitionBasePtr) DisplayBeep* ( screen {8} : ScreenPtr ); -96; LIBCALL (base : IntuitionBasePtr) DoubleClick* ( sSeconds {0} : Types.ULONG; sMicros {1} : Types.ULONG; cSeconds {2} : Types.ULONG; cMicros {3} : Types.ULONG ) : BOOLEAN; -102; LIBCALL (base : IntuitionBasePtr) DrawBorder* ( VAR rp {8} : Graphics.RastPort; VAR border {9} : Border; leftOffset {0} : LONGINT; topOffset {1} : LONGINT ); -108; LIBCALL (base : IntuitionBasePtr) DrawImage* ( VAR rp {8} : Graphics.RastPort; VAR image {9} : Image; leftOffset {0} : LONGINT; topOffset {1} : LONGINT ); -114; LIBCALL (base : IntuitionBasePtr) EndRequest* ( VAR requester {8} : Requester; window {9} : WindowPtr ); -120; LIBCALL (base : IntuitionBasePtr) GetDefPrefs* ( VAR preferences {8} : ARRAY OF SYSTEM.BYTE; size {0} : LONGINT ) : PreferencesPtr; -126; LIBCALL (base : IntuitionBasePtr) GetPrefs* ( VAR preferences {8} : ARRAY OF SYSTEM.BYTE; size {0} : LONGINT ) : PreferencesPtr; -132; LIBCALL (base : IntuitionBasePtr) InitRequester* ( VAR requester {8} : Requester ); -138; LIBCALL (base : IntuitionBasePtr) ItemAddress* ( VAR menuStrip {8} : Menu; menuNumber {0} : LONGINT ) : MenuItemPtr; -144; LIBCALL (base : IntuitionBasePtr) ModifyIDCMP* ( window {8} : WindowPtr; flags {0} : SET ) : BOOLEAN; -150; LIBCALL (base : IntuitionBasePtr) OldModifyIDCMP* ( window {8} : WindowPtr; flags {0} : SET ); -150; LIBCALL (base : IntuitionBasePtr) ModifyProp* ( VAR gadget {8} : Gadget; window {9} : WindowPtr; requester {10} : RequesterPtr; flags {0} : Types.WSET; horizPot {1} : LONGINT; vertPot {2} : LONGINT; horizBody {3} : LONGINT; vertBody {4} : LONGINT ); -156; LIBCALL (base : IntuitionBasePtr) MoveScreen* ( screen {8} : ScreenPtr; dx {0} : LONGINT; dy {1} : LONGINT ); -162; LIBCALL (base : IntuitionBasePtr) MoveWindow* ( window {8} : WindowPtr; dx {0} : LONGINT; dy {1} : LONGINT ); -168; LIBCALL (base : IntuitionBasePtr) OffGadget* ( VAR gadget {8} : Gadget; window {9} : WindowPtr; requester {10} : RequesterPtr ); -174; LIBCALL (base : IntuitionBasePtr) OffMenu* ( window {8} : WindowPtr; menuNumber {0} : Types.ULONG ); -180; LIBCALL (base : IntuitionBasePtr) OnGadget* ( VAR gadget {8} : Gadget; window {9} : WindowPtr; requester {10} : RequesterPtr ); -186; LIBCALL (base : IntuitionBasePtr) OnMenu* ( window {8} : WindowPtr; menuNumber {0} : Types.ULONG ); -192; LIBCALL (base : IntuitionBasePtr) OpenScreen* ( VAR newScreen {8} : NewScreen ) : ScreenPtr; -198; LIBCALL (base : IntuitionBasePtr) OpenWindow* ( VAR newWindow {8} : NewWindow ) : WindowPtr; -204; LIBCALL (base : IntuitionBasePtr) OpenWorkBench * () : BOOLEAN; -210; LIBCALL (base : IntuitionBasePtr) PrintIText* ( VAR rp {8} : Graphics.RastPort; VAR iText {9} : IntuiText; left {0} : LONGINT; top {1} : LONGINT ); -216; LIBCALL (base : IntuitionBasePtr) RefreshGadgets* ( VAR gadgets {8} : Gadget; window {9} : WindowPtr; requester {10} : RequesterPtr ); -222; LIBCALL (base : IntuitionBasePtr) RemoveGadget* ( window {8} : WindowPtr; VAR gadget {9} : Gadget ) : Types.UWORD; -228; LIBCALL (base : IntuitionBasePtr) ReportMouse* ( window {8} : WindowPtr; flag {0} : Types.LBOOL ); -234; LIBCALL (base : IntuitionBasePtr) Request* ( VAR requester {8} : Requester; window {9} : WindowPtr ) : BOOLEAN; -240; LIBCALL (base : IntuitionBasePtr) ScreenToBack* ( screen {8} : ScreenPtr ); -246; LIBCALL (base : IntuitionBasePtr) ScreenToFront* ( screen {8} : ScreenPtr ); -252; LIBCALL (base : IntuitionBasePtr) SetDMRequest* ( window {8} : WindowPtr; VAR requester {9} : Requester ) : BOOLEAN; -258; LIBCALL (base : IntuitionBasePtr) SetMenuStrip* ( window {8} : WindowPtr; VAR menu {9} : Menu ) : BOOLEAN; -264; LIBCALL (base : IntuitionBasePtr) SetPointer* ( window {8} : WindowPtr; pointer {9} : ARRAY OF SYSTEM.BYTE; height {0} : LONGINT; width {1} : LONGINT; xOffset {2} : LONGINT; yOffset {3} : LONGINT ); -270; LIBCALL (base : IntuitionBasePtr) SetWindowTitles* ( window {8} : WindowPtr; windowTitle {9} : Types.STRPTR; screenTitle {10} : Types.STRPTR ); -276; LIBCALL (base : IntuitionBasePtr) ShowTitle* ( screen {8} : ScreenPtr; showIt {0} : Types.LBOOL ); -282; LIBCALL (base : IntuitionBasePtr) SizeWindow* ( window {8} : WindowPtr; dx {0} : LONGINT; dy {1} : LONGINT ); -288; LIBCALL (base : IntuitionBasePtr) ViewAddress * () : Graphics.ViewPtr; -294; LIBCALL (base : IntuitionBasePtr) ViewPortAddress* ( window {8} : WindowPtr ) : Graphics.ViewPortPtr; -300; LIBCALL (base : IntuitionBasePtr) WindowToBack* ( window {8} : WindowPtr ); -306; LIBCALL (base : IntuitionBasePtr) WindowToFront* ( window {8} : WindowPtr ); -312; LIBCALL (base : IntuitionBasePtr) WindowLimits* ( window {8} : WindowPtr; widthMin {0} : LONGINT; heightMin {1} : LONGINT; widthMax {2} : LONGINT; heightMax {3} : LONGINT ) : BOOLEAN; -318; LIBCALL (base : IntuitionBasePtr) SetPrefs* ( VAR preferences {8} : Preferences; size {0} : LONGINT; inform {1} : Types.LBOOL ) : PreferencesPtr; -324; LIBCALL (base : IntuitionBasePtr) IntuiTextLength* ( VAR iText {8} : IntuiText ) : LONGINT; -330; LIBCALL (base : IntuitionBasePtr) WBenchToBack * () : BOOLEAN; -336; LIBCALL (base : IntuitionBasePtr) WBenchToFront * () : BOOLEAN; -342; LIBCALL (base : IntuitionBasePtr) AutoRequest* ( window {8} : WindowPtr; VAR body {9} : IntuiText; posText {10} : IntuiTextPtr; VAR negText {11} : IntuiText; pFlag {0} : SET; nFlag {1} : SET; width {2} : LONGINT; height {3} : LONGINT ) : BOOLEAN; -348; LIBCALL (base : IntuitionBasePtr) BeginRefresh* ( window {8} : WindowPtr ); -354; LIBCALL (base : IntuitionBasePtr) BuildSysRequest* ( window {8} : WindowPtr; VAR body {9} : IntuiText; posText {10} : IntuiTextPtr; VAR negText {11} : IntuiText; flags {0} : SET; width {1} : LONGINT; height {2} : LONGINT ) : WindowPtr; -360; LIBCALL (base : IntuitionBasePtr) EndRefresh* ( window {8} : WindowPtr; complete {0} : Types.LBOOL ); -366; LIBCALL (base : IntuitionBasePtr) FreeSysRequest* ( window {8} : WindowPtr ); -372; LIBCALL (base : IntuitionBasePtr) MakeScreen* ( screen {8} : ScreenPtr ); -378; LIBCALL (base : IntuitionBasePtr) RemakeDisplay * (); -384; LIBCALL (base : IntuitionBasePtr) RethinkDisplay * (); -390; LIBCALL (base : IntuitionBasePtr) AllocRemember* ( VAR rememberKey {8} : RememberPtr; size {0} : Types.ULONG; flags {1} : SET ) : Types.APTR; -396; LIBCALL (base : IntuitionBasePtr) AlohaWorkbench* ( wbport {8} : LONGINT ); -402; LIBCALL (base : IntuitionBasePtr) FreeRemember* ( VAR rememberPtr {8} : RememberPtr; reallyForget {0} : Types.LBOOL ); -408; LIBCALL (base : IntuitionBasePtr) LockIBase* ( dontknow {0} : Types.ULONG ) : Types.ULONG; -414; LIBCALL (base : IntuitionBasePtr) UnlockIBase* ( ibLock {8} : Types.ULONG ); -420; LIBCALL (base : IntuitionBasePtr) GetScreenData* ( VAR buffer {8} : ARRAY OF SYSTEM.BYTE; size {0} : Types.ULONG; type {1} : Types.WSET; screen {9} : ScreenPtr ) : BOOLEAN; -426; LIBCALL (base : IntuitionBasePtr) RefreshGList* ( VAR gadgets {8} : Gadget; window {9} : WindowPtr; requester {10} : RequesterPtr; numGad {0} : LONGINT ); -432; LIBCALL (base : IntuitionBasePtr) AddGList* ( window {8} : WindowPtr; VAR gadget {9} : Gadget; position {0} : LONGINT; numGad {1} : LONGINT; requester {10} : RequesterPtr ) : Types.UWORD; -438; LIBCALL (base : IntuitionBasePtr) RemoveGList* ( remPtr {8} : WindowPtr; VAR gadget {9} : Gadget; numGad {0} : LONGINT ) : Types.UWORD; -444; LIBCALL (base : IntuitionBasePtr) ActivateWindow* ( window {8} : WindowPtr ) : LONGINT; -450; LIBCALL (base : IntuitionBasePtr) RefreshWindowFrame* ( window {8} : WindowPtr ); -456; LIBCALL (base : IntuitionBasePtr) ActivateGadget* ( VAR gadgets {8} : Gadget; window {9} : WindowPtr; requester {10} : RequesterPtr ) : BOOLEAN; -462; LIBCALL (base : IntuitionBasePtr) NewModifyProp* ( VAR gadget {8} : Gadget; window {9} : WindowPtr; requester {10} : RequesterPtr; flags {0} : SET; horizPot {1} : LONGINT; vertPot {2} : LONGINT; horizBody {3} : LONGINT; vertBody {4} : LONGINT; numGad {5} : LONGINT ); -468; LIBCALL (base : IntuitionBasePtr) QueryOverscan* ( displayID {8} : Types.ULONG; VAR rect {9} : Graphics.Rectangle; oScanType {0} : LONGINT ) : BOOLEAN; -474; LIBCALL (base : IntuitionBasePtr) MoveWindowInFrontOf* ( window {8} : WindowPtr; behindWindow {9} : WindowPtr ); -480; LIBCALL (base : IntuitionBasePtr) ChangeWindowBox* ( window {8} : WindowPtr; left {0} : LONGINT; top {1} : LONGINT; width {2} : LONGINT; height {3} : LONGINT ); -486; LIBCALL (base : IntuitionBasePtr) SetEditHook* ( VAR hook {8} : Utility.Hook ) : Utility.HookPtr; -492; LIBCALL (base : IntuitionBasePtr) SetMouseQueue* ( window {8} : WindowPtr; queueLength {0} : LONGINT ) : LONGINT; -498; LIBCALL (base : IntuitionBasePtr) ZipWindow* ( window {8} : WindowPtr ); -504; LIBCALL (base : IntuitionBasePtr) LockPubScreen* ( name {8} : Types.STRPTR ) : ScreenPtr; -510; LIBCALL (base : IntuitionBasePtr) UnlockPubScreen* ( name {8} : Types.STRPTR; screen {9} : ScreenPtr ); -516; LIBCALL (base : IntuitionBasePtr) LockPubScreenList * () : Exec.ListPtr; -522; LIBCALL (base : IntuitionBasePtr) UnlockPubScreenList * (); -528; LIBCALL (base : IntuitionBasePtr) NextPubScreen* ( screen {8} : ScreenPtr; VAR nameBuf {9} : ARRAY OF CHAR ) : Types.APTR; -534; LIBCALL (base : IntuitionBasePtr) SetDefaultPubScreen* ( name {8} : Types.STRPTR ); -540; LIBCALL (base : IntuitionBasePtr) SetPubScreenModes* ( modes {0} : Types.WSET ) : Types.WSET; -546; LIBCALL (base : IntuitionBasePtr) PubScreenStatus* ( screen {8} : ScreenPtr; statusFlags {0} : Types.WSET ) : Types.WSET; -552; LIBCALL (base : IntuitionBasePtr) ObtainGIRPort* ( VAR gInfo {8} : GadgetInfo ) : Graphics.RastPortPtr; -558; LIBCALL (base : IntuitionBasePtr) ReleaseGIRPort* ( VAR rp {8} : Graphics.RastPort ); -564; LIBCALL (base : IntuitionBasePtr) GadgetMouse* ( VAR gadget {8} : Gadget; VAR gInfo {9} : GadgetInfo; VAR mousePoint {10} : Graphics.Point ); -570; LIBCALL (base : IntuitionBasePtr) GetDefaultPubScreen* ( nameBuffer {8} : Types.STRPTR ); -582; LIBCALL (base : IntuitionBasePtr) EasyRequestArgs* ( window {8} : WindowPtr; VAR easyStruct {9} : EasyStruct; VAR idcmpPtr {10} : SET; args {11} : Types.APTR ) : LONGINT; -588; LIBCALL (base : IntuitionBasePtr) BuildEasyRequestArgs* ( window {8} : WindowPtr; VAR easyStruct {9} : EasyStruct; idcmp {0} : SET; args {10} : Types.APTR ) : WindowPtr; -594; LIBCALL (base : IntuitionBasePtr) SysReqHandler* ( window {8} : WindowPtr; VAR idcmpPtr {9} : SET; waitInput {0} : Types.LBOOL ) : LONGINT; -600; LIBCALL (base : IntuitionBasePtr) OpenWindowTagList* ( newWindow {8} : NewWindowPtr; VAR tagList {9} : ARRAY OF Utility.TagItem ) : WindowPtr; -606; LIBCALL (base : IntuitionBasePtr) OpenScreenTagList* ( newScreen {8} : NewScreenPtr; VAR tagList {9} : ARRAY OF Utility.TagItem ) : ScreenPtr; -612; LIBCALL (base : IntuitionBasePtr) DrawImageState* ( VAR rp {8} : Graphics.RastPort; VAR image {9} : Image; leftOffset {0} : LONGINT; topOffset {1} : LONGINT; state {2} : SET; drawInfo {10} : DrawInfoPtr ); -618; LIBCALL (base : IntuitionBasePtr) PointInImage* ( point {0} : Graphics.Point; VAR image {8} : Image ) : BOOLEAN; -624; LIBCALL (base : IntuitionBasePtr) EraseImage* ( VAR rp {8} : Graphics.RastPort; VAR image {9} : Image; leftOffset {0} : LONGINT; topOffset {1} : LONGINT ); -630; LIBCALL (base : IntuitionBasePtr) NewObjectA* ( classPtr {8} : IClassPtr; classID {9} : ARRAY OF CHAR; VAR tagList {10} : ARRAY OF Utility.TagItem ) : Types.APTR; -636; LIBCALL (base : IntuitionBasePtr) DisposeObject* ( object {8} : Types.APTR ); -642; LIBCALL (base : IntuitionBasePtr) SetAttrsA* ( object {8} : Types.APTR; VAR tagList {9} : ARRAY OF Utility.TagItem ) : Types.ULONG; -648; LIBCALL (base : IntuitionBasePtr) GetAttr* ( attrID {0} : Types.ULONG; object {8} : Types.APTR; VAR storagePtr {9} : Types.ULONG ) : Types.ULONG; -654; LIBCALL (base : IntuitionBasePtr) SetGadgetAttrsA* ( VAR gadget {8} : Gadget; window {9} : WindowPtr; requester {10} : RequesterPtr; VAR tagList {11} : ARRAY OF Utility.TagItem ) : Types.ULONG; -660; LIBCALL (base : IntuitionBasePtr) NextObject* ( VAR objectPtr {8} : Exec.MinNodePtr ) : Exec.MinNodePtr; -666; LIBCALL (base : IntuitionBasePtr) MakeClass* ( classID {8} : Types.STRPTR; superClassID {9} : Types.STRPTR; superClassPtr {10} : IClassPtr; instanceSize {0} : LONGINT; flags {1} : SET ) : IClassPtr; -678; LIBCALL (base : IntuitionBasePtr) AddClass* ( classPtr {8} : IClassPtr ); -684; LIBCALL (base : IntuitionBasePtr) GetScreenDrawInfo* ( screen {8} : ScreenPtr ) : DrawInfoPtr; -690; LIBCALL (base : IntuitionBasePtr) FreeScreenDrawInfo* ( screen {8} : ScreenPtr; drawInfo {9} : DrawInfoPtr ); -696; LIBCALL (base : IntuitionBasePtr) ResetMenuStrip* ( window {8} : WindowPtr; VAR menu {9} : Menu ) : BOOLEAN; -702; LIBCALL (base : IntuitionBasePtr) RemoveClass* ( classPtr {8} : IClassPtr ); -708; LIBCALL (base : IntuitionBasePtr) FreeClass* ( classPtr {8} : IClassPtr ) : BOOLEAN; -714; (* @ENDNODE *) (* @NODE Macros "Macros" *) (*-- C Macros defined as procedures -----------------------------------*) (* $L+ Absolute long addressing for globals *) (*-----------------------------------*) PROCEDURE MENUNUM * (n : LONGINT) : LONGINT; BEGIN RETURN (ABS (n) MOD 32) END MENUNUM; (*-----------------------------------*) PROCEDURE ITEMNUM * (n : LONGINT) : LONGINT; BEGIN RETURN (SYSTEM.LSH (n, -5) MOD 64) END ITEMNUM; (*-----------------------------------*) PROCEDURE SUBNUM * (n : LONGINT) : LONGINT; BEGIN RETURN (SYSTEM.LSH (n, -11) MOD 32) END SUBNUM; (*-----------------------------------*) PROCEDURE SHIFTMENU * (n : LONGINT) : LONGINT; BEGIN RETURN (n MOD 32) END SHIFTMENU; (*-----------------------------------*) PROCEDURE SHIFTITEM * (n : LONGINT) : LONGINT; BEGIN RETURN SYSTEM.LSH (n MOD 64, 5) END SHIFTITEM; (*-----------------------------------*) PROCEDURE SHIFTSUB * (n : LONGINT) : LONGINT; BEGIN RETURN SYSTEM.LSH (n MOD 32, 11) END SHIFTSUB; (*-----------------------------------*) PROCEDURE FULLMENUNUM * (menu, item, sub : LONGINT) : LONGINT; BEGIN RETURN SYSTEM.LOR ( SYSTEM.LOR (menu MOD 32, SYSTEM.LSH (item MOD 64, 5)), SYSTEM.LSH (sub MOD 32, 11)) END FULLMENUNUM; (*-----------------------------------*) PROCEDURE OBJ* (o : Object) : uObjectPtr; BEGIN RETURN SYSTEM.VAL (uObjectPtr, o) END OBJ; (*-----------------------------------*) PROCEDURE BASEOBJECT * (obj : Object) : Types.APTR; BEGIN RETURN SYSTEM.VAL(Types.APTR, obj + SIZE (uObject)) END BASEOBJECT; (*-----------------------------------*) PROCEDURE OBJECT * (o : Types.APTR) : Object; BEGIN RETURN (SYSTEM.VAL (LONGINT, o) - SIZE (uObject)) END OBJECT; (*-----------------------------------*) PROCEDURE OCLASS * (o : Object) : IClassPtr; VAR obj : uObjectPtr; BEGIN obj := SYSTEM.VAL (uObjectPtr, o - SIZE (uObject)); RETURN obj.oClass END OCLASS; (*-----------------------------------*) PROCEDURE GadgetBox * (g : GadgetPtr) : GadgetPtr; BEGIN RETURN SYSTEM.VAL (GadgetPtr, SYSTEM.ADR (g.LeftEdge)) END GadgetBox; (*-----------------------------------*) PROCEDURE ImBox * (im : ImagePtr) : IBoxPtr; BEGIN RETURN SYSTEM.VAL (IBoxPtr, SYSTEM.ADR (im.LeftEdge)) END ImBox; (*-----------------------------------*) PROCEDURE ImFgPen * (im : ImagePtr) : SHORTINT; BEGIN RETURN SYSTEM.VAL (SHORTINT, im.PlanePick) END ImFgPen; (*-----------------------------------*) PROCEDURE ImBgPen * (im : ImagePtr) : SHORTINT; BEGIN RETURN SYSTEM.VAL (SHORTINT, im.PlaneOnOff) END ImBgPen; (*-----------------------------------*) PROCEDURE CustomHook * (gadget : GadgetPtr) : Utility.HookPtr; BEGIN RETURN SYSTEM.VAL (Utility.HookPtr, gadget.MutualExclude) END CustomHook; (*-----------------------------------*) PROCEDURE InstData * (cl : IClassPtr; o : Object) : Types.APTR; BEGIN RETURN SYSTEM.VAL (Types.APTR, o + cl.clInstOffset) END InstData; (*-----------------------------------*) PROCEDURE SizeofInstance * (cl : IClassPtr) : Types.UWORD; BEGIN RETURN cl.clInstOffset + cl.clInstSize + SIZE (uObject) END SizeofInstance; (* @ENDNODE *) (* @NODE Initialisation "Initialisation" *) (*-- Library Base variable --------------------------------------------*) (* $L- Address globals through A4 *) PROCEDURE* Close (rc : LONGINT); BEGIN IF Base # NIL THEN Exec.Base.CloseLibrary (Base) END; IF cleanup # NIL THEN cleanup (rc) END; END Close; BEGIN Base := Exec.Base.OpenLibrary (Name, Exec.libraryMinimum); IF Base = NIL THEN HALT (100) END; SYSTEM.SETCLEANUP (Close, cleanup) END Intuition. (* @ENDNODE *) (* Comments stripped by StripComments 1.0 *)