amos-professional/includes/intuition/screens.i
2020-04-26 02:58:13 +02:00

157 lines
4.7 KiB
OpenEdge ABL

IFND INTUITION_SCREENS_I
INTUITION_SCREENS_I SET 1
**
** $Filename: intuition/screens.i $
** $Release: 1.3 $
**
**
**
** (C) Copyright 1987,1988 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
; ========================================================================
; === 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
ENDC ; INTUITION_SCREENS_I