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