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