/* $XConsortium: Dialog.h,v 1.22 90/05/08 15:22:30 converse Exp $ */


/***********************************************************
Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
and the Massachusetts Institute of Technology, Cambridge, Massachusetts.

                        All Rights Reserved

Permission to use, copy, modify, and distribute this software and its 
documentation for any purpose and without fee is hereby granted, 
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in 
supporting documentation, and that the names of Digital or MIT not be
used in advertising or publicity pertaining to distribution of the
software without specific, written prior permission.  

DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.

C++ Interface Author: Roman J. Budzianowski - Project Athena MIT

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

#ifndef _Dialog_h
#define _Dialog_h

#include <X11/Xaw/Form.h>

/***********************************************************************
 *
 * Dialog Widget
 *
 ***********************************************************************/

/* Parameters:

 Name		     Class		RepType		Default Value
 ----		     -----		-------		-------------
 background	     Background		Pixel		XtDefaultBackground
 border		     BorderColor	Pixel		XtDefaultForeground
 borderWidth	     BorderWidth	Dimension	1
 destroyCallback     Callback		Pointer		NULL
 height		     Height		Dimension	computed at create
 icon		     Icon		Pixmap		0
 label		     Label		String		NULL
 mappedWhenManaged   MappedWhenManaged	Boolean		True
 sensitive	     Sensitive		Boolean		True
 value		     Value		String		NULL
 width		     Width		Dimension	computed at create
 x		     Position		Position	0
 y		     Position		Position	0

*/

#define XtCIcon "Icon"

#define XtNicon "icon"

//typedef struct _DialogClassRec	*DialogWidgetClass;

extern WidgetClass dialogWidgetClass;

extern "C" {	

extern void XawDialogAddButton(
    Widget		/* dialog */,
    const String	/* name */,
    XtCallbackProc	/* function */,
    XtPointer		/* client_data */
);

extern char *XawDialogGetValueString(
    Widget		/* w */
);

}

class DialogWidget :public FormWidget {
 protected:
    /* resources */
    String	label;		/* description of the dialog	*/
    String	value;		/* for the user response	*/
    Pixmap	icon;		/* icon bitmap			*/
    /* private data */
    Widget	iconW;		/* widget to display the icon	*/
    Widget	labelW;		/* widget to display description*/
    Widget	valueW;		/* user response TextWidget	*/
  public:
    char* GetValueString() { return XawDialogGetValueString(this); }
    void  AddButton(const String name, XtCallbackProc proc, XtPointer data)
      { XawDialogAddButton(this, name, proc, data); }
    Constructors(Dialog, dialog) {}
};

#endif /* _Dialog_h */
/* DON'T ADD STUFF AFTER THIS #endif */
