/*
** OpenURL - MUI preferences for openurl.library
** Written by Troels Walsted Hansen <troels@stud.cs.uit.no>
** Placed in the public domain.
**
** Methods, attributes, dispatcher and instance data definitions for the
** PrefsWin Window.mui subclass.
*/

/**************************************************************************/

#define MUIM_PrefsWin_Add                    (TAGBASE_PREFSWIN + 25)
#define MUIM_PrefsWin_Edit                   (TAGBASE_PREFSWIN + 26)
#define MUIM_PrefsWin_Clone                  (TAGBASE_PREFSWIN + 27)
#define MUIM_PrefsWin_Delete                 (TAGBASE_PREFSWIN + 28)
#define MUIM_PrefsWin_ActiveChanged          (TAGBASE_PREFSWIN + 29)
#define MUIM_PrefsWin_GetPrefs               (TAGBASE_PREFSWIN + 30)
#define MUIM_PrefsWin_StorePrefs             (TAGBASE_PREFSWIN + 31)
#define MUIM_PrefsWin_About                  (TAGBASE_PREFSWIN + 32)

struct MUIP_PrefsWin_Add                     { ULONG MethodID; };
struct MUIP_PrefsWin_Edit                    { ULONG MethodID; };
struct MUIP_PrefsWin_Clone                   { ULONG MethodID; };
struct MUIP_PrefsWin_Delete                  { ULONG MethodID; };
struct MUIP_PrefsWin_ActiveChanged           { ULONG MethodID; };
struct MUIP_PrefsWin_GetPrefs                { ULONG MethodID; ULONG Defaults; };
struct MUIP_PrefsWin_StorePrefs              { ULONG MethodID; ULONG How; };
struct MUIP_PrefsWin_About                   { ULONG MethodID; };

#define MUIV_PrefsWin_StorePrefs_Save 0
#define MUIV_PrefsWin_StorePrefs_Use  1

/**************************************************************************/

SAVEDS ASM ULONG PrefsWin_Dispatcher(REG(a0) struct IClass *cl, REG(a2) Object *obj, REG(a1) Msg msg);

/**************************************************************************/

struct PrefsWin_Data
{
	Object *RegisterGrpObj;

	Object *BrowserLstObj;
	Object *AddButObj;
	Object *EditButObj;
	Object *CloneButObj;
	Object *DeleteButObj;

	Object *ShowChkObj;
	Object *BringToFrontChkObj;
	Object *NewWindowChkObj;
	Object *LaunchChkObj;

	Object *SaveButObj;
	Object *UseButObj;
	Object *CancelButObj;

	struct Hook ConstructHook;
	struct Hook DestructHook;
	struct Hook DisplayHook;

	ULONG   NotifiesAdded;
};
