home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / MUI / MUIBuilder22.lha / MUIBuilder / MB / ASM / Include / libraries / mui_asmone.i < prev   
Encoding:
Text File  |  1995-01-17  |  89.9 KB  |  2,695 lines

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