/*
* Copyright 2012 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef SKSETTINGSWIDGET_H_
#define SKSETTINGSWIDGET_H_
#include <QWidget>
#include <QHBoxLayout>
#include <QTextEdit>
#include <QFrame>
#include <QGroupBox>
#include <QLabel>
#include <QCheckBox>
#include <QLineEdit>
#include <QComboBox>
#include <QFormLayout>
#include "SkPaint.h"
/** \class SkSettingsWidget
The SettingsWidget contains multiple checkboxes and toggles for altering
the visualizations.
*/
class SkSettingsWidget : public QFrame {
Q_OBJECT
public:
/**
Constructs a widget with the specified parent for layout purposes.
@param parent The parent container of this widget
*/
SkSettingsWidget();
#if SK_SUPPORT_GPU
// GL settings.
bool isGLActive() const {
return fGLGroup.isChecked();
}
int getGLSampleCount() const {
return fGLMSAACombo.itemData(fGLMSAACombo.currentIndex()).toInt();
}
#endif
bool getFilterOverride(SkFilterQuality* filterQuality) const {
int index = fFilterCombo.currentIndex();
*filterQuality = (SkFilterQuality)fFilterCombo.itemData(index).toUInt();
return index > 0;
}
// Raster settings.
bool isRasterEnabled() {
return fRasterGroup.isChecked();
}
bool isOverdrawVizEnabled() {
return fOverdrawVizCheckBox.isChecked();
}
// Visualizations.
bool isVisibilityFilterEnabled() const {
return fVisibilityFilterCheckBox.isChecked();
}
bool isMegaVizEnabled() {
return fMegaVizCheckBox.isChecked();
}
bool isPathOpsEnabled() {
return fPathOpsCheckBox.isChecked();
}
private slots:
signals:
void visualizationsChanged();
void texFilterSettingsChanged();
#if SK_SUPPORT_GPU
void glSettingsChanged();
#endif
void rasterSettingsChanged();
private:
QFormLayout fVerticalLayout;
QGroupBox fVisualizationsGroup;
QVBoxLayout fVisualizationsLayout;
QCheckBox fVisibilityFilterCheckBox;
QGroupBox fRasterGroup;
QVBoxLayout fRasterLayout;
QCheckBox fOverdrawVizCheckBox;
QCheckBox fMegaVizCheckBox;
QCheckBox fPathOpsCheckBox;
#if SK_SUPPORT_GPU
QGroupBox fGLGroup;
QFormLayout fGLLayout;
QComboBox fGLMSAACombo;
#endif
QComboBox fFilterCombo;
};
#endif /* SKSETTINGSWIDGET_H_ */