home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 2 / goldfish_vol2_cd1.bin / gnu / os-include / intuition / screens.i < prev    next >
Text File  |  1993-10-15  |  20KB  |  566 lines

  1.     IFND  INTUITION_SCREENS_I
  2. INTUITION_SCREENS_I    SET  1
  3. **
  4. **    $VER: screens.i 38.25 (15.2.93)
  5. **    Includes Release 40.15
  6. **
  7. **    The Screen and NewScreen structures and attributes
  8. **
  9. **    (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  10. **        All Rights Reserved
  11. **
  12.     IFND EXEC_TYPES_I
  13.     INCLUDE "exec/types.i"
  14.     ENDC
  15.  
  16.     IFND GRAPHICS_GFX_I
  17.     INCLUDE "graphics/gfx.i"
  18.     ENDC
  19.  
  20.     IFND GRAPHICS_CLIP_I
  21.     INCLUDE "graphics/clip.i"
  22.     ENDC
  23.  
  24.     IFND GRAPHICS_VIEW_I
  25.     INCLUDE "graphics/view.i"
  26.     ENDC
  27.  
  28.     IFND GRAPHICS_RASTPORT_I
  29.     INCLUDE "graphics/rastport.i"
  30.     ENDC
  31.  
  32.     IFND GRAPHICS_LAYERS_I
  33.     INCLUDE "graphics/layers.i"
  34.     ENDC
  35.  
  36.     IFND UTILITY_TAGITEM_I
  37.     INCLUDE "utility/tagitem.i"
  38.     ENDC
  39.  
  40. *
  41. * NOTE:  intuition/iobsolete.i is included at the END of this file!
  42. *
  43.  
  44. ; ========================================================================
  45. ; === DrawInfo =========================================================
  46. ; ========================================================================
  47.  
  48. * This is a packet of information for graphics rendering.  It originates
  49. * with a Screen, and is gotten using GetScreenDrawInfo( screen );
  50.  
  51. * You can use the Intuition version number to tell which fields are
  52. * present in this structure.
  53. *
  54. * DRI_VERSION of 1 corresponds to V37 release.
  55. * DRI_VERSION of 2 corresponds to V39, and includes three new pens
  56. *    and the dri_CheckMark and dri_AmigaKey fields.
  57. *
  58. * Note that sometimes applications need to create their own DrawInfo
  59. * structures, in which case the DRI_VERSION won't correspond exactly
  60. * to the OS version!!!
  61.  
  62. DRI_VERSION    EQU    2
  63.  
  64.  STRUCTURE DrawInfo,0
  65.     UWORD    dri_Version     ; will be  DRI_VERSION
  66.     UWORD    dri_NumPens     ; guaranteed to be >= 9
  67.     APTR    dri_Pens     ; pointer to pen array
  68.     APTR    dri_Font     ; screen default font
  69.     UWORD    dri_Depth     ; (initial) depth of screen bitmap
  70.     ; from DisplayInfo database for initial display mode
  71.     UWORD    dri_ResolutionX
  72.     UWORD    dri_ResolutionY
  73.     ULONG    dri_Flags
  74.     ; New for V39: dri_CheckMark, dri_AmigaKey
  75.     APTR    dri_CheckMark    ; pointer to scaled checkmark image
  76.                  ; Will be NULL if DRI_VERSION < 2
  77.     APTR    dri_AmigaKey     ; pointer to scaled Amiga-key image
  78.                  ; Will be NULL if DRI_VERSION < 2
  79.    STRUCT       dri_longreserved,20
  80.  
  81. DRIF_NEWLOOK    EQU    $00000001 ; specified SA_Pens, full treatment
  82. DRIB_NEWLOOK    EQU    0
  83.  
  84.     ; rendering pen number indexes into DrawInfo.dri_Pens[]
  85.     ENUM
  86.     EITEM    DETAILPEN    ; compatible Intuition rendering pens
  87.     EITEM    BLOCKPEN,
  88.     EITEM    TEXTPEN        ; text on background (pen = 0)
  89.     EITEM    SHINEPEN    ; bright edge on bas-relief
  90.     EITEM    SHADOWPEN    ; dark edge
  91.     EITEM    FILLPEN        ; active window fill
  92.     EITEM    FILLTEXTPEN    ; text over FILLPEN
  93.     EITEM    BACKGROUNDPEN    ; always color 0
  94.     EITEM    HIGHLIGHTTEXTPEN  ; highlighted text, against BACKGROUNDPEN
  95. ; New for V39, only present if DRI_VERSION >= 2:
  96.     EITEM    BARDETAILPEN    ; text/detail in screen-bar/menus
  97.     EITEM    BARBLOCKPEN    ; screen-bar/menus fill
  98.     EITEM    BARTRIMPEN    ; trim under menu-bar
  99.  
  100.     EITEM    NUMDRIPENS
  101.  
  102. * New for V39:  It is sometimes useful to specify that a pen value
  103. * is to be the complement of color zero to three.  The "magic" numbers
  104. * serve that purpose:
  105.  
  106. PEN_C3        EQU    $FEFC        ; Complement of color 3
  107. PEN_C2        EQU    $FEFD        ; Complement of color 2
  108. PEN_C1        EQU    $FEFE        ; Complement of color 1
  109. PEN_C0        EQU    $FEFF        ; Complement of color 0
  110.  
  111. ; ======================================================================== 
  112. ; === Screen ============================================================= 
  113. ; ======================================================================== 
  114.  
  115. * VERY IMPORTANT NOTE ABOUT Screen->BitMap.  In the future, bitmaps
  116. * will need to grow.  The embedded instance of a bitmap in the screen
  117. * will no longer be large enough to hold the whole description of
  118. * the bitmap.
  119. *
  120. * YOU ARE STRONGLY URGED to use Screen->RastPort.BitMap in place of
  121. * &Screen->BitMap whenever and whereever possible.
  122.  
  123.  STRUCTURE Screen,0
  124.  
  125.     APTR sc_NextScreen        ; linked list of screens
  126.     APTR sc_FirstWindow        ; linked list Screen's Windows
  127.  
  128.     WORD sc_LeftEdge        ; parameters of the screen
  129.     WORD sc_TopEdge        ; parameters of the screen
  130.  
  131.     WORD sc_Width
  132.     WORD sc_Height
  133.  
  134.     WORD sc_MouseY        ; position relative to upper-left
  135.     WORD sc_MouseX        ; position relative to upper-left
  136.  
  137.     WORD sc_Flags        ; see definitions below
  138.  
  139.     APTR sc_Title        ; null-terminated Title text
  140.     APTR sc_DefaultTitle    ; for Windows without ScreenTitle
  141.  
  142.     ; Bar sizes for this Screen and all Window's in this Screen
  143.     BYTE sc_BarHeight
  144.     BYTE sc_BarVBorder
  145.     BYTE sc_BarHBorder
  146.     BYTE sc_MenuVBorder
  147.     BYTE sc_MenuHBorder
  148.     BYTE sc_WBorTop
  149.     BYTE sc_WBorLeft
  150.     BYTE sc_WBorRight
  151.     BYTE sc_WBorBottom
  152.  
  153.     BYTE sc_KludgeFill00    ; This is strictly for word-alignment 
  154.  
  155.     ; the display data structures for this Screen
  156.     APTR sc_Font            ; this screen's default font
  157.     STRUCT sc_ViewPort,vp_SIZEOF    ; describing the Screen's display
  158.     STRUCT sc_RastPort,rp_SIZEOF    ; describing Screen rendering
  159.     STRUCT sc_BitMap,bm_SIZEOF        ; SEE WARNING ABOVE!
  160.     STRUCT sc_LayerInfo,li_SIZEOF    ; each screen gets a LayerInfo
  161.  
  162.     APTR sc_FirstGadget
  163.  
  164.     BYTE sc_DetailPen        ; for bar/border/gadget rendering
  165.     BYTE sc_BlockPen        ; for bar/border/gadget rendering
  166.  
  167.     ; the following variable(s) are maintained by Intuition to support the
  168.     ; DisplayBeep() color flashing technique
  169.     WORD sc_SaveColor0
  170.  
  171.     ; This layer is for the Screen and Menu bars
  172.     APTR sc_BarLayer         ; was "BarLayer"
  173.  
  174.     APTR sc_ExtData
  175.  
  176.     APTR sc_UserData        ; general-purpose pointer to User data 
  177.  
  178.     LABEL sc_SIZEOF    ; actually, you have no business talking about
  179.             ; or relying on the size of a screen structure
  180.  
  181.  
  182. ; --- FLAGS SET BY INTUITION -------------------------------------------------
  183. ; The SCREENTYPE bits are reserved for describing various Screen types
  184. ; available under Intuition.  
  185. SCREENTYPE    EQU    $000F    ; all the screens types available 
  186. ; --- the definitions for the Screen Type ------------------------------------
  187. WBENCHSCREEN    EQU    $0001    ; identifies the Workbench screen
  188. PUBLICSCREEN    EQU    $0002    ; public shared (custom) screen
  189. CUSTOMSCREEN    EQU    $000F    ; for that special look
  190.  
  191. SHOWTITLE    EQU    $0010    ; this gets set by a call to ShowTitle() 
  192.  
  193. BEEPING        EQU    $0020    ; set when Screen is beeping 
  194.  
  195. CUSTOMBITMAP    EQU    $0040    ; if you are supplying your own BitMap
  196.  
  197. SCREENBEHIND    EQU    $0080    ; if you want your screen to open behind
  198.                 ; already open screens
  199.  
  200. SCREENQUIET    EQU    $0100    ; if you do not want Intuition to render
  201.                 ; into your screen (gadgets, title)
  202.  
  203. SCREENHIRES    EQU    $0200    ; do not use lowres gadgets (set by intuition)
  204.  
  205. STDSCREENHEIGHT    EQU    -1    ; supply in NewScreen.Height
  206. STDSCREENWIDTH    EQU    -1    ; supply in NewScreen.Width
  207.  
  208. NS_EXTENDED    EQU    $1000    ; means ns_Extenion is valid
  209. AUTOSCROLL    EQU    $4000    ; automatic scrolling of large raster
  210.  
  211. * New for V39:
  212. PENSHARED    EQU    $0400    ; Screen opener set {SA_SharePens,TRUE}
  213.  
  214. * Screen attribute tag ID's.  These are used in the ti_Tag field of
  215. * TagItem arrays passed to OpenScreenTagList() (or in the
  216. * ExtNewScreen.Extension field).
  217.  
  218. * Screen attribute tags.  Please use these versions, not those in
  219. * iobsolete.h.
  220.  
  221.  ENUM TAG_USER+33
  222. *
  223. *   these items specify items equivalent to fields in NewScreen
  224.     EITEM SA_Left    ; traditional screen positions    and dimensions
  225.     EITEM SA_Top
  226.     EITEM SA_Width
  227.     EITEM SA_Height
  228.     EITEM SA_Depth    ; screen bitmap depth
  229.     EITEM SA_DetailPen    ; serves as default for windows, too
  230.     EITEM SA_BlockPen
  231.     EITEM SA_Title    ; default screen title
  232.  
  233.     EITEM SA_Colors    ; ti_Data is an array of struct ColorSpec,
  234.             ; terminated by ColorIndex = -1.  Specifies
  235.             ; initial screen palette colors.
  236.             ; Also see SA_Colors32 for use under V39.
  237.  
  238.     EITEM SA_ErrorCode    ; ti_Data points to LONG error code (values below)
  239.     EITEM SA_Font    ; equiv. to NewScreen.Font
  240.     EITEM SA_SysFont    ; Selects one of the preferences system fonts:
  241.             ;    0 - old DefaultFont, fixed-width
  242.             ;    1 - WB Screen preferred font
  243.  
  244.  
  245.     EITEM SA_Type    ; ti_Data is PUBLICSCREEN or CUSTOMSCREEN.  For other
  246.             ; fields of NewScreen.Type, see individual tags,
  247.             ; eg. SA_Behind, SA_Quiet.
  248.  
  249.     EITEM SA_BitMap    ; ti_Data is pointer to custom BitMap.    This
  250.             ; implies type of CUSTOMBITMAP
  251.  
  252.     EITEM SA_PubName    ; presence of this tag means that the screen
  253.             ; is to be a public screen.  Please specify
  254.             ; BEFORE the two tags below
  255.  
  256.     EITEM SA_PubSig
  257.     EITEM SA_PubTask    ; Task ID and signal for being notified that
  258.             ; the last window has closed on a public screen.
  259.  
  260.  
  261.     EITEM SA_DisplayID    ; ti_Data is new extended display ID from
  262.             ; <graphics/displayinfo.i> (V37) or from
  263.             ; <graphics/modeid.i> (V39 and up)
  264.  
  265.     EITEM SA_DClip    ; ti_Data points to a rectangle which defines
  266.             ; screen display clip region
  267.  
  268.     EITEM SA_Overscan    ; Set to one of the OSCAN_
  269.             ; specifiers below to get a system standard
  270.             ; overscan region for your display clip,
  271.             ; screen dimensions (unless otherwise specified),
  272.             ; and automatically centered position (partial
  273.             ; support only so far).
  274.  
  275.     EITEM SA_Obsolete1    ; obsolete S_MONITORNAME
  276.  
  277. *   booleans *
  278.     EITEM SA_ShowTitle    ; boolean equivalent to flag SHOWTITLE
  279.     EITEM SA_Behind    ; boolean equivalent to flag SCREENBEHIND
  280.     EITEM SA_Quiet    ; boolean equivalent to flag SCREENQUIET
  281.     EITEM SA_AutoScroll    ; boolean equivalent to flag AUTOSCROLL
  282.     EITEM SA_Pens    ; array as in DrawInfo, terminated by -1
  283.     EITEM SA_FullPalette ; boolean: initialize color table to entire
  284.              ;  preferences palette (32 for V36), rather
  285.              ; than compatible pens 0-3, 17-19, with
  286.              ; remaining palette as returned by GetColorMap()
  287.  
  288.  
  289.     EITEM SA_ColorMapEntries ; New for V39:
  290.             ; Allows you to override the number of entries
  291.             ; in the ColorMap for your screen.  Intuition
  292.             ; normally allocates (1<<depth) or 32, whichever
  293.             ; is more, but you may require even more if you
  294.             ; use certain V39 graphics.library features
  295.             ; (eg. palette-banking).
  296.  
  297.     EITEM SA_Parent    ; New for V39:
  298.             ; ti_Data is a pointer to a "parent" screen to
  299.             ; attach this one to.  Attached screens slide
  300.             ; and depth-arrange together.
  301.  
  302.     EITEM SA_Draggable    ; New for V39:
  303.             ; Boolean tag allowing non-draggable screens.
  304.             ; Do not use without good reason!
  305.             ; (Defaults to TRUE).
  306.  
  307.     EITEM SA_Exclusive    ; New for V39:
  308.             ; Boolean tag allowing screens that won't share
  309.             ; the display.  Use sparingly!  Starting with 3.01,
  310.             ; attached screens may be SA_Exclusive.  Setting
  311.             ; SA_Exclusive for each screen will produce an
  312.             ; exclusive family.   (Defaults to FALSE).
  313.  
  314.     EITEM SA_SharePens    ; New for V39:
  315.             ; For those pens in the screen's DrawInfo->dri_Pens,
  316.             ; Intuition obtains them in shared mode (see
  317.             ; graphics.library/ObtainPen()).  For compatibility,
  318.             ; Intuition obtains the other pens of a public
  319.             ; screen as PEN_EXCLUSIVE.  Screens that wish to
  320.             ; manage the pens themselves should generally set
  321.             ; this tag to TRUE.  This instructs Intuition to
  322.             ; leave the other pens unallocated.
  323.  
  324.     EITEM SA_BackFill    ; New for V39:
  325.             ; provides a "backfill hook" for your screen's
  326.             ; Layer_Info.
  327.             ; See layers.library/InstallLayerInfoHook()
  328.  
  329.     EITEM SA_Interleaved    ; New for V39:
  330.             ; Boolean tag requesting that the bitmap
  331.             ; allocated for you be interleaved.
  332.             ; (Defaults to FALSE).
  333.  
  334.     EITEM SA_Colors32    ; New for V39:
  335.             ; Tag to set the screen's initial palette colors
  336.             ; at 32 bits-per-gun.  ti_Data is a pointer
  337.             ; to a table to be passed to the
  338.             ; graphics.library/LoadRGB32() function.
  339.             ; This format supports both runs of color
  340.             ; registers and sparse registers.  See the
  341.             ; autodoc for that function for full details.
  342.             ; Any color set here has precedence over
  343.             ; the same register set by SA_Colors.
  344.  
  345.     EITEM SA_VideoControl    ; New for V39:
  346.             ; ti_Data is a pointer to a taglist that Intuition
  347.             ; will pass to graphics.library/VideoControl(),
  348.             ; upon opening the screen.
  349.  
  350.     EITEM SA_FrontChild    ; New for V39:
  351.             ; ti_Data is a pointer to an already open screen
  352.             ; that is to be the child of the screen being
  353.             ; opened.  The child screen will be moved to the
  354.             ; front of its family.
  355.  
  356.     EITEM SA_BackChild    ; New for V39:
  357.             ; ti_Data is a pointer to an already open screen
  358.             ; that is to be the child of the screen being
  359.             ; opened.  The child screen will be moved to the
  360.             ; back of its family.
  361.  
  362.     EITEM SA_LikeWorkbench ; New for V39:
  363.             ; Set ti_Data to 1 to request a screen which
  364.             ; is just like the Workbench.  This gives
  365.             ; you the same screen mode, depth, size,
  366.             ; colors, etc., as the Workbench screen.
  367.  
  368.     EITEM SA_Reserved    ; Reserved for private Intuition use
  369.  
  370.     EITEM SA_MinimizeISG ; New for V40:
  371.             ; For compatibility, Intuition always ensures
  372.             ; that the inter-screen gap is at least three
  373.             ; non-interlaced lines.  If your application
  374.             ; would look best with the smallest possible
  375.             ; inter-screen gap, set ti_Data to TRUE.
  376.             ; If you use the new graphics VideoControl()
  377.             ; VC_NoColorPaletteLoad tag for your screen's
  378.             ; ViewPort, you should also set this tag.
  379.  
  380.  
  381.  
  382. * OpenScreen error codes, which are returned in the (optional) LONG
  383. * pointed to by ti_Data for the SA_ErrorCode tag item
  384.  
  385. OSERR_NOMONITOR        EQU (1)    ; named monitor spec not available
  386. OSERR_NOCHIPS        EQU (2)    ; you need newer custom chips    
  387. OSERR_NOMEM        EQU (3)    ; couldn't get normal memory
  388. OSERR_NOCHIPMEM        EQU (4)    ; couldn't get chipmem
  389. OSERR_PUBNOTUNIQUE    EQU (5)    ; public screen name already used
  390. OSERR_UNKNOWNMODE    EQU (6)    ; don't recognize mode asked for
  391. OSERR_TOODEEP        EQU (7)    ; Screen deeper than HW supports
  392. OSERR_ATTACHFAIL    EQU (8)    ; Failed to attach screens
  393. OSERR_NOTAVAILABLE    EQU (9) ; Mode not available for other reason
  394.  
  395. ; ========================================================================
  396. ; === NewScreen ==========================================================
  397. ; ========================================================================
  398. ; NOTE: to use Extension field, you need to use ExtNewScreen, below
  399.  STRUCTURE NewScreen,0
  400.  
  401.     WORD ns_LeftEdge        ; initial Screen dimensions
  402.     WORD ns_TopEdge        ; initial Screen dimensions
  403.     WORD ns_Width        ; initial Screen dimensions
  404.     WORD ns_Height        ; initial Screen dimensions
  405.     WORD ns_Depth        ; initial Screen dimensions
  406.  
  407.     BYTE ns_DetailPen        ; default rendering pens (for Windows too)
  408.     BYTE ns_BlockPen        ; default rendering pens (for Windows too)
  409.  
  410.     WORD ns_ViewModes        ; display "modes" for this Screen
  411.  
  412.     WORD ns_Type        ; Intuition Screen Type specifier
  413.  
  414.     APTR ns_Font        ; default font for Screen and Windows
  415.  
  416.     APTR ns_DefaultTitle    ; Title when Window doesn't care
  417.  
  418.     APTR ns_Gadgets        ; UNUSED:  Leave this NULL
  419.  
  420.     ; if you are opening a CUSTOMSCREEN and already have a BitMap 
  421.     ; that you want used for your Screen, you set the flags CUSTOMBITMAP in
  422.     ; the Types variable and you set this variable to point to your BitMap
  423.     ; structure.  The structure will be copied into your Screen structure,
  424.     ; after which you may discard your own BitMap if you want
  425.     APTR ns_CustomBitMap
  426.  LABEL    ns_SIZEOF
  427.  
  428. ; For compatibility reasons, we need a new structure for extending
  429. ; NewScreen.  Use this structure is you need to use the new Extension
  430. ; field.
  431. ; NOTE WELL: this structure may be extended again in the future.
  432. ;Writing code which depends on its size is not allowed.
  433.  
  434.  STRUCTURE ExtNewScreen,ns_SIZEOF
  435.  
  436.     APTR ens_Extension        ; struct TagItem *
  437.                 ; more specification data, scanned if
  438.                 ; NS_EXTENDED is set in ns_Type
  439.  
  440.  LABEL    ens_SIZEOF
  441.  
  442. * === Overscan Types ===
  443. OSCAN_TEXT    EQU    1    ; entirely visible
  444. OSCAN_STANDARD    EQU    2    ; just past edges
  445. OSCAN_MAX    EQU    3    ; as much as possible
  446. OSCAN_VIDEO    EQU    4    ; even more than is possible
  447.  
  448.  
  449. * === Public Shared Screen Node ===
  450.  
  451. * This is the representative of a public shared screen.
  452. * This is an internal data structure, but some functions may
  453. * present a copy of it to the calling application.  In that case,
  454. * be aware that the screen pointer of the structure can NOT be
  455. * used safely, since there is no guarantee that the referenced
  456. * screen will remain open and a valid data structure.
  457.  
  458.  STRUCTURE PubScreenNode,LN_SIZE
  459.     APTR    psn_Screen    ; pointer to screen itself
  460.     UWORD    psn_Flags    ; below
  461.     WORD    psn_Size    ; includes name buffer size
  462.     WORD    psn_VisitorCount ; how many visitor windows
  463.     APTR    psn_SigTask    ; who to signal when visitors gone
  464.     UBYTE    psn_SigBit    ; which signal
  465.     UBYTE    psn_Pad1    ; word align
  466.  LABEL        psn_SIZEOF
  467.  
  468. * psn_Flags values
  469. PSNF_PRIVATE    EQU    $0001
  470.  
  471. * NOTE: Due to a bug in NextPubScreen(), make sure your buffer
  472. * actually has MAXPUBSCREENNAME+1 characters in it!
  473.  
  474. MAXPUBSCREENNAME EQU    139    ; names no longer, please
  475.  
  476. ; pub screen modes
  477. SHANGHAI    EQU    $0001    ; put workbench windows on pub screen
  478. POPPUBSCREEN    EQU    $0002    ; pop pub screen to front when visitor opens
  479.  
  480. * New for V39:  Intuition has new screen depth-arrangement and movement
  481. * functions called ScreenDepth() and ScreenPosition() respectively.
  482. * These functions permit the old behavior of ScreenToFront(),
  483. * ScreenToBack(), and MoveScreen().  ScreenDepth() also allows
  484. * independent depth control of attached screens.  ScreenPosition()
  485. * optionally allows positioning screens even though they were opened
  486. * {SA_Draggable,FALSE}.
  487.  
  488. * For ScreenDepth(), specify one of SDEPTH_TOFRONT or SDEPTH_TOBACK,
  489. * and optionally also SDEPTH_INFAMILY.
  490. *
  491. * NOTE: ONLY THE OWNER OF THE SCREEN should ever specify
  492. * SDEPTH_INFAMILY.  Commodities, "input helper" programs,
  493. * or any other program that did not open a screen should never 
  494. * use that flag.  (Note that this is a style-behavior
  495. * requirement;  there is no technical requirement that the
  496. * task calling this function need be the task which opened
  497. * the screen).
  498.  
  499. SDEPTH_TOFRONT         EQU    0    ; Bring screen to front
  500. SDEPTH_TOBACK        EQU    1    ; Send screen to back
  501. SDEPTH_INFAMILY        EQU    2    ; Move an attached screen with
  502.                     ; respect to other screens of
  503.                     ; its family
  504.  
  505. * Here's an obsolete name equivalent to SDEPTH_INFAMILY:
  506. SDEPTH_CHILDONLY    EQU    SDEPTH_INFAMILY
  507.  
  508.  
  509. * For ScreenPosition(), specify one of SPOS_RELATIVE, SPOS_ABSOLUTE,
  510. * or SPOS_MAKEVISIBLE to describe the kind of screen positioning you
  511. * wish to perform:
  512. *
  513. * SPOS_RELATIVE: The x1 and y1 parameters to ScreenPosition() describe
  514. *    the offset in coordinates you wish to move the screen by.
  515. * SPOS_ABSOLUTE: The x1 and y1 parameters to ScreenPosition() describe
  516. *    the absolute coordinates you wish to move the screen to.
  517. * SPOS_MAKEVISIBLE: (x1,y1)-(x2,y2) describes a rectangle on the
  518. *    screen which you would like autoscrolled into view.
  519. *
  520. * You may additionally set SPOS_FORCEDRAG along with any of the
  521. * above.  Set this if you wish to reposition an {SA_Draggable,FALSE}
  522. * screen that you opened.
  523. *
  524. * NOTE: ONLY THE OWNER OF THE SCREEN should ever specify
  525. * SPOS_FORCEDRAG.  Commodities, "input helper" programs,
  526. * or any other program that did not open a screen should never
  527. * use that flag.
  528.  
  529. SPOS_RELATIVE        EQU    0    ; Coordinates are relative
  530.  
  531. SPOS_ABSOLUTE        EQU    1    ; Coordinates are expressed as
  532.                     ; absolutes, not relatives.
  533.  
  534. SPOS_MAKEVISIBLE    EQU    2    ; Coordinates describe a box on
  535.                     ; the screen you wish to be
  536.                     ; made visible by autoscrolling
  537.  
  538. SPOS_FORCEDRAG        EQU    4    ; Move non-draggable screen
  539.  
  540. * New for V39: Intuition supports double-buffering in screens,
  541. * with friendly interaction with menus and certain gadgets.
  542. * For each buffer, you need to get one of these structures
  543. * from the AllocScreenBuffer() call.  Never allocate your
  544. * own ScreenBuffer structures!
  545. *
  546. * The sb_DBufInfo field is for your use.  See the graphics.library
  547. * AllocDBufInfo() autodoc for details.
  548.  
  549.  STRUCTURE ScreenBuffer,0
  550.     APTR sb_BitMap        ; BitMap of this buffer
  551.     APTR sb_DBufInfo        ; DBufInfo for this buffer
  552.  LABEL sb_SIZEOF
  553.  
  554.  
  555. * These are the flags that may be passed to AllocScreenBuffer().
  556.  
  557. SB_SCREEN_BITMAP    EQU    1
  558. SB_COPY_BITMAP        EQU    2
  559.  
  560. * Include obsolete identifiers:
  561.     IFND    INTUITION_IOBSOLETE_I
  562.     INCLUDE "intuition/iobsolete.i"
  563.     ENDC
  564.  
  565.     ENDC
  566.