blob: 6bcac1db357bf592f4212c3508d02de5479552f9 [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
chudy@google.com2d537a12012-07-31 12:49:52 +000013SkInspectorWidget::SkInspectorWidget() : QWidget()
chudy@google.com2f891792012-07-03 16:05:59 +000014 , fHorizontalLayout(this)
chudy@google.com2f891792012-07-03 16:05:59 +000015 , fMatrixAndClipWidget(this)
16 , fVerticalLayout(&fMatrixAndClipWidget)
17 , fMatrixLabel(this)
18 , fClipLabel(this) {
chudy@google.com902ebe52012-06-29 14:21:22 +000019
chudy@google.com2f891792012-07-03 16:05:59 +000020 fHorizontalLayout.setSpacing(6);
21 fHorizontalLayout.setContentsMargins(11, 11, 11, 11);
chudy@google.com902ebe52012-06-29 14:21:22 +000022
chudy@google.com6bd109a2012-08-14 19:34:13 +000023 QString tabNames[kTotalTabCount];
24 tabNames[kOverview_TabType] = "Overview";
25 tabNames[kDetail_TabType] = "Details";
commit-bot@chromium.org2a67e122014-05-19 13:53:10 +000026 tabNames[kClipStack_TabType] = "Clip Stack";
chudy@google.com902ebe52012-06-29 14:21:22 +000027
chudy@google.com6bd109a2012-08-14 19:34:13 +000028 for (int i = 0; i < kTotalTabCount; i++) {
29 fTabTexts[i].setReadOnly(true);
30 fTabLayouts[i].setSpacing(6);
31 fTabLayouts[i].setContentsMargins(11, 11, 11, 11);
32 fTabLayouts[i].addWidget(&fTabTexts[i]);
33 fTabs[i].setLayout(&fTabLayouts[i]);
34 fTabWidget.addTab(&fTabs[i], tabNames[i]);
35 }
chudy@google.com2f891792012-07-03 16:05:59 +000036
37 fHorizontalLayout.setAlignment(Qt::AlignTop);
38 fHorizontalLayout.addWidget(&fTabWidget);
chudy@google.com902ebe52012-06-29 14:21:22 +000039
40 /* NOTE(chudy): We add all the line edits to (this). Then we lay them out
41 * by adding them to horizontal layouts.
42 *
43 * We will have 1 big vertical layout, 3 horizontal layouts and then 3
chudy@google.com6bd109a2012-08-14 19:34:13 +000044 * line edits in each horizontal layout. */
chudy@google.com2f891792012-07-03 16:05:59 +000045 fMatrixAndClipWidget.setFixedSize(260,300);
46 fMatrixAndClipWidget.setDisabled(true);
chudy@google.com902ebe52012-06-29 14:21:22 +000047
chudy@google.com2f891792012-07-03 16:05:59 +000048 fVerticalLayout.setAlignment(Qt::AlignVCenter);
49 fVerticalLayout.addLayout(setupMatrix());
50 fVerticalLayout.addLayout(setupClip());
51 fHorizontalLayout.addWidget(&fMatrixAndClipWidget);
chudy@google.com902ebe52012-06-29 14:21:22 +000052}
53
chudy@google.com6bd109a2012-08-14 19:34:13 +000054void SkInspectorWidget::setText(QString text, TabType type) {
55 fTabTexts[type].setHtml(text);
chudy@google.com902ebe52012-06-29 14:21:22 +000056}
57
chudy@google.com2f891792012-07-03 16:05:59 +000058void SkInspectorWidget::setMatrix(const SkMatrix& matrix) {
59 for(int i=0; i<9; i++) {
60 fMatrixEntry[i].setText(QString::number(matrix.get(i)));
61 }
62}
63
64void SkInspectorWidget::setClip(const SkIRect& clip) {
65 fClipEntry[0].setText(QString::number(clip.left()));
66 fClipEntry[1].setText(QString::number(clip.top()));
67 fClipEntry[2].setText(QString::number(clip.right()));
68 fClipEntry[3].setText(QString::number(clip.bottom()));
69}
70
71QVBoxLayout* SkInspectorWidget::setupMatrix() {
72 fMatrixLabel.setText("Current Matrix");
73 fMatrixLabel.setAlignment(Qt::AlignHCenter);
74
75 fMatrixLayout.setSpacing(6);
76 fMatrixLayout.setContentsMargins(11,11,11,0);
77 fMatrixLayout.setAlignment(Qt::AlignTop | Qt::AlignHCenter);
78 fMatrixLayout.addWidget(&fMatrixLabel);
chudy@google.com902ebe52012-06-29 14:21:22 +000079
80 for(int i =0; i<9; i++) {
chudy@google.com2f891792012-07-03 16:05:59 +000081 fMatrixEntry[i].setMinimumSize(QSize(70,25));
82 fMatrixEntry[i].setMaximumSize(QSize(70,16777215));
83 fMatrixEntry[i].setReadOnly(true);
chudy@google.com902ebe52012-06-29 14:21:22 +000084
chudy@google.com2f891792012-07-03 16:05:59 +000085 fMatrixRow[i/3].addWidget(&fMatrixEntry[i]);
86 if(i%3 == 2) {
87 fMatrixLayout.addLayout(&fMatrixRow[i/3]);
88 }
chudy@google.com902ebe52012-06-29 14:21:22 +000089 }
90
chudy@google.com2f891792012-07-03 16:05:59 +000091 return &fMatrixLayout;
chudy@google.com902ebe52012-06-29 14:21:22 +000092}
93
chudy@google.com2f891792012-07-03 16:05:59 +000094QVBoxLayout* SkInspectorWidget::setupClip() {
95 fClipLabel.setText("Current Clip");
96 fClipLabel.setAlignment(Qt::AlignHCenter);
97
98 fClipLayout.setSpacing(6);
99 fClipLayout.setContentsMargins(11,11,11,0);
100 fClipLayout.setAlignment(Qt::AlignTop | Qt::AlignHCenter);
101 fClipLayout.addWidget(&fClipLabel);
chudy@google.com902ebe52012-06-29 14:21:22 +0000102
103 for(int i =0; i<4; i++) {
chudy@google.com2f891792012-07-03 16:05:59 +0000104 fClipEntry[i].setMinimumSize(QSize(70,25));
105 fClipEntry[i].setMaximumSize(QSize(70,16777215));
106 fClipEntry[i].setReadOnly(true);
chudy@google.com902ebe52012-06-29 14:21:22 +0000107
chudy@google.com2f891792012-07-03 16:05:59 +0000108 fClipRow[i/2].addWidget(&fClipEntry[i]);
109 if(i%2 == 1) {
110 fClipLayout.addLayout(&fClipRow[i/2]);
111 }
chudy@google.com902ebe52012-06-29 14:21:22 +0000112 }
113
chudy@google.com2f891792012-07-03 16:05:59 +0000114 return &fClipLayout;
chudy@google.com902ebe52012-06-29 14:21:22 +0000115}