****************************************************************************
**
** MUI - MagicUserInterface
** (c) 1993 by Stefan Stuntz
**
** Main Header File
**
*** Assembler modifications 26-Aug-93 by Henri Veisterä.
*** Modifications for MUIBuilder 16-Mar-94 by Michal Kara
**
****************************************************************************
** General Header File Information
****************************************************************************
**
** All macro and structure definitions follow these rules:
**
** Name                       Meaning
**
** MUIC_<class>               Name of a class
** MUIM_<class>_<method>      Method
** MUIP_<class>_<method>      Methods parameter structure
** MUIV_<class>_<method>_<x>  Special method value
** MUIA_<class>_<attrib>      Attribute
** MUIV_<class>_<attrib>_<x>  Special attribute value
** MUIE_<error>               Error return code from MUI_Error()
** MUII_<name>                Standard MUI image
**
** MUIA_... attribute definitions are followed by a comment
** consisting of the three possible letters I, S and G.
** I: it's possible to specify this attribute at object creation time.
** S: it's possible to change this attribute with SetAttrs().
** G: it's possible to get this attribute with GetAttr().
**


   IFND LIBRARIES_MUI_I
LIBRARIES_MUI_I SET 1

   IFND EXEC_TYPES_I
   INCLUDE "exec/types.i"
   ENDC  ;EXEC_TYPES_I

   IFND INTUITION_CLASSES_I
   INCLUDE "intuition/classes.i"
   ENDC  ;INTUITION_CLASSES_I

   IFND INTUITION_SCREENS_I
   INCLUDE "intuition/screens.i"
   ENDC  ;INTUITION_SCREENS_I

   IFND UTILITY_HOOKS_I
   INCLUDE "utility/hooks.i"
   ENDC  ;UTILITY_HOOKS_I



****************************************************************************
** Library specification
****************************************************************************

MUIMASTER_NAME MACRO
         dc.b     "muimaster.library",0
         even
         ENDM
MUIMASTER_VMIN EQU 4
CALLMUI  MACRO   ; Func
         MOVE.L  MUIMASTER_BASE,a6
         JSR     _LVO\1(a6)
         ENDM
NULL     equ      0
TRUE     equ      1
FALSE    equ      NULL


****************************************************************************
** ARexx Interface
****************************************************************************

 STRUCTURE MUI_Command,0
   APTR     mc_Name
   APTR     mc_Template
   LONG     mc_Parameters
   STRUCT   mc_Hook,h_SIZEOF
   STRUCT   mc_Reserved,4*5
   LABEL    MUI_Command_SIZEOF

MC_TEMPLATE_ID EQU ~0


****************************************************************************
** Return values for MUI_Error()
****************************************************************************

MUIE_OK                    EQU 0
MUIE_OutOfMemory           EQU 1
MUIE_OutOfGfxMemory        EQU 2
MUIE_InvalidWindowObject   EQU 3
MUIE_MissingLibrary        EQU 4
MUIE_NoARexx               EQU 5
MUIE_SingleTask            EQU 6



****************************************************************************
** Standard MUI Images
****************************************************************************

MUII_WindowBack      EQU 0
MUII_RequesterBack   EQU 1
MUII_ButtonBack      EQU 2
MUII_ListBack        EQU 3
MUII_TextBack        EQU 4
MUII_PropBack        EQU 5
MUII_ActiveBack      EQU 6
MUII_SelectedBack    EQU 7
MUII_ListCursor      EQU 8
MUII_ListSelect      EQU 9
MUII_ListSelCur      EQU 10
MUII_ArrowUp         EQU 11
MUII_ArrowDown       EQU 12
MUII_ArrowLeft       EQU 13
MUII_ArrowRight      EQU 14
MUII_CheckMark       EQU 15
MUII_RadioButton     EQU 16
MUII_Cycle           EQU 17
MUII_PopUp           EQU 18
MUII_PopFile         EQU 19
MUII_PopDrawer       EQU 20
MUII_PropKnob        EQU 21
MUII_Drawer          EQU 22
MUII_HardDisk        EQU 23
MUII_Disk            EQU 24
MUII_Chip            EQU 25
MUII_Volume          EQU 26
MUII_PopUpBack       EQU 27
MUII_Network         EQU 28
MUII_Assign          EQU 29
MUII_TapePlay        EQU 30
MUII_TapePlayBack    EQU 31
MUII_TapePause       EQU 32
MUII_TapeStop        EQU 33
MUII_TapeRecord      EQU 34
MUII_GroupBack       EQU 35
MUII_SliderBack      EQU 36
MUII_SliderKnob      EQU 37
MUII_TapeUp          EQU 38
MUII_TapeDown        EQU 39
MUII_Count           EQU 40

MUII_BACKGROUND      EQU (128+0)
MUII_SHADOW          EQU (128+1)
MUII_SHINE           EQU (128+2)
MUII_FILL            EQU (128+3)
MUII_SHADOWBACK      EQU (128+4)
MUII_SHADOWFILL      EQU (128+5)
MUII_SHADOWSHINE     EQU (128+6)
MUII_FILLBACK        EQU (128+7)
MUII_FILLSHINE       EQU (128+8)
MUII_SHINEBACK       EQU (128+9)
MUII_FILLBACK2       EQU (128+10)
MUII_HSHINEBACK      EQU (128+11)
MUII_HSHADOWBACK     EQU (128+12)
MUII_HSHINESHINE     EQU (128+13)
MUII_HSHADOWSHADOW   EQU (128+14)
MUII_N1HSHINE        EQU (128+15)
MUII_LASTPAT         EQU (128+16)


****************************************************************************
** Special values for some methods 
****************************************************************************

MUIV_TriggerValue       EQU $49893131
MUIV_EveryTime          EQU $49893131

MUIV_Application_Save_ENV     EQU 0
MUIV_Application_Save_ENVARC  EQU ~0
MUIV_Application_Load_ENV     EQU 0
MUIV_Application_Load_ENVARC  EQU ~0

MUIV_Application_ReturnID_Quit   EQU -1

