home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 4 / FreshFish_May-June1994.bin / bbs / cbm / nduk-v37.lha / V37 / include / intuition / intuition.i < prev    next >
Text File  |  1991-11-27  |  49KB  |  1,291 lines

  1.     IFND    INTUITION_INTUITION_I
  2. INTUITION_INTUITION_I    SET    1
  3. **
  4. **    $Filename: intuition/intuition.i $
  5. **    $Release: 2.04 Includes, V37.4 $
  6. **    $Revision: 36.30 $
  7. **    $Date: 91/03/28 $
  8. **
  9. **    Interface definitions for Intuition applications
  10. **
  11. **    (C) Copyright 1985-1991 Commodore-Amiga, Inc.
  12. **        All Rights Reserved
  13. **
  14.  
  15.     IFND EXEC_TYPES_I
  16.     INCLUDE "exec/types.i"
  17.     ENDC
  18.  
  19.     IFND    GRAPHICS_GFX_I
  20.     INCLUDE    "graphics/gfx.i"
  21.     ENDC
  22.  
  23.     IFND    GRAPHICS_CLIP_I
  24.     INCLUDE    "graphics/clip.i"
  25.     ENDC
  26.  
  27.     IFND    GRAPHICS_VIEW_I
  28.     INCLUDE    "graphics/view.i"
  29.     ENDC
  30.  
  31.     IFND    GRAPHICS_RASTPORT_I
  32.     INCLUDE    "graphics/rastport.i"
  33.     ENDC
  34.  
  35.     IFND    GRAPHICS_LAYERS_I
  36.     INCLUDE    "graphics/layers.i"
  37.     ENDC
  38.  
  39.     IFND    GRAPHICS_TEXT_I
  40.     INCLUDE "graphics/text.i"
  41.     ENDC
  42.  
  43.     IFND EXEC_PORTS_I
  44.     INCLUDE "exec/ports.i"
  45.     ENDC
  46.  
  47.     IFND    DEVICES_TIMER_I
  48.     INCLUDE    "devices/timer.i"
  49.     ENDC
  50.  
  51.     IFND    DEVICES_INPUTEVENT_I
  52.     INCLUDE "devices/inputevent.i"
  53.     ENDC
  54.  
  55.     IFND UTILITY_TAGITEM_I
  56.     INCLUDE "utility/tagitem.i"
  57.     ENDC
  58.  
  59. *
  60. * NOTE:  intuition/iobsolete.i is included at the END of this file!
  61. *
  62.  
  63.  
  64. ; ========================================================================;
  65. ; === Menu ===============================================================;
  66. ; ========================================================================;
  67.  STRUCTURE Menu,0
  68.  
  69.     APTR  mu_NextMenu    ; menu pointer, same level
  70.     WORD mu_LeftEdge    ; position of the select box
  71.     WORD mu_TopEdge    ; position of the select box
  72.     WORD mu_Width    ; dimensions of the select box
  73.     WORD mu_Height    ; dimensions of the select box
  74.     WORD mu_Flags    ; see flag definitions below
  75.     APTR mu_MenuName    ; text for this Menu Header
  76.     APTR  mu_FirstItem    ; pointer to first in chain
  77.  
  78.     ; these mysteriously-named variables are for internal use only
  79.     WORD mu_JazzX
  80.     WORD mu_JazzY
  81.     WORD mu_BeatX
  82.     WORD mu_BeatY
  83.  
  84.     LABEL mu_SIZEOF
  85.  
  86. ;*** FLAGS SET BY BOTH THE APPLIPROG AND INTUITION ***
  87. MENUENABLED EQU $0001    ; whether or not this menu is enabled
  88.  
  89. ;*** FLAGS SET BY INTUITION ***
  90. MIDRAWN EQU $0100    ; this menu's items are currently drawn
  91.  
  92. ; ========================================================================;
  93. ; === MenuItem ===========================================================;
  94. ; ========================================================================;
  95.  STRUCTURE MenuItem,0
  96.  
  97.     APTR mi_NextItem    ; pointer to next in chained list
  98.     WORD mi_LeftEdge    ; position of the select box
  99.     WORD mi_TopEdge    ; position of the select box
  100.     WORD mi_Width    ; dimensions of the select box
  101.     WORD mi_Height    ; dimensions of the select box
  102.     WORD mi_Flags    ; see the defines below
  103.  
  104.     LONG mi_MutualExclude ; set bits mean this item excludes that item
  105.  
  106.     APTR mi_ItemFill    ; points to Image, IntuiText, or NULL
  107.  
  108.     ; when this item is pointed to by the cursor and the items highlight
  109.     ; mode HIGHIMAGE is selected, this alternate image will be displayed
  110.     APTR mi_SelectFill    ; points to Image, IntuiText, or NULL
  111.  
  112.     BYTE mi_Command    ; only if appliprog sets the COMMSEQ flag
  113.  
  114.     BYTE mi_KludgeFill00 ; This is strictly for word-alignment
  115.  
  116.     APTR mi_SubItem    ; if non-zero, points to MenuItem for submenu
  117.  
  118.    ; The NextSelect field represents the menu number of next selected 
  119.    ; item (when user has drag-selected several items)
  120.     WORD mi_NextSelect
  121.  
  122.     LABEL  mi_SIZEOF
  123.  
  124. ; --- FLAGS SET BY THE APPLIPROG --------------------------------------------
  125. CHECKIT        EQU $0001    ; set to indicate checkmarkable item
  126. ITEMTEXT    EQU $0002    ; set if textual, clear if graphical item
  127. COMMSEQ        EQU $0004    ; set if there's an command sequence
  128. MENUTOGGLE    EQU $0008    ; set for toggling checks (else mut. exclude)
  129. ITEMENABLED    EQU $0010    ; set if this item is enabled
  130.  
  131. ; these are the SPECIAL HIGHLIGHT FLAG state meanings
  132. HIGHFLAGS    EQU $00C0    ; see definitions below for these bits
  133. HIGHIMAGE    EQU $0000    ; use the user's "select image"
  134. HIGHCOMP    EQU $0040    ; highlight by complementing the select box
  135. HIGHBOX        EQU $0080    ; highlight by drawing a box around the image
  136. HIGHNONE    EQU $00C0    ; don't highlight
  137.  
  138. ; --- FLAGS SET BY BOTH APPLIPROG AND INTUITION -----------------------------
  139. CHECKED    EQU $0100    ; state of the checkmark
  140.  
  141.  
  142. ; --- FLAGS SET BY INTUITION ------------------------------------------------
  143. ISDRAWN        EQU $1000    ; this item's subs are currently drawn
  144. HIGHITEM    EQU $2000    ; this item is currently highlighted
  145. MENUTOGGLED    EQU $4000    ; this item was already toggled 
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152. ; ========================================================================
  153. ; === Requester ==========================================================
  154. ; ========================================================================
  155.  STRUCTURE Requester,0
  156.  
  157.     APTR  rq_OlderRequest
  158.     WORD rq_LeftEdge        ; dimensions of the entire box
  159.     WORD rq_TopEdge        ; dimensions of the entire box
  160.     WORD rq_Width        ; dimensions of the entire box
  161.     WORD rq_Height        ; dimensions of the entire box
  162.  
  163.     WORD rq_RelLeft        ; get POINTREL Pointer relativity offsets
  164.     WORD rq_RelTop        ; get POINTREL Pointer relativity offsets
  165.  
  166.     APTR  rq_ReqGadget         ; pointer to the first of a list of gadgets
  167.     APTR  rq_ReqBorder        ; the box's border
  168.     APTR  rq_ReqText        ; the box's text
  169.  
  170.     WORD  rq_Flags        ; see definitions below
  171.  
  172.     UBYTE rq_BackFill        ; pen number for back-plane fill before draws
  173.  
  174.     BYTE rq_KludgeFill00    ; This is strictly for word-alignment
  175.  
  176.     APTR rq_ReqLayer        ; layer in which requester rendered
  177.     STRUCT rq_ReqPad1,32    ; for backwards compatibility (reserved)
  178.  
  179.     ; If the BitMap plane pointers are non-zero, this tells the system 
  180.     ; that the image comes pre-drawn (if the appliprog wants to define 
  181.     ; its own box, in any shape or size it wants!); this is OK by 
  182.     ; Intuition as long as there's a good correspondence between the image
  183.     ; and the specified Gadgets
  184.     APTR  rq_ImageBMap        ; points to the BitMap of PREDRAWN imagery
  185.  
  186.     APTR  rq_RWindow        ; points back to requester's window
  187.     APTR  rq_ReqImage        ; new for V36: drawn if USEREQIMAGE set
  188.     STRUCT rq_ReqPad2,32    ; for backwards compatibility (reserved)
  189.  
  190.     LABEL rq_SIZEOF
  191.  
  192. ; FLAGS SET BY THE APPLIPROG
  193. POINTREL    EQU $0001  ; if POINTREL set, TopLeft is relative to pointer
  194.                ; for DMRequester, relative to window center
  195.                ; for Request().
  196. PREDRAWN    EQU $0002  ; if ReqBMap points to predrawn Requester imagery
  197. NOISYREQ     EQU $0004  ; if you don't want requester to filter input
  198.  
  199. ; New for V36
  200. SIMPLEREQ    EQU $0010  ; to use SIMPLEREFRESH layer (recommended)
  201. USEREQIMAGE    EQU $0020  ; render linked list ReqImage after BackFill
  202.                ; but before gadgets and text
  203. NOREQBACKFILL    EQU $0040  ; don't bother filling with Requester.BackFill
  204.  
  205.  
  206. ; FLAGS SET BY INTUITION;
  207. REQOFFWINDOW    EQU $1000    ; part of one of the Gadgets was offwindow
  208. REQACTIVE    EQU $2000    ; this requester is active
  209. SYSREQUEST    EQU $4000    ; (unused) this requester caused by system
  210. DEFERREFRESH    EQU $8000    ; this Requester stops a Refresh broadcast
  211.  
  212.  
  213.  
  214.  
  215.  
  216. ; ========================================================================
  217. ; === Gadget =============================================================
  218. ; ========================================================================
  219.  STRUCTURE Gadget,0
  220.  
  221.     APTR gg_NextGadget        ; next gadget in the list
  222.  
  223.     WORD gg_LeftEdge        ; "hit box" of gadget
  224.     WORD gg_TopEdge        ; "hit box" of gadget
  225.     WORD gg_Width        ; "hit box" of gadget
  226.     WORD gg_Height        ; "hit box" of gadget
  227.  
  228.     WORD gg_Flags         ; see below for list of defines
  229.  
  230.     WORD gg_Activation        ; see below for list of defines
  231.  
  232.     WORD gg_GadgetType        ; see below for defines
  233.  
  234.     ; appliprog can specify that the Gadget be rendered as either as Border
  235.     ; or an Image.  This variable points to which (or equals NULL if there's
  236.     ; nothing to be rendered about this Gadget)
  237.     APTR gg_GadgetRender
  238.  
  239.     ; appliprog can specify "highlighted" imagery rather than algorithmic
  240.     ; this can point to either Border or Image data
  241.     APTR gg_SelectRender
  242.  
  243.     APTR gg_GadgetText        ; text for this gadget;
  244.  
  245.     ; MutualExclude, never implemented, is now declared obsolete.
  246.     ; There are published examples of implementing a more general
  247.     ; and practical exclusion in your applications.
  248.     ;
  249.     ; Starting V36, this field is used to point to a hook
  250.     ; for a custom gadget.
  251.