#ifndef PREFS_DRAG_H
#define PREFS_DRAG_H
/*
**	$Id: drag.h,v 38.8 01/01/94
**
**	File format for drag preferences
**
**	(C) Copyright 1993 Silverbox Development Group by Steve Lemieux
**	All Rights Reserved
*/

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


#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif

#ifndef LIBRARIES_IFFPARSE_H
#include <libraries/iffparse.h>
#endif


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


#define MaxStr 128

#define GD_Save 0
#define GD_Use 1
#define GD_Cancel 2
#define GD_SizeGadget 3
#define GD_DragGadget 4
#define GD_CornerGadget 5
#define GD_MouseButton 6
#define GD_UndoButton 7
#define GD_SnapGadget 8
#define GD_ForceGadget 9
#define GD_PopGadget 10
#define GD_ChangePtrGadget 11
#define GD_InfoGadget 12
#define GD_DragQualGadget 13
#define GD_SizeQualGadget 14
#define GD_SnapQualGadget 15
#define GD_PopQualGadget 16
#define GD_CornerSizeGadget 17
#define GD_BorderSizeGadget 18
#define GD_ProgPriGadget 19
#define GD_HandPriGadget 20

#define LIBVERSION 37
#define Version "4.00"
#define Date "01.01.94"
#define Version2 "38.21"
#define VersionId 3821

#define AllQualifier (IEQUALIFIER_LSHIFT|IEQUALIFIER_RSHIFT|IEQUALIFIER_CONTROL|IEQUALIFIER_LALT|IEQUALIFIER_RALT|IEQUALIFIER_LCOMMAND|IEQUALIFIER_RCOMMAND)

#define DI_SIZE_LEFT 1
#define DI_SIZE_RIGHT 2
#define DI_SIZE_TOP 4
#define DI_SIZE_BUTTOM 8
#define DI_LEFTTOP (DI_SIZE_LEFT | DI_SIZE_TOP)
#define DI_RIGHTTOP (DI_SIZE_RIGHT | DI_SIZE_TOP)
#define DI_LEFTBUTTOM (DI_SIZE_LEFT | DI_SIZE_BUTTOM)
#define DI_RIGHTBUTTOM (DI_SIZE_RIGHT | DI_SIZE_BUTTOM)
#define DI_SCROLL 16
#define DI_POP 32

#define DRAGB_Drag 1
#define DRAGF_Drag (1<<DRAGB_Drag)
#define DRAGB_Size 2
#define DRAGF_Size (1<<DRAGB_Size)
#define DRAGB_Corner 3
#define DRAGF_Corner (1<<DRAGB_Corner)
#define DRAGB_Snap 4
#define DRAGF_Snap (1<<DRAGB_Snap)
#define DRAGB_Pop 5
#define DRAGF_Pop (1<<DRAGB_Pop)
#define DRAGB_Force 6
#define DRAGF_Force (1<<DRAGB_Force)
#define DRAGB_ChangePtr 7
#define DRAGF_ChangePtr (1<<DRAGB_ChangePtr)
#define DRAGB_Info 8
#define DRAGF_Info (1<<DRAGB_Info)

#define ID_PREF MAKE_ID('P','R','E','F')
#define ID_DRAG MAKE_ID('D','R','A','G')
#define ID_PRHD MAKE_ID('P','R','H','D')

#define FRAME_ACTIVE 0
#define FRAME_INACTIVE 1
#define FRAME_UNDO 2

#define BUTTON_LEFT 0
#define BUTTON_RIGHT 1
#define BUTTON_MIDDLE 2
#define BUTTON_NONE 3

struct DragPref
	{
	ULONG Id;
	ULONG Flags;
	BYTE ProgPri;
	BYTE HandPri;
	UBYTE DragQualFlags;
	UBYTE SizeQualFlags;
	UBYTE SnapQualFlags;
	UBYTE MouseButton;
	UBYTE UndoButton;
	UBYTE Size;
	UBYTE Corner;
	UBYTE PopQualFlags;
	};

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


#endif /* PREFS_DRAG_H */
