home *** CD-ROM | disk | FTP | other *** search
- ;
- ;Here are the 2.0 stuff needed
- ;
-
- INCLUDE "FH1:Language/Include2.0/GadTools.xref"
- INCLUDE "FH1:Language/Include2.0/Intuition.xref"
-
- UTILITY_TAGITEM_I SET 1 ;No errors thanks
-
- ZOOMED EQU $10000000 ; identifies "zoom state"
-
- ;utility/tagitem.i
-
-
- ; =======================================================================
- ; ==== TagItem ==========================================================
- ; =======================================================================
- ; This data type may propagate through the system for more general use.
- ; In the meantime, it is used as a general mechanism of extensible data
- ; arrays for parameter specification and property inquiry (coming soon
- ; to a display controller near you).
- ;
- ; In practice, an array (or chain of arrays) of TagItems is used.
-
- STRUCTURE TagItem,0
- ULONG ti_Tag ; identifies the type of this item
- ULONG ti_Data ; type-specific data, can be a pointer
- LABEL ti_SIZEOF
-
- ; ---- system tag values -----------------------------
- TAG_DONE EQU 0 ; terminates array of TagItems. ti_Data unused
- TAG_IGNORE EQU 1 ; ignore this item, not end of array
- TAG_MORE EQU 2 ; ti_Data is pointer to another array of TagItems
- ; note that this tag terminates the current array
-
- ; ---- user tag identification -----------------------
- TAG_USER EQU $80000000 ; differentiates user tags from system tags
-
- ; until further notice, tag bits 16-30 are RESERVED and should be zero.
- ; Also, the value (TAG_USER | 0) should never be used as a tag value.
-
-
- ;exec/types.i
-
- **
- ** Enumerated variables. Use ENUM to set a base number, and EITEM to assign
- ** incrementing values. ENUM can be used to set a new base at any time.
- **
- ENUM MACRO ;[new base]
- IFC '\1',''
- EOFFSET SET 0 ; Default to zero
- ENDC
- IFNC '\1',''
- EOFFSET SET \1
- ENDC
- ENDM
-
- EITEM MACRO ;label
- \1 EQU EOFFSET
- EOFFSET SET EOFFSET+1
- ENDM
-
-
- ;Intuition/intuition.i
- ;Window stuff
-
- ENUM TAG_USER+100
-
- ; these tags simply override NewWindow parameters
- EITEM WA_Left
- EITEM WA_Top
- EITEM WA_Width
- EITEM WA_Height
- EITEM WA_DetailPen
- EITEM WA_BlockPen
- EITEM WA_IDCMP
- EITEM WA_Flags ; not implemented at present
- EITEM WA_Gadgets
- EITEM WA_Checkmark
- EITEM WA_Title
- EITEM WA_ScreenTitle ; means you don't have to call SetWindowTitles
- ; after you open your window
-
- EITEM WA_CustomScreen
- EITEM WA_SuperBitMap ; also implies SUPER_BITMAP property
- EITEM WA_MinWidth
- EITEM WA_MinHeight
- EITEM WA_MaxWidth
- EITEM WA_MaxHeight
-
- ; The following are specifications for new features
-
- EITEM WA_InnerWidth
- EITEM WA_InnerHeight ; You can specify the dimensions of the interior
- ; region of your window, independent of what
- ; the border widths will be. These are
- ; *supposed* to imply the EITEM WA_AutoAdjust property,
- ; but there is a bug report that says they don't.
-
-
- EITEM WA_PubScreenName ; declares that you want the window to open as
- ; a visitor on the public screen whose name is
- ; pointed to by (UBYTE *) ti_Data
-
- EITEM WA_PubScreen ; open as a visitor window on the public screen
- ; whose address is in (struct Screen *) ti_Data.
- ; To insure that this screen remains open, you
- ; should either be the screen's owner, have a
- ; window open on the screen, or use LockPubScreen().
-
- EITEM WA_PubScreenFallBack ; A Boolean, specifies whether a visitor window
- ; should "fall back" to the default public screen
- ; (or Workbench) if the named public screen isn't
- ; available
-
- EITEM WA_WindowName ; not implemented
- EITEM WA_Colors ; a ColorSpec array for colors to be set
- ; when this window is active. This is not
- ; implemented, and may not be, since the default
- ; values to restore would be hard to track.
- ; We'd like to at least support per-window colors
- ; for the mouse pointer sprite.
-
- EITEM WA_Zoom ; ti_Data points to an array of four WORD's,
- ; the initial Left/Top/Width/Height values of
- ; the "alternate" zoom position/dimensions.
- ; It also specifies that you want a Zoom gadget
- ; for your window, whether or not you have a
- ; sizing gadget.
-
- EITEM WA_MouseQueue ; ti_Data contains initial value for the mouse
- ; message backlog limit for this window.
-
- EITEM WA_BackFill ; unimplemented at present: provides a "backfill
- ; hook" for your window's layer.
-
- EITEM WA_RptQueue ; initial value of repeat key backlog limit
-
- ; These Boolean tag items are alternatives to the NewWindow.Flags
- ; boolean flags with similar names.
-
- EITEM WA_SizeGadget
- EITEM WA_DragBar
- EITEM WA_DepthGadget
- EITEM WA_CloseGadget
- EITEM WA_Backdrop
- EITEM WA_ReportMouse
- EITEM WA_NoCareRefresh
- EITEM WA_Borderless
- EITEM WA_Activate
- EITEM WA_RMBTrap
- EITEM WA_WBenchWindow ; PRIVATE!!
- EITEM WA_SimpleRefresh ; only specify if TRUE
- EITEM WA_SmartRefresh ; only specify if TRUE
- EITEM WA_SizeBRight
- EITEM WA_SizeBBottom
-
- ; New Boolean properties
- EITEM WA_AutoAdjust ; shift or squeeze the window's position and
- ; dimensions to fit it on screen.
-
- EITEM WA_GimmeZeroZero ; equiv. to NewWindow.Flags GIMMEZEROZERO
-
- INCLUDE "FH1:Language/Include2.0/Intuition/gadgetclass.i"
- INCLUDE "FH1:Language/Include2.0/libraries/gadtools.i"
-
- ;intuition/screens.i
-
- ; ========================================================================
- ; === DrawInfo =========================================================
- ; ========================================================================
-
- * This is a packet of information for graphics rendering. It originates
- * with a Screen, and is gotten using GetScreenDrawInfo( screen );
-
- * If you find dri_Version >= RT_VERSION, you know this structure
- * has at least the fields defined in this version of the include file
-
- DRI_VERSION EQU 1
-
- STRUCTURE DrawInfo,0
- UWORD dri_Version ; will be DRI_VERSION
- UWORD dri_NumPens ; guaranteed to be >= numDrIPens
- APTR dri_Pens ; pointer to pen array
- APTR dri_Font ; screen default font
- UWORD dri_Depth ; (initial) depth of screen bitmap
- ; from DisplayInfo database for initial display mode
- UWORD dri_ResolutionX
- UWORD dri_ResolutionY
- ULONG dri_Flags
- STRUCT dri_longreserved,28
-
- DRIF_NEWLOOK EQU $00000001 ; specified SA_Pens, full treatment
- DRIB_NEWLOOK EQU 0
-
- ; rendering pen number indexes into DrawInfo.dri_Pens[]
- ENUM
- EITEM detailPen ; compatible Intuition rendering pens
- EITEM blockPen,
- EITEM textPen ; text on background (pen = 0)
- EITEM shinePen ; bright edge on bas-relief
- EITEM shadowPen ; dark edge
- EITEM hifillPen ; active window fill
- EITEM hifilltextPen ; text over hifillPen
- EITEM backgroundPen ; always color 0
- EITEM hilighttextPen ; highlighted text, against backgroundPen
- EITEM numDrIPens
-
- NS_EXTENDED EQU $1000 ; means ns_Extenion is valid
- AUTOSCROLL EQU $4000 ; automatic scrolling of large raster
-
- * Screen attribute tag ID's. These are used in the ti_Tag field of
- * TagItem arrays passed to OpenScreenTagList() (or in the outmoded
- * ExtNewScreen.Extension field).
-
- * these are the modernized versions of the screen attribute tags.
- * Please use these.
-
- ENUM TAG_USER+33
- *
- * these items specify items equivalent to fields in NewScreen
- EITEM SA_Left ; traditional screen positions and dimensions
- EITEM SA_Top
- EITEM SA_Width
- EITEM SA_Height
- EITEM SA_Depth ; screen bitmap depth
- EITEM SA_DetailPen ; serves as default for windows, too
- EITEM SA_BlockPen
- EITEM SA_Title ; default screen title
-
- EITEM SA_Colors ; ti_Data is an array of struct ColorSpec,
- ; terminated by ColorIndex = -1. Specifies
- ; initial screen palette colors.
-
- EITEM SA_ErrorCode ; ti_Data points to LONG error code (values below)
- EITEM SA_Font ; equiv. to NewScreen.Font
- EITEM SA_SysFont ; Selects one of the preferences system fonts:
- ; 0 - old DefaultFont, fixed-width
- ; 1 - WB Screen preferred font
-
-
- EITEM SA_Type ; equiv. to NewScreen.Type
- EITEM SA_BitMap ; ti_Data is pointer to custom BitMap. This
- ; implies type of CUSTOMBITMAP
-
- EITEM SA_PubName ; presence of this tag means that the screen
- ; is to be a public screen. Please specify
- ; BEFORE the two tags below
-
- EITEM SA_PubSig
- EITEM SA_PubTask ; Task ID and signal for being notified that
- ; the last window has closed on a public screen.
-
-
- EITEM SA_DisplayID ; ti_Data is new extended display ID from
- ; <graphics/displayinfo.h>.
-
- EITEM SA_DClip ; ti_Data points to a rectangle which defines
- ; screen display clip region
-
- EITEM SA_Overscan ; was S_STDDCLIP. Set to one of the OSCAN_
- ; specifiers below to get a system standard
- ; overscan region for your display clip,
- ; screen dimensions (unless otherwise specified),
- ; and automatically centered position (partial
- ; support only so far).
-
- EITEM SA_Obsolete1 ; obsolete S_MONITORNAME
-
- * booleans *
- EITEM SA_ShowTitle ; boolean equivalent to flag SHOWTITLE
- EITEM SA_Behind ; boolean equivalent to flag SCREENBEHIND
- EITEM SA_Quiet ; boolean equivalent to flag SCREENQUIET
- EITEM SA_AutoScroll ; boolean equivalent to flag AUTOSCROLL
- EITEM SA_Pens ; array as in DrawInfo, terminated by -1
- EITEM SA_FullPalette ; boolean: initialize color table to entire
- ; preferences palette (32 for V36), rather
- ; than compatible pens 0-3, 17-19, with
- ; remaining palette as returned by GetColorMap()
-
-
- * OpenScreen error codes, which are returned in the (optional) LONG
- * pointed to by ti_Data for the SA_ErrorCode tag item
-
- OSERR_NOMONITOR EQU (1) ; named monitor spec not available
- OSERR_NOCHIPS EQU (2) ; you need newer custom chips
- OSERR_NOMEM EQU (3) ; couldn't get normal memory
- OSERR_NOCHIPMEM EQU (4) ; couldn't get chipmem
- OSERR_PUBNOTUNIQUE EQU (5) ; public screen name already used
- OSERR_UNKNOWNMODE EQU (6) ; don't recognize mode asked for
-
- ; For compatibility reasons, we need a new structure for extending
- ; NewScreen. Use this structure is you need to use the new Extension
- ; field.
- ; NOTE WELL: this structure may be extended again in the future.
- ;Writing code which depends on its size is not allowed.
-
- STRUCTURE ExtNewScreen,ns_SIZEOF
-
- APTR ens_Extension ; struct TagItem *
- ; more specification data, scanned if
- ; NS_EXTENDED is set in ns_Type
-
- LABEL ens_SIZEOF
-
- * === Overscan Types ===
- OSCAN_TEXT EQU 1 ; entirely visible
- OSCAN_STANDARD EQU 2 ; just past edges
- OSCAN_MAX EQU 3 ; as much as possible
- OSCAN_VIDEO EQU 4 ; even more than is possible
-
-
- * === Public Shared Screen Node ===
-
- * This is the representative of a public shared screen.
- * This is an internal data structure, but some functions may
- * present a copy of it to the calling application. In that case,
- * be aware that the screen pointer of the structure can NOT be
- * used safely, since there is no guarantee that the referenced
- * screen will remain open and a valid data structure.
-
- STRUCTURE PubScreenNode,LN_SIZE
- APTR psn_Screen ; pointer to screen itself
- UWORD psn_Flags ; below
- WORD psn_Size ; includes name buffer size
- WORD psn_VisitorCount ; how many visitor windows
- APTR psn_SigTask ; who to signal when visitors gone
- UBYTE psn_SigBit ; which signal
- UBYTE psn_Pad1 ; word align
- LABEL psn_SIZEOF
-
- * psn_Flags values
- PSNF_PRIVATE EQU $0001
-
- MAXPUBSCREENNAME EQU 139 ; names no longer, please
-
- ; pub screen modes
- SHANGHAI EQU $0001 ; put workbench windows on pub screen
- POPPUBSCREEN EQU $0002 ; pop pub screen to front when visitor opens
-
- **
- ** $Filename: intuition/imageclass.i $
- ** $Release: 2.0 release 1 $
- ** $Revision: 1.1 $
- ** $Date: 90/07/12 $
- **
- ** Definitions for the image classes
- **
- ** (C) Copyright 1985,1986,1987,1988,1989,1990 Commodore-Amiga, Inc.
- ** All Rights Reserved
- **
-
- CUSTOMIMAGEDEPTH EQU (-1)
- * if image.Depth is this, it's a new Image class object
-
- ******************************************************
- IMAGE_ATTRIBUTES EQU (TAG_USER+$20000)
-
- IA_LEFT EQU (IMAGE_ATTRIBUTES+$0001)
- IA_TOP EQU (IMAGE_ATTRIBUTES+$0002)
- IA_WIDTH EQU (IMAGE_ATTRIBUTES+$0003)
- IA_HEIGHT EQU (IMAGE_ATTRIBUTES+$0004)
- IA_FGPEN EQU (IMAGE_ATTRIBUTES+$0005)
- ; IA_FGPEN also means "PlanePick"
- IA_BGPEN EQU (IMAGE_ATTRIBUTES+$0006)
- ; IA_BGPEN also means "PlaneOnOff"
- IA_DATA EQU (IMAGE_ATTRIBUTES+$0007)
- ; bitplanes, for classic image,
- ; other image classes may use it for other things
- IA_LINEWIDTH EQU (IMAGE_ATTRIBUTES+$0008)
- IA_PENS EQU (IMAGE_ATTRIBUTES+$000E)
- ; pointer to UWORD pens[],
- ; ala DrawInfo.Pens, MUST be
- ; terminated by ~0. Some classes can
- ; choose to have this, or SYSIA_DrawInfo,
- ; or both.
- IA_RESOLUTION EQU (IMAGE_ATTRIBUTES+$000F)
- ; packed uwords for x/y resolution into a longword
- ; ala DrawInfo.Resolution
-
- * see class documentation to learn which
- * classes recognize these
- IA_APATTERN EQU (IMAGE_ATTRIBUTES+$0010)
- IA_APATSIZE EQU (IMAGE_ATTRIBUTES+$0011)
- IA_MODE EQU (IMAGE_ATTRIBUTES+$0012)
- IA_FONT EQU (IMAGE_ATTRIBUTES+$0013)
- IA_OUTLINE EQU (IMAGE_ATTRIBUTES+$0014)
- IA_RECESSED EQU (IMAGE_ATTRIBUTES+$0015)
- IA_DOUBLEEMBOSS EQU (IMAGE_ATTRIBUTES+$0016)
- IA_EDGESONLY EQU (IMAGE_ATTRIBUTES+$0017)
-
- * "sysiclass" attributes
- SYSIA_Size EQU (IMAGE_ATTRIBUTES+$000B)
- ; EQU's below
- SYSIA_Depth EQU (IMAGE_ATTRIBUTES+$000C)
- ; this is unused by Intuition. SYSIA_DrawInfo
- ; is used instead for V36
- SYSIA_Which EQU (IMAGE_ATTRIBUTES+$000D)
- ; see EQU's below
- SYSIA_DrawInfo EQU (IMAGE_ATTRIBUTES+$0018)
- ; pass to sysiclass, please
-
- * obsolete: don't use these, use IA_PENS
- SYSIA_Pens EQU IA_PENS
- IA_SHADOWPEN EQU (IMAGE_ATTRIBUTES+$0009)
- IA_HIGHLIGHTPEN EQU (IMAGE_ATTRIBUTES+$000A)
-
- * next attribute: (IMAGE_ATTRIBUTES+$0019)
- ******************************************************
-
- * data values for SYSIA_Size
- SYSISIZE_MEDRES EQU (0)
- SYSISIZE_LOWRES EQU (1)
- SYSISIZE_HIRES EQU (2)
-
- *
- * SYSIA_Which tag data values:
- * Specifies which system gadget you want an image for.
- * Some numbers correspond to internal Intuition #defines
- DEPTHIMAGE EQU ($00)
- ZOOMIMAGE EQU ($01)
- SIZEIMAGE EQU ($02)
- CLOSEIMAGE EQU ($03)
- SDEPTHIMAGE EQU ($05) ; screen depth gadget
- LEFTIMAGE EQU ($0A)
- UPIMAGE EQU ($0B)
- RIGHTIMAGE EQU ($0C)
- DOWNIMAGE EQU ($0D)
- CHECKIMAGE EQU ($0E)
- MXIMAGE EQU ($0F) ; mutual exclude "button"
-
- * image message id's
- IM_DRAW EQU ($0202) ; draw yourself, with "state"
- IM_HITTEST EQU ($0203) ; return TRUE if click hits image
- IM_ERASE EQU ($0204) ; erase yourself
- IM_MOVE EQU ($0205) ; draw new and erase old, smoothly
-
- IM_DRAWFRAME EQU ($0206) ; draw with specified dimensions
- IM_FRAMEBOX EQU ($0207) ; get recommended frame around some box
- IM_HITFRAME EQU ($0208) ; hittest with dimensions
- IM_ERASEFRAME EQU ($0209) ; hittest with dimensions
-
- * image draw states or styles, for IM_DRAW
- IDS_NORMAL EQU (0)
- IDS_SELECTED EQU (1) ; for selected gadgets
- IDS_DISABLED EQU (2) ; for disabled gadgets
- IDS_BUSY EQU (3) ; for future functionality
- IDS_INDETERMINATE EQU (4) ; for future functionality
- IDS_INACTIVENORMAL EQU (5) ; normal, in inactive window border
- IDS_INACTIVESELECTED EQU (6) ; selected, in inactive border
- IDS_INACTIVEDISABLED EQU (7) ; disabled, in inactive border
-
- * oops, please forgive spelling error by jimm
- IDS_INDETERMINANT EQU IDS_INDETERMINATE
-
- * IM_FRAMEBOX
- STRUCTURE impFrameBox,4 ; starts with ULONG MethodID
- APTR impf_ContentsBox ; input: relative box of contents
- APTR impf_FrameBox ; output: rel. box of encl frame
- APTR impf_DrInfo
- LONG impf_FrameFlags
-
- ; Make do with the dimensions of FrameBox provided.
- FRAMEB_SPECIFY EQU (0)
- FRAMEF_SPECIFY EQU (1)
-
-
- * IM_DRAW, IM_DRAWFRAME
- STRUCTURE impDraw,4 ; starts with ULONG MethodID
- APTR impd_RPort
- WORD impd_OffsetX
- WORD impd_OffsetY
- ULONG impd_State
- APTR impd_DrInfo
- ; these parameters only valid for IM_DRAWFRAME
- WORD impd_DimensionsWidth
- WORD impd_DimensionsHeight
-
- * IM_ERASE, IM_ERASEFRAME
- * NOTE: This is a subset of impDraw
- STRUCTURE impErase,4 ; starts with ULONG MethodID
- APTR impe_RPort
- WORD impe_OffsetX
- WORD impe_OffsetY
- ; these parameters only valid for IM_ERASEFRAME
- WORD impe_DimensionsWidth
- WORD impe_DimensionsHeight
-
- * IM_HITTEST, IM_HITFRAME
- STRUCTURE impHitTest,4 ; starts with ULONG MethodID
- ; these parameters only valid for IM_ERASEFRAME
- WORD imph_PointX
- WORD imph_PointY
- ; these parameters only valid for IM_HITFRAME
- WORD imph_DimensionsWidth
- WORD imph_DimensionsHeight
-
-