#ifndef _KVI_HTMLDIALOG_H_
#define _KVI_HTMLDIALOG_H_
//=============================================================================
//
//   File : kvi_htmldialog.h
//   Created on Wed 03 Jan 2007 03:36:36 by Szymon Stefanek
//
//   This file is part of the KVIrc IRC Client distribution
//   Copyright (C) 2007 Szymon Stefanek <pragma at kvirc dot net>
//
//   This program is FREE software. You can redistribute it and/or
//   modify it under the terms of the GNU General Public License
//   as published by the Free Software Foundation; either version 2
//   of the License, or (at your opinion) any later version.
//
//   This program is distributed in the HOPE that it will be USEFUL,
//   but WITHOUT ANY WARRANTY; without even the implied warranty of
//   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
//   See the GNU General Public License for more details.
//
//   You should have received a copy of the GNU General Public License
//   along with this program. If not, write to the Free Software Foundation,
//   Inc. ,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
//=============================================================================

#include "kvi_qstring.h"
#include "kvi_settings.h"


#include <tqpixmap.h>
#include <tqdialog.h>

class KviHtmlDialogData
{
public:
	// input
	
	// mandatory fields
	enum Flags { ForceMinimumSize = 1 };
	int iFlags;               // da flags :)
	int iDefaultButton;       // the button to use when Enter is pressed (1,2 or 3)
	int iCancelButton;        // the button to use when Esc is pressed (1,2 or 3)
	TQString szHtmlText;       // Shouldn't be empty :D
	
	// optional fields
	TQString szCaption;        // KVIrc is used when this is empty
	TQString szUpperLabelText; // no label is shown if this is empty
	TQString szLowerLabelText; // no label is shown if this is empty
	TQString szButton1Text;    // OK is used if this is empty
	TQString szButton2Text;    // no button is shown if this is empty
	TQString szButton3Text;    // no button is shown if this is empty

	int iMinimumWidth;
	int iMinimumHeight;

	TQPixmap pixIcon;          // may be null

	// output
	int iSelectedButton;      // returns 1,2 or 3
};

class KVIRC_API KviHtmlDialog : public TQDialog
{
	TQ_OBJECT
  
public:
	// the dialog does NOT delete this structure and assumes that
	// it remains alive until the dialog closes (i.e. it may access
	// the structure in the destructor
	KviHtmlDialog(TQWidget * pParent,KviHtmlDialogData * pData);
	~KviHtmlDialog();
protected:
	KviHtmlDialogData * m_pData;
public:
	// displays the dialog as modal and returns 1,2 or 3
	static int display(TQWidget * pParent,KviHtmlDialogData * pData);
protected slots:
	void button1Pressed();
	void button2Pressed();
	void button3Pressed();
protected:
	virtual void reject();
};



#endif //!_KVI_HTMLDIALOG_H_
