home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 3 / Meeting_Pearls_III.iso / Pearls / dev / GUI / MUI / Developer / Assembler / Include / libraries / mui.i < prev   
Encoding:
Text File  |  1994-12-23  |  87.9 KB  |  2,582 lines

  1. ****************************************************************************
  2. **
  3. ** MUI - MagicUserInterface
  4. ** (c) 1993-95 by Stefan Stuntz
  5. **
  6. ** Main Header File
  7. **
  8. *** Assembler modifications 26-Aug-93 by Henri Veisterä.
  9. ** 
  10. *** Updated for MUI V2.2 25-Aug-94 by Paul Hickman.
  11. **
  12. ****************************************************************************
  13. ** General Header File Information
  14. ****************************************************************************
  15. **
  16. ** All macro and structure definitions follow these rules:
  17. **
  18. ** Name                       Meaning
  19. **
  20. ** MUIC_<class>               Name of a class
  21. ** MUIM_<class>_<method>      Method
  22. ** MUIP_<class>_<method>      Methods parameter structure
  23. ** MUIV_<class>_<method>_<x>  Special method value
  24. ** MUIA_<class>_<attrib>      Attribute
  25. ** MUIV_<class>_<attrib>_<x>  Special attribute value
  26. ** MUIE_<error>               Error return code from MUI_Error()
  27. ** MUII_<name>                Standard MUI image
  28. ** MUII_<name>                Object type for MUI_MakeObject()
  29. **
  30. ** MUIA_... attribute definitions are followed by a comment
  31. ** consisting of the three possible letters I, S and G.
  32. ** I: it's possible to specify this attribute at object creation time.
  33. ** S: it's possible to change this attribute with SetAttrs().
  34. ** G: it's possible to get this attribute with GetAttr().
  35. **
  36. ** Items marked with "Custom Class" are for use in custom classes only!
  37. */
  38.  
  39.  
  40.  
  41.    IFND LIBRARIES_MUI_I
  42. LIBRARIES_MUI_I SET 1
  43.  
  44.    IFND EXEC_TYPES_I
  45.    INCLUDE "exec/types.i"
  46.    ENDC  ;EXEC_TYPES_I
  47.  
  48.    IFND INTUITION_CLASSES_I
  49.    INCLUDE "intuition/classes.i"
  50.    ENDC  ;INTUITION_CLASSES_I
  51.  
  52.    IFND INTUITION_SCREENS_I
  53.    INCLUDE "intuition/screens.i"
  54.    ENDC  ;INTUITION_SCREENS_I
  55.  
  56.    IFND UTILITY_HOOKS_I
  57.    INCLUDE "utility/hooks.i"
  58.    ENDC  ;UTILITY_HOOKS_I
  59.  
  60.    IFND LIBRARIES_ASL_I
  61.    INCLUDE "libraries/asl.i"
  62.    ENDC
  63.  
  64.  
  65. ****************************************************************************
  66. ** Library specification
  67. ****************************************************************************
  68.  
  69. MUIMASTER_NAME MACRO
  70.          dc.b     "muimaster.library",0
  71.          even
  72.          ENDM
  73. MUIMASTER_VMIN EQU 8
  74. CALLMUI  MACRO   ; Func
  75.          move.l   _MUIMasterBase(pc),a6
  76.          jsr      _LVO\1(a6)
  77.          ENDM
  78. NULL     equ      0
  79. TRUE     equ      1
  80. FALSE    equ      NULL
  81.  
  82.  
  83. ***************************************************************************
  84. ** Object Types for MUI_MakeObject()
  85. ***************************************************************************
  86.  
  87. MUIO_Label        equ    1   * STRPTR label, ULONG flags 
  88. MUIO_Button       equ    2   * STRPTR label 
  89. MUIO_Checkmark    equ    3   * STRPTR label 
  90. MUIO_Cycle        equ    4   * STRPTR label, STRPTR *entries 
  91. MUIO_Radio        equ    5   * STRPTR label, STRPTR *entries 
  92. MUIO_Slider       equ    6   * STRPTR label, LONG min, LONG max 
  93. MUIO_String       equ    7   * STRPTR label, LONG maxlen 
  94. MUIO_PopButton    equ    8   * STRPTR imagespec 
  95. MUIO_HSpace       equ    9   * LONG space   
  96. MUIO_VSpace       equ    10   * LONG space   
  97. MUIO_HBar         equ    11   * LONG space   
  98. MUIO_VBar         equ    12   * LONG space   
  99. MUIO_MenustripNM  equ    13   * struct NewMenu .*ULONG flags 
  100. MUIO_Menuitem     equ    14   * STRPTR label, STRPTR shortcut, ULONG flags, ULONG data 
  101. MUIO_BarTitle     equ    15   * STRPTR label 
  102.  
  103. MUIO_Label_SingleFrame     equ    1<<8
  104. MUIO_Label_DoubleFrame     equ    1<<9
  105. MUIO_Label_LeftAligned     equ    1<<10
  106. MUIO_Label_Centered             equ    1<<11
  107.  
  108.  
  109.  
  110. ****************************************************************************
  111. ** ARexx Interface
  112. ****************************************************************************
  113.  
  114.  STRUCTURE MUI_Command,0
  115.    APTR     mc_Name
  116.    APTR     mc_Template
  117.    LONG     mc_Parameters
  118.    STRUCT   mc_Hook,h_SIZEOF
  119.    STRUCT   mc_Reserved,4*5
  120.    LABEL    MUI_Command_SIZEOF
  121.  
  122. MC_TEMPLATE_ID EQU ~0
  123.  
  124.  
  125. MUI_RXERR_BADDEFINITION  equ    -1
  126. MUI_RXERR_OUTOFMEMORY    equ    -2
  127. MUI_RXERR_UNKNOWNCOMMAND equ    -3
  128. MUI_RXERR_BADSYNTAX      equ    -4
  129.  
  130.  
  131.  
  132. ****************************************************************************
  133. ** Return values for MUI_Error()
  134. ****************************************************************************
  135.  
  136. MUIE_OK                    EQU 0
  137. MUIE_OutOfMemory           EQU 1
  138. MUIE_OutOfGfxMemory        EQU 2
  139. MUIE_InvalidWindowObject   EQU 3
  140. MUIE_MissingLibrary        EQU 4
  141. MUIE_NoARexx               EQU 5
  142. MUIE_SingleTask            EQU 6
  143.  
  144.  
  145.  
  146. ****************************************************************************
  147. ** Standard MUI Images
  148. ****************************************************************************
  149.  
  150. MUII_WindowBack      EQU 0
  151. MUII_RequesterBack   EQU 1
  152. MUII_ButtonBack      EQU 2
  153. MUII_ListBack        EQU 3
  154. MUII_TextBack        EQU 4
  155. MUII_PropBack        EQU 5
  156. MUII_PopupBack       EQU 6
  157. MUII_SelectedBack    EQU 7
  158. MUII_ListCursor      EQU 8
  159. MUII_ListSelect      EQU 9
  160. MUII_ListSelCur      EQU 10
  161. MUII_ArrowUp         EQU 11
  162. MUII_ArrowDown       EQU 12
  163. MUII_ArrowLeft       EQU 13
  164. MUII_ArrowRight      EQU 14
  165. MUII_CheckMark       EQU 15
  166. MUII_RadioButton     EQU 16
  167. MUII_Cycle           EQU 17
  168. MUII_PopUp           EQU 18
  169. MUII_PopFile         EQU 19
  170. MUII_PopDrawer       EQU 20
  171. MUII_PropKnob        EQU 21
  172. MUII_Drawer          EQU 22
  173. MUII_HardDisk        EQU 23
  174. MUII_Disk            EQU 24
  175. MUII_Chip            EQU 25
  176. MUII_Volume          EQU 26
  177. MUII_PopUpBack       EQU 27
  178. MUII_Network         EQU 28
  179. MUII_Assign          EQU 29
  180. MUII_TapePlay        EQU 30
  181. MUII_TapePlayBack    EQU 31
  182. MUII_TapePause       EQU 32
  183. MUII_TapeStop        EQU 33
  184. MUII_TapeRecord      EQU 34
  185. MUII_GroupBack       EQU 35
  186. MUII_SliderBack      EQU 36
  187. MUII_SliderKnob      EQU 37
  188. MUII_TapeUp          EQU 38
  189. MUII_TapeDown        EQU 39
  190. MUII_Count           EQU 40
  191.  
  192. MUII_BACKGROUND      EQU (128+0)
  193. MUII_SHADOW          EQU (128+1)
  194. MUII_SHINE           EQU (128+2)
  195. MUII_FILL            EQU (128+3)
  196. MUII_SHADOWBACK      EQU (128+4)
  197. MUII_SHADOWFILL      EQU (128+5)
  198. MUII_SHADOWSHINE     EQU (128+6)
  199. MUII_FILLBACK        EQU (128+7)
  200. MUII_FILLSHINE       EQU (128+8)
  201. MUII_SHINEBACK       EQU (128+9)
  202. MUII_FILLBACK2       EQU (128+10)
  203. MUII_HSHINEBACK      EQU (128+11)
  204. MUII_HSHADOWBACK     EQU (128+12)
  205. MUII_HSHINESHINE     EQU (128+13)
  206. MUII_HSHADOWSHADOW   EQU (128+14)
  207. MUII_LASTPAT         EQU (128+15)
  208.  
  209.  
  210. ****************************************************************************
  211. ** Special values for some methods 
  212. ****************************************************************************
  213.  
  214. MUIV_TriggerValue       EQU $49893131
  215. MUIV_NotTriggerValue    EQU $49893133
  216. MUIV_EveryTime          EQU $49893131
  217.  
  218. MUIV_Application_Save_ENV     EQU 0
  219. MUIV_Application_Save_ENVARC  EQU ~0
  220. MUIV_Application_Load_ENV     EQU 0
  221. MUIV_Application_Load_ENVARC  EQU ~0
  222.  
  223. MUIV_Application_ReturnID_Quit   EQU -1
  224.  
  225. MUIV_List_Insert_Top       EQU 0
  226. MUIV_List_Insert_Active    EQU -1
  227. MUIV_List_Insert_Sorted    EQU -2
  228. MUIV_List_Insert_Bottom    EQU -3
  229.  
  230. MUIV_List_Remove_First     EQU 0
  231. MUIV_List_Remove_Active    EQU -1
  232. MUIV_List_Remove_Last      EQU -2
  233.  
  234. MUIV_List_Select_Off       EQU 0
  235. MUIV_List_Select_On        EQU 1
  236. MUIV_List_Select_Toggle    EQU 2
  237. MUIV_List_Select_Ask       EQU 3
  238.  
  239. MUIV_List_GetEntry_Active  EQU -1
  240. MUIV_List_Select_Active    EQU -1
  241. MUIV_List_Select_All       EQU -2
  242.  
  243. MUIV_List_Redraw_Active    EQU -1
  244. MUIV_List_Redraw_All       EQU -2
  245.  
  246. MUIV_List_Move_Top         EQU  0
  247. MUIV_List_Move_Active      EQU -1
  248. MUIV_List_Move_Bottom      EQU -2
  249. MUIV_List_Move_Next        EQU -3 * only valid for second parameter 
  250. MUIV_List_Move_Previous    EQU -4 * only valid for second parameter
  251.  
  252. MUIV_List_Exchange_Top      EQU  0
  253. MUIV_List_Exchange_Active   EQU -1
  254. MUIV_List_Exchange_Bottom   EQU -2
  255. MUIV_List_Exchange_Next     EQU -3 * only valid for second parameter
  256. MUIV_List_Exchange_Previous EQU -4 * only valid for second parameter
  257.  
  258. MUIV_List_Jump_Top          EQU     0
  259. MUIV_List_Jump_Active       EQU    -1
  260. MUIV_List_Jump_Bottom       EQU    -2
  261.  
  262. MUIV_Colorpanel_GetColor_Active  EQU -1
  263. MUIV_Colorpanel_SetColor_Active  EQU -1
  264.  
  265. MUIV_List_NextSelected_Start    EQU  -1
  266. MUIV_List_NextSelected_End      EQU  -1
  267.  
  268.  
  269. ***************************************************************************
  270. ** Parameter structures for some classes
  271. ***************************************************************************/
  272.  
  273.  STRUCTURE MUI_Palette_Entry,0
  274.    LONG    mpe_ID
  275.    LONG    mpe_Red
  276.    LONG    mpe_Green
  277.    LONG    mpe_Blue
  278.    LONG    mpe_Group
  279.    LABEL   MUI_Palette_Entry_SIZEOF
  280.  
  281. MUIV_Palette_Entry_End EQU -1
  282.  
  283.  
  284.  STRUCTURE MUI_Scrmodelist_Entry,0
  285.    APTR     sme_Name
  286.    LONG     sme_ModeID
  287.    LABEL    MUI_Scrmodelist_Entry_SIZEOF
  288.  
  289.  
  290.  
  291.  
  292.  
  293. ;*********************************************
  294. ;** Begin of automatic header file creation **
  295. ;*********************************************
  296.  
  297.  
  298.  
  299.  
  300. ;****************************************************************************
  301. ;** Notify                                                                 **
  302. ;****************************************************************************
  303.  
  304. ;** Methods **
  305.  
  306. MUIM_CallHook                  EQU $8042b96b ;** V4  **
  307. MUIM_FindUData                 EQU $8042c196 ;** V8  **
  308. MUIM_GetUData                  EQU $8042ed0c ;** V8  **
  309. MUIM_KillNotify                EQU $8042d240 ;** V4  **
  310. MUIM_MultiSet                  EQU $8042d356 ;** V7  **
  311. MUIM_NoNotifySet               EQU $8042216f ;** V9  **
  312. MUIM_Notify                    EQU $8042c9cb ;** V4  **
  313. MUIM_Set                       EQU $8042549a ;** V4  **
  314. MUIM_SetAsString               EQU $80422590 ;** V4  **
  315. MUIM_SetUData                  EQU $8042c920 ;** V8  **
  316. MUIM_WriteLong                 EQU $80428d86 ;** V6  **
  317. MUIM_WriteString               EQU $80424bf4 ;** V6  **
  318.  
  319. ;** Attributes **
  320.  
  321. MUIA_AppMessage                 EQU $80421955 ;** V5  ..g struct AppMessage * **
  322. MUIA_HelpFile                   EQU $80423a6e ;** V4  isg STRPTR            **
  323. MUIA_HelpLine                   EQU $8042a825 ;** V4  isg LONG              **
  324. MUIA_HelpNode                   EQU $80420b85 ;** V4  isg STRPTR            **
  325. MUIA_NoNotify                   EQU $804237f9 ;** V7  .s. BOOL              **
  326. MUIA_Revision                   EQU $80427eaa ;** V4  ..g LONG              **
  327. MUIA_UserData                   EQU $80420313 ;** V4  isg ULONG             **
  328. MUIA_Version                    EQU $80422301 ;** V4  ..g LONG              **
  329.  
  330.  
  331.  
  332. ;****************************************************************************
  333. ;** Family                                                                 **
  334. ;****************************************************************************
  335.  
  336. ;** Methods **
  337.  
  338. MUIM_Family_AddHead            EQU $8042e200 ;** V8  **
  339. MUIM_Family_AddTail            EQU $8042d752 ;** V8  **
  340. MUIM_Family_Insert             EQU $80424d34 ;** V8  **
  341. MUIM_Family_Remove             EQU $8042f8a9 ;** V8  **
  342. MUIM_Family_Sort               EQU $80421c49 ;** V8  **
  343. MUIM_Family_Transfer           EQU $8042c14a ;** V8  **
  344.  
  345. ;** Attributes **
  346.  
  347. MUIA_Family_Child               EQU $8042c696 ;** V8  i.. Object *          **
  348.  
  349.  
  350.  
  351. ;****************************************************************************
  352. ;** Menustrip                                                              **
  353. ;****************************************************************************
  354.  
  355. ;** Methods **
  356.  
  357.  
  358. ;** Attributes **
  359.  
  360. MUIA_Menustrip_Enabled          EQU $8042815b ;** V8  isg BOOL              **
  361.  
  362.  
  363.  
  364. ;****************************************************************************
  365. ;** Menu                                                                   **
  366. ;****************************************************************************
  367.  
  368. ;** Methods **
  369.  
  370.  
  371. ;** Attributes **
  372.  
  373. MUIA_Menu_Enabled               EQU $8042ed48 ;** V8  isg BOOL              **
  374. MUIA_Menu_Title                 EQU $8042a0e3 ;** V8  isg STRPTR            **
  375.  
  376.  
  377.  
  378. ;****************************************************************************
  379. ;** Menuitem                                                               **
  380. ;****************************************************************************
  381.  
  382. ;** Methods **
  383.  
  384.  
  385. ;** Attributes **
  386.  
  387. MUIA_Menuitem_Checked           EQU $8042562a ;** V8  isg BOOL              **
  388. MUIA_Menuitem_Checkit           EQU $80425ace ;** V8  isg BOOL              **
  389. MUIA_Menuitem_Enabled           EQU $8042ae0f ;** V8  isg BOOL              **
  390. MUIA_Menuitem_Exclude           EQU $80420bc6 ;** V8  isg LONG              **
  391. MUIA_Menuitem_Shortcut          EQU $80422030 ;** V8  isg char              **
  392. MUIA_Menuitem_Title             EQU $804218be ;** V8  isg STRPTR            **
  393. MUIA_Menuitem_Toggle            EQU $80424d5c ;** V8  isg BOOL              **
  394. MUIA_Menuitem_Trigger           EQU $80426f32 ;** V8  ..g struct MenuItem * **
  395.  
  396.  
  397.  
  398. ;****************************************************************************
  399. ;** Application                                                            **
  400. ;****************************************************************************
  401.  
  402. ;** Methods **
  403.  
  404. MUIM_Application_GetMenuCheck  EQU $8042c0a7 ;** V4  **
  405. MUIM_Application_GetMenuState  EQU $8042a58f ;** V4  **
  406. MUIM_Application_Input         EQU $8042d0f5 ;** V4  **
  407. MUIM_Application_InputBuffered EQU $80427e59 ;** V4  **
  408. MUIM_Application_Load          EQU $8042f90d ;** V4  **
  409. MUIM_Application_PushMethod    EQU $80429ef8 ;** V4  **
  410. MUIM_Application_ReturnID      EQU $804276ef ;** V4  **
  411. MUIM_Application_Save          EQU $804227ef ;** V4  **
  412. MUIM_Application_SetMenuCheck  EQU $8042a707 ;** V4  **
  413. MUIM_Application_SetMenuState  EQU $80428bef ;** V4  **
  414. MUIM_Application_ShowHelp      EQU $80426479 ;** V4  **
  415.  
  416. ;** Attributes **
  417.  
  418. MUIA_Application_Active         EQU $804260ab ;** V4  isg BOOL              **
  419. MUIA_Application_Author         EQU $80424842 ;** V4  i.g STRPTR            **
  420. MUIA_Application_Base           EQU $8042e07a ;** V4  i.g STRPTR            **
  421. MUIA_Application_Broker         EQU $8042dbce ;** V4  ..g Broker *          **
  422. MUIA_Application_BrokerHook     EQU $80428f4b ;** V4  isg struct Hook *     **
  423. MUIA_Application_BrokerPort     EQU $8042e0ad ;** V6  ..g struct MsgPort *  **
  424. MUIA_Application_BrokerPri      EQU $8042c8d0 ;** V6  i.g LONG              **
  425. MUIA_Application_Commands       EQU $80428648 ;** V4  isg struct MUI_Command * **
  426. MUIA_Application_Copyright      EQU $8042ef4d ;** V4  i.g STRPTR            **
  427. MUIA_Application_Description    EQU $80421fc6 ;** V4  i.g STRPTR            **
  428. MUIA_Application_DiskObject     EQU $804235cb ;** V4  isg struct DiskObject * **
  429. MUIA_Application_DoubleStart    EQU $80423bc6 ;** V4  ..g BOOL              **
  430. MUIA_Application_DropObject     EQU $80421266 ;** V5  is. Object *          **
  431. MUIA_Application_ForceQuit      EQU $804257df ;** V8  ..g BOOL              **
  432. MUIA_Application_HelpFile       EQU $804293f4 ;** V8  isg STRPTR            **
  433. MUIA_Application_Iconified      EQU $8042a07f ;** V4  .sg BOOL              **
  434. MUIA_Application_Menu           EQU $80420e1f ;** V4  i.g struct NewMenu *  **
  435. MUIA_Application_MenuAction     EQU $80428961 ;** V4  ..g ULONG             **
  436. MUIA_Application_MenuHelp       EQU $8042540b ;** V4  ..g ULONG             **
  437. MUIA_Application_Menustrip      EQU $804252d9 ;** V8  i.. Object *          **
  438. MUIA_Application_RexxHook       EQU $80427c42 ;** V7  isg struct Hook *     **
  439. MUIA_Application_RexxMsg        EQU $8042fd88 ;** V4  ..g struct RxMsg *    **
  440. MUIA_Application_RexxString     EQU $8042d711 ;** V4  .s. STRPTR            **
  441. MUIA_Application_SingleTask     EQU $8042a2c8 ;** V4  i.. BOOL              **
  442. MUIA_Application_Sleep          EQU $80425711 ;** V4  .s. BOOL              **
  443. MUIA_Application_Title          EQU $804281b8 ;** V4  i.g STRPTR            **
  444. MUIA_Application_UseCommodities EQU $80425ee5 ;** V10 i.. BOOL              **
  445. MUIA_Application_UseRexx        EQU $80422387 ;** V10 i.. BOOL              **
  446. MUIA_Application_Version        EQU $8042b33f ;** V4  i.g STRPTR            **
  447. MUIA_Application_Window         EQU $8042bfe0 ;** V4  i.. Object *          **
  448.  
  449.  
  450.  
  451. ;****************************************************************************
  452. ;** Window                                                                 **
  453. ;****************************************************************************
  454.  
  455. ;** Methods **
  456.  
  457. MUIM_Window_GetMenuCheck       EQU $80420414 ;** V4  **
  458. MUIM_Window_GetMenuState       EQU $80420d2f ;** V4  **
  459. MUIM_Window_ScreenToBack       EQU $8042913d ;** V4  **
  460. MUIM_Window_ScreenToFront      EQU $804227a4 ;** V4  **
  461. MUIM_Window_SetCycleChain      EQU $80426510 ;** V4  **
  462. MUIM_Window_SetMenuCheck       EQU $80422243 ;** V4  **
  463. MUIM_Window_SetMenuState       EQU $80422b5e ;** V4  **
  464. MUIM_Window_ToBack             EQU $8042152e ;** V4  **
  465. MUIM_Window_ToFront            EQU $8042554f ;** V4  **
  466.  
  467. ;** Attributes **
  468.  
  469. MUIA_Window_Activate            EQU $80428d2f ;** V4  isg BOOL              **
  470. MUIA_Window_ActiveObject        EQU $80427925 ;** V4  .sg Object *          **
  471. MUIA_Window_AltHeight           EQU $8042cce3 ;** V4  i.g LONG              **
  472. MUIA_Window_AltLeftEdge         EQU $80422d65 ;** V4  i.g LONG              **
  473. MUIA_Window_AltTopEdge          EQU $8042e99b ;** V4  i.g LONG              **
  474. MUIA_Window_AltWidth            EQU $804260f4 ;** V4  i.g LONG              **
  475. MUIA_Window_AppWindow           EQU $804280cf ;** V5  i.. BOOL              **
  476. MUIA_Window_Backdrop            EQU $8042c0bb ;** V4  i.. BOOL              **
  477. MUIA_Window_Borderless          EQU $80429b79 ;** V4  i.. BOOL              **
  478. MUIA_Window_CloseGadget         EQU $8042a110 ;** V4  i.. BOOL              **
  479. MUIA_Window_CloseRequest        EQU $8042e86e ;** V4  ..g BOOL              **
  480. MUIA_Window_DefaultObject       EQU $804294d7 ;** V4  isg Object *          **
  481. MUIA_Window_DepthGadget         EQU $80421923 ;** V4  i.. BOOL              **
  482. MUIA_Window_DragBar             EQU $8042045d ;** V4  i.. BOOL              **
  483. MUIA_Window_FancyDrawing        EQU $8042bd0e ;** V8  isg BOOL              **
  484. MUIA_Window_Height              EQU $80425846 ;** V4  i.g LONG              **
  485. MUIA_Window_ID                  EQU $804201bd ;** V4  isg ULONG             **
  486. MUIA_Window_InputEvent          EQU $804247d8 ;** V4  ..g struct InputEvent * **
  487. MUIA_Window_LeftEdge            EQU $80426c65 ;** V4  i.g LONG              **
  488. MUIA_Window_Menu                EQU $8042db94 ;** V4  i.. struct NewMenu *  **
  489. MUIA_Window_MenuAction          EQU $80427521 ;** V8  isg ULONG             **
  490. MUIA_Window_Menustrip           EQU $8042855e ;** V8  i.. Object *          **
  491. MUIA_Window_MouseObject         EQU $8042bf9b ;** V10 ..g Object *          **
  492. MUIA_Window_NeedsMouseObject    EQU $8042372a ;** V10 i.. BOOL              **
  493. MUIA_Window_NoMenus             EQU $80429df5 ;** V4  is. BOOL              **
  494. MUIA_Window_Open                EQU $80428aa0 ;** V4  .sg BOOL              **
  495. MUIA_Window_PublicScreen        EQU $804278e4 ;** V6  isg STRPTR            **
  496. MUIA_Window_RefWindow           EQU $804201f4 ;** V4  is. Object *          **
  497. MUIA_Window_RootObject          EQU $8042cba5 ;** V4  i.. Object *          **
  498. MUIA_Window_Screen              EQU $8042df4f ;** V4  isg struct Screen *   **
  499. MUIA_Window_ScreenTitle         EQU $804234b0 ;** V5  isg STRPTR            **
  500. MUIA_Window_SizeGadget          EQU $8042e33d ;** V4  i.. BOOL              **
  501. MUIA_Window_SizeRight           EQU $80424780 ;** V4  i.. BOOL              **
  502. MUIA_Window_Sleep               EQU $8042e7db ;** V4  .sg BOOL              **
  503. MUIA_Window_Title               EQU $8042ad3d ;** V4  isg STRPTR            **
  504. MUIA_Window_TopEdge             EQU $80427c66 ;** V4  i.g LONG              **
  505. MUIA_Window_Width               EQU $8042dcae ;** V4  i.g LONG              **
  506. MUIA_Window_Window              EQU $80426a42 ;** V4  ..g struct Window *   **
  507.  
  508. MUIV_Window_ActiveObjectNone    EQU 0
  509. MUIV_Window_ActiveObjectNext    EQU -1
  510. MUIV_Window_ActiveObjectPrev    EQU -2
  511. MUIV_Window_AltHeightMinMax     EQU 0
  512. MUIV_Window_AltHeightVisible    EQU -100
  513. MUIV_Window_AltHeightScreen     EQU -200
  514. MUIV_Window_AltHeightScaled     EQU -1000
  515. MUIV_Window_AltLeftEdgeCentered EQU -1
  516. MUIV_Window_AltLeftEdgeMoused   EQU -2
  517. MUIV_Window_AltLeftEdgeNoChange EQU -1000
  518. MUIV_Window_AltTopEdgeCentered  EQU -1
  519. MUIV_Window_AltTopEdgeMoused    EQU -2
  520. MUIV_Window_AltTopEdgeDelta     EQU -3
  521. MUIV_Window_AltTopEdgeNoChange  EQU -1000
  522. MUIV_Window_AltWidthMinMax      EQU 0
  523. MUIV_Window_AltWidthVisible     EQU -100
  524. MUIV_Window_AltWidthScreen      EQU -200
  525. MUIV_Window_AltWidthScaled      EQU -1000
  526. MUIV_Window_HeightMinMax        EQU 0
  527. MUIV_Window_HeightVisible       EQU -100
  528. MUIV_Window_HeightScreen        EQU -200
  529. MUIV_Window_HeightScaled        EQU -1000
  530. MUIV_Window_HeightDefault       EQU -1001
  531. MUIV_Window_LeftEdgeCentered    EQU -1
  532. MUIV_Window_LeftEdgeMoused      EQU -2
  533. MUIV_Window_MenuNoMenu          EQU -1
  534. MUIV_Window_TopEdgeCentered     EQU -1
  535. MUIV_Window_TopEdgeMoused       EQU -2
  536. MUIV_Window_TopEdgeDelta        EQU -3
  537. MUIV_Window_WidthMinMax         EQU 0
  538. MUIV_Window_WidthVisible        EQU -100
  539. MUIV_Window_WidthScreen         EQU -200
  540. MUIV_Window_WidthScaled         EQU -1000
  541. MUIV_Window_WidthDefault        EQU -1001
  542.  
  543.  
  544. ;****************************************************************************
  545. ;** Area                                                                   **
  546. ;****************************************************************************
  547.  
  548. ;** Methods **
  549.  
  550. MUIM_AskMinMax                 EQU $80423874 ;** V4  **
  551. MUIM_Cleanup                   EQU $8042d985 ;** V4  **
  552. MUIM_Draw                      EQU $80426f3f ;** V4  **
  553. MUIM_HandleInput               EQU $80422a1a ;** V4  **
  554. MUIM_Hide                      EQU $8042f20f ;** V4  **
  555. MUIM_Setup                     EQU $80428354 ;** V4  **
  556. MUIM_Show                      EQU $8042cc84 ;** V4  **
  557.  
  558. ;** Attributes **
  559.  
  560. MUIA_ApplicationObject          EQU $8042d3ee ;** V4  ..g Object *          **
  561. MUIA_Background                 EQU $8042545b ;** V4  is. LONG              **
  562. MUIA_BottomEdge                 EQU $8042e552 ;** V4  ..g LONG              **
  563. MUIA_ControlChar                EQU $8042120b ;** V4  i.. char              **
  564. MUIA_Disabled                   EQU $80423661 ;** V4  isg BOOL              **
  565. MUIA_ExportID                   EQU $8042d76e ;** V4  isg LONG              **
  566. MUIA_FixHeight                  EQU $8042a92b ;** V4  i.. LONG              **
  567. MUIA_FixHeightTxt               EQU $804276f2 ;** V4  i.. LONG              **
  568. MUIA_FixWidth                   EQU $8042a3f1 ;** V4  i.. LONG              **
  569. MUIA_FixWidthTxt                EQU $8042d044 ;** V4  i.. STRPTR            **
  570. MUIA_Font                       EQU $8042be50 ;** V4  i.g struct TextFont * **
  571. MUIA_Frame                      EQU $8042ac64 ;** V4  i.. LONG              **
  572. MUIA_FramePhantomHoriz          EQU $8042ed76 ;** V4  i.. BOOL              **
  573. MUIA_FrameTitle                 EQU $8042d1c7 ;** V4  i.. STRPTR            **
  574. MUIA_Height                     EQU $80423237 ;** V4  ..g LONG              **
  575. MUIA_HorizWeight                EQU $80426db9 ;** V4  i.. WORD              **
  576. MUIA_InnerBottom                EQU $8042f2c0 ;** V4  i.. LONG              **
  577. MUIA_InnerLeft                  EQU $804228f8 ;** V4  i.. LONG              **
  578. MUIA_InnerRight                 EQU $804297ff ;** V4  i.. LONG              **
  579. MUIA_InnerTop                   EQU $80421eb6 ;** V4  i.. LONG              **
  580. MUIA_InputMode                  EQU $8042fb04 ;** V4  i.. LONG              **
  581. MUIA_LeftEdge                   EQU $8042bec6 ;** V4  ..g LONG              **
  582. MUIA_Pressed                    EQU $80423535 ;** V4  ..g BOOL              **
  583. MUIA_RightEdge                  EQU $8042ba82 ;** V4  ..g LONG              **
  584. MUIA_Selected                   EQU $8042654b ;** V4  isg BOOL              **
  585. MUIA_ShowMe                     EQU $80429ba8 ;** V4  isg BOOL              **
  586. MUIA_ShowSelState               EQU $8042caac ;** V4  i.. BOOL              **
  587. MUIA_Timer                      EQU $80426435 ;** V4  ..g LONG              **
  588. MUIA_TopEdge                    EQU $8042509b ;** V4  ..g LONG              **
  589. MUIA_VertWeight                 EQU $804298d0 ;** V4  i.. WORD              **
  590. MUIA_Weight                     EQU $80421d1f ;** V4  i.. WORD              **
  591. MUIA_Width                      EQU $8042b59c ;** V4  ..g LONG              **
  592. MUIA_Window                     EQU $80421591 ;** V4  ..g struct Window *   **
  593. MUIA_WindowObject               EQU $8042669e ;** V4  ..g Object *          **
  594.  
  595. MUIV_FontInherit                EQU 0
  596. MUIV_FontNormal                 EQU -1
  597. MUIV_FontList                   EQU -2
  598. MUIV_FontTiny                   EQU -3
  599. MUIV_FontFixed                  EQU -4
  600. MUIV_FontTitle                  EQU -5
  601. MUIV_FontBig                    EQU -6
  602. MUIV_FrameNone                  EQU 0
  603. MUIV_FrameButton                EQU 1
  604. MUIV_FrameImageButton           EQU 2
  605. MUIV_FrameText                  EQU 3
  606. MUIV_FrameString                EQU 4
  607. MUIV_FrameReadList              EQU 5
  608. MUIV_FrameInputList             EQU 6
  609. MUIV_FrameProp                  EQU 7
  610. MUIV_FrameGauge                 EQU 8
  611. MUIV_FrameGroup                 EQU 9
  612. MUIV_FramePopUp                 EQU 10
  613. MUIV_FrameVirtual               EQU 11
  614. MUIV_FrameSlider                EQU 12
  615. MUIV_FrameCount                 EQU 13
  616. MUIV_InputModeNone              EQU 0
  617. MUIV_InputModeRelVerify         EQU 1
  618. MUIV_InputModeImmediate         EQU 2
  619. MUIV_InputModeToggle            EQU 3
  620.  
  621.  
  622. ;****************************************************************************
  623. ;** Rectangle                                                              **
  624. ;****************************************************************************
  625.  
  626. ;** Attributes **
  627.  
  628. MUIA_Rectangle_HBar             EQU $8042c943 ;** V7  i.g BOOL              **
  629. MUIA_Rectangle_VBar             EQU $80422204 ;** V7  i.g BOOL              **
  630.  
  631.  
  632.  
  633. ;****************************************************************************
  634. ;** Image                                                                  **
  635. ;****************************************************************************
  636.  
  637. ;** Attributes **
  638.  
  639. MUIA_Image_FontMatch            EQU $8042815d ;** V4  i.. BOOL              **
  640. MUIA_Image_FontMatchHeight      EQU $80429f26 ;** V4  i.. BOOL              **
  641. MUIA_Image_FontMatchWidth       EQU $804239bf ;** V4  i.. BOOL              **
  642. MUIA_Image_FreeHoriz            EQU $8042da84 ;** V4  i.. BOOL              **
  643. MUIA_Image_FreeVert             EQU $8042ea28 ;** V4  i.. BOOL              **
  644. MUIA_Image_OldImage             EQU $80424f3d ;** V4  i.. struct Image *    **
  645. MUIA_Image_Spec                 EQU $804233d5 ;** V4  i.. char *            **
  646. MUIA_Image_State                EQU $8042a3ad ;** V4  is. LONG              **
  647.  
  648.  
  649.  
  650. ;****************************************************************************
  651. ;** Bitmap                                                                 **
  652. ;****************************************************************************
  653.  
  654. ;** Attributes **
  655.  
  656. MUIA_Bitmap_Bitmap              EQU $804279bd ;** V8  isg struct BitMap *   **
  657. MUIA_Bitmap_Height              EQU $80421560 ;** V8  isg LONG              **
  658. MUIA_Bitmap_MappingTable        EQU $8042e23d ;** V8  isg UBYTE *           **
  659. MUIA_Bitmap_SourceColors        EQU $80425360 ;** V8  isg ULONG *           **
  660. MUIA_Bitmap_Transparent         EQU $80422805 ;** V8  isg LONG              **
  661. MUIA_Bitmap_Width               EQU $8042eb3a ;** V8  isg LONG              **
  662.  
  663.  
  664.  
  665. ;****************************************************************************
  666. ;** Bodychunk                                                              **
  667. ;****************************************************************************
  668.  
  669. ;** Attributes **
  670.  
  671. MUIA_Bodychunk_Body             EQU $8042ca67 ;** V8  isg UBYTE *           **
  672. MUIA_Bodychunk_Compression      EQU $8042de5f ;** V8  isg UBYTE             **
  673. MUIA_Bodychunk_Depth            EQU $8042c392 ;** V8  isg LONG              **
  674. MUIA_Bodychunk_Masking          EQU $80423b0e ;** V8  isg UBYTE             **
  675.  
  676.  
  677.  
  678. ;****************************************************************************
  679. ;** Text                                                                   **
  680. ;****************************************************************************
  681.  
  682. ;** Attributes **
  683.  
  684. MUIA_Text_Contents              EQU $8042f8dc ;** V4  isg STRPTR            **
  685. MUIA_Text_HiChar                EQU $804218ff ;** V4  i.. char              **
  686. MUIA_Text_PreParse              EQU $8042566d ;** V4  isg STRPTR            **
  687. MUIA_Text_SetMax                EQU $80424d0a ;** V4  i.. BOOL              **
  688. MUIA_Text_SetMin                EQU $80424e10 ;** V4  i.. BOOL              **
  689.  
  690.  
  691.  
  692. ;****************************************************************************
  693. ;** String                                                                 **
  694. ;****************************************************************************
  695.  
  696. ;** Attributes **
  697.  
  698. MUIA_String_Accept              EQU $8042e3e1 ;** V4  isg STRPTR            **
  699. MUIA_String_Acknowledge         EQU $8042026c ;** V4  ..g STRPTR            **
  700. MUIA_String_AttachedList        EQU $80420fd2 ;** V4  i.. Object *          **
  701. MUIA_String_BufferPos           EQU $80428b6c ;** V4  .sg LONG              **
  702. MUIA_String_Contents            EQU $80428ffd ;** V4  isg STRPTR            **
  703. MUIA_String_DisplayPos          EQU $8042ccbf ;** V4  .sg LONG              **
  704. MUIA_String_EditHook            EQU $80424c33 ;** V7  isg struct Hook *     **
  705. MUIA_String_Format              EQU $80427484 ;** V4  i.g LONG              **
  706. MUIA_String_Integer             EQU $80426e8a ;** V4  isg ULONG             **
  707. MUIA_String_MaxLen              EQU $80424984 ;** V4  i.g LONG              **
  708. MUIA_String_Reject              EQU $8042179c ;** V4  isg STRPTR            **
  709. MUIA_String_Secret              EQU $80428769 ;** V4  i.g BOOL              **
  710.  
  711. MUIV_String_FormatLeft          EQU 0
  712. MUIV_String_FormatCenter        EQU 1
  713. MUIV_String_FormatRight         EQU 2
  714.  
  715.  
  716. ;****************************************************************************
  717. ;** Prop                                                                   **
  718. ;****************************************************************************
  719.  
  720. ;** Attributes **
  721.  
  722. MUIA_Prop_Entries               EQU $8042fbdb ;** V4  isg LONG              **
  723. MUIA_Prop_First                 EQU $8042d4b2 ;** V4  isg LONG              **
  724. MUIA_Prop_Horiz                 EQU $8042f4f3 ;** V4  i.g BOOL              **
  725. MUIA_Prop_Slider                EQU $80429c3a ;** V4  isg BOOL              **
  726. MUIA_Prop_Visible               EQU $8042fea6 ;** V4  isg LONG              **
  727.  
  728.  
  729.  
  730. ;****************************************************************************
  731. ;** Gauge                                                                  **
  732. ;****************************************************************************
  733.  
  734. ;** Attributes **
  735.  
  736. MUIA_Gauge_Current              EQU $8042f0dd ;** V4  isg LONG              **
  737. MUIA_Gauge_Divide               EQU $8042d8df ;** V4  isg BOOL              **
  738. MUIA_Gauge_Horiz                EQU $804232dd ;** V4  i.. BOOL              **
  739. MUIA_Gauge_InfoText             EQU $8042bf15 ;** V7  isg char *            **
  740. MUIA_Gauge_Max                  EQU $8042bcdb ;** V4  isg LONG              **
  741.  
  742.  
  743.  
  744. ;****************************************************************************
  745. ;** Scale                                                                  **
  746. ;****************************************************************************
  747.  
  748. ;** Attributes **
  749.  
  750. MUIA_Scale_Horiz                EQU $8042919a ;** V4  isg BOOL              **
  751.  
  752.  
  753.  
  754. ;****************************************************************************
  755. ;** Boopsi                                                                 **
  756. ;****************************************************************************
  757.  
  758. ;** Attributes **
  759.  
  760. MUIA_Boopsi_Class               EQU $80426999 ;** V4  isg struct IClass *   **
  761. MUIA_Boopsi_ClassID             EQU $8042bfa3 ;** V4  isg char *            **
  762. MUIA_Boopsi_MaxHeight           EQU $8042757f ;** V4  isg ULONG             **
  763. MUIA_Boopsi_MaxWidth            EQU $8042bcb1 ;** V4  isg ULONG             **
  764. MUIA_Boopsi_MinHeight           EQU $80422c93 ;** V4  isg ULONG             **
  765. MUIA_Boopsi_MinWidth            EQU $80428fb2 ;** V4  isg ULONG             **
  766. MUIA_Boopsi_Object              EQU $80420178 ;** V4  ..g Object *          **
  767. MUIA_Boopsi_Remember            EQU $8042f4bd ;** V4  i.. ULONG             **
  768. MUIA_Boopsi_Smart               EQU $8042b8d7 ;** V9  i.. BOOL              **
  769. MUIA_Boopsi_TagDrawInfo         EQU $8042bae7 ;** V4  isg ULONG             **
  770. MUIA_Boopsi_TagScreen           EQU $8042bc71 ;** V4  isg ULONG             **
  771. MUIA_Boopsi_TagWindow           EQU $8042e11d ;** V4  isg ULONG             **
  772.  
  773.  
  774.  
  775. ;****************************************************************************
  776. ;** Colorfield                                                             **
  777. ;****************************************************************************
  778.  
  779. ;** Attributes **
  780.  
  781. MUIA_Colorfield_Blue            EQU $8042d3b0 ;** V4  isg ULONG             **
  782. MUIA_Colorfield_Green           EQU $80424466 ;** V4  isg ULONG             **
  783. MUIA_Colorfield_Pen             EQU $8042713a ;** V4  ..g ULONG             **
  784. MUIA_Colorfield_Red             EQU $804279f6 ;** V4  isg ULONG             **
  785. MUIA_Colorfield_RGB             EQU $8042677a ;** V4  isg ULONG *           **
  786.  
  787.  
  788.  
  789. ;****************************************************************************
  790. ;** List                                                                   **
  791. ;****************************************************************************
  792.  
  793. ;** Methods **
  794.  
  795. MUIM_List_Clear                EQU $8042ad89 ;** V4  **
  796. MUIM_List_Exchange             EQU $8042468c ;** V4  **
  797. MUIM_List_GetEntry             EQU $804280ec ;** V4  **
  798. MUIM_List_Insert               EQU $80426c87 ;** V4  **
  799. MUIM_List_InsertSingle         EQU $804254d5 ;** V7  **
  800. MUIM_List_Jump                 EQU $8042baab ;** V4  **
  801. MUIM_List_Move                 EQU $804253c2 ;** V9  **
  802. MUIM_List_NextSelected         EQU $80425f17 ;** V6  **
  803. MUIM_List_Redraw               EQU $80427993 ;** V4  **
  804. MUIM_List_Remove               EQU $8042647e ;** V4  **
  805. MUIM_List_Select               EQU $804252d8 ;** V4  **
  806. MUIM_List_Sort                 EQU $80422275 ;** V4  **
  807.  
  808. ;** Attributes **
  809.  
  810. MUIA_List_Active                EQU $8042391c ;** V4  isg LONG              **
  811. MUIA_List_AdjustHeight          EQU $8042850d ;** V4  i.. BOOL              **
  812. MUIA_List_AdjustWidth           EQU $8042354a ;** V4  i.. BOOL              **
  813. MUIA_List_CompareHook           EQU $80425c14 ;** V4  is. struct Hook *     **
  814. MUIA_List_ConstructHook         EQU $8042894f ;** V4  is. struct Hook *     **
  815. MUIA_List_DestructHook          EQU $804297ce ;** V4  is. struct Hook *     **
  816. MUIA_List_DisplayHook           EQU $8042b4d5 ;** V4  is. struct Hook *     **
  817. MUIA_List_Entries               EQU $80421654 ;** V4  ..g LONG              **
  818. MUIA_List_First                 EQU $804238d4 ;** V4  ..g LONG              **
  819. MUIA_List_Format                EQU $80423c0a ;** V4  isg STRPTR            **
  820. MUIA_List_InsertPosition        EQU $8042d0cd ;** V9  ..g LONG              **
  821. MUIA_List_MultiTestHook         EQU $8042c2c6 ;** V4  is. struct Hook *     **
  822. MUIA_List_Quiet                 EQU $8042d8c7 ;** V4  .s. BOOL              **
  823. MUIA_List_SourceArray           EQU $8042c0a0 ;** V4  i.. APTR              **
  824. MUIA_List_Title                 EQU $80423e66 ;** V6  isg char *            **
  825. MUIA_List_Visible               EQU $8042191f ;** V4  ..g LONG              **
  826.  
  827. MUIV_List_ActiveOff             EQU -1
  828. MUIV_List_ActiveTop             EQU -2
  829. MUIV_List_ActiveBottom          EQU -3
  830. MUIV_List_ActiveUp              EQU -4
  831. MUIV_List_ActiveDown            EQU -5
  832. MUIV_List_ActivePageUp          EQU -6
  833. MUIV_List_ActivePageDown        EQU -7
  834. MUIV_List_ConstructHookString   EQU -1
  835. MUIV_List_DestructHookString    EQU -1
  836.  
  837.  
  838. ;****************************************************************************
  839. ;** Floattext                                                              **
  840. ;****************************************************************************
  841.  
  842. ;** Attributes **
  843.  
  844. MUIA_Floattext_Justify          EQU $8042dc03 ;** V4  isg BOOL              **
  845. MUIA_Floattext_SkipChars        EQU $80425c7d ;** V4  is. STRPTR            **
  846. MUIA_Floattext_TabSize          EQU $80427d17 ;** V4  is. LONG              **
  847. MUIA_Floattext_Text             EQU $8042d16a ;** V4  isg STRPTR            **
  848.  
  849.  
  850.  
  851. ;****************************************************************************
  852. ;** Volumelist                                                             **
  853. ;****************************************************************************
  854.  
  855.  
  856. ;****************************************************************************
  857. ;** Scrmodelist                                                            **
  858. ;****************************************************************************
  859.  
  860. ;** Attributes **
  861.  
  862.  
  863.  
  864.  
  865. ;****************************************************************************
  866. ;** Dirlist                                                                **
  867. ;****************************************************************************
  868.  
  869. ;** Methods **
  870.  
  871. MUIM_Dirlist_ReRead            EQU $80422d71 ;** V4  **
  872.  
  873. ;** Attributes **
  874.  
  875. MUIA_Dirlist_AcceptPattern      EQU $8042760a ;** V4  is. STRPTR            **
  876. MUIA_Dirlist_Directory          EQU $8042ea41 ;** V4  isg STRPTR            **
  877. MUIA_Dirlist_DrawersOnly        EQU $8042b379 ;** V4  is. BOOL              **
  878. MUIA_Dirlist_FilesOnly          EQU $8042896a ;** V4  is. BOOL              **
  879. MUIA_Dirlist_FilterDrawers      EQU $80424ad2 ;** V4  is. BOOL              **
  880. MUIA_Dirlist_FilterHook         EQU $8042ae19 ;** V4  is. struct Hook *     **
  881. MUIA_Dirlist_MultiSelDirs       EQU $80428653 ;** V6  is. BOOL              **
  882. MUIA_Dirlist_NumBytes           EQU $80429e26 ;** V4  ..g LONG              **
  883. MUIA_Dirlist_NumDrawers         EQU $80429cb8 ;** V4  ..g LONG              **
  884. MUIA_Dirlist_NumFiles           EQU $8042a6f0 ;** V4  ..g LONG              **
  885. MUIA_Dirlist_Path               EQU $80426176 ;** V4  ..g STRPTR            **
  886. MUIA_Dirlist_RejectIcons        EQU $80424808 ;** V4  is. BOOL              **
  887. MUIA_Dirlist_RejectPattern      EQU $804259c7 ;** V4  is. STRPTR            **
  888. MUIA_Dirlist_SortDirs           EQU $8042bbb9 ;** V4  is. LONG              **
  889. MUIA_Dirlist_SortHighLow        EQU $80421896 ;** V4  is. BOOL              **
  890. MUIA_Dirlist_SortType           EQU $804228bc ;** V4  is. LONG              **
  891. MUIA_Dirlist_Status             EQU $804240de ;** V4  ..g LONG              **
  892.  
  893. MUIV_Dirlist_SortDirsFirst      EQU 0
  894. MUIV_Dirlist_SortDirsLast       EQU 1
  895. MUIV_Dirlist_SortDirsMix        EQU 2
  896. MUIV_Dirlist_SortTypeName       EQU 0
  897. MUIV_Dirlist_SortTypeDate       EQU 1
  898. MUIV_Dirlist_SortTypeSize       EQU 2
  899. MUIV_Dirlist_StatusInvalid      EQU 0
  900. MUIV_Dirlist_StatusReading      EQU 1
  901. MUIV_Dirlist_StatusValid        EQU 2
  902.  
  903.  
  904. ;****************************************************************************
  905. ;** Group                                                                  **
  906. ;****************************************************************************
  907.  
  908. ;** Methods **
  909.  
  910.  
  911. ;** Attributes **
  912.  
  913. MUIA_Group_ActivePage           EQU $80424199 ;** V5  isg LONG              **
  914. MUIA_Group_Child                EQU $804226e6 ;** V4  i.. Object *          **
  915. MUIA_Group_Columns              EQU $8042f416 ;** V4  is. LONG              **
  916. MUIA_Group_Horiz                EQU $8042536b ;** V4  i.. BOOL              **
  917. MUIA_Group_HorizSpacing         EQU $8042c651 ;** V4  is. LONG              **
  918. MUIA_Group_PageMode             EQU $80421a5f ;** V5  is. BOOL              **
  919. MUIA_Group_Rows                 EQU $8042b68f ;** V4  is. LONG              **
  920. MUIA_Group_SameHeight           EQU $8042037e ;** V4  i.. BOOL              **
  921. MUIA_Group_SameSize             EQU $80420860 ;** V4  i.. BOOL              **
  922. MUIA_Group_SameWidth            EQU $8042b3ec ;** V4  i.. BOOL              **
  923. MUIA_Group_Spacing              EQU $8042866d ;** V4  is. LONG              **
  924. MUIA_Group_VertSpacing          EQU $8042e1bf ;** V4  is. LONG              **
  925.  
  926. MUIV_Group_ActivePageFirst      EQU 0
  927. MUIV_Group_ActivePageLast       EQU -1
  928. MUIV_Group_ActivePagePrev       EQU -2
  929. MUIV_Group_ActivePageNext       EQU -3
  930.  
  931.  
  932. ;****************************************************************************
  933. ;** Register                                                               **
  934. ;****************************************************************************
  935.  
  936. ;** Attributes **
  937.  
  938. MUIA_Register_Frame             EQU $8042349b ;** V7  i.g BOOL              **
  939. MUIA_Register_Titles            EQU $804297ec ;** V7  i.g STRPTR *          **
  940.  
  941.  
  942.  
  943. ;****************************************************************************
  944. ;** Virtgroup                                                              **
  945. ;****************************************************************************
  946.  
  947. ;** Methods **
  948.  
  949.  
  950. ;** Attributes **
  951.  
  952. MUIA_Virtgroup_Height           EQU $80423038 ;** V6  ..g LONG              **
  953. MUIA_Virtgroup_Left             EQU $80429371 ;** V6  isg LONG              **
  954. MUIA_Virtgroup_Top              EQU $80425200 ;** V6  isg LONG              **
  955. MUIA_Virtgroup_Width            EQU $80427c49 ;** V6  ..g LONG              **
  956.  
  957.  
  958.  
  959. ;****************************************************************************
  960. ;** Scrollgroup                                                            **
  961. ;****************************************************************************
  962.  
  963. ;** Attributes **
  964.  
  965. MUIA_Scrollgroup_Contents       EQU $80421261 ;** V4  i.. Object *          **
  966. MUIA_Scrollgroup_FreeHoriz      EQU $804292f3 ;** V9  i.. BOOL              **
  967. MUIA_Scrollgroup_FreeVert       EQU $804224f2 ;** V9  i.. BOOL              **
  968.  
  969.  
  970.  
  971. ;****************************************************************************
  972. ;** Scrollbar                                                              **
  973. ;****************************************************************************
  974.  
  975.  
  976. ;****************************************************************************
  977. ;** Listview                                                               **
  978. ;****************************************************************************
  979.  
  980. ;** Attributes **
  981.  
  982. MUIA_Listview_ClickColumn       EQU $8042d1b3 ;** V7  ..g LONG              **
  983. MUIA_Listview_DefClickColumn    EQU $8042b296 ;** V7  isg LONG              **
  984. MUIA_Listview_DoubleClick       EQU $80424635 ;** V4  i.g BOOL              **
  985. MUIA_Listview_Input             EQU $8042682d ;** V4  i.. BOOL              **
  986. MUIA_Listview_List              EQU $8042bcce ;** V4  i.. Object *          **
  987. MUIA_Listview_MultiSelect       EQU $80427e08 ;** V7  i.. LONG              **
  988. MUIA_Listview_ScrollerPos       EQU $8042b1b4 ;** V10 i.. BOOL              **
  989. MUIA_Listview_SelectChange      EQU $8042178f ;** V4  ..g BOOL              **
  990.  
  991. MUIV_Listview_MultiSelectNone   EQU 0
  992. MUIV_Listview_MultiSelectDefaul EQU 1
  993. MUIV_Listview_MultiSelectShifte EQU 2
  994. MUIV_Listview_MultiSelectAlways EQU 3
  995. MUIV_Listview_ScrollerPosDefaul EQU 0
  996. MUIV_Listview_ScrollerPosLeft   EQU 1
  997. MUIV_Listview_ScrollerPosRight  EQU 2
  998.  
  999.  
  1000. ;****************************************************************************
  1001. ;** Radio                                                                  **
  1002. ;****************************************************************************
  1003.  
  1004. ;** Attributes **
  1005.  
  1006. MUIA_Radio_Active               EQU $80429b41 ;** V4  isg LONG              **
  1007. MUIA_Radio_Entries              EQU $8042b6a1 ;** V4  i.. STRPTR *          **
  1008.  
  1009.  
  1010.  
  1011. ;****************************************************************************
  1012. ;** Cycle                                                                  **
  1013. ;****************************************************************************
  1014.  
  1015. ;** Attributes **
  1016.  
  1017. MUIA_Cycle_Active               EQU $80421788 ;** V4  isg LONG              **
  1018. MUIA_Cycle_Entries              EQU $80420629 ;** V4  i.. STRPTR *          **
  1019.  
  1020. MUIV_Cycle_ActiveNext           EQU -1
  1021. MUIV_Cycle_ActivePrev           EQU -2
  1022.  
  1023.  
  1024. ;****************************************************************************
  1025. ;** Slider                                                                 **
  1026. ;****************************************************************************
  1027.  
  1028. ;** Attributes **
  1029.  
  1030. MUIA_Slider_Level               EQU $8042ae3a ;** V4  isg LONG              **
  1031. MUIA_Slider_Max                 EQU $8042d78a ;** V4  isg LONG              **
  1032. MUIA_Slider_Min                 EQU $8042e404 ;** V4  isg LONG              **
  1033. MUIA_Slider_Quiet               EQU $80420b26 ;** V6  i.. BOOL              **
  1034. MUIA_Slider_Reverse             EQU $8042f2a0 ;** V4  isg BOOL              **
  1035.  
  1036.  
  1037.  
  1038. ;****************************************************************************
  1039. ;** Coloradjust                                                            **
  1040. ;****************************************************************************
  1041.  
  1042. ;** Attributes **
  1043.  
  1044. MUIA_Coloradjust_Blue           EQU $8042b8a3 ;** V4  isg ULONG             **
  1045. MUIA_Coloradjust_Green          EQU $804285ab ;** V4  isg ULONG             **
  1046. MUIA_Coloradjust_ModeID         EQU $8042ec59 ;** V4  isg ULONG             **
  1047. MUIA_Coloradjust_Red            EQU $80420eaa ;** V4  isg ULONG             **
  1048. MUIA_Coloradjust_RGB            EQU $8042f899 ;** V4  isg ULONG *           **
  1049.  
  1050.  
  1051.  
  1052. ;****************************************************************************
  1053. ;** Palette                                                                **
  1054. ;****************************************************************************
  1055.  
  1056. ;** Attributes **
  1057.  
  1058. MUIA_Palette_Entries            EQU $8042a3d8 ;** V6  i.g struct MUI_Palette_Entry * **
  1059. MUIA_Palette_Groupable          EQU $80423e67 ;** V6  isg BOOL              **
  1060. MUIA_Palette_Names              EQU $8042c3a2 ;** V6  isg char **           **
  1061.  
  1062.  
  1063.  
  1064. ;****************************************************************************
  1065. ;** Colorpanel                                                             **
  1066. ;****************************************************************************
  1067.  
  1068. ;** Methods **
  1069.  
  1070.  
  1071. ;** Attributes **
  1072.  
  1073.  
  1074.  
  1075.  
  1076. ;****************************************************************************
  1077. ;** Popstring                                                              **
  1078. ;****************************************************************************
  1079.  
  1080. ;** Methods **
  1081.  
  1082. MUIM_Popstring_Close           EQU $8042dc52 ;** V7  **
  1083. MUIM_Popstring_Open            EQU $804258ba ;** V7  **
  1084.  
  1085. ;** Attributes **
  1086.  
  1087. MUIA_Popstring_Button           EQU $8042d0b9 ;** V7  i.g Object *          **
  1088. MUIA_Popstring_CloseHook        EQU $804256bf ;** V7  isg struct Hook *     **
  1089. MUIA_Popstring_OpenHook         EQU $80429d00 ;** V7  isg struct Hook *     **
  1090. MUIA_Popstring_String           EQU $804239ea ;** V7  i.g Object *          **
  1091. MUIA_Popstring_Toggle           EQU $80422b7a ;** V7  isg BOOL              **
  1092.  
  1093.  
  1094.  
  1095. ;****************************************************************************
  1096. ;** Popobject                                                              **
  1097. ;****************************************************************************
  1098.  
  1099. ;** Attributes **
  1100.  
  1101. MUIA_Popobject_Follow           EQU $80424cb5 ;** V7  isg BOOL              **
  1102. MUIA_Popobject_Light            EQU $8042a5a3 ;** V7  isg BOOL              **
  1103. MUIA_Popobject_Object           EQU $804293e3 ;** V7  i.g Object *          **
  1104. MUIA_Popobject_ObjStrHook       EQU $8042db44 ;** V7  isg struct Hook *     **
  1105. MUIA_Popobject_StrObjHook       EQU $8042fbe1 ;** V7  isg struct Hook *     **
  1106. MUIA_Popobject_Volatile         EQU $804252ec ;** V7  isg BOOL              **
  1107. MUIA_Popobject_WindowHook       EQU $8042f194 ;** V9  isg struct Hook *     **
  1108.  
  1109.  
  1110.  
  1111. ;****************************************************************************
  1112. ;** Poplist                                                                **
  1113. ;****************************************************************************
  1114.  
  1115. ;** Attributes **
  1116.  
  1117. MUIA_Poplist_Array              EQU $8042084c ;** V8  i.. char **           **
  1118.  
  1119.  
  1120.  
  1121. ;****************************************************************************
  1122. ;** Popasl                                                                 **
  1123. ;****************************************************************************
  1124.  
  1125. ;** Attributes **
  1126.  
  1127. MUIA_Popasl_Active              EQU $80421b37 ;** V7  ..g BOOL              **
  1128. MUIA_Popasl_StartHook           EQU $8042b703 ;** V7  isg struct Hook *     **
  1129. MUIA_Popasl_StopHook            EQU $8042d8d2 ;** V7  isg struct Hook *     **
  1130. MUIA_Popasl_Type                EQU $8042df3d ;** V7  i.g ULONG             **
  1131.  
  1132.  
  1133.  
  1134. ;*******************************************
  1135. ;** End of automatic header file creation **
  1136. ;*******************************************
  1137.  
  1138.  
  1139. ****************************************************************************
  1140. **
  1141. ** Macro Section
  1142. ** -------------
  1143. **
  1144. ** To make GUI creation more easy and understandable, you can use the
  1145. ** macros below. If you dont want, just define MUI_NOSHORTCUTS to disable
  1146. ** them.
  1147. **
  1148. ** These macros are available to C programmers only.
  1149. **
  1150. *** NOTE: This .i file contains the corresponding macros for
  1151. *** assembler programmers.  All assembler related comments are
  1152. *** marked with three *'s.  The original comments and examples for
  1153. *** C are still intact.
  1154. **
  1155. ****************************************************************************
  1156.  
  1157.    IFND MUI_NOSHORTCUTS
  1158.  
  1159.  
  1160.  
  1161. ****************************************************************************
  1162. **
  1163. ** Object Generation
  1164. ** -----------------
  1165. **
  1166. ** The xxxObject (and xChilds) macros generate new instances of MUI classes.
  1167. ** Every xxxObject can be followed by tagitems specifying initial create
  1168. ** time attributes for the new object and must be terminated with the
  1169. ** End macro:
  1170. **
  1171. ** obj = StringObject,
  1172. **          MUIA_String_Contents, "foo",
  1173. **          MUIA_String_MaxLen  , 40,
  1174. **          End;
  1175. **
  1176. ** With the Child, SubWindow and WindowContents shortcuts you can
  1177. ** construct a complete GUI within one command:
  1178. **
  1179. ** app = ApplicationObject,
  1180. **
  1181. **          ...
  1182. **
  1183. **          SubWindow, WindowObject,
  1184. **             WindowContents, VGroup,
  1185. **                Child, String("foo",40),
  1186. **                Child, String("bar",50),
  1187. **                Child, HGroup,
  1188. **                   Child, CheckMark(TRUE),
  1189. **                   Child, CheckMark(FALSE),
  1190. **                   End,
  1191. **                End,
  1192. **             End,
  1193. **
  1194. **          SubWindow, WindowObject,
  1195. **             WindowContents, HGroup,
  1196. **                Child, ...,
  1197. **                Child, ...,
  1198. **                End,
  1199. **             End,
  1200. **
  1201. **          ...
  1202. **
  1203. **          End;
  1204. **
  1205. ****************************************************************************
  1206.  
  1207.  
  1208. ****************************************************************************
  1209. ***
  1210. *** These assembler macros behave somewhat in the same way as the C macros
  1211. *** but with some minor differences:
  1212. *** The macro names End, and SET are already in use in most assembler
  1213. *** compilers, so they are replaced with Endi and seti (for consistencys
  1214. *** sake get is also renamed to geti).
  1215. ***
  1216. *** You must provide memory for all the taglists needed in the object
  1217. *** creation.  The maximum memory needed is passed to you in the 
  1218. *** TAG_SPACE variable.  This is not the mimimum memory needed in most
  1219. *** cases and is often a few kilos too large, but this is the best I
  1220. *** could come up with the assembler macro commands.
  1221. *** Note that you must store the value of TAG_SPACE only after all
  1222. *** the objects are created.  TAG_SPACE is incremented as object
  1223. *** creation macros are called and in the end holds the maximum
  1224. *** theoretical tagitem space usage in bytes.  You pass the pointer to
  1225. *** this memory (which you have yourself allocated) in the register MR.
  1226. *** You can EQUR MR to any of the registers a3, a4 or a5 (the macros
  1227. *** don't use these registers).
  1228. ***
  1229. *** All calls to xxxObject and xxxGroup _must_ be finished with an Endi
  1230. *** call.  The Endi macro actually calls the MUI_NewObjectA function
  1231. *** and places the result object to the taglist.
  1232. ***
  1233. *** The MUIT macro is just a handy way of moving mixed stuff to the
  1234. *** taglist.  Upto 9 items can be moved to the stack on one source line.
  1235. *** You can move _only constants_ with the MUIT macro, use the
  1236. *** MUIT2 macro to move more mixed stuff (pointers, registers).
  1237. *** Remember to use # to denote constants when using MUIT2.
  1238. *** The Endi macro is a special case for the MUIT and MUIT2 macros.
  1239. *** This is snooped out and every 'MUIT Endi' call is converted to
  1240. *** an Endi macro call.
  1241. ***
  1242. *** Also the very common calls 'MUIT Child', 'MUIT SubWindow' and
  1243. *** 'MUIT WindowContents' have their own macros Childi, SubWindowi
  1244. *** and WindowContentsi.  Childi macro can take upto five arguments.
  1245. *** There are three versions of Childi: Childi, Child2 and Child3.
  1246. *** Templates for these macros are:
  1247. *** Childi [macro[,argument1[,argument2[,argument3[,argument4]]]]]
  1248. *** Child2 [macro[,macro[,macro[,macro[,macro]]]]]
  1249. *** Child3 [macro[,macro[,argument1[,argument2[,argument3]]]]]
  1250. *** Arguments for Childi are interpreted as the first one being a
  1251. *** full macro name and the last four arguments for this macro.
  1252. *** Arguments for Child2 are treated as macros placed on their
  1253. *** own separate lines.  These macros can't have any arguments.
  1254. *** Arguments for Child3 are treated as two macros placed on their
  1255. *** own separate lines.  The last macro can have three arguments.
  1256. ***
  1257. *** The C example above with these assembler macros:
  1258. ***
  1259. ***   ApplicationObject
  1260. ***   
  1261. ***      ...
  1262. ***
  1263. ***      SubWindowi
  1264. ***      WindowObject
  1265. ***         WindowContentsi
  1266. ***         VGroup
  1267. ***            Childi String,foo,40
  1268. ***            Childi String,bar,50
  1269. ***            Childi HGroup
  1270. ***               Childi Checkmark,TRUE
  1271. ***               Childi Checkmark,FALSE
  1272. ***               Endi
  1273. ***            Endi
  1274. ***         Endi
  1275. ***
  1276. ***      SubWindowi
  1277. ***      WindowObject
  1278. ***         WindowContentsi
  1279. ***         HGroup
  1280. ***            Childi
  1281. ***            ...
  1282. ***            Childi
  1283. ***            ...
  1284. ***            Endi
  1285. ***         Endi
  1286. ***
  1287. ***      ...
  1288. ***         
  1289. ***      Endi
  1290. ***      is app
  1291. ***
  1292. ***   app   dc.l  0
  1293. ***   bar   dc.b  "bar",0
  1294. ***   foo   dc.b  "foo",0
  1295. ***
  1296. ****************************************************************************
  1297.  
  1298. *** TAG_SPACE will hold the max taglist size in bytes
  1299.  
  1300. TAG_SPACE SET 0
  1301.  
  1302. *** Macros to move a tagitem to the taglist if it is given
  1303.  
  1304. cmv   MACRO ; Tag
  1305.    IFNC  '\1',''
  1306.    IFC   '\1','Endi'
  1307.       Endi
  1308.    ELSEIF
  1309.       move.l   #\1,(MR)+
  1310. TAG_SPACE SET TAG_SPACE+4
  1311.    ENDC
  1312.    ENDC
  1313.       ENDM
  1314.  
  1315. cmv2  MACRO ; Tag
  1316.    IFNC  '\1',''
  1317.    IFC   '\1','Endi'
  1318.       Endi
  1319.    ELSEIF
  1320.       move.l   \1,(MR)+
  1321. TAG_SPACE SET TAG_SPACE+4
  1322.    ENDC
  1323.    ENDC
  1324.       ENDM
  1325.  
  1326. *** Macro to move a tagitem to stack if it is given
  1327.  
  1328. cmv3  MACRO ; Tag
  1329.    IFNC  '\1',''
  1330.       move.l   \1,-(sp)
  1331.    ENDC
  1332.       ENDM
  1333.  
  1334. *** Macros to move max 9 tagitems to the taglist
  1335.  
  1336. MUIT  MACRO ; Tag1, [...]
  1337.       cmv   \1
  1338.       cmv   \2
  1339.       cmv   \3
  1340.       cmv   \4
  1341.       cmv   \5
  1342.       cmv   \6
  1343.       cmv   \7
  1344.       cmv   \8
  1345.       cmv   \9
  1346.       ENDM
  1347.  
  1348. MUIT2 MACRO ; Tag1, [...]
  1349.       cmv2  \1
  1350.       cmv2  \2
  1351.       cmv2  \3
  1352.       cmv2  \4
  1353.       cmv2  \5
  1354.       cmv2  \6
  1355.       cmv2  \7
  1356.       cmv2  \8
  1357.       cmv2  \9
  1358.       ENDM
  1359.  
  1360. *** DoMethod macro for easier assembler DoMethod'ing, max 20 tagitems.
  1361. *** Note that _DoMethod is defined in amiga.lib, so you must link
  1362. *** your own object code with it.
  1363.  
  1364. DoMethod    MACRO ; obj, MethodID, tag1, [...]
  1365.             movem.l  a0/a2,-(sp)
  1366.             move.l   sp,a2
  1367.             clr.l    -(sp)
  1368.             cmv3     \L
  1369.             cmv3     \K
  1370.             cmv3     \J
  1371.             cmv3     \I
  1372.             cmv3     \H
  1373.             cmv3     \G
  1374.             cmv3     \F
  1375.             cmv3     \E
  1376.             cmv3     \D
  1377.             cmv3     \C
  1378.             cmv3     \B
  1379.             cmv3     \A
  1380.             cmv3     \9
  1381.             cmv3     \8
  1382.             cmv3     \7
  1383.             cmv3     \6
  1384.             cmv3     \5
  1385.             cmv3     \4
  1386.             cmv3     \3
  1387.             cmv3     \2
  1388.             cmv3     \1
  1389.             jsr      _DoMethod
  1390.             move.l   a2,sp
  1391.             movem.l  (sp)+,a0/a2
  1392.             ENDM
  1393.  
  1394. *** MUI_Request macro for easier assembler MUI_Request'ing, max
  1395. *** 20 tagitems.
  1396.  
  1397. MUI_Request MACRO    ; app,win,flags,title,gadgets,format,[params,...]
  1398.             movem.l  a0-a4,-(sp)
  1399.             move.l   sp,a4
  1400.             cmv3     \L
  1401.             cmv3     \K
  1402.             cmv3     \J
  1403.             cmv3     \I
  1404.             cmv3     \H
  1405.             cmv3     \G
  1406.             cmv3     \F
  1407.             cmv3     \E
  1408.             cmv3     \D
  1409.             cmv3     \C
  1410.             cmv3     \B
  1411.             cmv3     \A
  1412.             cmv3     \9
  1413.             cmv3     \8
  1414.             cmv3     \7
  1415.             move.l   a4,a3
  1416.             move.l   #\6,a2
  1417.             move.l   #\5,a1
  1418.             move.l   #\4,a0
  1419.             move.l   #\3,d2
  1420.             move.l   \2,d1
  1421.             move.l   \1,d0
  1422.             CALLMUI  MUI_RequestA
  1423.             move.l   a4,sp
  1424.             movem.l  (sp)+,a0-a4
  1425.             ENDM
  1426.  
  1427. *** Macro for getting a pointer to an object you just created.
  1428. *** This is valid only after an Endi macro.
  1429.  
  1430. is          MACRO    ; pointer
  1431.             move.l   d0,\1
  1432.             ENDM
  1433.  
  1434. WindowObject         MACRO
  1435.                      movem.l  a0/a2,-(sp)
  1436.                      move.l   MUIC_Window,a0
  1437.                      move.l   a4,a2
  1438.                      ENDM
  1439. Endi                 MACRO
  1440.                      clr.l    (MR)+
  1441.                      move.l   a2,a1
  1442.                      CALLMUI  MUI_NewObjectA
  1443.                      move.l   a2,a4
  1444.                      movem.l  (sp)+,a0/a2
  1445.                      cmv2     d0
  1446.                      ENDM
  1447. ImageObject          MACRO
  1448.                      movem.l  a0/a2,-(sp)
  1449.                      move.l   MUIC_Image,a0
  1450.                      move.l   a4,a2
  1451.                      ENDM
  1452. NotifyWindowObject   MACRO
  1453.                      movem.l  a0/a2,-(sp)
  1454.                      move.l   MUIC_Notify,a0
  1455.                      move.l   a4,a2
  1456.                      ENDM
  1457. ApplicationObject    MACRO
  1458.                      movem.l  a0/a2,-(sp)
  1459.                      move.l   MUIC_Application,a0
  1460.                      move.l   a4,a2
  1461.                      ENDM
  1462. TextObject           MACRO
  1463.                      movem.l  a0/a2,-(sp)
  1464.                      move.l   MUIC_Text,a0
  1465.                      move.l   a4,a2
  1466.                      ENDM
  1467. RectangleObject      MACRO
  1468.                      movem.l  a0/a2,-(sp)
  1469.                      move.l   MUIC_Rectangle,a0
  1470.                      move.l   a4,a2
  1471.                      ENDM
  1472. ListObject           MACRO
  1473.                      movem.l  a0/a2,-(sp)
  1474.                      move.l   MUIC_List,a0
  1475.                      move.l   a4,a2
  1476.                      ENDM
  1477. PropObject           MACRO
  1478.                      movem.l  a0/a2,-(sp)
  1479.                      move.l   MUIC_Prop,a0
  1480.                      move.l   a4,a2
  1481.                      ENDM
  1482. StringObject         MACRO
  1483.                      movem.l  a0/a2,-(sp)
  1484.                      move.l   MUIC_String,a0
  1485.                      move.l   a4,a2
  1486.                      ENDM
  1487. ScrollbarObject      MACRO
  1488.                      movem.l  a0/a2,-(sp)
  1489.                      move.l   MUIC_Scrollbar,a0
  1490.                      move.l   a4,a2
  1491.                      ENDM
  1492. ListviewObject       MACRO
  1493.                      movem.l  a0/a2,-(sp)
  1494.                      move.l   MUIC_Listview,a0
  1495.                      move.l   a4,a2
  1496.                      ENDM
  1497. RadioObject          MACRO
  1498.                      movem.l  a0/a2,-(sp)
  1499.                      move.l   MUIC_Radio,a0
  1500.                      move.l   a4,a2
  1501.                      ENDM
  1502. VolumelistObject     MACRO
  1503.                      movem.l  a0/a2,-(sp)
  1504.                      move.l   MUIC_Volumelist,a0
  1505.                      move.l   a4,a2
  1506.                      ENDM
  1507. FloattextObject      MACRO
  1508.                      movem.l  a0/a2,-(sp)
  1509.                      move.l   MUIC_Floattext,a0
  1510.                      move.l   a4,a2
  1511.                      ENDM
  1512. DirlistObject        MACRO
  1513.                      movem.l  a0/a2,-(sp)
  1514.                      move.l   MUIC_Dirlist,a0
  1515.                      move.l   a4,a2
  1516.                      ENDM
  1517. ApplistObject        MACRO
  1518.                      movem.l  a0/a2,-(sp)
  1519.                      move.l   MUIC_Applist,a0
  1520.                      move.l   a4,a2
  1521.                      ENDM
  1522. DatatypeObject       MACRO
  1523.                      movem.l  a0/a2,-(sp)
  1524.                      move.l   MUIC_Datatype,a0
  1525.                      move.l   a4,a2
  1526.                      ENDM
  1527. SliderObject         MACRO
  1528.                      movem.l  a0/a2,-(sp)
  1529.                      move.l   MUIC_Slider,a0
  1530.                      move.l   a4,a2
  1531.                      ENDM
  1532. CycleObject          MACRO
  1533.                      movem.l  a0/a2,-(sp)
  1534.                      move.l   MUIC_Cycle,a0
  1535.                      move.l   a4,a2
  1536.                      ENDM
  1537. GaugeObject          MACRO
  1538.                      movem.l  a0/a2,-(sp)
  1539.                      move.l   MUIC_Gauge,a0
  1540.                      move.l   a4,a2
  1541.                      ENDM
  1542. ScaleObject          MACRO
  1543.                      movem.l  a0/a2,-(sp)
  1544.                      move.l   MUIC_Scale,a0
  1545.                      move.l   a4,a2
  1546.                      ENDM
  1547. BoopsiObject         MACRO
  1548.                      movem.l  a0/a2,-(sp)
  1549.                      move.l   MUIC_Boopsi,a0
  1550.                      move.l   a4,a2
  1551.                      ENDM
  1552. GroupObject          MACRO
  1553.                      movem.l  a0/a2,-(sp)
  1554.                      move.l   MUIC_Group,a0
  1555.                      move.l   a4,a2
  1556.                      ENDM
  1557. VGroup               MACRO
  1558.                      movem.l  a0/a2,-(sp)
  1559.                      move.l   MUIC_Group,a0
  1560.                      move.l   a4,a2
  1561.                      ENDM
  1562. HGroup               MACRO
  1563.                      movem.l  a0/a2,-(sp)
  1564.                      move.l   MUIC_Group,a0
  1565.                      move.l   a4,a2
  1566.                      MUIT     MUIA_Group_Horiz,TRUE
  1567.                      ENDM
  1568. ColGroup             MACRO ; cols
  1569.                      movem.l  a0/a2,-(sp)
  1570.                      move.l   MUIC_Group,a0
  1571.                      move.l   a4,a2
  1572.                      MUIT     MUIA_Group_Columns,\1
  1573.                      ENDM
  1574. RowGroup             MACRO ; rows
  1575.                      movem.l  a0/a2,-(sp)
  1576.                      move.l   MUIC_Group,a0
  1577.                      move.l   a4,a2
  1578.                      MUIT     MUIA_Group_Rows,\1
  1579.                      ENDM
  1580.  
  1581. Childi               MACRO ; [macro[,argument1[,argument2[,argument3[,argument4]]]]]
  1582.                      cmv   MUIA_Group_Child
  1583.                      \1 \2,\3,\4,\5
  1584.                      ENDM
  1585. Child2               MACRO ; [macro[,macro[,macro[,macro[,macro]]]]]
  1586.                      cmv   MUIA_Group_Child
  1587.                      \1
  1588.                      \2
  1589.                      \3
  1590.                      \4
  1591.                      \5
  1592.                      ENDM
  1593. Child3               MACRO ; [macro[,macro[,argument1[,argument2[,argument3]]]]]
  1594.                      cmv   MUIA_Group_Child
  1595.                      \1
  1596.                      \2 \3,\4,\5
  1597.                      ENDM
  1598. SubWindowi           MACRO
  1599.                      cmv   MUIA_Application_Window
  1600.                      ENDM
  1601. WindowContentsi      MACRO
  1602.                      cmv   MUIA_Window_RootObject
  1603.                      ENDM
  1604.  
  1605.  
  1606. Child          EQU   MUIA_Group_Child
  1607. SubWindow      EQU   MUIA_Application_Window
  1608. WindowContents EQU   MUIA_Window_RootObject
  1609.  
  1610.  
  1611.  
  1612. ****************************************************************************
  1613. **
  1614. ** Frame Types
  1615. ** -----------
  1616. **
  1617. ** These macros may be used to specify one of MUI's different frame types.
  1618. ** Note that every macro consists of one or more { ti_Tag, ti_Data }
  1619. ** pairs.
  1620. **
  1621. ** GroupFrameT() is a special kind of frame that contains a centered
  1622. ** title text.
  1623. **
  1624. ** HGroup, GroupFrameT("Horiz Groups"),
  1625. **    Child, RectangleObject, TextFrame  , End,
  1626. **    Child, RectangleObject, StringFrame, End,
  1627. **    Child, RectangleObject, ButtonFrame, End,
  1628. **    Child, RectangleObject, ListFrame  , End,
  1629. **    End,
  1630. **
  1631. ****************************************************************************
  1632.  
  1633. ****************************************************************************
  1634. ***
  1635. *** Assembler version of the above C example:
  1636. ***
  1637. *** HGroup
  1638. ***    GroupFrameT horizg
  1639. ***    Child2 RectangleObject,TextFrame,Endi
  1640. ***    Child2 RectangleObject,StringFrame,Endi
  1641. ***    Child2 RectangleObject,ButtonFrame,Endi
  1642. ***    Child2 RectangleObject,ListFrame,Endi
  1643. ***    Endi
  1644. ***
  1645. *** horizg  dc.b  "Horiz Groups",0
  1646. ***         even
  1647. ***
  1648. ****************************************************************************
  1649.  
  1650. *** These macros call MUIT themselves, do not use eg. 'MUIT NoFrame'
  1651.  
  1652. NoFrame     MACRO
  1653.             MUIT  MUIA_Frame,MUIV_Frame_None
  1654.             ENDM
  1655. ButtonFrame MACRO
  1656.             MUIT  MUIA_Frame,MUIV_Frame_Button
  1657.             ENDM
  1658. ImageButtonFrame  MACRO
  1659.             MUIT  MUIA_Frame,MUIV_Frame_ImageButton
  1660.             ENDM
  1661. TextFrame   MACRO
  1662.             MUIT  MUIA_Frame,MUIV_Frame_Text
  1663.             ENDM
  1664. StringFrame MACRO
  1665.             MUIT  MUIA_Frame,MUIV_Frame_String
  1666.             ENDM
  1667. ReadListFrame  MACRO
  1668.             MUIT  MUIA_Frame,MUIV_Frame_ReadList
  1669.             ENDM
  1670. InputListFrame MACRO
  1671.             MUIT  MUIA_Frame,MUIV_Frame_InputList
  1672.             ENDM
  1673. PropFrame   MACRO
  1674.             MUIT  MUIA_Frame,MUIV_Frame_Prop
  1675.             ENDM
  1676. GaugeFrame  MACRO
  1677.             MUIT  MUIA_Frame,MUIV_Frame_Gauge
  1678.             ENDM
  1679. GroupFrame  MACRO
  1680.             MUIT  MUIA_Frame,MUIV_Frame_Group
  1681.             ENDM
  1682. GroupFrameT MACRO ; s
  1683.             MUIT  MUIA_Frame,MUIV_Frame_Group,MUIA_Frame_Title,\1
  1684.             ENDM
  1685. VirtualFrame MACRO
  1686.             MUIT  MUIA_Frame,MUIV_Frame_Virtual
  1687.             ENDM
  1688.  
  1689.  
  1690. ****************************************************************************
  1691. **
  1692. ** Spacing Macros
  1693. ** --------------
  1694. **
  1695. ****************************************************************************
  1696.  
  1697. *** For these macros tagitem space is allocated from the stack and is
  1698. *** fixed in size.  So, there is no need for a separate Endi call.
  1699.  
  1700. HVSpace     MACRO
  1701.             move.l   a0,-(sp)
  1702.             move.l   MUIC_Rectangle,a0
  1703.             clr.l    -(sp)
  1704.             move.l   sp,a1
  1705.             CALLMUI  MUI_NewObjectA
  1706.             addq.l   #4,sp
  1707.             move.l   (sp)+,a0
  1708.             MUIT2    d0
  1709.             ENDM
  1710.    
  1711. HSpace      MACRO ; x
  1712.             move.l   a0,-(sp)
  1713.             move.l   MUIC_Rectangle,a0
  1714.             clr.l    -(sp)
  1715.             clr.l    -(sp)
  1716.             pea      MUIA_VertWeight
  1717.             move.l   #\1,-(sp)
  1718.          IFND  \1
  1719.             pea      MUIA_FixWidth
  1720.          ELSEIF
  1721.             pea      1.w
  1722.          ENDC
  1723.             move.l   sp,a1
  1724.             CALLMUI  MUI_NewObjectA
  1725.             lea      20(sp),sp
  1726.             move.l   (sp)+,a0
  1727.             MUIT2    d0
  1728.             ENDM
  1729.  
  1730. VSpace      MACRO ; x
  1731.             move.l   a0,-(sp)
  1732.             move.l   MUIC_Rectangle,a0
  1733.             clr.l    -(sp)
  1734.             clr.l    -(sp)
  1735.             pea      MUIA_HorizWeight
  1736.             move.l   #\1,-(sp)
  1737.          IFND  \1
  1738.             pea      MUIA_FixHeight
  1739.          ELSEIF
  1740.             pea      1.w
  1741.          ENDC
  1742.             move.l   sp,a1
  1743.             CALLMUI  MUI_NewObjectA
  1744.             lea      20(sp),sp
  1745.             move.l   (sp)+,a0
  1746.             MUIT2    d0
  1747.             ENDM
  1748.  
  1749. HCenter     MACRO ; obj
  1750.             HGroup
  1751.                GroupSpacing 0
  1752.                Childi HSpace,0
  1753.                Childi MUIT2,\1
  1754.                Childi HSpace,0
  1755.                Endi
  1756.             ENDM
  1757.  
  1758. VCenter     MACRO ; obj
  1759.             VGroup
  1760.                GroupSpacing 0
  1761.                Childi VSpace,0
  1762.                Childi MUIT2,\1
  1763.                Childi VSpace,0
  1764.                Endi
  1765.             ENDM
  1766.  
  1767. InnerSpacing   MACRO ; h,v
  1768.                MUIT MUIA_InnerLeft,\1,MUIA_InnerRight,\1,MUIA_InnerTop,\2,MUIA_InnerBottom,\2
  1769.                ENDM
  1770.  
  1771. GroupSpacing   MACRO ; x
  1772.                MUIT  MUIA_Group_Spacing,\1
  1773.                ENDM
  1774.  
  1775.  
  1776.  
  1777. ****************************************************************************
  1778. ***
  1779. *** You use these assembler macros like this:
  1780. ***
  1781. *** String mystr1,40
  1782. ***
  1783. *** CheckMark TRUE
  1784. ***
  1785. *** SimpleButton mysbut1
  1786. ***
  1787. *** KeyButton mykbut1,"c"
  1788. ***
  1789. *** Cycle myentr1
  1790. ***
  1791. *** KeyCycle myentr1,"k"
  1792. ***
  1793. *** Radio rname1,rbuts1
  1794. ***
  1795. *** String mystr1,35
  1796. *** is strobj1
  1797. *** Popup ST_Font,strobj1,MyHook,MUII_Popup
  1798. ***
  1799. ***
  1800. *** MyHook  rts   ; dummy hook, does nothing
  1801. *** mysrt1  dc.b  "String contents",0
  1802. ***         even
  1803. *** mysbut1 dc.b  "Button",0
  1804. ***         even
  1805. *** mykbut1 dc.b  "Cancel",0
  1806. ***         even
  1807. *** myentr1 dc.l  entrs1,entrs2,entrs3,NULL
  1808. *** entrs1  dc.b  "One",0
  1809. *** entrs2  dc.b  "Two",0
  1810. *** entrs3  dc.b  "Three",0
  1811. ***         even
  1812. *** rname1  dc.b  "Radio Buttons:",0
  1813. ***         even
  1814. *** rbuts1  dc.l  rbut1,rbut2,rbut3,NULL
  1815. *** rbut1   dc.b  "Button1",0
  1816. ***         even
  1817. *** rbut2   dc.b  "Button2",0
  1818. ***         even
  1819. *** rbut3   dc.b  "Button3",0
  1820. ***         even
  1821. *** strobj  dc.l  0
  1822. *** ST_Font dc.l  0
  1823. ***
  1824. ***
  1825. ****************************************************************************
  1826.  
  1827. ****************************************************************************
  1828. **
  1829. ** String-Object
  1830. ** -------------
  1831. **
  1832. ** The following macro creates a simple string gadget.
  1833. **
  1834. ****************************************************************************
  1835.  
  1836. String MACRO ; contents,maxlen
  1837.    StringObject
  1838.       StringFrame
  1839.       MUIT MUIA_String_MaxLen,\2
  1840.       MUIT MUIA_String_Contents,\1
  1841.       Endi
  1842.    ENDM
  1843.  
  1844. KeyString MACRO ; contents,maxlen,controlchar
  1845.    StringObject
  1846.       StringFrame
  1847.       MUIT MUIA_ControlChar,\3
  1848.       MUIT MUIA_String_MaxLen,\2
  1849.       MUIT MUIA_String_Contents,\1
  1850.       Endi
  1851.    ENDM       
  1852.  
  1853. ****************************************************************************
  1854. **
  1855. ** CheckMark-Object
  1856. ** ----------------
  1857. **
  1858. ** The following macro creates a checkmark gadget.
  1859. **
  1860. ****************************************************************************
  1861.  
  1862. CheckMark MACRO ; selected
  1863.    ImageObject
  1864.       ImageButtonFrame
  1865.       MUIT MUIA_InputMode,MUIV_InputMode_Toggle
  1866.       MUIT MUIA_Image_Spec,MUII_CheckMark
  1867.       MUIT MUIA_Image_FreeVert,TRUE
  1868.       MUIT MUIA_Selected,\1
  1869.       MUIT MUIA_Background,MUII_ButtonBack
  1870.       MUIT MUIA_ShowSelState,FALSE
  1871.       Endi
  1872.    ENDM
  1873.  
  1874. KeyCheckMark MACRO ; selected,control
  1875.    ImageObject
  1876.       ImageButtonFrame
  1877.       MUIT MUIA_InputMode,MUIV_InputMode_Toggle
  1878.       MUIT MUIA_Image_Spec,MUII_CheckMark
  1879.       MUIT MUIA_Image_FreeVert,TRUE
  1880.       MUIT MUIA_Selected,\1
  1881.       MUIT MUIA_Background,MUII_ButtonBack
  1882.       MUIT MUIA_ShowSelState,FALSE
  1883.       MUIT MUIA_ControlChar,\2
  1884.       Endi
  1885.    ENDM
  1886.  
  1887.  
  1888. ****************************************************************************
  1889. **
  1890. ** Button-Objects
  1891. ** --------------
  1892. **
  1893. ** Note: Use small letters for KeyButtons, e.g.
  1894. **       KeyButton("Cancel",'c')  and not  KeyButton("Cancel",'C') !!
  1895. **
  1896. ****************************************************************************
  1897.  
  1898. SimpleButton MACRO ; name
  1899.    TextObject
  1900.       ButtonFrame
  1901.       MUIT MUIA_Text_Contents,\1
  1902.       MUIT MUIA_Text_PreParse,PreParse
  1903.       MUIT MUIA_Text_SetMax,FALSE
  1904.       MUIT MUIA_InputMode,MUIV_InputMode_RelVerify
  1905.       MUIT MUIA_Background,MUII_ButtonBack
  1906.       Endi
  1907.    ENDM
  1908.  
  1909. KeyButton MACRO ; name,key
  1910.    TextObject
  1911.       ButtonFrame
  1912.       MUIT MUIA_Text_Contents,\1
  1913.       MUIT MUIA_Text_PreParse,PreParse
  1914.       MUIT MUIA_Text_SetMax,FALSE
  1915.       MUIT MUIA_Text_HiChar,\2
  1916.       MUIT MUIA_ControlChar,\2
  1917.       MUIT MUIA_InputMode,MUIV_InputMode_RelVerify
  1918.       MUIT MUIA_Background,MUII_ButtonBack
  1919.       Endi
  1920.    ENDM
  1921.  
  1922.  
  1923.  
  1924. ****************************************************************************
  1925. **
  1926. ** Cycle-Object
  1927. ** ------------
  1928. **
  1929. ****************************************************************************
  1930.  
  1931. Cycle MACRO ; entries
  1932.    CycleObject
  1933.       MUIT MUIA_Cycle_Entries,\1
  1934.       Endi
  1935.    ENDM
  1936.  
  1937. KeyCycle MACRO ; entries,key
  1938.    CycleObject
  1939.       MUIT  MUIA_Cycle_Entries,\1,MUIA_ControlChar,\2
  1940.       Endi
  1941.    ENDM
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947. ****************************************************************************
  1948. **
  1949. ** Popup-Object
  1950. ** ------------
  1951. **
  1952. ** An often needed GUI element is a string gadget with a little button
  1953. ** that opens up a (small) window with a list containing possible entries
  1954. ** for this gadget. Together with the Popup and the String macro,
  1955. ** such a thing would look like
  1956. **
  1957. ** VGroup,
  1958. **    Child, Popup(ST_Font, String("helvetica/13",32), &Hook, MUII_Popup),
  1959. **    ...,
  1960. **
  1961. ** ST_Font will hold a pointer to the embedded string gadget and can
  1962. ** be used to set and get its contents as with every other string object.
  1963. **
  1964. ** The hook will be called with the string gadget as object whenever
  1965. ** the user releases the popup button and could look like this:
  1966. **
  1967. ** ULONG __asm __saveds HookFunc(register __a2 APTR obj,MUII_File)
  1968. ** {
  1969. **    ...
  1970. **
  1971. **    // put our application to sleep while displaying the requester
  1972. **    set(Application,MUIA_Application_Sleep,TRUE);
  1973. **
  1974. **    // get the calling objects window and position
  1975. **    get(obj,MUIA_Window  ,&window);
  1976. **    get(obj,MUIA_LeftEdge,&l);
  1977. **    get(obj,MUIA_TopEdge ,&t);
  1978. **    get(obj,MUIA_Width   ,&w);
  1979. **    get(obj,MUIA_Height  ,&h);
  1980. **
  1981. **    if (req=MUI_AllocAslRequestTags(ASL_FontRequest,TAG_DONE))
  1982. **    {
  1983. **       if (MUI_AslRequestTags(req,
  1984. **          ASLFO_Window         ,window,
  1985. **          ASLFO_PrivateIDCMP   ,TRUE,
  1986. **          ASLFO_TitleText      ,"Select Font",
  1987. **          ASLFO_InitialLeftEdge,window->LeftEdge + l,
  1988. **          ASLFO_InitialTopEdge ,window->TopEdge  + t+h,
  1989. **          ASLFO_InitialWidth   ,w,
  1990. **          ASLFO_InitialHeight  ,250,
  1991. **          TAG_DONE))
  1992. **       {
  1993. **          // set the new contents for our string gadget
  1994. **          set(obj,MUIA_String_Contents,req->fo_Attr.ta_Name);
  1995. **       }
  1996. **       MUI_FreeAslRequest(req);
  1997. **    }
  1998. **
  1999. **    // wake up our application again
  2000. **    set(Application,MUIA_Application_Sleep,FALSE);
  2001. **
  2002. **    return(0);
  2003. ** }
  2004. **
  2005. ** Note: This macro needs a "APTR dummy;" declaration somewhere in your
  2006. **       code to work.
  2007. **
  2008. ****************************************************************************
  2009.  
  2010. Popup MACRO ; ptr,obj,hook,img
  2011.    HGroup
  2012.       GroupSpacing 1
  2013.       MUIT2 #Child,\2
  2014.       move.l   \2,\1
  2015.       Child2 ImageObject,ImageButtonFrame
  2016.          MUIT MUIA_Image_Spec,\4
  2017.          MUIT MUIA_Image_FontMatch_Width,TRUE
  2018.          MUIT MUIA_Image_FreeVert,TRUE
  2019.          MUIT MUIA_InputMode,MUIV_InputMode_RelVerify
  2020.          MUIT MUIA_Background,MUII_BACKGROUND
  2021.          Endi
  2022.       move.l   (sp),dummy
  2023.       MUIT TAG_IGNORE
  2024.       tst.l dummy
  2025.       beq.b pop\@
  2026.       tst.l \1
  2027.       beq.b pop\@
  2028.       DoMethod dummy,#MUIM_Notify,#MUIA_Pressed,#FALSE,\1,#2,#MUIM_CallHook,\2
  2029.       MUIT2 d0
  2030.       bra.b pup\@
  2031. pop\@ MUIT  0
  2032. pup\@ Endi
  2033.    ENDM
  2034.  
  2035.  
  2036.  
  2037. ****************************************************************************
  2038. **
  2039. ** Labeling Objects
  2040. ** ----------------
  2041. **
  2042. ** Labeling objects, e.g. a group of string gadgets,
  2043. **
  2044. **   Small: |foo   |
  2045. **  Normal: |bar   |
  2046. **     Big: |foobar|
  2047. **    Huge: |barfoo|
  2048. **
  2049. ** is done using a 2 column group:
  2050. **
  2051. ** ColGroup(2),
  2052. **    Child, Label2("Small:" ),
  2053. **    Child, StringObject, End,
  2054. **    Child, Label2("Normal:"),
  2055. **    Child, StringObject, End,
  2056. **    Child, Label2("Big:"   ),
  2057. **    Child, StringObject, End,
  2058. **    Child, Label2("Huge:"  ),
  2059. **    Child, StringObject, End,
  2060. **    End,
  2061. **
  2062. ** Note that we have three versions of the label macro, depending on
  2063. ** the frame type of the right hand object:
  2064. **
  2065. ** Label1(): For use with standard frames (e.g. checkmarks).
  2066. ** Label2(): For use with double high frames (e.g. string gadgets).
  2067. ** Label() : For use with objects without a frame.
  2068. **
  2069. ** These macros ensure that your label will look fine even if the
  2070. ** user of your application configured some strange spacing values.
  2071. ** If you want to use your own labeling, you'll have to pay attention
  2072. ** on this topic yourself.
  2073. **
  2074. ****************************************************************************
  2075.  
  2076. ****************************************************************************
  2077. ***
  2078. *** And the above C example in assembler:
  2079. ***
  2080. *** ColGroup 2
  2081. ***   Childi Label2,small
  2082. ***   Child2 StringObject,Endi
  2083. ***   Childi Label2,normal
  2084. ***   Child2 StringObject,Endi
  2085. ***   Childi Label2,big
  2086. ***   Child2 StringObject,Endi
  2087. ***   Childi Label2,huge
  2088. ***   Child2 StringObject,Endi
  2089. ***   Endi
  2090. ***
  2091. *** small   dc.b  "Small:",0
  2092. ***         even
  2093. *** normal  dc.b  "Normal:",0
  2094. ***         even
  2095. *** big     dc.b  "Big:",0
  2096. ***         even
  2097. *** huge    dc.b  "Huge:",0
  2098. ***         even
  2099. ***
  2100. ****************************************************************************
  2101.  
  2102. Label MACRO ; label
  2103.    TextObject
  2104.       MUIT MUIA_Text_PreParse,PreParse2,MUIA_Text_Contents,\1
  2105.       MUIT MUIA_Weight,0,MUIA_InnerLeft,0,MUIA_InnerRight,0
  2106.       Endi
  2107.    ENDM
  2108.  
  2109. Label1 MACRO ; label
  2110.    TextObject
  2111.       MUIT MUIA_Text_PreParse,PreParse2,MUIA_Text_Contents,\1
  2112.       MUIT MUIA_Weight,0,MUIA_InnerLeft,0,MUIA_InnerRight,0
  2113.       ButtonFrame
  2114.       MUIT MUIA_FramePhantomHoriz,TRUE
  2115.       Endi
  2116.    ENDM
  2117.  
  2118. Label2 MACRO ; label
  2119.    TextObject
  2120.       MUIT MUIA_Text_PreParse,PreParse2,MUIA_Text_Contents,\1,
  2121.       MUIT MUIA_Weight,0,MUIA_InnerLeft,0,MUIA_InnerRight,0
  2122.       StringFrame
  2123.       MUIT MUIA_FramePhantomHoriz,TRUE
  2124.       Endi
  2125.    ENDM
  2126.  
  2127. KeyLabel MACRO ; label,hichar
  2128.    TextObject
  2129.       MUIT MUIA_Text_PreParse,PreParse2,MUIA_Text_Contents,\1
  2130.       MUIT MUIA_Weight,0,MUIA_InnerLeft,0,MUIA_InnerRight,0,
  2131.       MUIT MUIA_Text_HiChar,\2
  2132.       Endi
  2133.    ENDM
  2134.  
  2135. KeyLabel1 MACRO ; label,hichar
  2136.    TextObject
  2137.       MUIT MUIA_Text_PreParse,PreParse2,MUIA_Text_Contents,\1
  2138.       MUIT MUIA_Weight,0,MUIA_InnerLeft,0,MUIA_InnerRight,0
  2139.       MUIT MUIA_Text_HiChar,\2
  2140.       ButtonFrame
  2141.       MUIT MUIA_FramePhantomHoriz,TRUE
  2142.       Endi
  2143.    ENDM
  2144.  
  2145. KeyLabel2 MACRO ; label,hichar
  2146.    TextObject
  2147.       MUIT MUIA_Text_PreParse,PreParse2,MUIA_Text_Contents,\1
  2148.       MUIT MUIA_Weight,0,MUIA_InnerLeft,0,MUIA_InnerRight,0
  2149.       MUIT MUIA_Text_HiChar,\2
  2150.       StringFrame
  2151.       MUIT MUIA_FramePhantomHoriz,TRUE
  2152.       Endi
  2153.    ENDM
  2154.  
  2155. ***************************************************************************
  2156. **
  2157. ** Radio-Object
  2158. ** ------------
  2159. **
  2160. ***************************************************************************
  2161.  
  2162. Radio    MACRO ;name,array
  2163.         RadioObject
  2164.         GroupFrameT \1
  2165.           MUIT MUIA_Radio_Entries,\2
  2166.         Endi
  2167.     ENDM
  2168.  
  2169. KeyRadio    MACRO ;name,array,key
  2170.         RadioObject
  2171.         GroupFrameT \1
  2172.                     MUIT MUIA_Radio_Entries,\2
  2173.         MUIT MUIA_ControlChar,\3
  2174.         Endi
  2175.     ENDM    
  2176.  
  2177.  
  2178.  
  2179. ***************************************************************************
  2180. **
  2181. ** Slider-Object
  2182. ** -------------
  2183. **
  2184. ***************************************************************************
  2185.  
  2186.  
  2187. Slider    MACRO ;min,max,level
  2188.        SliderObject
  2189.        MUIT MUIA_Slider_Min,\1
  2190.        MUIT MUIA_Slider_Max,\2
  2191.        MUIT MUIA_Slider_Level,\3
  2192.        Endi
  2193.     ENDM   
  2194.  
  2195. KeySlider    MACRO ;min,max,level,key
  2196.        SliderObject
  2197.        MUIT MUIA_Slider_Min, \1
  2198.        MUIT MUIA_Slider_Max, \2
  2199.        MUIT MUIA_Slider_Level, \3
  2200.        MUIT MUIA_ControlChar, \4
  2201.        Endi
  2202.     ENDM
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208. ****************************************************************************
  2209. **
  2210. ** Controlling Objects
  2211. ** -------------------
  2212. **
  2213. ** set() and get() are two short stubs for BOOPSI GetAttr() and SetAttrs()
  2214. ** calls:
  2215. **
  2216. ** {
  2217. **    char *x;
  2218. **
  2219. **    set(obj,MUIA_String_Contents,"foobar");
  2220. **    get(obj,MUIA_String_Contents,&x);
  2221. **
  2222. **    printf("gadget contains '%s'\n",x);
  2223. ** }
  2224. **
  2225. ****************************************************************************
  2226.  
  2227. ****************************************************************************
  2228. ***
  2229. *** And the above C example in assembler:
  2230. ***
  2231. *** seti obj,#MUIA_String_Contents,#foobar
  2232. *** geti obj,#MUIA_String_Contents,#x
  2233. ***   move.l   #myfmt,d1
  2234. ***   move.l   #data,d2
  2235. ***   CALLDOS VPrintf
  2236. ***
  2237. *** foobar     dc.b  "foobar",0
  2238. ***            even
  2239. *** data       dc.l  x
  2240. *** x          dcb.b 10
  2241. *** myfmt      dc.b  "gadget contains '%s'",10,0
  2242. ***            even
  2243. ***
  2244. *** The names of the set and get macros have been changed to seti and geti
  2245. *** since most assemblers already have the pseudo op-code SET.
  2246. *** Note that seti is designed to take multiple tagitems (max 8).
  2247. ***
  2248. ****************************************************************************
  2249.  
  2250. geti  MACRO ; obj,attr,store
  2251.       move.l   \2,d0
  2252.       move.l   \1,a0
  2253.       move.l   \3,a1
  2254.       CALLINT GetAttr
  2255.       ENDM
  2256. seti  MACRO ; obj,attr,value [,attr,value,...]
  2257.       move.l   sp,a2
  2258.       cmv3     #TAG_DONE
  2259.       cmv3     \9
  2260.       cmv3     \8
  2261.       cmv3     \7
  2262.       cmv3     \6
  2263.       cmv3     \5
  2264.       cmv3     \4
  2265.       cmv3     \3
  2266.       cmv3     \2
  2267.       move.l   \1,a0
  2268.       move.l   sp,a1
  2269.       CALLINT SetAttrsA
  2270.       move.l   a2,sp
  2271.       ENDM
  2272.  
  2273. setmutex MACRO ; obj,n
  2274.       seti \1,#MUIA_Radio_Active,\2
  2275.       ENDM
  2276. setcycle MACRO ; obj,n
  2277.       seti \1,#MUIA_Cycle_Active,\2
  2278.       ENDM
  2279. setstring MACRO ; obj,s
  2280.       seti \1,#MUIA_String_Contents,\2
  2281.       ENDM
  2282. setcheckmark MACRO ; obj,b
  2283.       seti \1,#MUIA_Selected,\2
  2284.       ENDM
  2285. setslider MACRO ; obj,l
  2286.       seti \1,#MUIA_Slider_Level,\2
  2287.       ENDM
  2288.  
  2289.  
  2290.    ENDC  ;MUI_NOSHORTCUTS
  2291.  
  2292.  
  2293. * End of Include file, for using MUI from an application program. The rest
  2294. * of this is for custom class implementors only
  2295. *
  2296. *****************************************************************************
  2297. *****************************************************************************
  2298. *****************************************************************************
  2299.  
  2300.  
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312. ****************************************************************************
  2313. **
  2314. ** For Boopsi Image Implementors Only:
  2315. **
  2316. ** If MUI is using a boopsi image object, it will send a special method
  2317. ** immediately after object creation. This method has a parameter structure
  2318. ** where the boopsi can fill in its minimum and maximum size and learn if
  2319. ** its used in a horizontal or vertical context.
  2320. **
  2321. ** The boopsi image must use the method id (MUIM_BoopsiQuery) as return
  2322. ** value. That's how MUI sees that the method is implemented.
  2323. **
  2324. ** Note: MUI does not depend on this method. If the boopsi image doesn't
  2325. **       implement it, minimum size will be 0 and maximum size unlimited.
  2326. **
  2327. ***************************************************************************/
  2328.  
  2329. MUIM_BoopsiQuery EQU      $80427157 ;* this is send to the boopsi and *
  2330.                                     ;* must be used as return value   *
  2331.  
  2332.  STRUCTURE MUI_BoopsiQuery,0              ;* parameter structure *
  2333.  
  2334.  LONG     mbq_MethodID             ;* always MUIM_BoopsiQuery */
  2335.  APTR     mbq_Screen               ;* obsolete, use mbq_RenderInfo */
  2336.  LONG     mbq_Flags;               ;* read only, see below */
  2337.  LONG     mbq_MinWidth             ;* write only, fill in min width  */
  2338.  LONG     mbq_MinHeight             ;* write only, fill in min height */
  2339.  LONG           mbq_MaxWidth             ;* write only, fill in max width  */
  2340.  LONG           mbq_MaxHeight            ;* write only, fill in max height */
  2341.  LONG           mbq_DefWidth             ;* write only, fill in def width  */
  2342.  LONG           mbq_DefHeight            ;* write only, fill in def height */
  2343.  APTR           mbq_RenderInfo             ;* read only, display context */
  2344.  
  2345.  LABEL MUI_BoopsiQuery_SIZEOF             ;* may grow in future ... */
  2346.  
  2347.  
  2348. MUIP_BoopsiQuery EQU MUI_BoopsiQuery  ;* old structure name *
  2349.  
  2350. MBQF_HORIZ EQU 1<<0                   ;* object used in a horizontal *
  2351.                                       ;* context (else vertical)     *
  2352.  
  2353. MBQ_MUI_MAXMAX EQU 10000              ;* use this for unlimited MaxWidth/Height *
  2354.  
  2355.  
  2356.  
  2357.  
  2358.  
  2359.  
  2360.  
  2361. *************************************************************************
  2362. ** Structures and Macros for creating custom classes.
  2363. *************************************************************************
  2364.  
  2365.  
  2366. *
  2367. ** GENERAL NOTES:
  2368. **
  2369. ** - Everything described in this header file is only valid within
  2370. **   MUI classes. You may never use any of these things out of
  2371. **   a class, e.g. in a traditional MUI application.
  2372. **
  2373. ** - Except when otherwise stated, all structures are strictly read only.
  2374. *
  2375.  
  2376.  
  2377. * Global information for every object *
  2378.  
  2379.  STRUCTURE MUI_GlobalInfo,0
  2380.  
  2381.  LONG priv0
  2382.  APTR mgi_ApplicationObject
  2383.  
  2384.  * ... private data follows ... *
  2385.  
  2386.  
  2387.  
  2388.  
  2389. * Instance data of notify class *
  2390.  
  2391.  STRUCTURE MUI_NotifyData,0
  2392.  
  2393.  APTR mnd_GlobalInfo
  2394.  LONG mnd_UserData
  2395.  LONG priv1
  2396.  LONG priv2
  2397.  LONG priv3
  2398.  LONG priv4
  2399.  LONG priv5
  2400.  
  2401.  LABEL MUI_NotifyData_SIZEOF
  2402.  
  2403.  
  2404. * MUI_MinMax structure holds information about minimum, maximum
  2405. * and default dimensions of an object. *
  2406.  
  2407.  STRUCTURE MUI_MinMax,0
  2408.  
  2409.  WORD MinWidth
  2410.  WORD MinHeight
  2411.  WORD MaxWidth
  2412.  WORD MaxHeight
  2413.  WORD DefWidth
  2414.  WORD DefHeight
  2415.  
  2416.  LABEL MUI_MinMax_SIZEOF
  2417.  
  2418.  
  2419. MUI_MAXMAX EQU 10000 * use this if a dimension is not limited. *
  2420.  
  2421.  
  2422. * (partial) instance data of area class *
  2423.  
  2424.  STRUCTURE MUI_AreaData,0
  2425.  
  2426.  APTR mad_RenderInfo    ;* RenderInfo for this object *
  2427.  ULONG priv6        ;
  2428.  APTR mad_Font        ;* Font *
  2429.  STRUCT mad_MinMax,MUI_MinMax_SIZEOF    ;* min/max/default sizes *
  2430.  STRUCT mad_Box,ibox_SIZEOF    ;* position and dimension *
  2431.  BYTE mad_addleft    ;* frame & innerspacing left offset *
  2432.  BYTE mad_addtop    ;* frame & innerspacing top offset  *
  2433.  BYTE mad_subwidth    ;* frame & innerspacing add. width  *
  2434.  BYTE mad_subheight    ;* frame & innerspacing add. height *
  2435.  LONG mad_Flags        ;* see definitions below *
  2436.  
  2437.         ;* ... private data follows ... *
  2438.  
  2439.  
  2440. * Definitions for mad_Flags, other flags are private *
  2441.  
  2442. MADF_DRAWOBJECT    EQU         1<<0   * completely redraw yourself *
  2443. MADF_DRAWUPDATE EQU         1<<1   * only update yourself *
  2444.  
  2445.  
  2446.  
  2447.  
  2448. * MUI's draw pens *
  2449.  
  2450. MPEN_SHINE    EQU      0
  2451. MPEN_HALFSHINE    EQU      1
  2452. MPEN_BACKGROUND EQU      2
  2453. MPEN_HALFSHADOW EQU      3
  2454. MPEN_SHADOW    EQU      4
  2455. MPEN_TEXT    EQU      5
  2456. MPEN_FILL    EQU      6
  2457. MPEN_ACTIVEOBJ  EQU      7
  2458. MPEN_COUNT    EQU      8
  2459.  
  2460.  
  2461. * Information on display environment *
  2462.  
  2463.  STRUCTURE MUI_RenderInfo,0
  2464.  
  2465.  APTR mri_WindowObject    ;* valid between MUIM_Setup/MUIM_Cleanup *
  2466.  APTR mri_Screen    ;* valid between MUIM_Setup/MUIM_Cleanup *
  2467.  APTR mri_DrawInfo    ;* valid between MUIM_Setup/MUIM_Cleanup *
  2468.  WORD mri_Pens        ;* valid between MUIM_Setup/MUIM_Cleanup *
  2469.  APTR mri_Window    ;* valid between MUIM_Show/MUIM_Hide *
  2470.  APTR mri_RastPort    ;* valid between MUIM_Show/MUIM_Hide *
  2471.  
  2472.         ;* ... private data follows ... *
  2473.  
  2474.  
  2475.  
  2476. * the following macros can be used to get pointers to an objects
  2477. *   GlobalInfo and RenderInfo structures. */
  2478. *
  2479. *NOTE: These have not been converted from the C header.
  2480. ;
  2481. ;struct __dummyXFC2__ {
  2482. ;
  2483. ; STRUCT MUI_NotifyData mnd;
  2484. ;    struct MUI_AreaData   mad;
  2485. ;};
  2486. ;
  2487. ;#define muiNotifyData(obj) (&(((struct __dummyXFC2__ *)(obj))->mnd))
  2488. ;#define muiAreaData(obj)   (&(((struct __dummyXFC2__ *)(obj))->mad))
  2489. ;
  2490. ;define muiGlobalInfo(obj) (((struct __dummyXFC2__ *)(obj))->mnd.mnd_GlobalInfo)
  2491. ;#define muiUserData(obj)   (((struct __dummyXFC2__ *)(obj))->mnd.mnd_UserData)
  2492. ;#define muiRenderInfo(obj) (((struct __dummyXFC2__ *)(obj))->mad.mad_RenderInfo)
  2493.  
  2494.  
  2495.  
  2496. * User configurable keyboard events coming with MUIM_HandleInput *
  2497.  
  2498.  
  2499. MUIKEY_RELEASE         EQU -2 * not a real key, faked when MUIKEY_PRESS is released *
  2500. MUIKEY_NONE            EQU -1 
  2501. MUIKEY_PRESS        EQU  0
  2502. MUIKEY_TOGGLE        EQU  1
  2503. MUIKEY_UP        EQU  2        
  2504. MUIKEY_DOWN        EQU  3
  2505. MUIKEY_PAGEUP        EQU  4
  2506. MUIKEY_PAGEDOWN        EQU  5
  2507. MUIKEY_TOP        EQU  6
  2508. MUIKEY_BOTTOM        EQU  7
  2509. MUIKEY_LEFT        EQU  8
  2510. MUIKEY_RIGHT        EQU  9
  2511. MUIKEY_WORDLEFT        EQU 10
  2512. MUIKEY_WORDRIGHT    EQU 11
  2513. MUIKEY_LINESTART    EQU 12
  2514. MUIKEY_LINEEND        EQU 13
  2515. MUIKEY_GADGET_NEXT    EQU 14
  2516. MUIKEY_GADGET_PREV    EQU 15
  2517. MUIKEY_GADGET_OFF    EQU 16
  2518. MUIKEY_WINDOW_CLOSE    EQU 17
  2519. MUIKEY_WINDOW_NEXT    EQU 18
  2520. MUIKEY_WINDOW_PREV    EQU 19
  2521. MUIKEY_HELP        EQU 20
  2522. MUIKEY_POPUP        EQU 21
  2523. MUIKEY_COUNT         EQU 22 * counter *
  2524.  
  2525.  
  2526. ********************************************************************
  2527. * Some useful shortcuts. define MUI_NOSHORTCUTS to get rid of them *
  2528.  
  2529. * I Have left the original C macros here, so you can see what they are
  2530. * for, but I have not converted them to assembler.
  2531. *
  2532. *
  2533.  
  2534. ;#define _app(obj)         (muiGlobalInfo(obj)->mgi_ApplicationObject)
  2535. ;#define _win(obj)         (muiRenderInfo(obj)->mri_WindowObject)
  2536. ;#define _dri(obj)         (muiRenderInfo(obj)->mri_DrawInfo)
  2537. ;#define _window(obj)      (muiRenderInfo(obj)->mri_Window)
  2538. ;#define _screen(obj)      (muiRenderInfo(obj)->mri_Screen)
  2539. ;#define _rp(obj)          (muiRenderInfo(obj)->mri_RastPort)
  2540. ;#define _left(obj)        (muiAreaData(obj)->mad_Box.Left)
  2541. ;#define _top(obj)         (muiAreaData(obj)->mad_Box.Top)
  2542. ;#define _width(obj)       (muiAreaData(obj)->mad_Box.Width)
  2543. ;#define _height(obj)      (muiAreaData(obj)->mad_Box.Height)
  2544. ;#define _right(obj)       (_left(obj)+_width(obj)-1)
  2545. ;#define _bottom(obj)      (_top(obj)+_height(obj)-1)
  2546. ;#define _addleft(obj)     (muiAreaData(obj)->mad_addleft  )
  2547. ;#define _addtop(obj)      (muiAreaData(obj)->mad_addtop   )
  2548. ;#define _subwidth(obj)    (muiAreaData(obj)->mad_subwidth )
  2549. ;#define _subheight(obj)   (muiAreaData(obj)->mad_subheight)
  2550. ;#define _mleft(obj)       (_left(obj)+_addleft(obj))
  2551. ;#define _mtop(obj)        (_top(obj)+_addtop(obj))
  2552. ;#define _mwidth(obj)      (_width(obj)-_subwidth(obj))
  2553. ;#define _mheight(obj)     (_height(obj)-_subheight(obj))
  2554. ;#define _mright(obj)      (_mleft(obj)+_mwidth(obj)-1)
  2555. ;#define _mbottom(obj)     (_mtop(obj)+_mheight(obj)-1)
  2556. ;#define _font(obj)        (muiAreaData(obj)->mad_Font)
  2557. ;#define _flags(obj)       (muiAreaData(obj)->mad_Flags)
  2558.  
  2559.  
  2560.  
  2561.  
  2562.  
  2563. * MUI_CustomClass returned by MUI_CreateCustomClass() *
  2564.  
  2565.  STRUCTURE MUI_CustomClass,0
  2566.  
  2567.  APTR mcc_UserData    ;* use for whatever you want *
  2568.  
  2569.  APTR mcc_UtilityBase    ;* MUI has opened these libraries *
  2570.  APTR mcc_DOSBase    ;* for you automatically. You can *
  2571.  APTR mcc_GfxBase    ;* use them or decide to open     *
  2572.  APTR mcc_IntuitionBase    ;* your libraries yourself.       *
  2573.  
  2574.  APTR mcc_Super        ;* pointer to super class   *
  2575.  APTR mcc_Class        ;* pointer to the new class *
  2576.  
  2577.         ;* ... private data follows ... *
  2578.  
  2579. ****************************************************************************
  2580.  
  2581.    ENDC  ;LIBRARIES_MUI_I
  2582.