MUIV_List_Insert_Top       EQU 0
MUIV_List_Insert_Active    EQU -1
MUIV_List_Insert_Sorted    EQU -2
MUIV_List_Insert_Bottom    EQU -3

MUIV_List_Remove_First     EQU 0
MUIV_List_Remove_Active    EQU -1
MUIV_List_Remove_Last      EQU -2

MUIV_List_Select_Off       EQU 0
MUIV_List_Select_On        EQU 1
MUIV_List_Select_Toggle    EQU 2
MUIV_List_Select_Ask       EQU 3

MUIV_List_Jump_Active      EQU -1
MUIV_List_GetEntry_Active  EQU -1
MUIV_List_Select_Active    EQU -1
MUIV_List_Select_All       EQU -2

MUIV_List_Redraw_Active    EQU -1
MUIV_List_Redraw_All       EQU -2

MUIV_List_Exchange_Active  EQU -1

MUIV_Colorpanel_GetColor_Active EQU -1
MUIV_Colorpanel_SetColor_Active EQU -1

**************************************************************************
** Control codes for text strings
**************************************************************************

;;;;;;;;;;;!!!!!!!!!!!!!!!!                 

***************************************************************************
** Parameter structures for some classes
***************************************************************************

                 STRUCTURE    MUI_Palette_Entry,0
                 LONG  mpe_ID
                 ULONG mpe_Red
                 ULONG mpe_Green
                 ULONG mpe_Blue
                 LONG  mpe_Group
                 LABEL        MUI_Palette_Entry_SIZEOF

MUIV_Palette_Entry_End   EQU   -1

                 STRUCTURE    MUI_Scrmodelist_Entry,0
                 CPTR         sme_Name
                 ULONG        sme_ModeID
                 LABEL        MUI_Scrmodelist_Entry_SIZEOF

;****************************************************************************
;** Notify.mui 7.13 (01.12.93)                                             **
;****************************************************************************

;** Methods **

MUIM_CallHook                  EQU $8042b96b
MUIM_KillNotify                EQU $8042d240
MUIM_MultiSet                  EQU $8042d356
MUIM_Notify                    EQU $8042c9cb
MUIM_Set                       EQU $8042549a
MUIM_SetAsString               EQU $80422590
MUIM_WriteLong                 EQU $80428d86
MUIM_WriteString               EQU $80424bf4

;** Attributes **

MUIA_AppMessage                 EQU $80421955 ;** ..g struct AppMessage * **
MUIA_HelpFile                   EQU $80423a6e ;** isg STRPTR            **
MUIA_HelpLine                   EQU $8042a825 ;** isg LONG              **
MUIA_HelpNode                   EQU $80420b85 ;** isg STRPTR            **
MUIA_NoNotify                   EQU $804237f9 ;** .s. BOOL              **
MUIA_Revision                   EQU $80427eaa ;** ..g LONG              **
MUIA_UserData                   EQU $80420313 ;** isg ULONG             **
MUIA_Version                    EQU $80422301 ;** ..g LONG              **



;****************************************************************************
;** Application.mui 7.12 (28.11.93)                                        **
;****************************************************************************

;** Methods **

MUIM_Application_GetMenuCheck  EQU $8042c0a7
MUIM_Application_GetMenuState  EQU $8042a58f
MUIM_Application_Input         EQU $8042d0f5
MUIM_Application_InputBuffered EQU $80427e59
MUIM_Application_Load          EQU $8042f90d
MUIM_Application_PushMethod    EQU $80429ef8
MUIM_Application_ReturnID      EQU $804276ef
MUIM_Application_Save          EQU $804227ef
MUIM_Application_SetMenuCheck  EQU $8042a707
MUIM_Application_SetMenuState  EQU $80428bef
MUIM_Application_ShowHelp      EQU $80426479

;** Attributes **

MUIA_Application_Active         EQU $804260ab ;** isg BOOL              **
MUIA_Application_Author         EQU $80424842 ;** i.g STRPTR            **
MUIA_Application_Base           EQU $8042e07a ;** i.g STRPTR            **
MUIA_Application_Broker         EQU $8042dbce ;** ..g Broker *          **
MUIA_Application_BrokerHook     EQU $80428f4b ;** isg struct Hook *     **
MUIA_Application_BrokerPort     EQU $8042e0ad ;** ..g struct MsgPort *  **
MUIA_Application_BrokerPri      EQU $8042c8d0 ;** i.g LONG              **
MUIA_Application_Commands       EQU $80428648 ;** isg struct MUI_Command * **
MUIA_Application_Copyright      EQU $8042ef4d ;** i.g STRPTR            **
MUIA_Application_Description    EQU $80421fc6 ;** i.g STRPTR            **
MUIA_Application_DiskObject     EQU $804235cb ;** isg struct DiskObject * **
MUIA_Application_DoubleStart    EQU $80423bc6 ;** ..g BOOL              **
MUIA_Application_DropObject     EQU $80421266 ;** is. Object *          **
MUIA_Application_Iconified      EQU $8042a07f ;** .sg BOOL              **
MUIA_Application_Menu           EQU $80420e1f ;** i.g struct NewMenu *  **
MUIA_Application_MenuAction     EQU $80428961 ;** ..g ULONG             **
MUIA_Application_MenuHelp       EQU $8042540b ;** ..g ULONG             **
MUIA_Application_RexxHook       EQU $80427c42 ;** isg struct Hook *     **
MUIA_Application_RexxMsg        EQU $8042fd88 ;** ..g struct RxMsg *    **
MUIA_Application_RexxString     EQU $8042d711 ;** .s. STRPTR            **
MUIA_Application_SingleTask     EQU $8042a2c8 ;** i.. BOOL              **
MUIA_Application_Sleep          EQU $80425711 ;** .s. BOOL              **
MUIA_Application_Title          EQU $804281b8 ;** i.g STRPTR            **
MUIA_Application_Version        EQU $8042b33f ;** i.g STRPTR            **
MUIA_Application_Window         EQU $8042bfe0 ;** i.. Object *          **



;****************************************************************************
;** Window.mui 7.16 (03.12.93)                                             **
;****************************************************************************

;** Methods **

