1902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 2902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com/* 3902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com * Copyright 2012 Google Inc. 4902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com * 5902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com * Use of this source code is governed by a BSD-style license that can be 6902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com * found in the LICENSE file. 7902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com */ 8902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 9902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 10902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#include "SkInspectorWidget.h" 11902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#include <iostream> 12902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 132d537a18f49cb492358c2b051f4786075dd9406cchudy@google.comSkInspectorWidget::SkInspectorWidget() : QWidget() 142f891793957252b0262276c957c67798c905be80chudy@google.com , fHorizontalLayout(this) 152f891793957252b0262276c957c67798c905be80chudy@google.com , fMatrixAndClipWidget(this) 162f891793957252b0262276c957c67798c905be80chudy@google.com , fVerticalLayout(&fMatrixAndClipWidget) 172f891793957252b0262276c957c67798c905be80chudy@google.com , fMatrixLabel(this) 182f891793957252b0262276c957c67798c905be80chudy@google.com , fClipLabel(this) { 192f891793957252b0262276c957c67798c905be80chudy@google.com 202f891793957252b0262276c957c67798c905be80chudy@google.com fHorizontalLayout.setSpacing(6); 212f891793957252b0262276c957c67798c905be80chudy@google.com fHorizontalLayout.setContentsMargins(11, 11, 11, 11); 222f891793957252b0262276c957c67798c905be80chudy@google.com 236bd109a39370d21bfd4b48f5a28df8bcfc7f5ba2chudy@google.com QString tabNames[kTotalTabCount]; 246bd109a39370d21bfd4b48f5a28df8bcfc7f5ba2chudy@google.com tabNames[kOverview_TabType] = "Overview"; 256bd109a39370d21bfd4b48f5a28df8bcfc7f5ba2chudy@google.com tabNames[kDetail_TabType] = "Details"; 262a67e123a3e559774a16a58cbe5106bc0fb86740commit-bot@chromium.org tabNames[kClipStack_TabType] = "Clip Stack"; 276bd109a39370d21bfd4b48f5a28df8bcfc7f5ba2chudy@google.com 286bd109a39370d21bfd4b48f5a28df8bcfc7f5ba2chudy@google.com for (int i = 0; i < kTotalTabCount; i++) { 296bd109a39370d21bfd4b48f5a28df8bcfc7f5ba2chudy@google.com fTabTexts[i].setReadOnly(true); 306bd109a39370d21bfd4b48f5a28df8bcfc7f5ba2chudy@google.com fTabLayouts[i].setSpacing(6); 316bd109a39370d21bfd4b48f5a28df8bcfc7f5ba2chudy@google.com fTabLayouts[i].setContentsMargins(11, 11, 11, 11); 326bd109a39370d21bfd4b48f5a28df8bcfc7f5ba2chudy@google.com fTabLayouts[i].addWidget(&fTabTexts[i]); 336bd109a39370d21bfd4b48f5a28df8bcfc7f5ba2chudy@google.com fTabs[i].setLayout(&fTabLayouts[i]); 346bd109a39370d21bfd4b48f5a28df8bcfc7f5ba2chudy@google.com fTabWidget.addTab(&fTabs[i], tabNames[i]); 356bd109a39370d21bfd4b48f5a28df8bcfc7f5ba2chudy@google.com } 362f891793957252b0262276c957c67798c905be80chudy@google.com 372f891793957252b0262276c957c67798c905be80chudy@google.com fHorizontalLayout.setAlignment(Qt::AlignTop); 382f891793957252b0262276c957c67798c905be80chudy@google.com fHorizontalLayout.addWidget(&fTabWidget); 39902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 40902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com /* NOTE(chudy): We add all the line edits to (this). Then we lay them out 41902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com * by adding them to horizontal layouts. 42902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com * 43902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com * We will have 1 big vertical layout, 3 horizontal layouts and then 3 446bd109a39370d21bfd4b48f5a28df8bcfc7f5ba2chudy@google.com * line edits in each horizontal layout. */ 452f891793957252b0262276c957c67798c905be80chudy@google.com fMatrixAndClipWidget.setFixedSize(260,300); 462f891793957252b0262276c957c67798c905be80chudy@google.com fMatrixAndClipWidget.setDisabled(true); 47902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 482f891793957252b0262276c957c67798c905be80chudy@google.com fVerticalLayout.setAlignment(Qt::AlignVCenter); 492f891793957252b0262276c957c67798c905be80chudy@google.com fVerticalLayout.addLayout(setupMatrix()); 502f891793957252b0262276c957c67798c905be80chudy@google.com fVerticalLayout.addLayout(setupClip()); 512f891793957252b0262276c957c67798c905be80chudy@google.com fHorizontalLayout.addWidget(&fMatrixAndClipWidget); 52902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 53902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 546bd109a39370d21bfd4b48f5a28df8bcfc7f5ba2chudy@google.comvoid SkInspectorWidget::setText(QString text, TabType type) { 556bd109a39370d21bfd4b48f5a28df8bcfc7f5ba2chudy@google.com fTabTexts[type].setHtml(text); 56902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 57902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 582f891793957252b0262276c957c67798c905be80chudy@google.comvoid SkInspectorWidget::setMatrix(const SkMatrix& matrix) { 592f891793957252b0262276c957c67798c905be80chudy@google.com for(int i=0; i<9; i++) { 602f891793957252b0262276c957c67798c905be80chudy@google.com fMatrixEntry[i].setText(QString::number(matrix.get(i))); 612f891793957252b0262276c957c67798c905be80chudy@google.com } 62902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 63902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 642f891793957252b0262276c957c67798c905be80chudy@google.comvoid SkInspectorWidget::setClip(const SkIRect& clip) { 652f891793957252b0262276c957c67798c905be80chudy@google.com fClipEntry[0].setText(QString::number(clip.left())); 662f891793957252b0262276c957c67798c905be80chudy@google.com fClipEntry[1].setText(QString::number(clip.top())); 672f891793957252b0262276c957c67798c905be80chudy@google.com fClipEntry[2].setText(QString::number(clip.right())); 682f891793957252b0262276c957c67798c905be80chudy@google.com fClipEntry[3].setText(QString::number(clip.bottom())); 69902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 70902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 712f891793957252b0262276c957c67798c905be80chudy@google.comQVBoxLayout* SkInspectorWidget::setupMatrix() { 722f891793957252b0262276c957c67798c905be80chudy@google.com fMatrixLabel.setText("Current Matrix"); 732f891793957252b0262276c957c67798c905be80chudy@google.com fMatrixLabel.setAlignment(Qt::AlignHCenter); 742f891793957252b0262276c957c67798c905be80chudy@google.com 752f891793957252b0262276c957c67798c905be80chudy@google.com fMatrixLayout.setSpacing(6); 762f891793957252b0262276c957c67798c905be80chudy@google.com fMatrixLayout.setContentsMargins(11,11,11,0); 772f891793957252b0262276c957c67798c905be80chudy@google.com fMatrixLayout.setAlignment(Qt::AlignTop | Qt::AlignHCenter); 782f891793957252b0262276c957c67798c905be80chudy@google.com fMatrixLayout.addWidget(&fMatrixLabel); 79902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 80902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com for(int i =0; i<9; i++) { 812f891793957252b0262276c957c67798c905be80chudy@google.com fMatrixEntry[i].setMinimumSize(QSize(70,25)); 822f891793957252b0262276c957c67798c905be80chudy@google.com fMatrixEntry[i].setMaximumSize(QSize(70,16777215)); 832f891793957252b0262276c957c67798c905be80chudy@google.com fMatrixEntry[i].setReadOnly(true); 842f891793957252b0262276c957c67798c905be80chudy@google.com 852f891793957252b0262276c957c67798c905be80chudy@google.com fMatrixRow[i/3].addWidget(&fMatrixEntry[i]); 862f891793957252b0262276c957c67798c905be80chudy@google.com if(i%3 == 2) { 872f891793957252b0262276c957c67798c905be80chudy@google.com fMatrixLayout.addLayout(&fMatrixRow[i/3]); 882f891793957252b0262276c957c67798c905be80chudy@google.com } 89902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com } 90902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 912f891793957252b0262276c957c67798c905be80chudy@google.com return &fMatrixLayout; 92902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 93902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 942f891793957252b0262276c957c67798c905be80chudy@google.comQVBoxLayout* SkInspectorWidget::setupClip() { 952f891793957252b0262276c957c67798c905be80chudy@google.com fClipLabel.setText("Current Clip"); 962f891793957252b0262276c957c67798c905be80chudy@google.com fClipLabel.setAlignment(Qt::AlignHCenter); 972f891793957252b0262276c957c67798c905be80chudy@google.com 982f891793957252b0262276c957c67798c905be80chudy@google.com fClipLayout.setSpacing(6); 992f891793957252b0262276c957c67798c905be80chudy@google.com fClipLayout.setContentsMargins(11,11,11,0); 1002f891793957252b0262276c957c67798c905be80chudy@google.com fClipLayout.setAlignment(Qt::AlignTop | Qt::AlignHCenter); 1012f891793957252b0262276c957c67798c905be80chudy@google.com fClipLayout.addWidget(&fClipLabel); 102902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 103902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com for(int i =0; i<4; i++) { 1042f891793957252b0262276c957c67798c905be80chudy@google.com fClipEntry[i].setMinimumSize(QSize(70,25)); 1052f891793957252b0262276c957c67798c905be80chudy@google.com fClipEntry[i].setMaximumSize(QSize(70,16777215)); 1062f891793957252b0262276c957c67798c905be80chudy@google.com fClipEntry[i].setReadOnly(true); 1072f891793957252b0262276c957c67798c905be80chudy@google.com 1082f891793957252b0262276c957c67798c905be80chudy@google.com fClipRow[i/2].addWidget(&fClipEntry[i]); 1092f891793957252b0262276c957c67798c905be80chudy@google.com if(i%2 == 1) { 1102f891793957252b0262276c957c67798c905be80chudy@google.com fClipLayout.addLayout(&fClipRow[i/2]); 1112f891793957252b0262276c957c67798c905be80chudy@google.com } 112902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com } 113902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 1142f891793957252b0262276c957c67798c905be80chudy@google.com return &fClipLayout; 115902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 116