|  | 
 | /* | 
 |  * 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 SKINSPECTORWIDGET_H_ | 
 | #define SKINSPECTORWIDGET_H_ | 
 |  | 
 | #include "SkMatrix.h" | 
 |  | 
 | #include <QWidget> | 
 | #include <QTabWidget> | 
 | #include <QTextEdit> | 
 | #include <QHBoxLayout> | 
 | #include <QLabel> | 
 | #include <QLineEdit> | 
 | #include <QGroupBox> | 
 | #include <QGridLayout> | 
 |  | 
 | /** \class SkInspectorWidget | 
 |  | 
 |     The InspectorWidget contains the overview and details tab. These contain | 
 |     information about the whole picture and details about each draw command. | 
 |  */ | 
 | class SkInspectorWidget : public QWidget { | 
 |     Q_OBJECT | 
 |  | 
 | public: | 
 |     enum TabType { | 
 |         kOverview_TabType, | 
 |         kDetail_TabType, | 
 |         kClipStack_TabType, | 
 |         kTotalTabCount, | 
 |     }; | 
 |  | 
 |     /** | 
 |         Constructs a widget with the specified parent for layout purposes. | 
 |         @param parent  The parent container of this widget | 
 |      */ | 
 |     SkInspectorWidget(); | 
 |  | 
 |     void setDisabled(bool isDisabled) { | 
 |         fMatrixAndClipWidget.setDisabled(isDisabled); | 
 |     } | 
 |  | 
 |     /** | 
 |         Sets the text in tab at the specified index. | 
 |         @param text | 
 |      */ | 
 |     void setText(QString text, TabType type); | 
 |  | 
 |     /** | 
 |         Sets the text in the current matrix. | 
 |         @param matrixValues | 
 |      */ | 
 |     void setMatrix(const SkMatrix& matrix); | 
 |  | 
 |     /** | 
 |         Sets the text in the current clip. | 
 |         @param clipValues | 
 |      */ | 
 |     void setClip(const SkIRect& clip); | 
 |  | 
 |     class Tab : public QWidget { | 
 |         QWidget fTab; | 
 |         QHBoxLayout fTabLayout; | 
 |         QTextEdit fTabText; | 
 |         QString fName; | 
 |  | 
 |         Tab(const char* name) { | 
 |             fTabText.setReadOnly(true); | 
 |             fTabLayout.addWidget(&fTabText); | 
 |             fTab.setLayout(&fTabLayout); | 
 |             fName = QString(name); | 
 |         } | 
 |     }; | 
 |  | 
 | private: | 
 |     QHBoxLayout fHorizontalLayout; | 
 |     QTabWidget fTabWidget; | 
 |  | 
 |     QWidget fTabs[kTotalTabCount]; | 
 |     QHBoxLayout fTabLayouts[kTotalTabCount]; | 
 |     QTextEdit fTabTexts[kTotalTabCount]; | 
 |  | 
 |     QFrame fMatrixAndClipWidget; | 
 |     QVBoxLayout fVerticalLayout; | 
 |  | 
 |     QGroupBox fMatrixGroup; | 
 |     QGridLayout fMatrixLayout; | 
 |     QLineEdit fMatrixEntry[9]; | 
 |  | 
 |     QGroupBox fClipGroup; | 
 |     QGridLayout fClipLayout; | 
 |     QLineEdit fClipEntry[4]; | 
 |  | 
 |     void setupMatrix(); | 
 |     void setupClip(); | 
 | }; | 
 |  | 
 | #endif |