MUIM_Window_GetMenuCheck       EQU $80420414
MUIM_Window_GetMenuState       EQU $80420d2f
MUIM_Window_ScreenToBack       EQU $8042913d
MUIM_Window_ScreenToFront      EQU $804227a4
MUIM_Window_SetCycleChain      EQU $80426510
MUIM_Window_SetMenuCheck       EQU $80422243
MUIM_Window_SetMenuState       EQU $80422b5e
MUIM_Window_ToBack             EQU $8042152e
MUIM_Window_ToFront            EQU $8042554f

;** Attributes **

MUIA_Window_Activate            EQU $80428d2f ;** isg BOOL              **
MUIA_Window_ActiveObject        EQU $80427925 ;** .sg Object *          **
MUIA_Window_AltHeight           EQU $8042cce3 ;** i.g LONG              **
MUIA_Window_AltLeftEdge         EQU $80422d65 ;** i.g LONG              **
MUIA_Window_AltTopEdge          EQU $8042e99b ;** i.g LONG              **
MUIA_Window_AltWidth            EQU $804260f4 ;** i.g LONG              **
MUIA_Window_AppWindow           EQU $804280cf ;** i.. BOOL              **
MUIA_Window_Backdrop            EQU $8042c0bb ;** i.. BOOL              **
MUIA_Window_Borderless          EQU $80429b79 ;** i.. BOOL              **
MUIA_Window_CloseGadget         EQU $8042a110 ;** i.. BOOL              **
MUIA_Window_CloseRequest        EQU $8042e86e ;** ..g BOOL              **
MUIA_Window_DefaultObject       EQU $804294d7 ;** isg Object *          **
MUIA_Window_DepthGadget         EQU $80421923 ;** i.. BOOL              **
MUIA_Window_DragBar             EQU $8042045d ;** i.. BOOL              **
MUIA_Window_Height              EQU $80425846 ;** i.g LONG              **
MUIA_Window_ID                  EQU $804201bd ;** isg ULONG             **
MUIA_Window_InputEvent          EQU $804247d8 ;** ..g struct InputEvent * **
MUIA_Window_LeftEdge            EQU $80426c65 ;** i.g LONG              **
MUIA_Window_Menu                EQU $8042db94 ;** i.. struct NewMenu *  **
MUIA_Window_NoMenus             EQU $80429df5 ;** .s. BOOL              **
MUIA_Window_Open                EQU $80428aa0 ;** .sg BOOL              **
MUIA_Window_PublicScreen        EQU $804278e4 ;** isg STRPTR            **
MUIA_Window_RefWindow           EQU $804201f4 ;** is. Object *          **
MUIA_Window_RootObject          EQU $8042cba5 ;** i.. Object *          **
MUIA_Window_Screen              EQU $8042df4f ;** isg struct Screen *   **
MUIA_Window_ScreenTitle         EQU $804234b0 ;** isg STRPTR            **
MUIA_Window_SizeGadget          EQU $8042e33d ;** i.. BOOL              **
MUIA_Window_SizeRight           EQU $80424780 ;** i.. BOOL              **
MUIA_Window_Sleep               EQU $8042e7db ;** .sg BOOL              **
MUIA_Window_Title               EQU $8042ad3d ;** isg STRPTR            **
MUIA_Window_TopEdge             EQU $80427c66 ;** i.g LONG              **
MUIA_Window_Width               EQU $8042dcae ;** i.g LONG              **
MUIA_Window_Window              EQU $80426a42 ;** ..g struct Window *   **

MUIV_Window_ActiveObjectNone    EQU 0
MUIV_Window_ActiveObjectNext    EQU -1
MUIV_Window_ActiveObjectPrev    EQU -2
MUIV_Window_AltHeight_MinMax     EQU 0
MUIV_Window_AltHeight_Visible    EQU -100
MUIV_Window_AltHeight_Screen     EQU -200
MUIV_Window_AltHeight_Scaled     EQU -1000
MUIV_Window_AltLeftEdge_Centered EQU -1
MUIV_Window_AltLeftEdge_Moused   EQU -2
MUIV_Window_AltLeftEdge_NoChange EQU -1000
MUIV_Window_AltTopEdge_Centered  EQU -1
MUIV_Window_AltTopEdge_Moused    EQU -2
MUIV_Window_AltTopEdge_Delta     EQU -3
MUIV_Window_AltTopEdge_NoChange  EQU -1000
MUIV_Window_AltWidth_MinMax      EQU 0
MUIV_Window_AltWidth_Visible     EQU -100
MUIV_Window_AltWidth_Screen      EQU -200
MUIV_Window_AltWidth_Scaled      EQU -1000
MUIV_Window_Height_MinMax        EQU 0
MUIV_Window_Height_Visible       EQU -100
MUIV_Window_Height_Screen        EQU -200
MUIV_Window_Height_Scaled        EQU -1000
MUIV_Window_Height_Default       EQU -1001
MUIV_Window_LeftEdge_Centered    EQU -1
MUIV_Window_LeftEdge_Moused      EQU -2
MUIV_Window_Menu_NoMenu          EQU -1
MUIV_Window_TopEdge_Centered     EQU -1
MUIV_Window_TopEdge_Moused       EQU -2
MUIV_Window_TopEdge_Delta        EQU -3
MUIV_Window_Width_MinMax         EQU 0
MUIV_Window_Width_Visible        EQU -100
MUIV_Window_Width_Screen         EQU -200
MUIV_Window_Width_Scaled         EQU -1000
MUIV_Window_Width_Default        EQU -1001


;****************************************************************************
;** Area.mui 7.15 (28.11.93)                                               **
;****************************************************************************

;** Methods **

MUIM_AskMinMax                 EQU $80423874
MUIM_Cleanup                   EQU $8042d985
MUIM_Draw                      EQU $80426f3f
MUIM_HandleInput               EQU $80422a1a
MUIM_Hide                      EQU $8042f20f
MUIM_Setup                     EQU $80428354
MUIM_Show                      EQU $8042cc84

;** Attributes **

