/**********************************************************************
XyGrib: meteorological GRIB file viewer
Copyright (C) 2008-2012 - Jacques Zaninetti - http://www.zygrib.org

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 3 of the License, or
(at your option) 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, see <http://www.gnu.org/licenses/>.
***********************************************************************/

#ifndef DIALOGFONTS_H
#define DIALOGFONTS_H

#include <QDialog>
#include <QFrame>
#include <QGridLayout>
#include <QLabel>
#include <QCheckBox>
#include <QComboBox>
#include <QPushButton>
#include <QButtonGroup>
#include <QRadioButton>
#include <QLineEdit>
#include <QHash>
 
#include "DialogBoxBase.h"
#include "Font.h"

//-------------------------------------------------
class FontSelector : public QWidget
{ Q_OBJECT
    public:
		FontSelector (FontCode code, const QString& txtlabel, QWidget *parent);
		
		FontCode getFontCode() { return code; }
		QFont getFont() { return font; }
		
	private:
		QFont font;
		FontCode code;

		QPushButton *btfont;
		QPushButton *btdefault;
		
    public slots:
		void  btfontClicked();
		void  btdefaultClicked();
};

//-------------------------------------------------
class DialogFonts : public DialogBoxBase
{ Q_OBJECT
    public:
        DialogFonts (QWidget *parent=NULL);
		
		QFont getFontItem (FontCode code);

		QHash <FontCode, FontSelector*> hashFontSelectors;
   
    public slots:
        void slotBtOK();
        void slotBtCancel();
    
	private:
        QFrame *frameGui;
        QGridLayout *layout;
 		
        QPushButton *btOK;
        QPushButton *btCancel;

        
        QFrame * createFrameGui(QWidget *parent);
};


#endif
