/*
 * LWSDK Header File
 * Copyright 1999, NewTek, Inc.
 *
 * LWDIALOG.H -- LightWave Standard Dialogs
 *
 * LightWave makes some of its more common requests from the user using
 * standard dialogs.  These dialogs (or "requesters") are used for getting
 * files and paths for saving and loading, and for getting color choices.
 * By default, the standard system dialogs are used, but these can be
 * overridden by plug-ins of the right class.
 */
#ifndef LWSDK_DIALOG_H
#define LWSDK_DIALOG_H


/*
 * File dialogs can be configured by servers of this class.
 */
#define LWFILEREQ_CLASS		"FileRequester"
#define LWFILEREQ_VERSION	3

typedef struct st_LWFileReqLocal {
	int		 reqType;
	int		 result;
	const char	*title;
	const char	*fileType;
	char		*path;
	char		*baseName;
	char		*fullName;
	int		 bufLen;
	int	       (*pickName) (void);
} LWFileReqLocal;

#define FREQ_LOAD        1
#define FREQ_SAVE        2
#define FREQ_DIRECTORY   3
#define FREQ_MULTILOAD   4


/*
 * Color dialogs can be configured by servers of this class.
 */
#define LWCOLORPICK_CLASS	"ColorPicker"
#define LWCOLORPICK_VERSION	4

typedef void	LWHotColorFunc (void *data, float r, float g, float b);

typedef struct st_LWColorPickLocal {
	int		 result;
	const char	*title;
	float		 red, green, blue;
	void		*data;
	LWHotColorFunc	*hotFunc;
} LWColorPickLocal;

#endif