MUIA_ApplicationObject          EQU $8042d3ee ;** ..g Object *          **
MUIA_Background                 EQU $8042545b ;** is. LONG              **
MUIA_BottomEdge                 EQU $8042e552 ;** ..g LONG              **
MUIA_ControlChar                EQU $8042120b ;** i.. char              **
MUIA_Disabled                   EQU $80423661 ;** isg BOOL              **
MUIA_ExportID                   EQU $8042d76e ;** isg LONG              **
MUIA_FixHeight                  EQU $8042a92b ;** i.. LONG              **
MUIA_FixHeightTxt               EQU $804276f2 ;** i.. LONG              **
MUIA_FixWidth                   EQU $8042a3f1 ;** i.. LONG              **
MUIA_FixWidthTxt                EQU $8042d044 ;** i.. STRPTR            **
MUIA_Font                       EQU $8042be50 ;** i.g struct TextFont * **
MUIA_Frame                      EQU $8042ac64 ;** i.. LONG              **
MUIA_FramePhantomHoriz          EQU $8042ed76 ;** i.. BOOL              **
MUIA_FrameTitle                 EQU $8042d1c7 ;** i.. STRPTR            **
MUIA_Height                     EQU $80423237 ;** ..g LONG              **
MUIA_HorizWeight                EQU $80426db9 ;** i.. LONG              **
MUIA_InnerBottom                EQU $8042f2c0 ;** i.. LONG              **
MUIA_InnerLeft                  EQU $804228f8 ;** i.. LONG              **
MUIA_InnerRight                 EQU $804297ff ;** i.. LONG              **
MUIA_InnerTop                   EQU $80421eb6 ;** i.. LONG              **
MUIA_InputMode                  EQU $8042fb04 ;** i.. LONG              **
MUIA_LeftEdge                   EQU $8042bec6 ;** ..g LONG              **
MUIA_Pressed                    EQU $80423535 ;** ..g BOOL              **
MUIA_RightEdge                  EQU $8042ba82 ;** ..g LONG              **
MUIA_Selected                   EQU $8042654b ;** isg BOOL              **
MUIA_ShowMe                     EQU $80429ba8 ;** isg BOOL              **
MUIA_ShowSelState               EQU $8042caac ;** i.. BOOL              **
MUIA_Timer                      EQU $80426435 ;** ..g LONG              **
MUIA_TopEdge                    EQU $8042509b ;** ..g LONG              **
MUIA_VertWeight                 EQU $804298d0 ;** i.. LONG              **
MUIA_Weight                     EQU $80421d1f ;** i.. LONG              **
MUIA_Width                      EQU $8042b59c ;** ..g LONG              **
MUIA_Window                     EQU $80421591 ;** ..g struct Window *   **
MUIA_WindowObject               EQU $8042669e ;** ..g Object *          **

MUIV_Font_Inherit                EQU 0
MUIV_Font_Normal                 EQU -1
MUIV_Font_List                   EQU -2
MUIV_Font_Tiny                   EQU -3
MUIV_Font_Fixed                  EQU -4
MUIV_Font_Title                  EQU -5
MUIV_Frame_None                 EQU 0
MUIV_Frame_Button               EQU 1
MUIV_Frame_ImageButton          EQU 2
MUIV_Frame_Text                 EQU 3
MUIV_Frame_String               EQU 4
MUIV_Frame_ReadList             EQU 5
MUIV_Frame_InputList            EQU 6
MUIV_Frame_Prop                 EQU 7
MUIV_Frame_Gauge                EQU 8
MUIV_Frame_Group                EQU 9
MUIV_Frame_PopUp                EQU 10
MUIV_Frame_Virtual              EQU 11
MUIV_Frame_Slider               EQU 12
MUIV_Frame_Count                EQU 13
MUIV_InputMode_None              EQU 0
MUIV_InputMode_RelVerify         EQU 1
MUIV_InputModeRelVerify          EQU 1
MUIV_InputMode_Immediate         EQU 2
MUIV_InputMode_Toggle            EQU 3


;****************************************************************************
;** Rectangle.mui 7.14 (28.11.93)                                          **
;****************************************************************************

;** Attributes **

MUIA_Rectangle_HBar             EQU $8042c943 ;** i.g BOOL              **
MUIA_Rectangle_VBar             EQU $80422204 ;** i.g BOOL              **



;****************************************************************************
;** Image.mui 7.13 (28.11.93)                                              **
;****************************************************************************

;** Attributes **

MUIA_Image_FontMatch            EQU $8042815d ;** i.. BOOL              **
MUIA_Image_FontMatchHeight      EQU $80429f26 ;** i.. BOOL              **
MUIA_Image_FontMatchWidth       EQU $804239bf ;** i.. BOOL              **
MUIA_Image_FreeHoriz            EQU $8042da84 ;** i.. BOOL              **
MUIA_Image_FreeVert             EQU $8042ea28 ;** i.. BOOL              **
MUIA_Image_OldImage             EQU $80424f3d ;** i.. struct Image *    **
MUIA_Image_Spec                 EQU $804233d5 ;** i.. char *            **
MUIA_Image_State                EQU $8042a3ad ;** is. LONG              **



;****************************************************************************
;** Text.mui 7.15 (28.11.93)                                               **
;****************************************************************************

;** Attributes **

MUIA_Text_Contents              EQU $8042f8dc ;** isg STRPTR            **
MUIA_Text_HiChar                EQU $804218ff ;** i.. char              **
MUIA_Text_PreParse              EQU $8042566d ;** isg STRPTR            **
MUIA_Text_SetMax                EQU $80424d0a ;** i.. BOOL              **
MUIA_Text_SetMin                EQU $80424e10 ;** i.. BOOL              **



;****************************************************************************
;** String.mui 7.13 (28.11.93)                                             **
;****************************************************************************

;** Attributes **

