• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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  */
31 class SkSettingsWidget : public QFrame {
32     Q_OBJECT
33 
34 public:
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.
isGLActive()44     bool isGLActive() const {
45         return fGLGroup.isChecked();
46     }
47 
getGLSampleCount()48     int getGLSampleCount() const {
49         return fGLMSAACombo.itemData(fGLMSAACombo.currentIndex()).toInt();
50     }
51 
52 #endif
53 
getFilterOverride(SkFilterQuality * filterQuality)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.
isRasterEnabled()63     bool isRasterEnabled() {
64         return fRasterGroup.isChecked();
65     }
66 
isOverdrawVizEnabled()67     bool isOverdrawVizEnabled() {
68         return fOverdrawVizCheckBox.isChecked();
69     }
70 
71     // Visualizations.
isVisibilityFilterEnabled()72     bool isVisibilityFilterEnabled() const {
73         return fVisibilityFilterCheckBox.isChecked();
74     }
75 
isMegaVizEnabled()76     bool isMegaVizEnabled() {
77         return fMegaVizCheckBox.isChecked();
78     }
79 
isPathOpsEnabled()80     bool isPathOpsEnabled() {
81         return fPathOpsCheckBox.isChecked();
82     }
83 
84 private Q_SLOTS:
85 
86 Q_SIGNALS:
87     void visualizationsChanged();
88     void texFilterSettingsChanged();
89 #if SK_SUPPORT_GPU
90     void glSettingsChanged();
91 #endif
92     void rasterSettingsChanged();
93 
94 private:
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