khanat-opennel-code/code/nel/samples/3d/nel_qt/graphics_config.h
2010-05-06 02:08:41 +02:00

135 lines
4 KiB
C++

/**
* CGraphicsConfig
* $Id: graphics_config.h 2247 2010-02-15 21:16:38Z kaetemi $
* \file graphics_config.h
* \brief CGraphicsConfig
* \date 2010-02-07 10:15GMT
* \author Jan Boon (Kaetemi)
*/
/*
* Copyright (C) 2010 by authors
*
* This file is part of NEL QT.
* NEL QT 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 option) any later version.
*
* NEL QT 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 NEL QT; see the file COPYING. If not, see
* <http://www.gnu.org/licenses/>.
*/
#ifndef NLQT_GRAPHICS_CONFIG_H
#define NLQT_GRAPHICS_CONFIG_H
#include <nel/misc/types_nl.h>
// STL includes
// Qt includes
#include <QtGui/QWidget>
#include <QtGui/QCheckBox>
#include <QtGui/QPushButton>
#include <QtGui/QGroupBox>
#include <QtGui/QComboBox>
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
// NeL includes
#include <nel/misc/config_file.h>
#include <nel/misc/rgba.h>
// Project includes
#include "qtcolorpicker.h"
class QUndoStack;
namespace NLQT {
class CMainWindow;
class CConfiguration;
class CInternationalization;
/**
* CGraphicsConfig
* \brief CGraphicsConfig
* \date 2010-02-07 10:15GMT
* \author Jan Boon (Kaetemi)
*/
class CGraphicsConfig : public QWidget
{
Q_OBJECT
public:
CGraphicsConfig(QWidget *parent, CConfiguration *configuration, CInternationalization *internationalization, QUndoStack *undoStack);
virtual ~CGraphicsConfig();
void incbTranslate();
inline bool getGraphicsEnabled() const { return m_Enabled->isChecked(); }
inline std::string getGraphicsDriver() const { std::string v = std::string(m_Driver->currentText().toAscii()); return v; }
inline std::string getFontName() const { std::string v = std::string(m_FontName->text().toAscii()); return v; }
inline NLMISC::CRGBA getBackgroundColor() const { QColor c = m_BackgroundColor->currentColor(); NLMISC::CRGBA v(c.red(), c.green(), c.blue()); return v; }
inline bool getFontShadow() const { return m_FontShadow->isChecked(); }
inline std::string getScreenshotName() const { return "nel_qt"; }
inline bool getScreenshotJPG() const { return true; }
inline bool getScreenshotPNG() const { return true; }
inline bool getScreenshotTGA() const { return false; }
inline std::string getScreenshotPath() const { return "screenshots"; }
private slots:
void applyPressed();
void uicbBackgroundColor(const QColor &backgroundColor);
void uicbFontShadow(bool checked);
signals:
/// GraphicsEnabled, GraphicsDriver, FontName
void applyGraphicsConfig();
void onBackgroundColor(NLMISC::CRGBA backgroundColor);
void onFontShadow(bool fontShadow);
private:
void cfcbGraphicsEnabled(NLMISC::CConfigFile::CVar &var);
void cfcbGraphicsDrivers(NLMISC::CConfigFile::CVar &var);
void cfcbGraphicsDriver(NLMISC::CConfigFile::CVar &var);
void cfcbFontName(NLMISC::CConfigFile::CVar &var);
void cfcbBackgroundColor(NLMISC::CConfigFile::CVar &var);
void cfcbFontShadow(NLMISC::CConfigFile::CVar &var);
private:
CConfiguration *m_Configuration;
CInternationalization *m_Internationalization;
QUndoStack *m_UndoStack;
QGroupBox *m_DriverGroup;
QCheckBox *m_Enabled;
QLabel *m_DriverLabel;
QComboBox *m_Driver;
QLabel *m_FontNameLabel;
QLineEdit *m_FontName;
QPushButton *m_Apply;
QGroupBox *m_RenderGroup;
QtColorPicker *m_BackgroundColor;
QCheckBox *m_FontShadow;
QGroupBox *m_ScreenshotGroup;
private:
CGraphicsConfig(const CGraphicsConfig &);
CGraphicsConfig &operator=(const CGraphicsConfig &);
}; /* class CGraphicsConfig */
} /* namespace NLQT */
#endif /* #ifndef NLQT_GRAPHICS_CONFIG_H */
/* end of file */