MUIA_String_Accept              EQU $8042e3e1 ;** isg STRPTR            **
MUIA_String_Acknowledge         EQU $8042026c ;** ..g STRPTR            **
MUIA_String_AttachedList        EQU $80420fd2 ;** i.. Object *          **
MUIA_String_BufferPos           EQU $80428b6c ;** .sg LONG              **
MUIA_String_Contents            EQU $80428ffd ;** isg STRPTR            **
MUIA_String_DisplayPos          EQU $8042ccbf ;** .sg LONG              **
MUIA_String_EditHook            EQU $80424c33 ;** isg struct Hook *     **
MUIA_String_Format              EQU $80427484 ;** i.g LONG              **
MUIA_String_Integer             EQU $80426e8a ;** isg ULONG             **
MUIA_String_MaxLen              EQU $80424984 ;** i.. LONG              **
MUIA_String_Reject              EQU $8042179c ;** isg STRPTR            **
MUIA_String_Secret              EQU $80428769 ;** i.g BOOL              **

MUIV_String_Format_Left          EQU 0
MUIV_String_Format_Center        EQU 1
MUIV_String_Format_Right         EQU 2


;****************************************************************************
;** Prop.mui 7.12 (28.11.93)                                               **
;****************************************************************************

;** Attributes **

MUIA_Prop_Entries               EQU $8042fbdb ;** isg LONG              **
MUIA_Prop_First                 EQU $8042d4b2 ;** isg LONG              **
MUIA_Prop_Horiz                 EQU $8042f4f3 ;** i.g BOOL              **
MUIA_Prop_Slider                EQU $80429c3a ;** isg BOOL              **
MUIA_Prop_Visible               EQU $8042fea6 ;** isg LONG              **



;****************************************************************************
;** Gauge.mui 7.42 (10.02.94)                                              **
;****************************************************************************

;** Attributes **

MUIA_Gauge_Current              EQU $8042f0dd ;** isg LONG              **
MUIA_Gauge_Divide               EQU $8042d8df ;** isg BOOL              **
MUIA_Gauge_Horiz                EQU $804232dd ;** i.. BOOL              **
MUIA_Gauge_InfoText             EQU $8042bf15 ;** isg char *            **
MUIA_Gauge_Max                  EQU $8042bcdb ;** isg LONG              **



;****************************************************************************
;** Scale.mui 7.38 (10.02.94)                                              **
;****************************************************************************

;** Attributes **

MUIA_Scale_Horiz                EQU $8042919a ;** isg BOOL              **



;****************************************************************************
;** Boopsi.mui 7.37 (10.02.94)                                             **
;****************************************************************************

;** Attributes **

MUIA_Boopsi_Class               EQU $80426999 ;** isg struct IClass *   **
MUIA_Boopsi_ClassID             EQU $8042bfa3 ;** isg char *            **
MUIA_Boopsi_MaxHeight           EQU $8042757f ;** isg ULONG             **
MUIA_Boopsi_MaxWidth            EQU $8042bcb1 ;** isg ULONG             **
MUIA_Boopsi_MinHeight           EQU $80422c93 ;** isg ULONG             **
MUIA_Boopsi_MinWidth            EQU $80428fb2 ;** isg ULONG             **
MUIA_Boopsi_Object              EQU $80420178 ;** ..g Object *          **
MUIA_Boopsi_Remember            EQU $8042f4bd ;** i.. ULONG             **
MUIA_Boopsi_TagDrawInfo         EQU $8042bae7 ;** isg ULONG             **
MUIA_Boopsi_TagScreen           EQU $8042bc71 ;** isg ULONG             **
MUIA_Boopsi_TagWindow           EQU $8042e11d ;** isg ULONG             **



;****************************************************************************
;** Colorfield.mui 7.39 (10.02.94)                                         **
;****************************************************************************

;** Attributes **

MUIA_Colorfield_Blue            EQU $8042d3b0 ;** isg ULONG             **
MUIA_Colorfield_Green           EQU $80424466 ;** isg ULONG             **
MUIA_Colorfield_Pen             EQU $8042713a ;** ..g ULONG             **
MUIA_Colorfield_Red             EQU $804279f6 ;** isg ULONG             **
MUIA_Colorfield_RGB             EQU $8042677a ;** isg ULONG *           **



;****************************************************************************
;** List.mui 7.22 (28.11.93)                                               **
;****************************************************************************

;** Methods **

MUIM_List_Clear                EQU $8042ad89
MUIM_List_Exchange             EQU $8042468c
MUIM_List_GetEntry             EQU $804280ec
MUIM_List_Insert               EQU $80426c87
MUIM_List_InsertSingle         EQU $804254d5
MUIM_List_Jump                 EQU $8042baab
MUIM_List_NextSelected         EQU $80425f17
MUIM_List_Redraw               EQU $80427993
MUIM_List_Remove               EQU $8042647e
MUIM_List_Select               EQU $804252d8
MUIM_List_Sort                 EQU $80422275

;** Attributes **

MUIA_List_Active                EQU $8042391c ;** isg LONG              **
MUIA_List_AdjustHeight          EQU $8042850d ;** i.. BOOL              **
MUIA_List_AdjustWidth           EQU $8042354a ;** i.. BOOL              **
MUIA_List_CompareHook           EQU $80425c14 ;** is. struct Hook *     **
MUIA_List_ConstructHook         EQU $8042894f ;** is. struct Hook *     **
MUIA_List_DestructHook          EQU $804297ce ;** is. struct Hook *     **
MUIA_List_DisplayHook           EQU $8042b4d5 ;** is. struct Hook *     **
MUIA_List_Entries               EQU $80421654 ;** ..g LONG              **
MUIA_List_First                 EQU $804238d4 ;** ..g LONG              **
MUIA_List_Format                EQU $80423c0a ;** isg STRPTR            **
MUIA_List_MultiTestHook         EQU $8042c2c6 ;** is. struct Hook *     **
MUIA_List_Quiet                 EQU $8042d8c7 ;** .s. BOOL              **
MUIA_List_SourceArray           EQU $8042c0a0 ;** i.. APTR              **
MUIA_List_Title                 EQU $80423e66 ;** isg char *            **
MUIA_List_Visible               EQU $8042191f ;** ..g LONG              **

