#ifndef UNIVPROPDLG_H
#define UNIVPROPDLG_H

#include "../include/osw-x.h"
#include "../include/widget.h"
#include "unvlist.h"
#include "unvlistwin.h"


typedef struct _xsw_unvprop_dlg_struct	xsw_unvprop_dlg_struct;
#define XSW_UNVPROP_DLG(p)	((xsw_unvprop_dlg_struct *)(p))


/*
 *	Universe Properties Dialog:
 */
struct _xsw_unvprop_dlg_struct {

	bool_t		map_state,
			has_focus,
			disabled;
	int		freeze_count,
			busy_count;
	int		x, y;
	unsigned int	width, height;
	visibility_t	visibility_state;
	font_t		*font;

	win_t		toplevel;

	push_button_struct	touch_btn,
				reset_btn,
				ok_btn,
				apply_btn,
				cancel_btn;

	prompt_struct	alias_prompt,
			url_prompt,
			comments_prompt;

	label_struct	last_connected_label;

	xsw_unvlist_win_struct	*ulw;
	int		univ_num;	/* Currently editing this universe
					 * item */

};


/* unveditdlg.cpp */
extern "C" void UnvPropDlgSetValues(
	xsw_unvprop_dlg_struct *dlg,
	list_item_struct *item,
	unvitem_struct *uitem
);

extern "C" xsw_unvprop_dlg_struct *UnvPropDlgNew(
	xsw_unvlist_win_struct *ulw
);
extern "C" void UnvPropDlgDraw(xsw_unvprop_dlg_struct *dlg);
extern "C" void UnvPropDlgQueueDraw(xsw_unvprop_dlg_struct *dlg);
extern "C" int UnvPropDlgManage(xsw_unvprop_dlg_struct *dlg, event_t *event);
extern "C" void UnvPropDlgMap(xsw_unvprop_dlg_struct *dlg);
extern "C" void UnvPropDlgUnmap(xsw_unvprop_dlg_struct *dlg);
extern "C" void UnvPropDlgDelete(xsw_unvprop_dlg_struct *dlg);


#endif	/* UNIVPROPDLG_H */