home *** CD-ROM | disk | FTP | other *** search
Text File | 1978-06-06 | 52.8 KB | 1,335 lines |
- IFND INTUITION_INTUITION_I@
- INTUITION_INTUITION_I@ = 1
-
- ;*; intuition.i ;************************************************************
- ;*
- ;; intuition.i main include file for assembly-language programmers
- ;*
- ;; $Header: intuition.i,v 1.13 86/09/10 10:52:26 jimm Exp $
- ;*
- ;; Confidential Information: Commodore-Amiga Computer, Inc.
- ;; Copyright (c) Commodore-Amiga Computer, Inc.
- ;; Modification History
- ;; date : author : Comments
- ;; ------ ------ -------------------------------------
- ;; 1-30-85 -=RJ=- created this file|
- ;; 6-12-85 Dale and Carl translated this from the c version
- ;; 6-13-85 =VoodooDrRj= added back the comments
- ;; 4-07-86 Barry. Bring this file up to date with the .h file
- ;*
- ;****************************************************************************
- ;; CONFIDENTIAL and PROPRIETARY
- ;; Copyright (C) 1985, COMMODORE-AMIGA, INC.
- ;; All Rights Reserved
- ;****************************************************************************/
-
- IFND EXEC_TYPES_I@
- INCLUDE "exec/types.i"
- ENDIF
-
- IFND GRAPHICS_GFX_I@
- include 'graphics/gfx.i'
- ENDIF
-
- IFND GRAPHICS_CLIP_I@
- include 'graphics/clip.i'
- ENDIF
-
- IFND GRAPHICS_VIEW_I@
- include 'graphics/view.i'
- ENDIF
-
- IFND GRAPHICS_RASTPORT_I@
- include 'graphics/rastport.i'
- ENDIF
-
- IFND GRAPHICS_LAYERS_I@
- include 'graphics/layers.i'
- ENDIF
-
- IFND GRAPHICS_TEXT_I@
- include 'graphics/text.i'
- ENDIF
-
- IFND EXEC_PORTS_I@
- include 'exec/ports.i'
- ENDIF
-
- IFND DEVICES_TIMER_I@
- include 'devices/timer.i'
- ENDIF
-
- IFND DEVICES_INPUTEVENT_I@
- include 'devices/inputevent.i'
- ENDIF
-
-
- ; ========================================================================;
- ; === Menu ===============================================================;
- ; ========================================================================;
- STRUCTURE Menu,0
-
- APTR mu_NextMenu ; menu pointer, same level
- WORD mu_LeftEdge ; position of the select box
- WORD mu_TopEdge ; position of the select box
- WORD mu_Width ; dimensions of the select box
- WORD mu_Height ; dimensions of the select box
- WORD mu_Flags ; see flag definitions below
- APTR mu_MenuName ; text for this Menu Header
- APTR mu_FirstItem ; pointer to first in chain
-
- ; these mysteriously-named variables are for internal use only
- WORD mu_JazzX
- WORD mu_JazzY
- WORD mu_BeatX
- WORD mu_BeatY
-
- LABEL mu_SIZEOF
-
- ;**; FLAGS SET BY BOTH THE APPLIPROG AND INTUITION ;**
- MENUENABLED EQU $0001 ; whether or not this menu is enabled
-
- ;**; FLAGS SET BY INTUITION ;**
- MIDRAWN EQU $0100 ; this menu's items are currently drawn
-
- ; ========================================================================;
- ; === MenuItem ===========================================================;
- ; ========================================================================;
- STRUCTURE MenuItem,0
-
- APTR mi_NextItem ; pointer to next in chained list
- WORD mi_LeftEdge ; position of the select box
- WORD mi_TopEdge ; position of the select box
- WORD mi_Width ; dimensions of the select box
- WORD mi_Height ; dimensions of the select box
- WORD mi_Flags ; see the defines below
-
- LONG mi_MutualExclude ; set bits mean this item excludes that item
-
- APTR mi_ItemFill ; points to Image, IntuiText, or NULL
-
- ; when this item is pointed to by the cursor and the items highlight
- ; mode HIGHIMAGE is selected, this alternate image will be displayed
- APTR mi_SelectFill ; points to Image, IntuiText, or NULL
-
- BYTE mi_Command ; only if appliprog sets the COMMSEQ flag
-
- BYTE mi_KludgeFill00 ; This is strictly for word-alignment
-
- APTR mi_SubItem ; if non-zero, DrawMenu shows "->"
-
- ; The NextSelect field represents the menu number of next selected
- ; item (when user has drag-selected several items)
- WORD mi_NextSelect
-
- LABEL mi_SIZEOF
-
- ; --- FLAGS SET BY THE APPLIPROG --------------------------------------------
- CHECKIT EQU $0001 ; whether to check this item if selected
- ITEMTEXT EQU $0002 ; set if textual, clear if graphical item
- COMMSEQ EQU $0004 ; set if there's an command sequence
- MENUTOGGLE EQU $0008 ; set to toggle the check of a menu item
- ITEMENABLED EQU $0010 ; set if this item is enabled
-
- ; these are the SPECIAL HIGHLIGHT FLAG state meanings
- HIGHFLAGS EQU $00C0 ; see definitions below for these bits
- HIGHIMAGE EQU $0000 ; use the user's "select image"
- HIGHCOMP EQU $0040 ; highlight by complementing the select box
- HIGHBOX EQU $0080 ; highlight by drawing a box around the image
- HIGHNONE EQU $00C0 ; don't highlight
-
- ; --- FLAGS SET BY BOTH APPLIPROG AND INTUITION -----------------------------
- CHECKED EQU $0100 ; if CHECKIT, then set this when selected
-
-
- ; --- FLAGS SET BY INTUITION ------------------------------------------------
- ISDRAWN EQU $1000 ; this item's subs are currently drawn
- HIGHITEM EQU $2000 ; this item is currently highlighted
- MENUTOGGLED EQU $4000 ; this item was already toggled
-
-
-
-
-
-
- ; ========================================================================
- ; === Requester ==========================================================
- ; ========================================================================
- STRUCTURE Requester,0
-
- ; the ClipRect and BitMap and used for rendering the requester
- APTR rq_OlderRequest
- WORD rq_LeftEdge ; dimensions of the entire box
- WORD rq_TopEdge ; dimensions of the entire box
- WORD rq_Width ; dimensions of the entire box
- WORD rq_Height ; dimensions of the entire box
-
- WORD rq_RelLeft ; get POINTREL Pointer relativity offsets
- WORD rq_RelTop ; get POINTREL Pointer relativity offsets
-
- APTR rq_ReqGadget ; pointer to the first of a list of gadgets
- APTR rq_ReqBorder ; the box's border
- APTR rq_ReqText ; the box's text
-
- WORD rq_Flags ; see definitions below
-
- UBYTE rq_BackFill ; pen number for back-plane fill before draws
-
- BYTE rq_KludgeFill00 ; This is strictly for word-alignment
-
- APTR rq_ReqLayer ; layer in which requester rendered
- STRUCT rq_ReqPad1,32 ; for backwards compatibility (reserved)
-
- ; If the BitMap plane pointers are non-zero, this tells the system
- ; that the image comes pre-drawn (if the appliprog wants to define
- ; it's own box, in any shape or size it wants|); this is OK by
- ; Intuition as long as there's a good correspondence between the image
- ; and the specified Gadgets
- APTR rq_ImageBMap ; points to the BitMap of PREDRAWN imagery
-
- APTR rq_RWindow ; points back to requester's window
- STRUCT rq_ReqPad2,36 ; for backwards compatibility (reserved)
-
- LABEL rq_SIZEOF
-
- ; FLAGS SET BY THE APPLIPROG
- POINTREL EQU $0001 ; if POINTREL set, TopLeft is relative to pointer
- PREDRAWN EQU $0002 ; if ReqBMap points to predrawn Requester imagery
- NOISYREQ EQU $0004 ; if you don't want requester to filter input
-
- ; FLAGS SET BY INTUITION;
- REQOFFWINDOW EQU $1000 ; part of one of the Gadgets was offwindow
- REQACTIVE EQU $2000 ; this requester is active
- SYSREQUEST EQU $4000 ; this requester caused by system
- DEFERREFRESH EQU $8000 ; this Requester stops a Refresh broadcast
-
-
-
-
-
- ; ========================================================================
- ; === Gadget =============================================================
- ; ========================================================================
- STRUCTURE Gadget,0
-
- APTR gg_NextGadget ; next gadget in the list
-
- WORD gg_LeftEdge ; "hit box" of gadget
- WORD gg_TopEdge ; "hit box" of gadget
- WORD gg_Width ; "hit box" of gadget
- WORD gg_Height ; "hit box" of gadget
-
- WORD gg_Flags ; see below for list of defines
-
- WORD gg_Activation ; see below for list of defines
-
- WORD gg_GadgetType ; see below for defines
-
- ; appliprog can specify that the Gadget be rendered as either as Border
- ; or an Image. This variable points to which (or equals NULL if there's
- ; nothing to be rendered about this Gadget)
- APTR gg_GadgetRender
-
- ; appliprog can specify "highlighted" imagery rather than algorithmic
- ; this can point to either Border or Image data
- APTR gg_SelectRender
-
- APTR gg_GadgetText ; text for this gadget;
-
- ; by using the MutualExclude word, the appliprog can describe
- ; which gadgets mutually-exclude which other ones. The bits in
- ; MutualExclude correspond to the gadgets in object containing
- ; the gadget list. If this gadget is selected and a bit is set
- ; in this gadget's MutualExclude and the gadget corresponding to
- ; that bit is currently selected (e.g. bit 2 set and gadget 2
- ; is currently selected) that gadget must be unselected. Intuition
- ; does the visual unselecting (with checkmarks) and leaves it up
- ; to the program to unselect internally
- LONG gg_MutualExclude ; set bits mean this gadget excludes that
-
- ; pointer to a structure of special data required by Proportional, String
- ; and Integer Gadgets
- APTR gg_SpecialInfo
-
- WORD gg_GadgetID ; user-definable ID field
- APTR gg_UserData ; ptr to general purpose User data (ignored by Intuit)
-
- LABEL gg_SIZEOF
-
- ; --- FLAGS SET BY THE APPLIPROG --------------------------------------------
- ; combinations in these bits describe the highlight technique to be used
- GADGHIGHBITS EQU $0003
- GADGHCOMP EQU $0000 ; Complement the select box
- GADGHBOX EQU $0001 ; Draw a box around the image
- GADGHIMAGE EQU $0002 ; Blast in this alternate image
- GADGHNONE EQU $0003 ; don't highlight
-
- ; set this flag if the GadgetRender and SelectRender point to Image imagery,
- ; clear if it's a Border
- GADGIMAGE EQU $0004
-
- ; combinations in these next two bits specify to which corner the gadget's
- ; Left & Top coordinates are relative. If relative to Top/Left,
- ; these are "normal" coordinates (everything is relative to something in
- ; this universe)
- GRELBOTTOM EQU $0008 ; set if rel to bottom, clear if rel top
- GRELRIGHT EQU $0010 ; set if rel to right, clear if to left
- ; set the RELWIDTH bit to spec that Width is relative to width of screen
- GRELWIDTH EQU $0020
- ; set the RELHEIGHT bit to spec that Height is rel to height of screen
- GRELHEIGHT EQU $0040
-
- ; the SELECTED flag is initialized by you and set by Intuition. It
- ; specifies whether or not this Gadget is currently selected/highlighted
- SELECTED EQU $0080
-
-
- ; the GADGDISABLED flag is initialized by you and later set by Intuition
- ; according to your calls to On/OffGadget(). It specifies whether or not
- ; this Gadget is currently disabled from being selected
- GADGDISABLED EQU $0100
-
-
- ; --- These are the Activation flag bits ----------------------------------
- ; RELVERIFY is set if you want to verify that the pointer was still over
- ; the gadget when the select button was released
- RELVERIFY EQU $0001
-
- ; the flag GADGIMMEDIATE, when set, informs the caller that the gadget
- ; was activated when it was activated. this flag works in conjunction with
- ; the RELVERIFY flag
- GADGIMMEDIATE EQU $0002
-
- ; the flag ENDGADGET, when set, tells the system that this gadget, when
- ; selected, causes the Requester or AbsMessage to be ended. Requesters or
- ; AbsMessages that are ended are erased and unlinked from the system
- ENDGADGET EQU $0004
-
- ; the FOLLOWMOUSE flag, when set, specifies that you want to receive
- ; reports on mouse movements (ie, you want the REPORTMOUSE function for
- ; your Window). When the Gadget is deselected (immediately if you have
- ; no RELVERIFY) the previous state of the REPORTMOUSE flag is restored
- ; You probably want to set the GADGIMMEDIATE flag when using FOLLOWMOUSE,
- ; since that's the only reasonable way you have of learning why Intuition
- ; is suddenly sending you a stream of mouse movement events. If you don't
- ; set RELVERIFY, you'll get at least one Mouse Position event.
- FOLLOWMOUSE EQU $0008
-
- ; if any of the BORDER flags are set in a Gadget that's included in the
- ; Gadget list when a Window is opened, the corresponding Border will
- ; be adjusted to make room for the Gadget
- RIGHTBORDER EQU $0010
- LEFTBORDER EQU $0020
- TOPBORDER EQU $0040
- BOTTOMBORDER EQU $0080
-
- TOGGLESELECT EQU $0100 ; this bit for toggle-select mode
-
- STRINGCENTER EQU $0200 ; center the String
- STRINGRIGHT EQU $0400 ; right-justify the String
-
- LONGINT EQU $0800 ; This String Gadget is a Long Integer
-
- ALTKEYMAP EQU $1000 ; This String has an alternate keymapping
-
- BOOLEXTEND EQU $2000 ; This Boolean Gadget has a BoolInfo
-
- ; --- GADGET TYPES -----------------------------------------------------------
- ; These are the Gaget Type definitions for the variable GadgetType.
- ; Gadget number type MUST start from one. NO TYPES OF ZERO ALLOWED.
- ; first comes the mask for Gadget flags reserved for Gadget typing
- GADGETTYPE EQU $FC00 ; all Gadget Global Type flags (padded)
- SYSGADGET EQU $8000 ; 1 = SysGadget, 0 = AppliGadget
- SCRGADGET EQU $4000 ; 1 = ScreenGadget, 0 = WindowGadget
- GZZGADGET EQU $2000 ; 1 = Gadget for GIMMEZEROZERO borders
- REQGADGET EQU $1000 ; 1 = this is a Requester Gadget
- ; system gadgets
- SIZING EQU $0010
- WDRAGGING EQU $0020
- SDRAGGING EQU $0030
- WUPFRONT EQU $0040
- SUPFRONT EQU $0050
- WDOWNBACK EQU $0060
- SDOWNBACK EQU $0070
- CLOSE EQU $0080
- ; application gadgets
- BOOLGADGET EQU $0001
- GADGET0002 EQU $0002
- PROPGADGET EQU $0003
- STRGADGET EQU $0004
-
-
-
- ; ========================================================================
- ; === BoolInfo============================================================
- ; ========================================================================
- ; This is the special data needed by an Extended Boolean Gadget
- ; Typically this structure will be pointed to by the Gadget field SpecialInfo
-
- STRUCTURE BoolInfo,0
-
- WORD bi_Flags ; defined below
- APTR bi_Mask ; bit mask for highlighting and selecting
- ; mask must follow the same rules as an Image
- ; plane. It's width and height are determined
- ; by the width and height of the gadget's
- ; select box. (i.e. Gadget.Width and .Height).
- LONG bi_Reserved ; set to 0
-
- LABEL bi_SIZEOF
-
- ; set BoolInfo.Flags to this flag bit.
- ; in the future, additional bits might mean more stuff hanging
- ; off of BoolInfo.Reserved.
-
- BOOLMASK EQU $0001 ; extension is for masked gadget
-
- ; ========================================================================
- ; === PropInfo ===========================================================
- ; ========================================================================
- ; this is the special data required by the proportional Gadget
- ; typically, this data will be pointed to by the Gadget variable SpecialInfo
- STRUCTURE PropInfo,0
-
- WORD pi_Flags ; general purpose flag bits (see defines below)
-
- ; You initialize the Pot variables before the Gadget is added to
- ; the system. Then you can look here for the current settings
- ; any time, even while User is playing with this Gadget. To
- ; adjust these after the Gadget is added to the System, use
- ; ModifyProp(); The Pots are the actual proportional settings,
- ; where a value of zero means zero and a value of MAXPOT means
- ; that the Gadget is set to its maximum setting.
- WORD pi_HorizPot ; 16-bit FixedPoint horizontal quantity percentage;
- WORD pi_VertPot ; 16-bit FixedPoint vertical quantity percentage;
-
- ; the 16-bit FixedPoint Body variables describe what percentage
- ; of the entire body of stuff referred to by this Gadget is
- ; actually shown at one time. This is used with the AUTOKNOB
- ; routines, to adjust the size of the AUTOKNOB according to how
- ; much of the data can be seen. This is also used to decide how
- ; far to advance the Pots when User hits the Container of the Gadget.
- ; For instance, if you were controlling the display of a 5-line
- ; Window of text with this Gadget, and there was a total of 15
- ; lines that could be displayed, you would set the VertBody value to
- ; (MAXBODY / (TotalLines / DisplayLines)) = MAXBODY / 3.
- ; Therefore, the AUTOKNOB would fill 1/3 of the container, and if
- ; User hits the Cotainer outside of the knob, the pot would advance
- ; 1/3 (plus or minus) If there's no body to show, or the total
- ; amount of displayable info is less than the display area, set the
- ; Body variables to the MAX. To adjust these after the Gadget is
- ; added to the System, use ModifyProp().
- WORD pi_HorizBody ; horizontal Body
- WORD pi_VertBody ; vertical Body
-
- ; these are the variables that Intuition sets and maintains
- WORD pi_CWidth ; Container width (with any relativity absoluted)
- WORD pi_CHeight ; Container height (with any relativity absoluted)
- WORD pi_HPotRes ; pot increments
- WORD pi_VPotRes ; pot increments
- WORD pi_LeftBorder ; Container borders
- WORD pi_TopBorder ; Container borders
- LABEL pi_SIZEOF
-
- ; --- FLAG BITS --------------------------------------------------------------
- AUTOKNOB EQU $0001 ; this flag sez: gimme that old auto-knob
- FREEHORIZ EQU $0002 ; if set, the knob can move horizontally
- FREEVERT EQU $0004 ; if set, the knob can move vertically
- PROPBORDERLESS EQU $0008 ; if set, no border will be rendered
- KNOBHIT EQU $0100 ; set when this Knob is hit
-
-
- KNOBHMIN EQU 6 ; minimum horizontal size of the knob
- KNOBVMIN EQU 4 ; minimum vertical size of the knob
- MAXBODY EQU $FFFF ; maximum body value
- MAXPOT EQU $FFFF ; maximum pot value
-
-
- ; ========================================================================
- ; === StringInfo =========================================================
- ; ========================================================================
- ; this is the special data required by the string Gadget
- ; typically, this data will be pointed to by the Gadget variable SpecialInfo
- STRUCTURE StringInfo,0
-
- ; you initialize these variables, and then Intuition maintains them
- APTR si_Buffer ; the buffer containing the start and final string
- APTR si_UndoBuffer ; optional buffer for undoing current entry
- WORD si_BufferPos ; character position in Buffer
- WORD si_MaxChars ; max number of chars in Buffer (including NULL)
- WORD si_DispPos ; Buffer position of first displayed character
-
- ; Intuition initializes and maintains these variables for you
- WORD si_UndoPos ; character position in the undo buffer
- WORD si_NumChars ; number of characters currently in Buffer
- WORD si_DispCount ; number of whole characters visible in Container
- WORD si_CLeft ; topleft offset of the container
- WORD si_CTop ; topleft offset of the container
- APTR si_LayerPtr ; the RastPort containing this Gadget
-
- ; you can initialize this variable before the gadget is submitted to
- ; Intuition, and then examine it later to discover what integer
- ; the user has entered (if the user never plays with the gadget,
- ; the value will be unchanged from your initial setting)
- LONG si_LongInt ; the LONG return value of a LONGINT String Gadget
-
- ; If you want this Gadget to use your own Console keymapping, you
- ; set the ALTKEYMAP bit in the Activation flags of the Gadget, and then
- ; set this variable to point to your keymap. If you don't set the
- ; ALTKEYMAP, you'll get the standard ASCII keymapping.
- APTR si_AltKeyMap
-
- LABEL si_SIZEOF
-
-
-
-
- ; ========================================================================
- ; === IntuiText ==========================================================
- ; ========================================================================
- ; IntuiText is a series of strings that start with a screen location
- ; (always relative to the upper-left corner of something) and then the
- ; text of the string. The text is null-terminated.
- STRUCTURE IntuiText,0
-
- BYTE it_FrontPen ; the pens for rendering the text
- BYTE it_BackPen ; the pens for rendering the text
-
- BYTE it_DrawMode ; the mode for rendering the text
-
- BYTE it_KludgeFill00 ; This is strictly for word-alignment
-
- WORD it_LeftEdge ; relative start location for the text
- WORD it_TopEdge ; relative start location for the text
-
- APTR it_ITextFont ; if NULL, you accept the defaults
-
- APTR it_IText ; pointer to null-terminated text
-
- APTR it_NextText ; continuation to TxWrite another text
-
- LABEL it_SIZEOF
-
-
-
-
-
- ; ========================================================================
- ; === Border =============================================================
- ; ========================================================================
- ; Data type Border, used for drawing a series of lines which is intended for
- ; use as a border drawing, but which may, in fact, be used to render any
- ; arbitrary vector shape.
- ; The routine DrawBorder sets up the RastPort with the appropriate
- ; variables, then does a Move to the first coordinate, then does Draws
- ; to the subsequent coordinates.
- ; After all the Draws are done, if NextBorder is non-zero we call DrawBorder
- ; recursively
- STRUCTURE Border,0
-
- WORD bd_LeftEdge ; initial offsets from the origin
- WORD bd_TopEdge ; initial offsets from the origin
- BYTE bd_FrontPen ; pen number for rendering
- BYTE bd_BackPen ; pen number for rendering
- BYTE bd_DrawMode ; mode for rendering
- BYTE bd_Count ; number of XY pairs
- APTR bd_XY ; vector coordinate pairs rel to LeftTop
- APTR bd_NextBorder ; pointer to any other Border too
-
- LABEL bd_SIZEOF
-
-
- ; ========================================================================
- ; === Image ==============================================================
- ; ========================================================================
- ; This is a brief image structure for very simple transfers of
- ; image data to a RastPort
- STRUCTURE Image,0
-
- WORD ig_LeftEdge ; starting offset relative to something
- WORD ig_TopEdge ; starting offset relative to something
- WORD ig_Width ; pixel size (though data is word-aligned)
- WORD ig_Height ; pixel size
- WORD ig_Depth ; pixel size
- APTR ig_ImageData ; pointer to the actual image bits
-
- ; the PlanePick and PlaneOnOff variables work much the same way as the
- ; equivalent GELS Bob variables. It's a space-saving
- ; mechanism for image data. Rather than defining the image data
- ; for every plane of the RastPort, you need define data only for planes
- ; that are not entirely zero or one. As you define your Imagery, you will
- ; often find that most of the planes ARE just as color selectors. For
- ; instance, if you're designing a two-color Gadget to use colors two and
- ; three, and the Gadget will reside in a five-plane display, plane zero
- ; of your imagery would be all ones, bit plane one would have data that
- ; describes the imagery, and bit planes two through four would be
- ; all zeroes. Using these flags allows you to avoid wasting all that
- ; memory in this way:
- ; first, you specify which planes you want your data to appear
- ; in using the PlanePick variable. For each bit set in the variable, the
- ; next "plane" of your image data is blitted to the display. For each bit
- ; clear in this variable, the corresponding bit in PlaneOnOff is examined.
- ; If that bit is clear, a "plane" of zeroes will be used. If the bit is
- ; set, ones will go out instead. So, for our example:
- ; Gadget.PlanePick = 0x02;
- ; Gadget.PlaneOnOff = 0x01;
- ; Note that this also allows for generic Gadgets, like the System Gadgets,
- ; which will work in any number of bit planes
- ; Note also that if you want an Image that is only a filled rectangle,
- ; you can get this by setting PlanePick to zero (pick no planes of data)
- ; and set PlaneOnOff to describe the pen color of the rectangle.
- BYTE ig_PlanePick
- BYTE ig_PlaneOnOff
-
- ; if the NextImage variable is not NULL, Intuition presumes that
- ; it points to another Image structure with another Image to be
- ; rendered
- APTR ig_NextImage
-
-
- LABEL ig_SIZEOF
-
-
-
-
- ; ========================================================================
- ; === IntuiMessage =======================================================
- ; ========================================================================
- STRUCTURE IntuiMessage,0
-
- STRUCT im_ExecMessage,MN_SIZE
-
- ; the Class bits correspond directly with the IDCMP Flags, except for the
- ; special bit LONELYMESSAGE (defined below)
- LONG im_Class
-
- ; the Code field is for special values like MENU number
- WORD im_Code
-
- ; the Qualifier field is a copy of the current InputEvent's Qualifier
- WORD im_Qualifier
-
- ; IAddress contains particular addresses for Intuition functions, like
- ; the pointer to the Gadget or the Screen
- APTR im_IAddress
-
- ; when getting mouse movement reports, any event you get will have the
- ; the mouse coordinates in these variables. the coordinates are relative
- ; to the upper-left corner of your Window (GIMMEZEROZERO notwithstanding)
- WORD im_MouseX
- WORD im_MouseY
-
- ; the time values are copies of the current system clock time. Micros
- ; are in units of microseconds, Seconds in seconds.
- LONG im_Seconds
- LONG im_Micros
-
- ; the IDCMPWindow variable will always have the address of the Window of
- ; this IDCMP
- APTR im_IDCMPWindow
-
- ; system-use variable
- APTR im_SpecialLink
-
- LABEL im_SIZEOF
-
-
-
- ; --- IDCMP Classes ------------------------------------------------------
- SIZEVERIFY EQU $00000001 ; See the Programmer's Guide
- NEWSIZE EQU $00000002 ; See the Programmer's Guide
- REFRESHWINDOW EQU $00000004 ; See the Programmer's Guide
- MOUSEBUTTONS EQU $00000008 ; See the Programmer's Guide
- MOUSEMOVE EQU $00000010 ; See the Programmer's Guide
- GADGETDOWN EQU $00000020 ; See the Programmer's Guide
- GADGETUP EQU $00000040 ; See the Programmer's Guide
- REQSET EQU $00000080 ; See the Programmer's Guide
- MENUPICK EQU $00000100 ; See the Programmer's Guide
- CLOSEWINDOW EQU $00000200 ; See the Programmer's Guide
- RAWKEY EQU $00000400 ; See the Programmer's Guide
- REQVERIFY EQU $00000800 ; See the Programmer's Guide
- REQCLEAR EQU $00001000 ; See the Programmer's Guide
- MENUVERIFY EQU $00002000 ; See the Programmer's Guide
- NEWPREFS EQU $00004000 ; See the Programmer's Guide
- DISKINSERTED EQU $00008000 ; See the Programmer's Guide
- DISKREMOVED EQU $00010000 ; See the Programmer's Guide
- WBENCHMESSAGE EQU $00020000 ; See the Programmer's Guide
- ACTIVEWINDOW EQU $00040000 ; See the Programmer's Guide
- INACTIVEWINDOW EQU $00080000 ; See the Programmer's Guide
- DELTAMOVE EQU $00100000 ; See the Programmer's Guide
- VANILLAKEY EQU $00200000 ; See the Programmer's Guide
- INTUITICKS EQU $00400000 ; See the Programmer's Guide
- ; NOTEZ-BIEN: $80000000 is reserved for internal use by IDCMP
-
- ; the IDCMP Flags do not use this special bit, which is cleared when
- ; Intuition sends its special message to the Task, and set when Intuition
- ; gets its Message back from the Task. Therefore, I can check here to
- ; find out fast whether or not this Message is available for me to send
- LONELYMESSAGE EQU $80000000
-
-
-
- ; --- IDCMP Codes --------------------------------------------------------
- ; This group of codes is for the MENUVERIFY function
- MENUHOT EQU $0001 ; IntuiWants verification or MENUCANCEL
- MENUCANCEL EQU $0002 ; HOT Reply of this cancels Menu operation
- MENUWAITING EQU $0003 ; Intuition simply wants a ReplyMsg() ASAP
-
- ; These are internal tokens to represent state of verification attempts
- ; shown here as a clue.
- OKOK EQU MENUHOT ; guy didn't care
- OKABORT EQU $0004 ; window rendered question moot
- OKCANCEL EQU MENUCANCEL ; window sent cancel reply
-
- ; This group of codes is for the WBENCHMESSAGE messages
- WBENCHOPEN EQU $0001
- WBENCHCLOSE EQU $0002
-
-
-
-
- ; ========================================================================
- ; === Window =============================================================
- ; ========================================================================
- STRUCTURE Window,0
-
- APTR wd_NextWindow ; for the linked list of a Screen
-
- WORD wd_LeftEdge ; screen dimensions
- WORD wd_TopEdge ; screen dimensions
- WORD wd_Width ; screen dimensions
- WORD wd_Height ; screen dimensions
-
- WORD wd_MouseY ; relative top top-left corner
- WORD wd_MouseX ; relative top top-left corner
-
- WORD wd_MinWidth ; minimum sizes
- WORD wd_MinHeight ; minimum sizes
- WORD wd_MaxWidth ; maximum sizes
- WORD wd_MaxHeight ; maximum sizes
-
- LONG wd_Flags ; see below for definitions
-
- APTR wd_MenuStrip ; first in a list of menu headers
-
- APTR wd_Title ; title text for the Window
-
- APTR wd_FirstRequest ; first in linked list of active Requesters
- APTR wd_DMRequest ; the double-menu Requester
- WORD wd_ReqCount ; number of Requesters blocking this Window
- APTR wd_WScreen ; this Window's Screen
- APTR wd_RPort ; this Window's very own RastPort
-
- ; the border variables describe the window border. If you specify
- ; GIMMEZEROZERO when you open the window, then the upper-left of the
- ; ClipRect for this window will be upper-left of the BitMap (with correct
- ; offsets when in SuperBitMap mode; you MUST select GIMMEZEROZERO when
- ; using SuperBitMap). If you don't specify ZeroZero, then you save
- ; memory (no allocation of RastPort, Layer, ClipRect and associated
- ; Bitmaps), but you also must offset all your writes by BorderTop,
- ; BorderLeft and do your own mini-clipping to prevent writing over the
- ; system gadgets
- BYTE wd_BorderLeft
- BYTE wd_BorderTop
- BYTE wd_BorderRight
- BYTE wd_BorderBottom
- APTR wd_BorderRPort
-
- ; You supply a linked-list of gadget that you want for your Window.
- ; This list DOES NOT include system Gadgets. You get the standard
- ; window system Gadgets by setting flag-bits in the variable Flags (see
- ; the bit definitions below)
- APTR wd_FirstGadget
-
- ; these are for opening/closing the windows
- APTR wd_Parent
- APTR wd_Descendant
-
- ; sprite data information for your own Pointer
- ; set these AFTER you Open the Window by calling SetPointer()
- APTR wd_Pointer
- BYTE wd_PtrHeight
- BYTE wd_PtrWidth
- BYTE wd_XOffset
- BYTE wd_YOffset
-
- ; the IDCMP Flags and User's and Intuition's Message Ports
- ULONG wd_IDCMPFlags
- APTR wd_UserPort
- APTR wd_WindowPort
- APTR wd_MessageKey
-
- BYTE wd_DetailPen
- BYTE wd_BlockPen
-
- ; the CheckMark is a pointer to the imagery that will be used when
- ; rendering MenuItems of this Window that want to be checkmarked
- ; if this is equal to NULL, you'll get the default imagery
- APTR wd_CheckMark
-
- ; if non-null, Screen title when Window is active
- APTR wd_ScreenTitle
-
- ; These variables have the mouse coordinates relative to the
- ; inner-Window of GIMMEZEROZERO Windows. This is compared with the
- ; MouseX and MouseY variables, which contain the mouse coordinates
- ; relative to the upper-left corner of the Window, GIMMEZEROZERO
- ; notwithstanding
- WORD wd_GZZMouseX
- WORD wd_GZZMouseY
- ; these variables contain the width and height of the inner-Window of
- ; GIMMEZEROZERO Windows
- WORD wd_GZZWidth
- WORD wd_GZZHeight
-
- APTR wd_ExtData
-
- ; general-purpose pointer to User data extension
- APTR wd_UserData
- APTR wd_WLayer ; stash of Window.RPort->Layer
-
- ; NEW 1.2: need to keep track of the font that OpenWindow opened,
- ; in case user SetFont's into RastPort
- APTR IFont
-
- LABEL wd_Size
-
- ; --- FLAGS REQUESTED (NOT DIRECTLY SET THOUGH) BY THE APPLIPROG -------------
- WINDOWSIZING EQU $0001 ; include sizing system-gadget?
- WINDOWDRAG EQU $0002 ; include dragging system-gadget?
- WINDOWDEPTH EQU $0004 ; include depth arrangement gadget?
- WINDOWCLOSE EQU $0008 ; include close-box system-gadget?
-
- SIZEBRIGHT EQU $0010 ; size gadget uses right border
- SIZEBBOTTOM EQU $0020 ; size gadget uses bottom border
-
- ; --- refresh modes ----------------------------------------------------------
- ; combinations of the REFRESHBITS select the refresh type
- REFRESHBITS EQU $00C0
- SMART_REFRESH EQU $0000
- SIMPLE_REFRESH EQU $0040
- SUPER_BITMAP EQU $0080
- OTHER_REFRESH EQU $00C0
-
- BACKDROP EQU $0100 ; this is an ever-popular BACKDROP window
-
- REPORTMOUSE EQU $0200 ; set this to hear about every mouse move
-
- GIMMEZEROZERO EQU $0400 ; make extra border stuff
-
- BORDERLESS EQU $0800 ; set this to get a Window sans border
-
- ACTIVATE EQU $1000 ; when Window opens, it's the Active one
-
- ; FLAGS SET BY INTUITION
- WINDOWACTIVE EQU $2000 ; this window is the active one
- INREQUEST EQU $4000 ; this window is in request mode
- MENUSTATE EQU $8000 ; this Window is active with its Menus on
-
- ; --- Other User Flags -------------------------------------------------------
- RMBTRAP EQU $00010000 ; Catch RMB events for your own
- NOCAREREFRESH EQU $00020000 ; not to be bothered with REFRESH
-
- ; --- Other Intuition Flags ----------------------------------------------
- WINDOWREFRESH EQU $01000000 ; Window is currently refreshing
- WBENCHWINDOW EQU $02000000 ; WorkBench Window
- WINDOWTICKED EQU $04000000 ; only one timer tick at a time
-
- SUPER_UNUSED EQU $FCFC0000 ;bits of Flag unused yet
-
-
- ; --- see struct IntuiMessage for the IDCMP Flag definitions -----------------
-
-
- ; ========================================================================
- ; === NewWindow ==========================================================
- ; ========================================================================
- STRUCTURE NewWindow,0
-
- WORD nw_LeftEdge ; initial Window dimensions
- WORD nw_TopEdge ; initial Window dimensions
- WORD nw_Width ; initial Window dimensions
- WORD nw_Height ; initial Window dimensions
-
- BYTE nw_DetailPen ; for rendering the detail bits of the Window
- BYTE nw_BlockPen ; for rendering the block-fill bits
-
- LONG nw_IDCMPFlags ; initial IDCMP state
-
- LONG nw_Flags ; see the Flag definition under Window
-
- ; You supply a linked-list of Gadgets for your Window.
- ; This list DOES NOT include system Gadgets. You get the standard
- ; system Window Gadgets by setting flag-bits in the variable Flags (see
- ; the bit definitions under the Window structure definition)
- APTR nw_FirstGadget
-
- ; the CheckMark is a pointer to the imagery that will be used when
- ; rendering MenuItems of this Window that want to be checkmarked
- ; if this is equal to NULL, you'll get the default imagery
- APTR nw_CheckMark
-
- APTR nw_Title ; title text for the Window
-
- ; the Screen pointer is used only if you've defined a CUSTOMSCREEN and
- ; want this Window to open in it. If so, you pass the address of the
- ; Custom Screen structure in this variable. Otherwise, this variable
- ; is ignored and doesn't have to be initialized.
- APTR nw_Screen
-
- ; SUPER_BITMAP Window? If so, put the address of your BitMap structure
- ; in this variable. If not, this variable is ignored and doesn't have
- ; to be initialized
- APTR nw_BitMap
-
- ; the values describe the minimum and maximum sizes of your Windows.
- ; these matter only if you've chosen the WINDOWSIZING Gadget option,
- ; which means that you want to let the User to change the size of
- ; this Window. You describe the minimum and maximum sizes that the
- ; Window can grow by setting these variables. You can initialize
- ; any one these to zero, which will mean that you want to duplicate
- ; the setting for that dimension (if MinWidth == 0, MinWidth will be
- ; set to the opening Width of the Window).
- ; You can change these settings later using SetWindowLimits().
- ; If you haven't asked for a SIZING Gadget, you don't have to
- ; initialize any of these variables.
- WORD nw_MinWidth
- WORD nw_MinHeight
- WORD nw_MaxWidth
- WORD nw_MaxHeight
-
- ; the type variable describes the Screen in which you want this Window to
- ; open. The type value can either be CUSTOMSCREEN or one of the
- ; system standard Screen Types such as WBENCHSCREEN. See the
- ; type definitions under the Screen structure
- WORD nw_Type
-
- LABEL nw_SIZE
-
- ; ========================================================================
- ; === Screen =============================================================
- ; ========================================================================
- STRUCTURE Screen,0
-
- APTR sc_NextScreen ; linked list of screens
- APTR sc_FirstWindow ; linked list Screen's Windows
-
- WORD sc_LeftEdge ; parameters of the screen
- WORD sc_TopEdge ; parameters of the screen
-
- WORD sc_Width ; null-terminated Title text
- WORD sc_Height ; for Windows without ScreenTitle
-
- WORD sc_MouseY ; position relative to upper-left
- WORD sc_MouseX ; position relative to upper-left
-
- WORD sc_Flags ; see definitions below
-
- APTR sc_Title
- APTR sc_DefaultTitle
-
- ; Bar sizes for this Screen and all Window's in this Screen
- BYTE sc_BarHeight
- BYTE sc_BarVBorder
- BYTE sc_BarHBorder
- BYTE sc_MenuVBorder
- BYTE sc_MenuHBorder
- BYTE sc_WBorTop
- BYTE sc_WBorLeft
- BYTE sc_WBorRight
- BYTE sc_WBorBottom
-
- BYTE sc_KludgeFill00 ; This is strictly for word-alignment
-
- ; the display data structures for this Screen
- APTR sc_Font ; this screen's default font
- STRUCT sc_ViewPort,vp_SIZEOF ; describing the Screen's display
- STRUCT sc_RastPort,rp_SIZEOF ; describing Screen rendering
- STRUCT sc_BitMap,bm_SIZEOF ; auxiliary graphexcess baggage
- STRUCT sc_LayerInfo,li_SIZEOF ; each screen gets a LayerInfo
-
- ; You supply a linked-list of Gadgets for your Screen.
- ; This list DOES NOT include system Gadgets. You get the standard
- ; system Screen Gadgets by default
- APTR sc_FirstGadget
-
- BYTE sc_DetailPen ; for bar/border/gadget rendering
- BYTE sc_BlockPen ; for bar/border/gadget rendering
-
- ; the following variable(s) are maintained by Intuition to support the
- ; DisplayBeep() color flashing technique
- WORD sc_SaveColor0
-
- ; This layer is for the Screen and Menu bars
- APTR sc_BarLayer ; was "BarLayer"
-
- APTR sc_ExtData
-
- APTR sc_UserData ; general-purpose pointer to User data
-
- LABEL sc_SIZEOF
-
-
- ; --- FLAGS SET BY INTUITION -------------------------------------------------
- ; The SCREENTYPE bits are reserved for describing various Screen types
- ; available under Intuition.
- SCREENTYPE EQU $000F ; all the screens types available
- ; --- the definitions for the Screen Type ------------------------------------
- WBENCHSCREEN EQU $0001 ; Ta Da| The Workbench
- CUSTOMSCREEN EQU $000F ; for that special look
-
- SHOWTITLE EQU $0010 ; this gets set by a call to ShowTitle()
-
- BEEPING EQU $0020 ; set when Screen is beeping
-
- CUSTOMBITMAP EQU $0040 ; if you are supplying your own BitMap
-
- SCREENBEHIND EQU $0080 ; if you want your screen to open behind
- ; already open screens
-
- SCREENQUIET EQU $0100 ; if you do not want Intuition to render
- ; into your screen (gadgets, title)
-
- STDSCREENHEIGHT EQU -1 ; supply in NewScreen.Height
-
- ; ========================================================================
- ; === NewScreen ==========================================================
- ; ========================================================================
- STRUCTURE NewScreen,0
-
- WORD ns_LeftEdge ; initial Screen dimensions
- WORD ns_TopEdge ; initial Screen dimensions
- WORD ns_Width ; initial Screen dimensions
- WORD ns_Height ; initial Screen dimensions
- WORD ns_Depth ; initial Screen dimensions
-
- BYTE ns_DetailPen ; default rendering pens (for Windows too)
- BYTE ns_BlockPen ; default rendering pens (for Windows too)
-
- WORD ns_ViewModes ; display "modes" for this Screen
-
- WORD ns_Type ; Intuition Screen Type specifier
-
- APTR ns_Font ; default font for Screen and Windows
-
- APTR ns_DefaultTitle ; Title when Window doesn't care
-
- APTR ns_Gadgets ; Your own initial Screen Gadgets
-
- ; if you are opening a CUSTOMSCREEN and already have a BitMap
- ; that you want used for your Screen, you set the flags CUSTOMBITMAP in
- ; the Types variable and you set this variable to point to your BitMap
- ; structure. The structure will be copied into your Screen structure,
- ; after which you may discard your own BitMap if you want
- APTR ns_CustomBitMap
-
- LABEL ns_SIZEOF
-
-
- ; ========================================================================
- ; === Preferences ========================================================
- ; ========================================================================
-
- ; these are the definitions for the printer configurations
- FILENAME_SIZE EQU 30 ; Filename size
-
- POINTERSIZE EQU (1+16+1)*2 ; Size of Pointer data buffer
-
- ; These defines are for the default font size. These actually describe the
- ; height of the defaults fonts. The default font type is the topaz
- ; font, which is a fixed width font that can be used in either
- ; eighty-column or sixty-column mode. The Preferences structure reflects
- ; which is currently selected by the value found in the variable FontSize,
- ; which may have either of the values defined below. These values actually
- ; are used to select the height of the default font. By changing the
- ; height, the resolution of the font changes as well.
- TOPAZ_EIGHTY EQU 8
- TOPAZ_SIXTY EQU 9
-
- ; ------------------------------------------------------------------------
- STRUCTURE Preferences,0
-
- ; the default font height
- BYTE pf_FontHeight ; height for system default font
-
- ; constant describing what's hooked up to the port
- BYTE pf_PrinterPort ; printer port connection
-
- ; the baud rate of the port
- WORD pf_BaudRate ; baud rate for the serial port
-
- ; various timing rates
- STRUCT pf_KeyRptSpeed,TV_SIZE ; repeat speed for keyboard
- STRUCT pf_KeyRptDelay,TV_SIZE ; Delay before keys repeat
- STRUCT pf_DoubleClick,TV_SIZE ; Interval allowed between clicks
-
- ; Intuition Pointer data
- STRUCT pf_PointerMatrix,POINTERSIZE*2 ; Definition of pointer sprite
- BYTE pf_XOffset ; X-Offset for active 'bit'
- BYTE pf_YOffset ; Y-Offset for active 'bit'
- WORD pf_color17 ;********************************
- WORD pf_color18 ; Colours for sprite pointer
- WORD pf_color19 ;********************************
- WORD pf_PointerTicks ; Sensitivity of the pointer
-
- ; Workbench Screen colors
- WORD pf_color0 ;********************************
- WORD pf_color1 ; Standard default colours
- WORD pf_color2 ; Used in the Workbench
- WORD pf_color3 ;********************************
-
- ; positioning data for the Intuition View
- BYTE pf_ViewXOffset ; Offset for top lefthand corner
- BYTE pf_ViewYOffset ; X and Y dimensions
- WORD pf_ViewInitX ; View initial offsets at startup
- WORD pf_ViewInitY ; View initial offsets at startup
-
- BOOL EnableCLI ; CLI availability switch
-
- ; printer configurations
- WORD pf_PrinterType ; printer type
- STRUCT pf_PrinterFilename,FILENAME_SIZE ; file for printer
-
- ; print format and quality configurations
- WORD pf_PrintPitch ; print pitch
- WORD pf_PrintQuality ; print quality
- WORD pf_PrintSpacing ; number of lines per inch
- WORD pf_PrintLeftMargin ; left margin in characters
- WORD pf_PrintRightMargin ; right margin in characters
- WORD pf_PrintImage ; positive or negative
- WORD pf_PrintAspect ; horizontal or vertical
- WORD pf_PrintShade ; b&w, half-tone, or color
- WORD pf_PrintThreshold ; darkness ctrl for b/w dumps
-
-
- ; print paper description
- WORD pf_PaperSize ; paper size
- WORD pf_PaperLength ; paper length in lines
- WORD pf_PaperType ; continuous or single sheet
-
- ; Serial device settings: These are six nibble-fields in three bytes
- ; (these look a little strange so the defaults will map out to zero)
- BYTE pf_SerRWBits ; upper nibble = (8-number of read bits)
- ; lower nibble = (8-number of write bits)
- BYTE pf_SerStopBuf ; upper nibble = (number of stop bits - 1)
- ; lower nibble = (table value for BufSize)
- BYTE pf_SerParShk ; upper nibble = (value for Parity setting)
- ; lower nibble = (value for Handshake mode)
-
- BYTE pf_LaceWB ; if workbench is to be interlaced
-
- STRUCT pf_WorkName,FILENAME_SIZE ; temp file for printer
- STRUCT pf_padding,16 ; For further system expansion
-
-
- LABEL pf_SIZEOF
-
-
- ; === Preferences definitions ===========================================
-
- ; Workbench Interlace (use one bit)
- LACEWB EQU $01
-
- ; PrinterPort
- PARALLEL_PRINTER EQU $00
- SERIAL_PRINTER EQU $01
-
- ; BaudRate
- BAUD_110 EQU $00
- BAUD_300 EQU $01
- BAUD_1200 EQU $02
- BAUD_2400 EQU $03
- BAUD_4800 EQU $04
- BAUD_9600 EQU $05
- BAUD_19200 EQU $06
- BAUD_MIDI EQU $07
-
- ; PaperType
- FANFOLD EQU $00
- SINGLE EQU $80
-
- ; PrintPitch
- PICA EQU $000
- ELITE EQU $400
- FINE EQU $800
-
- ; PrintQuality
- DRAFT EQU $000
- LETTER EQU $100
-
- ; PrintSpacing
- SIX_LPI EQU $000
- EIGHT_LPI EQU $200
-
- ; Print Image
- IMAGE_POSITIVE EQU $00
- IMAGE_NEGATIVE EQU $01
-
- ; PrintAspect
- ASPECT_HORIZ EQU $00
- ASPECT_VERT EQU $01
-
- ; PrintShade
- SHADE_BW EQU $00
- SHADE_GREYSCALE EQU $01
- SHADE_COLOR EQU $02
-
- ; PaperSize
- US_LETTER EQU $00
- US_LEGAL EQU $10
- N_TRACTOR EQU $20
- W_TRACTOR EQU $30
- CUSTOM EQU $40
-
- ; PrinterType
- CUSTOM_NAME EQU $00
- ALPHA_P_101 EQU $01
- BROTHER_15XL EQU $02
- CBM_MPS1000 EQU $03
- DIAB_630 EQU $04
- DIAB_ADV_D25 EQU $05
- DIAB_C_150 EQU $06
- EPSON EQU $07
- EPSON_JX_80 EQU $08
- OKIMATE_20 EQU $09
- QUME_LP_20 EQU $0A
- ; new printer entries, 3 October 1985
- HP_LASERJET EQU $0B
- HP_LASERJET_PLUS EQU $0C
-
-
- ; Serial Input Buffer Sizes
- SBUF_512 EQU $00
- SBUF_1024 EQU $01
- SBUF_2048 EQU $02
- SBUF_4096 EQU $03
- SBUF_8000 EQU $04
- SBUF_16000 EQU $05
-
- ; Serial Bit Masks
- SREAD_BITS EQU $F0 ; pf_SerRWBits
- SWRITE_BITS EQU $0F
-
- SSTOP_BITS EQU $F0 ; pf_SerStopBuf
- SBUFSIZE_BITS EQU $0F
-
- SPARITY_BITS EQU $F0 ; pf_SerParShk
- SHSHAKE_BITS EQU $0F
-
- ; Serial Parity (high nibble, but here shifted right, as by C-macro SPARNUM)
- SPARITY_NONE EQU $00
- SPARITY_EVEN EQU $01
- SPARITY_ODD EQU $02
-
- ; Serial Handshake Mode (low nibble, mask by SHSHAKE_BITS)
- SHSHAKE_XON EQU $00
- SHSHAKE_RTS EQU $01
- SHSHAKE_NONE EQU $02
-
- ; ========================================================================
- ; === Remember ===========================================================
- ; ========================================================================
- ; this structure is used for remembering what memory has been allocated to
- ; date by a given routine, so that a premature abort or systematic exit
- ; can deallocate memory cleanly, easily, and completely
- STRUCTURE Remember,0
-
- APTR rm_NextRemember
- LONG rm_RememberSize
- APTR rm_Memory
-
- LABEL rm_SIZEOF
-
-
-
- ; ========================================================================
- ; === Miscellaneous ======================================================
- ; ========================================================================
-
- ; = MACROS ==============================================================
- ;#define MENUNUM(n) (n & 0x1F)
- ;#define ITEMNUM(n) ((n >> 5) & 0x003F)
- ;#define SUBNUM(n) ((n >> 11) & 0x001F)
- ;
- ;#define SHIFTMENU(n) (n & 0x1F)
- ;#define SHIFTITEM(n) ((n & 0x3F) << 5)
- ;#define SHIFTSUB(n) ((n & 0x1F) << 11)
- ;
- ;#define SRBNUM(n) (0x08 - (n >> 4)) /; SerRWBits -> read bits per char ;/
- ;#define SWBNUM(n) (0x08 - (n & 0x0F))/; SerRWBits -> write bits per chr ;/
- ;#define SSBNUM(n) (0x01 + (n >> 4)) /; SerStopBuf -> stop bits per chr ;/
- ;#define SPARNUM(n) (n >> 4) /; SerParShk -> parity setting ;/
- ;#define SHAKNUM(n) (n & 0x0F) /; SerParShk -> handshake mode ;/
- ;
- ; = MENU STUFF ===========================================================
- NOMENU EQU $001F
- NOITEM EQU $003F
- NOSUB EQU $001F
- MENUNULL EQU $FFFF
-
-
- ; = =RJ='s peculiarities =================================================
- ;#define FOREVER for(;;)
- ;#define SIGN(x) ( ((x) > 0) - ((x) < 0) )
-
-
- ; these defines are for the COMMSEQ and CHECKIT menu stuff. If CHECKIT,
- ; I'll use a generic Width (for all resolutions) for the CheckMark.
- ; If COMMSEQ, likewise I'll use this generic stuff
- CHECKWIDTH EQU 19
- COMMWIDTH EQU 27
- LOWCHECKWIDTH EQU 13
- LOWCOMMWIDTH EQU 16
-
-
- ; these are the AlertNumber defines. if you are calling DisplayAlert()
- ; the AlertNumber you supply must have the ALERT_TYPE bits set to one
- ; of these patterns
- ALERT_TYPE EQU $80000000
- RECOVERY_ALERT EQU $00000000 ; the system can recover from this
- DEADEND_ALERT EQU $80000000 ; no recovery possible, this is it
-
-
- ; When you're defining IntuiText for the Positive and Negative Gadgets
- ; created by a call to AutoRequest(), these defines will get you
- ; reasonable-looking text. The only field without a define is the IText
- ; field; you decide what text goes with the Gadget
- AUTOFRONTPEN EQU 0
- AUTOBACKPEN EQU 1
- AUTODRAWMODE EQU RP_JAM2
- AUTOLEFTEDGE EQU 6
- AUTOTOPEDGE EQU 3
- AUTOITEXTFONT EQU 0
- AUTONEXTTEXT EQU 0
-
-
-
- ;; --- RAWMOUSE Codes and Qualifiers (Console OR IDCMP) -------------------
- SELECTUP EQU (IECODE_LBUTTON+IECODE_UP_PREFIX)
- SELECTDOWN EQU (IECODE_LBUTTON)
- MENUUP EQU (IECODE_RBUTTON+IECODE_UP_PREFIX)
- MENUDOWN EQU (IECODE_RBUTTON)
- ALTLEFT EQU (IEQUALIFIER_LALT)
- ALTRIGHT EQU (IEQUALIFIER_RALT)
- AMIGALEFT EQU (IEQUALIFIER_LCOMMAND)
- AMIGARIGHT EQU (IEQUALIFIER_RCOMMAND)
- AMIGAKEYS EQU (AMIGALEFT+AMIGARIGHT)
-
- CURSORUP EQU $4C
- CURSORLEFT EQU $4F
- CURSORRIGHT EQU $4E
- CURSORDOWN EQU $4D
- KEYCODE_Q EQU $10
- KEYCODE_X EQU $32
- KEYCODE_N EQU $36
- KEYCODE_M EQU $37
- KEYCODE_V EQU $34
- KEYCODE_B EQU $35
-
- IFND INTUITION_INTUITIONBASE_I@
- include 'intuition/intuitionbase.i'
- ENDIF
-
- ENDIF
- END