MUIV_List_Active_Off             EQU -1
MUIV_List_Active_Top             EQU -2
MUIV_List_Active_Bottom          EQU -3
MUIV_List_Active_Up              EQU -4
MUIV_List_Active_Down            EQU -5
MUIV_List_Active_PageUp          EQU -6
MUIV_List_Active_PageDown        EQU -7
MUIV_List_ConstructHook_String   EQU -1
MUIV_List_CopyHook_String        EQU -1
MUIV_List_CursorType_None        EQU 0
MUIV_List_CursorType_Bar         EQU 1
MUIV_List_CursorType_Rect        EQU 2
MUIV_List_DestructHook_String    EQU -1


;****************************************************************************
;** Floattext.mui 7.40 (10.02.94)                                          **
;****************************************************************************

;** Attributes **

MUIA_Floattext_Justify          EQU $8042dc03 ;** isg BOOL              **
MUIA_Floattext_SkipChars        EQU $80425c7d ;** is. STRPTR            **
MUIA_Floattext_TabSize          EQU $80427d17 ;** is. LONG              **
MUIA_Floattext_Text             EQU $8042d16a ;** isg STRPTR            **



;****************************************************************************
;** Volumelist.mui 7.37 (10.02.94)                                         **
;****************************************************************************


;****************************************************************************
;** Scrmodelist.mui 7.45 (10.02.94)                                        **
;****************************************************************************

;** Attributes **




;****************************************************************************
;** Dirlist.mui 7.38 (10.02.94)                                            **
;****************************************************************************

;** Methods **

MUIM_Dirlist_ReRead            EQU $80422d71

;** Attributes **

MUIA_Dirlist_AcceptPattern      EQU $8042760a ;** is. STRPTR            **
MUIA_Dirlist_Directory          EQU $8042ea41 ;** is. STRPTR            **
MUIA_Dirlist_DrawersOnly        EQU $8042b379 ;** is. BOOL              **
MUIA_Dirlist_FilesOnly          EQU $8042896a ;** is. BOOL              **
MUIA_Dirlist_FilterDrawers      EQU $80424ad2 ;** is. BOOL              **
MUIA_Dirlist_FilterHook         EQU $8042ae19 ;** is. struct Hook *     **
MUIA_Dirlist_MultiSelDirs       EQU $80428653 ;** is. BOOL              **
MUIA_Dirlist_NumBytes           EQU $80429e26 ;** ..g LONG              **
MUIA_Dirlist_NumDrawers         EQU $80429cb8 ;** ..g LONG              **
MUIA_Dirlist_NumFiles           EQU $8042a6f0 ;** ..g LONG              **
MUIA_Dirlist_Path               EQU $80426176 ;** ..g STRPTR            **
MUIA_Dirlist_RejectIcons        EQU $80424808 ;** is. BOOL              **
MUIA_Dirlist_RejectPattern      EQU $804259c7 ;** is. STRPTR            **
MUIA_Dirlist_SortDirs           EQU $8042bbb9 ;** is. LONG              **
MUIA_Dirlist_SortHighLow        EQU $80421896 ;** is. BOOL              **
MUIA_Dirlist_SortType           EQU $804228bc ;** is. LONG              **
MUIA_Dirlist_Status             EQU $804240de ;** ..g LONG              **

MUIV_Dirlist_SortDirs_First      EQU 0
MUIV_Dirlist_SortDirs_Last       EQU 1
MUIV_Dirlist_SortDirs_Mix        EQU 2
MUIV_Dirlist_SortType_Name       EQU 0
MUIV_Dirlist_SortType_Date       EQU 1
MUIV_Dirlist_SortType_Size       EQU 2
MUIV_Dirlist_Status_Invalid      EQU 0
MUIV_Dirlist_Status_Reading      EQU 1
MUIV_Dirlist_Status_Valid        EQU 2


;****************************************************************************
;** Group.mui 7.12 (28.11.93)                                              **
;****************************************************************************

;** Methods **


;** Attributes **

MUIA_Group_ActivePage           EQU $80424199 ;** isg LONG              **
MUIA_Group_Child                EQU $804226e6 ;** i.. Object *          **
MUIA_Group_Columns              EQU $8042f416 ;** is. LONG              **
MUIA_Group_Horiz                EQU $8042536b ;** i.. BOOL              **
MUIA_Group_HorizSpacing         EQU $8042c651 ;** is. LONG              **
MUIA_Group_PageMode             EQU $80421a5f ;** is. BOOL              **
MUIA_Group_Rows                 EQU $8042b68f ;** is. LONG              **
MUIA_Group_SameHeight           EQU $8042037e ;** i.. BOOL              **
MUIA_Group_SameSize             EQU $80420860 ;** i.. BOOL              **
MUIA_Group_SameWidth            EQU $8042b3ec ;** i.. BOOL              **
MUIA_Group_Spacing              EQU $8042866d ;** is. LONG              **
MUIA_Group_VertSpacing          EQU $8042e1bf ;** is. LONG              **



;****************************************************************************
;** Group.mui 7.12 (28.11.93)                                              **
;****************************************************************************

;** Attributes **

MUIA_Register_Frame             EQU $8042349b ;** i.g BOOL              **
MUIA_Register_Titles            EQU $804297ec ;** i.g STRPTR *          **



;****************************************************************************
;** Virtgroup.mui 7.37 (10.02.94)                                          **
;****************************************************************************

;** Methods **


;** Attributes **

MUIA_Virtgroup_Height           EQU $80423038 ;** ..g LONG              **
MUIA_Virtgroup_Left             EQU $80429371 ;** isg LONG              **
MUIA_Virtgroup_Top              EQU $80425200 ;** isg LONG              **
MUIA_Virtgroup_Width            EQU $80427c49 ;** ..g LONG              **



;****************************************************************************
;** Scrollgroup.mui 7.35 (10.02.94)                                        **
;****************************************************************************

;** Attributes **

MUIA_Scrollgroup_Contents       EQU $80421261 ;** i.. Object *          **



;****************************************************************************
;** Scrollbar.mui 7.12 (28.11.93)                                          **
;****************************************************************************


;****************************************************************************
;** Listview.mui 7.13 (28.11.93)                                           **
;****************************************************************************

;** Attributes **

