blob: c74be404a2ed3a9ea7e85bd96b293a6f2bcc51d0 [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 "SkSettingsWidget.h"
chudy@google.com7dcae672012-07-09 20:26:53 +000011#include <iostream>
12#include <math.h>
chudy@google.com902ebe52012-06-29 14:21:22 +000013
chudy@google.comea5488b2012-07-26 19:38:22 +000014// TODO(chudy): See if the layout can't be attached to the frame post construction.
chudy@google.com2d537a12012-07-31 12:49:52 +000015SkSettingsWidget::SkSettingsWidget() : QWidget()
chudy@google.com7dcae672012-07-09 20:26:53 +000016 , mainFrameLayout(this)
17 , fVerticalLayout(&mainFrame)
18 , fVisibleFrameLayout(&fVisibleFrame)
19 , fVisibleOn(&fVisibleFrame)
20 , fVisibleOff(&fVisibleFrame)
21 , fCommandLayout(&fCommandFrame)
22 , fCurrentCommandBox(&fCommandFrame)
chudy@google.come606d6e2012-07-12 14:31:25 +000023 , fCommandHitBox(&fCommandFrame)
chudy@google.comea5488b2012-07-26 19:38:22 +000024 , fCanvasLayout(&fCanvasFrame)
chudy@google.com7dcae672012-07-09 20:26:53 +000025 , fZoomLayout(&fZoomFrame)
chudy@google.com2d537a12012-07-31 12:49:52 +000026 , fZoomBox(&fZoomFrame)
chudy@google.com7dcae672012-07-09 20:26:53 +000027{
28 // Sets up the container and it's alignment around the settings widget.
29 mainFrame.setFrameShape(QFrame::StyledPanel);
30 mainFrame.setFrameShadow(QFrame::Raised);
31 mainFrameLayout.setSpacing(6);
32 mainFrameLayout.setContentsMargins(0,0,0,0);
33 mainFrameLayout.addWidget(&mainFrame);
chudy@google.com902ebe52012-06-29 14:21:22 +000034
chudy@google.com7dcae672012-07-09 20:26:53 +000035 // Vertical Layout is the alignment inside of the main frame.
36 fVerticalLayout.setContentsMargins(11,11,11,11);
37 fVerticalLayout.setAlignment(Qt::AlignTop);
chudy@google.com902ebe52012-06-29 14:21:22 +000038
chudy@google.com7dcae672012-07-09 20:26:53 +000039 // Visible Toggle
40 fVisibileText.setText("Visibility Filter");
41 fVisibleFrame.setFrameShape(QFrame::StyledPanel);
42 fVisibleFrame.setFrameShadow(QFrame::Raised);
43 fVisibleOn.setText("On");
44 fVisibleOff.setText("Off");
45 fVisibleOff.setChecked(true);
46 fVisibleFrameLayout.setSpacing(6);
47 fVisibleFrameLayout.setContentsMargins(11,11,11,11);
48 fVisibleFrameLayout.addWidget(&fVisibleOn);
49 fVisibleFrameLayout.addWidget(&fVisibleOff);
chudy@google.com902ebe52012-06-29 14:21:22 +000050
chudy@google.comea5488b2012-07-26 19:38:22 +000051 // Canvas
52 fCanvasToggle.setText("Render Targets");
53 fCanvasFrame.setFrameShape(QFrame::StyledPanel);
54 fCanvasFrame.setFrameShadow(QFrame::Raised);
55
56 fRasterLabel.setText("Raster: ");
57 fRasterLabel.setMinimumWidth(178);
58 fRasterLabel.setMaximumWidth(178);
59
60 fRasterCheckBox.setChecked(true);
61
62 fGLLabel.setText("OpenGL: ");
63 fGLLabel.setMinimumWidth(178);
64 fGLLabel.setMaximumWidth(178);
65
66 fRasterLayout.addWidget(&fRasterLabel);
67 fRasterLayout.addWidget(&fRasterCheckBox);
68
69 fGLLayout.addWidget(&fGLLabel);
70 fGLLayout.addWidget(&fGLCheckBox);
71
72 fCanvasLayout.setSpacing(6);
73 fCanvasLayout.setContentsMargins(11,11,11,11);
chudy@google.comea5488b2012-07-26 19:38:22 +000074 fCanvasLayout.addLayout(&fRasterLayout);
75 fCanvasLayout.addLayout(&fGLLayout);
76
chudy@google.com7dcae672012-07-09 20:26:53 +000077 // Command Toggle
78 fCommandToggle.setText("Command Scrolling Preferences");
79 fCommandFrame.setFrameShape(QFrame::StyledPanel);
80 fCommandFrame.setFrameShadow(QFrame::Raised);
chudy@google.com902ebe52012-06-29 14:21:22 +000081
chudy@google.com7dcae672012-07-09 20:26:53 +000082 fCurrentCommandLabel.setText("Current Command: ");
83 fCurrentCommandLabel.setMinimumWidth(178);
84 fCurrentCommandLabel.setMaximumWidth(178);
85 fCurrentCommandBox.setText("0");
86 fCurrentCommandBox.setMinimumSize(QSize(50,25));
87 fCurrentCommandBox.setMaximumSize(QSize(50,25));
88 fCurrentCommandBox.setAlignment(Qt::AlignRight);
chudy@google.com902ebe52012-06-29 14:21:22 +000089
chudy@google.com7dcae672012-07-09 20:26:53 +000090 fCurrentCommandLayout.setSpacing(0);
91 fCurrentCommandLayout.setContentsMargins(0,0,0,0);
92 fCurrentCommandLayout.setAlignment(Qt::AlignLeft);
93 fCurrentCommandLayout.addWidget(&fCurrentCommandLabel);
94 fCurrentCommandLayout.addWidget(&fCurrentCommandBox);
chudy@google.com902ebe52012-06-29 14:21:22 +000095
chudy@google.come606d6e2012-07-12 14:31:25 +000096 fCommandHitLabel.setText("Command HitBox: ");
97 fCommandHitLabel.setMinimumWidth(178);
98 fCommandHitLabel.setMaximumWidth(178);
99 fCommandHitBox.setText("0");
100 fCommandHitBox.setMinimumSize(QSize(50,25));
101 fCommandHitBox.setMaximumSize(QSize(50,25));
102 fCommandHitBox.setAlignment(Qt::AlignRight);
103 fCommandHitLayout.setSpacing(0);
104 fCommandHitLayout.setContentsMargins(0,0,0,0);
105 fCommandHitLayout.setAlignment(Qt::AlignLeft);
106 fCommandHitLayout.addWidget(&fCommandHitLabel);
107 fCommandHitLayout.addWidget(&fCommandHitBox);
108
chudy@google.com7dcae672012-07-09 20:26:53 +0000109 fCommandLayout.setSpacing(6);
110 fCommandLayout.setContentsMargins(11,11,11,11);
111 fCommandLayout.addLayout(&fCurrentCommandLayout);
chudy@google.come606d6e2012-07-12 14:31:25 +0000112 fCommandLayout.addLayout(&fCommandHitLayout);
chudy@google.com902ebe52012-06-29 14:21:22 +0000113
chudy@google.com7dcae672012-07-09 20:26:53 +0000114 // Zoom Info
115 fZoomSetting.setText("Zoom Level: ");
116 fZoomSetting.setMinimumWidth(178);
117 fZoomSetting.setMaximumWidth(178);
118 fZoomFrame.setFrameShape(QFrame::StyledPanel);
119 fZoomFrame.setFrameShadow(QFrame::Raised);
120 fZoomBox.setText("100%");
121 fZoomBox.setMinimumSize(QSize(50,25));
122 fZoomBox.setMaximumSize(QSize(50,25));
123 fZoomBox.setAlignment(Qt::AlignRight);
124 fZoomLayout.setSpacing(6);
125 fZoomLayout.setContentsMargins(11,11,11,11);
126 fZoomLayout.addWidget(&fZoomSetting);
127 fZoomLayout.addWidget(&fZoomBox);
chudy@google.com902ebe52012-06-29 14:21:22 +0000128
chudy@google.com7dcae672012-07-09 20:26:53 +0000129 // Adds all widgets to settings container
130 fVerticalLayout.addWidget(&fVisibileText);
131 fVerticalLayout.addWidget(&fVisibleFrame);
132 fVerticalLayout.addWidget(&fCommandToggle);
133 fVerticalLayout.addWidget(&fCommandFrame);
chudy@google.comea5488b2012-07-26 19:38:22 +0000134 fVerticalLayout.addWidget(&fCanvasToggle);
135 fVerticalLayout.addWidget(&fCanvasFrame);
chudy@google.com7dcae672012-07-09 20:26:53 +0000136 fVerticalLayout.addWidget(&fZoomFrame);
chudy@google.com902ebe52012-06-29 14:21:22 +0000137
chudy@google.come606d6e2012-07-12 14:31:25 +0000138 this->setDisabled(true);
chudy@google.com902ebe52012-06-29 14:21:22 +0000139}
140
chudy@google.com7dcae672012-07-09 20:26:53 +0000141
142void SkSettingsWidget::updateCommand(int newCommand) {
143 fCurrentCommandBox.setText(QString::number(newCommand));
144}
145
chudy@google.come606d6e2012-07-12 14:31:25 +0000146void SkSettingsWidget::updateHit(int newHit) {
147 fCommandHitBox.setText(QString::number(newHit));
148}
149
chudy@google.com7dcae672012-07-09 20:26:53 +0000150QRadioButton* SkSettingsWidget::getVisibilityButton() {
151 return &fVisibleOn;
152}
153
bungeman@google.come8cc6e82013-01-17 16:30:56 +0000154void SkSettingsWidget::setZoomText(float scale) {
155 fZoomBox.setText(QString::number(scale*100, 'f', 0).append("%"));
chudy@google.com7dcae672012-07-09 20:26:53 +0000156}