/*
    QGL ViewEditor
    Ivan Pelipenko peri4ko@yandex.ru

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser 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 Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef VIEW_EDITOR_H
#define VIEW_EDITOR_H

#include "qglview.h"

#include <QWidget>

namespace Ui {
class ViewEditor;
}

class ViewEditor: public QWidget {
	Q_OBJECT

public:
	explicit ViewEditor(QWidget * parent = 0);

	void assignQGLView(QGLView * v);

protected:
	void changeEvent(QEvent * e);

	Ui::ViewEditor * ui;
	QGLView * view = nullptr;
	bool active    = true;

private slots:
	void on_spinFOV_valueChanged(double val);
	void on_spinDepthStart_valueChanged(double val);
	void on_spinViewGamma_valueChanged(double val);
	void on_comboViewRenderMode_currentIndexChanged(int val);
	void on_groupHalos_clicked(bool val);
	void on_checkHoverHalo_clicked(bool val);
	void on_checkSelectionHalo_clicked(bool val);
	void on_spinHoverHaloFill_valueChanged(double val);
	void on_spinSelectionHaloFill_valueChanged(double val);
	void on_colorHoverHalo_colorChanged(QColor color);
	void on_colorSelectionHalo_colorChanged(QColor color);
	void on_checkAutoExposure_toggled(bool val);
	void on_checkFXAA_clicked(bool val);
	void on_checkCameraOrbit_clicked(bool val);
	void on_checkService_clicked(bool val);
	void on_checkCameraLight_stateChanged(int s);
	void on_checkVSync_clicked(bool val);
	void on_buttonHDRClear_clicked();
	void on_buttonHDRSelect_clicked();
	void on_colorFogBack_colorChanged(const QColor & color);
	void on_spinFogDensity_valueChanged(double arg1);
	void on_spinFogDecay_valueChanged(double arg1);
	void on_comboMapSizeTexture_currentIndexChanged(int index);
	void on_comboMapSizeShadow_currentIndexChanged(int index);
	void on_checkSoftShadows_clicked(bool arg1);
	void on_spinSoftShadowSamples_valueChanged(double arg1);
	void on_spinSoftShadowQuality_valueChanged(double arg1);
};

#endif // VIEW_EDITOR_H