MUIA_Listview_ClickColumn       EQU $8042d1b3 ;** ..g LONG              **
MUIA_Listview_DefClickColumn    EQU $8042b296 ;** isg LONG              **
MUIA_Listview_DoubleClick       EQU $80424635 ;** i.g BOOL              **
MUIA_Listview_Input             EQU $8042682d ;** i.. BOOL              **
MUIA_Listview_List              EQU $8042bcce ;** i.. Object *          **
MUIA_Listview_MultiSelect       EQU $80427e08 ;** i.. LONG              **
MUIA_Listview_SelectChange      EQU $8042178f ;** ..g BOOL              **

MUIV_Listview_MultiSelect_None    EQU 0
MUIV_Listview_MultiSelect_Default EQU 1
MUIV_Listview_MultiSelect_Shifted EQU 2
MUIV_Listview_MultiSelect_Always  EQU 3


;****************************************************************************
;** Radio.mui 7.12 (28.11.93)                                              **
;****************************************************************************

;** Attributes **

MUIA_Radio_Active               EQU $80429b41 ;** isg LONG              **
MUIA_Radio_Entries              EQU $8042b6a1 ;** i.. STRPTR *          **



;****************************************************************************
;** Cycle.mui 7.16 (28.11.93)                                              **
;****************************************************************************

;** Attributes **

MUIA_Cycle_Active               EQU $80421788 ;** isg LONG              **
MUIA_Cycle_Entries              EQU $80420629 ;** i.. STRPTR *          **

MUIV_Cycle_Active_Next           EQU -1
MUIV_Cycle_Active_Prev           EQU -2


;****************************************************************************
;** Slider.mui 7.12 (28.11.93)                                             **
;****************************************************************************

;** Attributes **

MUIA_Slider_Level               EQU $8042ae3a ;** isg LONG              **
MUIA_Slider_Max                 EQU $8042d78a ;** i.. LONG              **
MUIA_Slider_Min                 EQU $8042e404 ;** i.. LONG              **
MUIA_Slider_Quiet               EQU $80420b26 ;** i.. BOOL              **
MUIA_Slider_Reverse             EQU $8042f2a0 ;** isg BOOL              **



;****************************************************************************
;** Coloradjust.mui 7.47 (10.02.94)                                        **
;****************************************************************************

;** Attributes **

MUIA_Coloradjust_Blue           EQU $8042b8a3 ;** isg ULONG             **
MUIA_Coloradjust_Green          EQU $804285ab ;** isg ULONG             **
MUIA_Coloradjust_ModeID         EQU $8042ec59 ;** isg ULONG             **
MUIA_Coloradjust_Red            EQU $80420eaa ;** isg ULONG             **
MUIA_Coloradjust_RGB            EQU $8042f899 ;** isg ULONG *           **



;****************************************************************************
;** Palette.mui 7.36 (10.02.94)                                            **
;****************************************************************************

;** Attributes **

MUIA_Palette_Entries            EQU $8042a3d8 ;** i.g struct MUI_Palette_Entry * **
MUIA_Palette_Groupable          EQU $80423e67 ;** isg BOOL              **
MUIA_Palette_Names              EQU $8042c3a2 ;** isg char **           **



;****************************************************************************
;** Colorpanel.mui 7.12 (10.02.94)                                         **
;****************************************************************************

;** Methods **


;** Attributes **




;****************************************************************************
;** Popstring.mui 7.19 (02.12.93)                                          **
;****************************************************************************

;** Methods **

MUIM_Popstring_Close           EQU $8042dc52
MUIM_Popstring_Open            EQU $804258ba

;** Attributes **

MUIA_Popstring_Button           EQU $8042d0b9 ;** i.g Object *          **
MUIA_Popstring_CloseHook        EQU $804256bf ;** isg struct Hook *     **
MUIA_Popstring_OpenHook         EQU $80429d00 ;** isg struct Hook *     **
MUIA_Popstring_String           EQU $804239ea ;** i.g Object *          **
MUIA_Popstring_Toggle           EQU $80422b7a ;** isg BOOL              **



;****************************************************************************
;** Popobject.mui 7.18 (02.12.93)                                          **
;****************************************************************************

;** Attributes **

MUIA_Popobject_Follow           EQU $80424cb5 ;** isg BOOL              **
MUIA_Popobject_Light            EQU $8042a5a3 ;** isg BOOL              **
MUIA_Popobject_Object           EQU $804293e3 ;** i.g Object *          **
MUIA_Popobject_ObjStrHook       EQU $8042db44 ;** isg struct Hook *     **
MUIA_Popobject_StrObjHook       EQU $8042fbe1 ;** isg struct Hook *     **
MUIA_Popobject_Volatile         EQU $804252ec ;** isg BOOL              **



;****************************************************************************
;** Popasl.mui 7.5 (03.12.93)                                              **
;****************************************************************************

;** Attributes **

MUIA_Popasl_Active              EQU $80421b37 ;** ..g BOOL              **
MUIA_Popasl_StartHook           EQU $8042b703 ;** isg struct Hook *     **
MUIA_Popasl_StopHook            EQU $8042d8d2 ;** isg struct Hook *     **
MUIA_Popasl_Type                EQU $8042df3d ;** i.g ULONG             **

;****************************************************************************
;** Macro section - Some macros thrown away                                **
;****************************************************************************

*** Macro to move a tagitem to stack if it is given

cmv3  MACRO ; Tag
   IFNC  '\1',''
      move.l   \1,-(sp)
   ENDC
      ENDM

*** DoMethod macro for easier assembler DoMethod'ing, max 20 tagitems.
*** Note that _DoMethod is defined in amiga.lib, so you must link
*** your own object code with it.

DoMethod    MACRO ; obj, MethodID, tag1, [...]
            movem.l  a0/a2,-(sp)
            move.l   sp,a2
            clr.l    -(sp)
            cmv3     \L
            cmv3     \K
            cmv3     \J
            cmv3     \I
            cmv3     \H
            cmv3     \G
            cmv3     \F
            cmv3     \E
            cmv3     \D
            cmv3     \C
            cmv3     \B
            cmv3     \A
            cmv3     \9
            cmv3     \8
            cmv3     \7
            cmv3     \6
            cmv3     \5
            cmv3     \4
            cmv3     \3
            cmv3     \2
            cmv3     \1
            jsr      _DoMethod
            move.l   a2,sp
            movem.l  (sp)+,a0/a2
            ENDM

