khanat-opennel-code/code/nel/samples/3d/nel_qt/graphics_config.h

123 lines
3.8 KiB
C++

// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero 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 Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. 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 */