blob: d44814f933f7284172abf147de5dc30701299dde [file] [log] [blame]
chudy@google.com902ebe52012-06-29 14:21:22 +00001
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#include "SkInspectorWidget.h"
11#include <iostream>
12
kkinnunen7c339ae2015-01-02 06:35:43 -080013static const int kSignificantNumbersInFields = 5;
14
chudy@google.com2d537a12012-07-31 12:49:52 +000015SkInspectorWidget::SkInspectorWidget() : QWidget()
chudy@google.com2f891792012-07-03 16:05:59 +000016 , fHorizontalLayout(this)
chudy@google.com2f891792012-07-03 16:05:59 +000017 , fMatrixAndClipWidget(this)
kkinnunen7c339ae2015-01-02 06:35:43 -080018 , fVerticalLayout(&fMatrixAndClipWidget) {
chudy@google.com6bd109a2012-08-14 19:34:13 +000019 QString tabNames[kTotalTabCount];
20 tabNames[kOverview_TabType] = "Overview";
21 tabNames[kDetail_TabType] = "Details";
commit-bot@chromium.org2a67e122014-05-19 13:53:10 +000022 tabNames[kClipStack_TabType] = "Clip Stack";
chudy@google.com902ebe52012-06-29 14:21:22 +000023
chudy@google.com6bd109a2012-08-14 19:34:13 +000024 for (int i = 0; i < kTotalTabCount; i++) {
25 fTabTexts[i].setReadOnly(true);
chudy@google.com6bd109a2012-08-14 19:34:13 +000026 fTabLayouts[i].addWidget(&fTabTexts[i]);
27 fTabs[i].setLayout(&fTabLayouts[i]);
28 fTabWidget.addTab(&fTabs[i], tabNames[i]);
29 }
chudy@google.com2f891792012-07-03 16:05:59 +000030
31 fHorizontalLayout.setAlignment(Qt::AlignTop);
32 fHorizontalLayout.addWidget(&fTabWidget);
chudy@google.com902ebe52012-06-29 14:21:22 +000033
kkinnunen7c339ae2015-01-02 06:35:43 -080034 fMatrixAndClipWidget.setFrameStyle(QFrame::Panel);
chudy@google.com2f891792012-07-03 16:05:59 +000035 fMatrixAndClipWidget.setDisabled(true);
chudy@google.com2f891792012-07-03 16:05:59 +000036 fVerticalLayout.setAlignment(Qt::AlignVCenter);
kkinnunen7c339ae2015-01-02 06:35:43 -080037 this->setupMatrix();
38 this->setupClip();
39 fVerticalLayout.addWidget(&fMatrixGroup);
40 fVerticalLayout.addWidget(&fClipGroup);
chudy@google.com2f891792012-07-03 16:05:59 +000041 fHorizontalLayout.addWidget(&fMatrixAndClipWidget);
chudy@google.com902ebe52012-06-29 14:21:22 +000042}
43
chudy@google.com6bd109a2012-08-14 19:34:13 +000044void SkInspectorWidget::setText(QString text, TabType type) {
45 fTabTexts[type].setHtml(text);
chudy@google.com902ebe52012-06-29 14:21:22 +000046}
47
chudy@google.com2f891792012-07-03 16:05:59 +000048void SkInspectorWidget::setMatrix(const SkMatrix& matrix) {
49 for(int i=0; i<9; i++) {
kkinnunen7c339ae2015-01-02 06:35:43 -080050 fMatrixEntry[i].setText(QString::number(matrix.get(i), 'g', kSignificantNumbersInFields));
chudy@google.com2f891792012-07-03 16:05:59 +000051 }
52}
53
54void SkInspectorWidget::setClip(const SkIRect& clip) {
kkinnunen7c339ae2015-01-02 06:35:43 -080055 fClipEntry[0].setText(QString::number(clip.left(), 'g', kSignificantNumbersInFields));
56 fClipEntry[1].setText(QString::number(clip.top(), 'g', kSignificantNumbersInFields));
57 fClipEntry[2].setText(QString::number(clip.right(), 'g', kSignificantNumbersInFields));
58 fClipEntry[3].setText(QString::number(clip.bottom(), 'g', kSignificantNumbersInFields));
chudy@google.com2f891792012-07-03 16:05:59 +000059}
60
kkinnunen7c339ae2015-01-02 06:35:43 -080061void SkInspectorWidget::setupMatrix() {
62 fMatrixGroup.setTitle("Current Matrix");
63 fMatrixGroup.setLayout(&fMatrixLayout);
64 for (int r = 0; r < 3; ++r) {
65 for(int c = 0; c < 3; c++) {
66 QLineEdit* entry = &fMatrixEntry[r * 3 + c];
67 fMatrixLayout.addWidget(entry, r, c, Qt::AlignTop | Qt::AlignHCenter);
68 entry->setReadOnly(true);
69 entry->setFixedWidth(70);
chudy@google.com2f891792012-07-03 16:05:59 +000070 }
chudy@google.com902ebe52012-06-29 14:21:22 +000071 }
chudy@google.com902ebe52012-06-29 14:21:22 +000072}
73
kkinnunen7c339ae2015-01-02 06:35:43 -080074void SkInspectorWidget::setupClip() {
75 fClipGroup.setTitle("Current Clip");
76 fClipGroup.setLayout(&fClipLayout);
77 for(int r = 0; r < 2; r++) {
78 for(int c = 0; c < 2; c++) {
79 QLineEdit* entry = &fClipEntry[r * 2 + c];
80 fClipLayout.addWidget(entry, r, c, Qt::AlignTop | Qt::AlignHCenter);
81 entry->setReadOnly(true);
82 entry->setFixedWidth(70);
chudy@google.com2f891792012-07-03 16:05:59 +000083 }
chudy@google.com902ebe52012-06-29 14:21:22 +000084 }
chudy@google.com902ebe52012-06-29 14:21:22 +000085}