*** MUI_Request macro for easier assembler MUI_Request'ing, max
*** 20 tagitems.

MUI_Request MACRO    ; app,win,flags,title,gadgets,format,[params,...]
            movem.l  a0-a4,-(sp)
            move.l   sp,a4
            cmv3     \L
            cmv3     \K
            cmv3     \J
            cmv3     \I
            cmv3     \H
            cmv3     \G
            cmv3     \F
            cmv3     \E
            cmv3     \D
            cmv3     \C
            cmv3     \B
            cmv3     \A
            cmv3     \9
            cmv3     \8
            cmv3     \7
            move.l   a4,a3
            move.l   #\6,a2
            move.l   #\5,a1
            move.l   #\4,a0
            move.l   #\3,d2
            move.l   \2,d1
            move.l   \1,d0
            CALLMUI  MUI_RequestA
            move.l   a4,sp
            movem.l  (sp)+,a0-a4
            ENDM

Child          EQU   MUIA_Group_Child
SubWindow      EQU   MUIA_Application_Window
WindowContents EQU   MUIA_Window_RootObject


****************************************************************************
**
** Controlling Objects
** -------------------
**
** set() and get() are two short stubs for BOOPSI GetAttr() and SetAttrs()
** calls:
**
** {
**    char *x;
**
**    set(obj,MUIA_String_Contents,"foobar");
**    get(obj,MUIA_String_Contents,&x);
**
**    printf("gadget contains '%s'\n",x);
** }
**
****************************************************************************

****************************************************************************
***
*** And the above C example in assembler:
***
*** seti obj,#MUIA_String_Contents,#foobar
*** geti obj,#MUIA_String_Contents,#x
***   move.l   #myfmt,d1
***   move.l   #data,d2
***   CALLDOS VPrintf
***
*** foobar     dc.b  "foobar",0
***            even
*** data       dc.l  x
*** x          dcb.b 10
*** myfmt      dc.b  "gadget contains '%s'",10,0
***            even
***
*** The names of the set and get macros have been changed to seti and geti
*** since most assemblers already have the pseudo op-code SET.
*** Note that seti is designed to take multiple tagitems (max 8).
***
****************************************************************************

geti  MACRO ; obj,attr,store
      move.l   \2,d0
      move.l   \1,a0
      move.l   \3,a1
      CALLINT GetAttr
      ENDM
seti  MACRO ; obj,attr,value [,attr,value,...]
      move.l   sp,a2
      cmv3     #TAG_DONE
      cmv3     \9
      cmv3     \8
      cmv3     \7
      cmv3     \6
      cmv3     \5
      cmv3     \4
      cmv3     \3
      cmv3     \2
      move.l   \1,a0
      move.l   sp,a1
      CALLINT SetAttrsA
      move.l   a2,sp
      ENDM

nnseti  MACRO ; obj,attr,value [,attr,value,...]
        move.l   sp,a2
        cmv3     #TAG_DONE
        cmv3     #TRUE
        cmv3     #MUIA_Notify
        cmv3     \9
        cmv3     \8
        cmv3     \7
        cmv3     \6
        cmv3     \5
        cmv3     \4
        cmv3     \3
        cmv3     \2
        move.l   \1,a0
        move.l   sp,a1
        CALLINT SetAttrsA
        move.l   a2,sp
        ENDM

setmutex MACRO ; obj,n
      seti \1,#MUIA_Radio_Active,\2
      ENDM
setcycle MACRO ; obj,n
      seti \1,#MUIA_Cycle_Active,\2
      ENDM
setstring MACRO ; obj,s
      seti \1,#MUIA_String_Contents,\2
      ENDM
setcheckmark MACRO ; obj,b
      seti \1,#MUIA_Selected,\2
      ENDM
setslider MACRO ; obj,l
      seti \1,#MUIA_Slider_Level,\2
      ENDM

***************************************************************************
**
** For Boopsi Image Implementors Only:
**
** If MUI is using a boopsi image object, it will send a special method
** immediately after object creation. This method has a parameter structure
** where the boopsi can fill in its minimum and maximum size and learn if
** its used in a horizontal or vertical context.
**
** The boopsi image must use the method id (MUIM_BoopsiQuery) as return
** value. That's how MUI sees that the method is implemented.
**
** Note: MUI does not depend on this method. If the boopsi image doesn't
**       implement it, minimum size will be 0 and maximum size unlimited.
**
***************************************************************************

MUIM_BoopsiQuery EQU          $80427157 ;this is send to the boopsi and
                                        ;must be used as return value

;;;;;;;;;!!!!!!!!!!!!!

;                STRUCTURE    MUI_BoopsiQuery,0   ; parameter structure
;	ULONG mbq_MethodID               ; always MUIM_BoopsiQuery
;	STRUCT Screen,mbq_Screen         ; obsolete, use mbq_RenderInfo
;	ULONG mbq_Flags                  ; read only, see below
;	LONG mbq_MinWidth                ; write only, fill in min width 
;	LONG mbq_MinHeight               ; write only, fill in min height
;	LONG mbq_MaxWidth                ; write only, fill in max width 
;	LONG mbq_MaxHeight               ; write only, fill in max height
;	LONG mbq_DefWidth                ; write only, fill in def width 
;	LONG mbq_DefHeight               ; write only, fill in def height
;	struct MUI_RenderInfo *mbq_RenderInfo   ; read only, display context
;                LABEL        MUI_BoopsiQuery_SIZEOF

	;may grow in future ...

;;;; MUIP_BoopsiQuery EQU MUI_BoopsiQuery  ; old structure name

MBQF_HORIZ       EQU 1<<0           ; object used in a horizontal
                                     ; context (else vertical)    

MBQ_MUI_MAXMAX   EQU 10000          ; use this for unlimited MaxWidth/Height


   ENDC  ;LIBRARIES_MUI_I
