/*
**	dialog.c
**
*/

#include <X11/Intrinsic.h>
#include <X11/Command.h>
#include <X11/Dialog.h>
#include <X11/StringDefs.h>

#define  XtNinput	"input"

void make_dialog (parent_widget,
		dialog_widget, dialog_name, 
		dialog_label, default_string,
		sensitivity, border_width, 
		b1_name, b1_calls, b2_name, b2_calls, b3_name, b3_calls,
		left_neighbour, left_distance, top_neighbour, top_distance)

Widget		parent_widget, *dialog_widget, left_neighbour, top_neighbour;
String		dialog_name, dialog_label, default_string, b1_name, b2_name,
		b3_name;
int		left_distance, top_distance;
Dimension	border_width;
XtCallbackRec	*b1_calls, *b2_calls, *b3_calls;
Boolean		sensitivity;

{
	int	i;
	Arg	dialog_args [30];
	Widget	d1_button, d2_button, d3_button;

	i = 0;
	XtSetArg (dialog_args [i], XtNlabel, (XtArgVal) dialog_label);
	i++;
	XtSetArg (dialog_args [i], XtNvalue, (XtArgVal) default_string);
	i++;
	XtSetArg (dialog_args [i], XtNsensitive, (XtArgVal) sensitivity);
	i++;
	XtSetArg (dialog_args [i], XtNborderWidth, (XtArgVal) border_width);
	i++;
	XtSetArg (dialog_args [i], XtNfromHoriz, (XtArgVal) left_neighbour);
	i++;
	XtSetArg (dialog_args [i], XtNhorizDistance, (XtArgVal) left_distance);
	i++;
	XtSetArg (dialog_args [i], XtNfromVert, (XtArgVal) top_neighbour);
	i++;
	XtSetArg (dialog_args [i], XtNvertDistance, (XtArgVal) top_distance);
	i++;
	XtSetArg (dialog_args [i], XtNinput, (XtArgVal) True);
	i++;

	*dialog_widget = XtCreateManagedWidget (dialog_name, dialogWidgetClass,
				parent_widget, dialog_args, i);
	if (b1_name != NULL) 
		make_button (*dialog_widget, &d1_button, "d1_button", 
			b1_name, b1_calls, NULL, 4, NULL, 4);
	if (b2_name != NULL)
		make_button (*dialog_widget, &d2_button, "d2_button",
			b2_name, b2_calls, NULL, 4, NULL, 4);
	if (b3_name != NULL)
		make_button (*dialog_widget, &d3_button, "d3_button",
			b3_name, b3_calls, NULL, 4, NULL, 4);
}

