| |
| /* |
| * 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); |
| } |
| } |
| } |