• Home
  • History
  • Annotate
  • 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 SKINSPECTORWIDGET_H_
11  #define SKINSPECTORWIDGET_H_
12  
13  #include "SkMatrix.h"
14  
15  #include <QWidget>
16  #include <QTabWidget>
17  #include <QTextEdit>
18  #include <QHBoxLayout>
19  #include <QLabel>
20  #include <QLineEdit>
21  #include <QGroupBox>
22  #include <QGridLayout>
23  
24  /** \class SkInspectorWidget
25  
26      The InspectorWidget contains the overview and details tab. These contain
27      information about the whole picture and details about each draw command.
28   */
29  class SkInspectorWidget : public QWidget {
30      Q_OBJECT
31  
32  public:
33      enum TabType {
34          kOverview_TabType,
35          kDetail_TabType,
36          kClipStack_TabType,
37          kTotalTabCount,
38      };
39  
40      /**
41          Constructs a widget with the specified parent for layout purposes.
42          @param parent  The parent container of this widget
43       */
44      SkInspectorWidget();
45  
setDisabled(bool isDisabled)46      void setDisabled(bool isDisabled) {
47          fMatrixAndClipWidget.setDisabled(isDisabled);
48      }
49  
50      /**
51          Sets the text in tab at the specified index.
52          @param text
53       */
54      void setText(QString text, TabType type);
55  
56      /**
57          Sets the text in the current matrix.
58          @param matrixValues
59       */
60      void setMatrix(const SkMatrix& matrix);
61  
62      /**
63          Sets the text in the current clip.
64          @param clipValues
65       */
66      void setClip(const SkIRect& clip);
67  
68      class Tab : public QWidget {
69          QWidget fTab;
70          QHBoxLayout fTabLayout;
71          QTextEdit fTabText;
72          QString fName;
73  
Tab(const char * name)74          Tab(const char* name) {
75              fTabText.setReadOnly(true);
76              fTabLayout.addWidget(&fTabText);
77              fTab.setLayout(&fTabLayout);
78              fName = QString(name);
79          }
80      };
81  
82  private:
83      QHBoxLayout fHorizontalLayout;
84      QTabWidget fTabWidget;
85  
86      QWidget fTabs[kTotalTabCount];
87      QHBoxLayout fTabLayouts[kTotalTabCount];
88      QTextEdit fTabTexts[kTotalTabCount];
89  
90      QFrame fMatrixAndClipWidget;
91      QVBoxLayout fVerticalLayout;
92  
93      QGroupBox fMatrixGroup;
94      QGridLayout fMatrixLayout;
95      QLineEdit fMatrixEntry[9];
96  
97      QGroupBox fClipGroup;
98      QGridLayout fClipLayout;
99      QLineEdit fClipEntry[4];
100  
101      void setupMatrix();
102      void setupClip();
103  };
104  
105  #endif
106