/* * 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> /** \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.setSpacing(6); fTabLayout.setContentsMargins(11, 11, 11, 11); fTabLayout.addWidget(&fTabText); fTab.setLayout(&fTabLayout); fName = QString(name); } }; private: QHBoxLayout fHorizontalLayout; QTabWidget fTabWidget; QWidget fTabs[kTotalTabCount]; QHBoxLayout fTabLayouts[kTotalTabCount]; QTextEdit fTabTexts[kTotalTabCount]; QWidget fMatrixAndClipWidget; QVBoxLayout fVerticalLayout; QLabel fMatrixLabel; QVBoxLayout fMatrixLayout; QHBoxLayout fMatrixRow[3]; QLineEdit fMatrixEntry[9]; QLabel fClipLabel; QVBoxLayout fClipLayout; QHBoxLayout fClipRow[2]; QLineEdit fClipEntry[4]; QVBoxLayout* setupMatrix(); QVBoxLayout* setupClip(); }; #endif