SkInspectorWidget.h revision fe17456d5e528078ce69b5f15cf7adf1fab963f9
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 */ 29class SkInspectorWidget : public QWidget { 30 Q_OBJECT 31 32public: 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 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 74 Tab(const char* name) { 75 fTabText.setReadOnly(true); 76 fTabLayout.addWidget(&fTabText); 77 fTab.setLayout(&fTabLayout); 78 fName = QString(name); 79 } 80 }; 81 82private: 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