1 2/* 3 * Copyright 2012 Google Inc. 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 9 10#ifndef SKSETTINGSWIDGET_H_ 11#define SKSETTINGSWIDGET_H_ 12 13#include <QWidget> 14#include <QHBoxLayout> 15#include <QTextEdit> 16#include <QFrame> 17#include <QGroupBox> 18#include <QLabel> 19#include <QCheckBox> 20#include <QLineEdit> 21#include <QComboBox> 22#include <QFormLayout> 23 24#include "SkPaint.h" 25 26/** \class SkSettingsWidget 27 28 The SettingsWidget contains multiple checkboxes and toggles for altering 29 the visualizations. 30 */ 31class SkSettingsWidget : public QFrame { 32 Q_OBJECT 33 34public: 35 /** 36 Constructs a widget with the specified parent for layout purposes. 37 @param parent The parent container of this widget 38 */ 39 SkSettingsWidget(); 40 41 42#if SK_SUPPORT_GPU 43 // GL settings. 44 bool isGLActive() const { 45 return fGLGroup.isChecked(); 46 } 47 48 int getGLSampleCount() const { 49 return fGLMSAACombo.itemData(fGLMSAACombo.currentIndex()).toInt(); 50 } 51 52#endif 53 54 bool getFilterOverride(SkFilterQuality* filterQuality) const { 55 int index = fFilterCombo.currentIndex(); 56 *filterQuality = (SkFilterQuality)fFilterCombo.itemData(index).toUInt(); 57 58 return index > 0; 59 } 60 61 62 // Raster settings. 63 bool isRasterEnabled() { 64 return fRasterGroup.isChecked(); 65 } 66 67 bool isOverdrawVizEnabled() { 68 return fOverdrawVizCheckBox.isChecked(); 69 } 70 71 // Visualizations. 72 bool isVisibilityFilterEnabled() const { 73 return fVisibilityFilterCheckBox.isChecked(); 74 } 75 76 bool isMegaVizEnabled() { 77 return fMegaVizCheckBox.isChecked(); 78 } 79 80 bool isPathOpsEnabled() { 81 return fPathOpsCheckBox.isChecked(); 82 } 83 84private slots: 85 86signals: 87 void visualizationsChanged(); 88 void texFilterSettingsChanged(); 89#if SK_SUPPORT_GPU 90 void glSettingsChanged(); 91#endif 92 void rasterSettingsChanged(); 93 94private: 95 QFormLayout fVerticalLayout; 96 97 QGroupBox fVisualizationsGroup; 98 QVBoxLayout fVisualizationsLayout; 99 QCheckBox fVisibilityFilterCheckBox; 100 101 QGroupBox fRasterGroup; 102 QVBoxLayout fRasterLayout; 103 QCheckBox fOverdrawVizCheckBox; 104 QCheckBox fMegaVizCheckBox; 105 QCheckBox fPathOpsCheckBox; 106 107#if SK_SUPPORT_GPU 108 QGroupBox fGLGroup; 109 QFormLayout fGLLayout; 110 QComboBox fGLMSAACombo; 111#endif 112 113 QComboBox fFilterCombo; 114}; 115 116#endif /* SKSETTINGSWIDGET_H_ */ 117