home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / gnu / os-include / intuition / intuition.i < prev    next >
Text File  |  1993-10-15  |  63KB  |  1,635 lines

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