Home | History | Annotate | Download | only in QT
      1 
      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 
     13 static const int kSignificantNumbersInFields = 5;
     14 
     15 SkInspectorWidget::SkInspectorWidget() : QWidget()
     16     , fHorizontalLayout(this)
     17     , fMatrixAndClipWidget(this)
     18     , fVerticalLayout(&fMatrixAndClipWidget) {
     19     QString tabNames[kTotalTabCount];
     20     tabNames[kOverview_TabType] = "Overview";
     21     tabNames[kDetail_TabType] = "Details";
     22     tabNames[kClipStack_TabType] = "Clip Stack";
     23 
     24     for (int i = 0; i < kTotalTabCount; i++) {
     25         fTabTexts[i].setReadOnly(true);
     26         fTabLayouts[i].addWidget(&fTabTexts[i]);
     27         fTabs[i].setLayout(&fTabLayouts[i]);
     28         fTabWidget.addTab(&fTabs[i], tabNames[i]);
     29     }
     30 
     31     fHorizontalLayout.setAlignment(Qt::AlignTop);
     32     fHorizontalLayout.addWidget(&fTabWidget);
     33 
     34     fMatrixAndClipWidget.setFrameStyle(QFrame::Panel);
     35     fMatrixAndClipWidget.setDisabled(true);
     36     fVerticalLayout.setAlignment(Qt::AlignVCenter);
     37     this->setupMatrix();
     38     this->setupClip();
     39     fVerticalLayout.addWidget(&fMatrixGroup);
     40     fVerticalLayout.addWidget(&fClipGroup);
     41     fHorizontalLayout.addWidget(&fMatrixAndClipWidget);
     42 }
     43 
     44 void SkInspectorWidget::setText(QString text, TabType type) {
     45     fTabTexts[type].setHtml(text);
     46 }
     47 
     48 void SkInspectorWidget::setMatrix(const SkMatrix& matrix) {
     49     for(int i=0; i<9; i++) {
     50         fMatrixEntry[i].setText(QString::number(matrix.get(i), 'g', kSignificantNumbersInFields));
     51     }
     52 }
     53 
     54 void SkInspectorWidget::setClip(const SkIRect& clip) {
     55     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));
     59 }
     60 
     61 void 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);
     70         }
     71     }
     72 }
     73 
     74 void 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);
     83         }
     84     }
     85 }
     86