home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 4
/
FreshFish_May-June1994.bin
/
bbs
/
cbm
/
nduk-v39.lha
/
V39
/
include
/
intuition
/
screens.i
< prev
next >
Wrap
Text File
|
1992-09-24
|
19KB
|
552 lines
IFND INTUITION_SCREENS_I
INTUITION_SCREENS_I SET 1
**
** $VER: screens.i 38.24 (24.08.92)
** Includes Release 39.108
**
** The Screen and NewScreen structures and attributes
**
** (C) Copyright 1985-1992 Commodore-Amiga, Inc.
** All Rights Reserved
**
IFND EXEC_TYPES_I
INCLUDE "exec/types.i"
ENDC
IFND GRAPHICS_GFX_I
INCLUDE "graphics/gfx.i"
ENDC
IFND GRAPHICS_CLIP_I
INCLUDE "graphics/clip.i"
ENDC
IFND GRAPHICS_VIEW_I
INCLUDE "graphics/view.i"
ENDC
IFND GRAPHICS_RASTPORT_I
INCLUDE "graphics/rastport.i"
ENDC
IFND GRAPHICS_LAYERS_I
INCLUDE "graphics/layers.i"
ENDC
IFND UTILITY_TAGITEM_I
INCLUDE "utility/tagitem.i"
ENDC
*
* NOTE: intuition/iobsolete.i is included at the END of this file!
*
; ========================================================================
; === DrawInfo =========================================================
; ========================================================================
* This is a packet of information for graphics rendering. It originates
* with a Screen, and is gotten using GetScreenDrawInfo( screen );
* You can use the Intuition version number to tell which fields are
* present in this structure.
*
* DRI_VERSION of 1 corresponds to V37 release.
* DRI_VERSION of 2 corresponds to V39, and includes three new pens
* and the dri_CheckMark and dri_AmigaKey fields.
*
* Note that sometimes applications need to create their own DrawInfo
* structures, in which case the DRI_VERSION won't correspond exactly
* to the OS version!!!
DRI_VERSION EQU 2
STRUCTURE DrawInfo,0
UWORD dri_Version ; will be DRI_VERSION
UWORD dri_NumPens ; guaranteed to be >= 9
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
; New for V39: dri_CheckMark, dri_AmigaKey
APTR dri_CheckMark ; pointer to scaled checkmark image
; Will be NULL if DRI_VERSION < 2
APTR dri_AmigaKey ; pointer to scaled Amiga-key image
; Will be NULL if DRI_VERSION < 2
STRUCT dri_longreserved,20
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 FILLPEN ; active window fill
EITEM FILLTEXTPEN ; text over FILLPEN
EITEM BACKGROUNDPEN ; always color 0
EITEM HIGHLIGHTTEXTPEN ; highlighted text, against BACKGROUNDPEN
; New for V39, only present if DRI_VERSION >= 2:
EITEM BARDETAILPEN ; text/detail in screen-bar/menus
EITEM BARBLOCKPEN ; screen-bar/menus fill
EITEM BARTRIMPEN ; trim under menu-bar
EITEM NUMDRIPENS
* New for V39: It is sometimes useful to specify that a pen value
* is to be the complement of color zero to three. The "magic" numbers
* serve that purpose:
PEN_C3 EQU $FEFC ; Complement of color 3
PEN_C2 EQU $FEFD ; Complement of color 2
PEN_C1 EQU $FEFE ; Complement of color 1
PEN_C0 EQU $FEFF ; Complement of color 0
; ========================================================================
; === Screen =============================================================
; ========================================================================
* VERY IMPORTANT NOTE ABOUT Screen->BitMap. In the future, bitmaps
* will need to grow. The embedded instance of a bitmap in the screen
* will no longer be large enough to hold the whole description of
* the bitmap.
*
* YOU ARE STRONGLY URGED to use Screen->RastPort.BitMap in place of
* &Screen->BitMap whenever and whereever possible.
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
WORD sc_Height
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 ; null-terminated Title text
APTR sc_DefaultTitle ; for Windows without ScreenTitle
; 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 ; SEE WARNING ABOVE!
STRUCT sc_LayerInfo,li_SIZEOF ; each screen gets a LayerInfo
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 ; actually, you have no business talking about
; or relying on the size of a screen structure
; --- 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 ; identifies the Workbench screen
PUBLICSCREEN EQU $0002 ; public shared (custom) screen
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)
SCREENHIRES EQU $0200 ; do not use lowres gadgets (set by intuition)
STDSCREENHEIGHT EQU -1 ; supply in NewScreen.Height
STDSCREENWIDTH EQU -1 ; supply in NewScreen.Width
NS_EXTENDED EQU $1000 ; means ns_Extenion is valid
AUTOSCROLL EQU $4000 ; automatic scrolling of large raster
* New for V39:
PENSHARED EQU $0400 ; Screen opener set {SA_SharePens,TRUE}
* Screen attribute tag ID's. These are used in the ti_Tag field of
* TagItem arrays passed to OpenScreenTagList() (or in the
* ExtNewScreen.Extension field).
* Screen attribute tags. Please use these versions, not those in
* iobsolete.h.
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.
; Also see SA_Colors32 for use under V39.
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 ; ti_Data is PUBLICSCREEN or CUSTOMSCREEN. For other
; fields of NewScreen.Type, see individual tags,
; eg. SA_Behind, SA_Quiet.
EITEM SA_BitMap ; ti_Data is pointer to custom BitMap. This
; implies type of CUSTOMBITMAP