|  |  | 
|  | /* | 
|  | * Copyright 2012 Google Inc. | 
|  | * | 
|  | * Use of this source code is governed by a BSD-style license that can be | 
|  | * found in the LICENSE file. | 
|  | */ | 
|  |  | 
|  |  | 
|  | #include "SkInspectorWidget.h" | 
|  | #include <iostream> | 
|  |  | 
|  | static const int kSignificantNumbersInFields = 5; | 
|  |  | 
|  | SkInspectorWidget::SkInspectorWidget() : QWidget() | 
|  | , fHorizontalLayout(this) | 
|  | , fMatrixAndClipWidget(this) | 
|  | , fVerticalLayout(&fMatrixAndClipWidget) { | 
|  | QString tabNames[kTotalTabCount]; | 
|  | tabNames[kOverview_TabType] = "Overview"; | 
|  | tabNames[kDetail_TabType] = "Details"; | 
|  | tabNames[kClipStack_TabType] = "Clip Stack"; | 
|  |  | 
|  | for (int i = 0; i < kTotalTabCount; i++) { | 
|  | fTabTexts[i].setReadOnly(true); | 
|  | fTabLayouts[i].addWidget(&fTabTexts[i]); | 
|  | fTabs[i].setLayout(&fTabLayouts[i]); | 
|  | fTabWidget.addTab(&fTabs[i], tabNames[i]); | 
|  | } | 
|  |  | 
|  | fHorizontalLayout.setAlignment(Qt::AlignTop); | 
|  | fHorizontalLayout.addWidget(&fTabWidget); | 
|  |  | 
|  | fMatrixAndClipWidget.setFrameStyle(QFrame::Panel); | 
|  | fMatrixAndClipWidget.setDisabled(true); | 
|  | fVerticalLayout.setAlignment(Qt::AlignVCenter); | 
|  | this->setupMatrix(); | 
|  | this->setupClip(); | 
|  | fVerticalLayout.addWidget(&fMatrixGroup); | 
|  | fVerticalLayout.addWidget(&fClipGroup); | 
|  | fHorizontalLayout.addWidget(&fMatrixAndClipWidget); | 
|  | } | 
|  |  | 
|  | void SkInspectorWidget::setText(QString text, TabType type) { | 
|  | fTabTexts[type].setHtml(text); | 
|  | } | 
|  |  | 
|  | void SkInspectorWidget::setMatrix(const SkMatrix& matrix) { | 
|  | for(int i=0; i<9; i++) { | 
|  | fMatrixEntry[i].setText(QString::number(matrix.get(i), 'g', kSignificantNumbersInFields)); | 
|  | } | 
|  | } | 
|  |  | 
|  | void SkInspectorWidget::setClip(const SkIRect& clip) { | 
|  | fClipEntry[0].setText(QString::number(clip.left(), 'g', kSignificantNumbersInFields)); | 
|  | fClipEntry[1].setText(QString::number(clip.top(), 'g', kSignificantNumbersInFields)); | 
|  | fClipEntry[2].setText(QString::number(clip.right(), 'g', kSignificantNumbersInFields)); | 
|  | fClipEntry[3].setText(QString::number(clip.bottom(), 'g', kSignificantNumbersInFields)); | 
|  | } | 
|  |  | 
|  | void SkInspectorWidget::setupMatrix() { | 
|  | fMatrixGroup.setTitle("Current Matrix"); | 
|  | fMatrixGroup.setLayout(&fMatrixLayout); | 
|  | for (int r = 0; r < 3; ++r) { | 
|  | for(int c = 0; c < 3; c++) { | 
|  | QLineEdit* entry = &fMatrixEntry[r * 3 + c]; | 
|  | fMatrixLayout.addWidget(entry, r, c, Qt::AlignTop | Qt::AlignHCenter); | 
|  | entry->setReadOnly(true); | 
|  | entry->setFixedWidth(70); | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | void SkInspectorWidget::setupClip() { | 
|  | fClipGroup.setTitle("Current Clip"); | 
|  | fClipGroup.setLayout(&fClipLayout); | 
|  | for(int r = 0; r < 2; r++) { | 
|  | for(int c = 0; c < 2; c++) { | 
|  | QLineEdit* entry = &fClipEntry[r * 2 + c]; | 
|  | fClipLayout.addWidget(entry, r, c, Qt::AlignTop | Qt::AlignHCenter); | 
|  | entry->setReadOnly(true); | 
|  | entry->setFixedWidth(70); | 
|  | } | 
|  | } | 
|  | } |