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#ifndef SKSETTINGSWIDGET_H_ 11902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#define SKSETTINGSWIDGET_H_ 12902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 13902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#include <QWidget> 14902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#include <QHBoxLayout> 15902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#include <QTextEdit> 16902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#include <QFrame> 17fde1e7ccb4524aa2e0c42872e529ee25d09e7f34commit-bot@chromium.org#include <QGroupBox> 18902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#include <QLabel> 19902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#include <QCheckBox> 207dcae67cae277549accdd38d0496b72d00151239chudy@google.com#include <QLineEdit> 2122d39332bdba4e2e36aa050220392dcd33d81c19commit-bot@chromium.org#include <QComboBox> 22902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 2332bbcf828d66ad244fa25b468bc3a229e531491frobertphillips@google.com#include "SkPaint.h" 2432bbcf828d66ad244fa25b468bc3a229e531491frobertphillips@google.com 25902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com/** \class SkSettingsWidget 26902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 27902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com The SettingsWidget contains multiple checkboxes and toggles for altering 28902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com the visibility. 29902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com */ 30902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.comclass SkSettingsWidget : public QWidget { 31902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com Q_OBJECT 32902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 33902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.compublic: 34902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com /** 35902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com Constructs a widget with the specified parent for layout purposes. 36902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com @param parent The parent container of this widget 37902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com */ 382d537a18f49cb492358c2b051f4786075dd9406cchudy@google.com SkSettingsWidget(); 39902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 40e8cc6e8071935339a06548b13a0668b56a7540f5bungeman@google.com /** Sets the displayed user zoom level. A scale of 1.0 represents no zoom. */ 41e8cc6e8071935339a06548b13a0668b56a7540f5bungeman@google.com void setZoomText(float scale); 427dcae67cae277549accdd38d0496b72d00151239chudy@google.com 4322d39332bdba4e2e36aa050220392dcd33d81c19commit-bot@chromium.org bool getVisibilityFilter() const { 4422d39332bdba4e2e36aa050220392dcd33d81c19commit-bot@chromium.org return fVisibilityCombo.itemData(fVisibilityCombo.currentIndex()).toBool(); 4522d39332bdba4e2e36aa050220392dcd33d81c19commit-bot@chromium.org } 467dcae67cae277549accdd38d0496b72d00151239chudy@google.com 47e8fe4bc3efa8f18f5651c5d005fba1935a741be0robertphillips@google.com#if SK_SUPPORT_GPU 4822d39332bdba4e2e36aa050220392dcd33d81c19commit-bot@chromium.org bool isGLActive() const { 49fde1e7ccb4524aa2e0c42872e529ee25d09e7f34commit-bot@chromium.org return fGLCheckBox.isChecked(); 50ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com } 51fde1e7ccb4524aa2e0c42872e529ee25d09e7f34commit-bot@chromium.org 5222d39332bdba4e2e36aa050220392dcd33d81c19commit-bot@chromium.org int getGLSampleCount() const { 5322d39332bdba4e2e36aa050220392dcd33d81c19commit-bot@chromium.org return fGLMSAACombo.itemData(fGLMSAACombo.currentIndex()).toInt(); 54fde1e7ccb4524aa2e0c42872e529ee25d09e7f34commit-bot@chromium.org } 55fde1e7ccb4524aa2e0c42872e529ee25d09e7f34commit-bot@chromium.org 56e8fe4bc3efa8f18f5651c5d005fba1935a741be0robertphillips@google.com#endif 57ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com 5822d39332bdba4e2e36aa050220392dcd33d81c19commit-bot@chromium.org bool getFilterOverride(SkPaint::FilterLevel* filterLevel) const { 5922d39332bdba4e2e36aa050220392dcd33d81c19commit-bot@chromium.org int index = fFilterCombo.currentIndex(); 6022d39332bdba4e2e36aa050220392dcd33d81c19commit-bot@chromium.org *filterLevel = (SkPaint::FilterLevel)fFilterCombo.itemData(index).toUInt(); 6122d39332bdba4e2e36aa050220392dcd33d81c19commit-bot@chromium.org 6222d39332bdba4e2e36aa050220392dcd33d81c19commit-bot@chromium.org return index > 0; 6332bbcf828d66ad244fa25b468bc3a229e531491frobertphillips@google.com } 6432bbcf828d66ad244fa25b468bc3a229e531491frobertphillips@google.com 65ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com QCheckBox* getRasterCheckBox() { 66ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com return &fRasterCheckBox; 67ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com } 68ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com 69f4741c1322944e194ca34a8f5cf8188fe2c0efe2robertphillips@google.com QCheckBox* getOverdrawVizCheckBox() { 70f4741c1322944e194ca34a8f5cf8188fe2c0efe2robertphillips@google.com return &fOverdrawVizCheckBox; 71f4741c1322944e194ca34a8f5cf8188fe2c0efe2robertphillips@google.com } 72f4741c1322944e194ca34a8f5cf8188fe2c0efe2robertphillips@google.com 73768ac85655017d4106444bf3ad044680a575ccaacommit-bot@chromium.org QCheckBox* getMegaVizCheckBox() { 74768ac85655017d4106444bf3ad044680a575ccaacommit-bot@chromium.org return &fMegaVizCheckBox; 75768ac85655017d4106444bf3ad044680a575ccaacommit-bot@chromium.org } 76768ac85655017d4106444bf3ad044680a575ccaacommit-bot@chromium.org 772a67e123a3e559774a16a58cbe5106bc0fb86740commit-bot@chromium.org QCheckBox* getPathOpsCheckBox() { 782a67e123a3e559774a16a58cbe5106bc0fb86740commit-bot@chromium.org return &fPathOpsCheckBox; 792a67e123a3e559774a16a58cbe5106bc0fb86740commit-bot@chromium.org } 802a67e123a3e559774a16a58cbe5106bc0fb86740commit-bot@chromium.org 817dcae67cae277549accdd38d0496b72d00151239chudy@google.comprivate slots: 827dcae67cae277549accdd38d0496b72d00151239chudy@google.com void updateCommand(int newCommand); 83e606d6e210b17dd9dd582d4d3ec70acb4f3213d5chudy@google.com void updateHit(int newHit); 847dcae67cae277549accdd38d0496b72d00151239chudy@google.com 857dcae67cae277549accdd38d0496b72d00151239chudy@google.comsignals: 867dcae67cae277549accdd38d0496b72d00151239chudy@google.com void scrollingPreferences(bool isStickyActivate); 877dcae67cae277549accdd38d0496b72d00151239chudy@google.com void showStyle(bool isSingleCommand); 8822d39332bdba4e2e36aa050220392dcd33d81c19commit-bot@chromium.org void visibilityFilterChanged(); 8932bbcf828d66ad244fa25b468bc3a229e531491frobertphillips@google.com void texFilterSettingsChanged(); 90fde1e7ccb4524aa2e0c42872e529ee25d09e7f34commit-bot@chromium.org#if SK_SUPPORT_GPU 91fde1e7ccb4524aa2e0c42872e529ee25d09e7f34commit-bot@chromium.org void glSettingsChanged(); 92fde1e7ccb4524aa2e0c42872e529ee25d09e7f34commit-bot@chromium.org#endif 937dcae67cae277549accdd38d0496b72d00151239chudy@google.com 94902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.comprivate: 957dcae67cae277549accdd38d0496b72d00151239chudy@google.com QVBoxLayout mainFrameLayout; 967dcae67cae277549accdd38d0496b72d00151239chudy@google.com QFrame mainFrame; 977dcae67cae277549accdd38d0496b72d00151239chudy@google.com QVBoxLayout fVerticalLayout; 98902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 9922d39332bdba4e2e36aa050220392dcd33d81c19commit-bot@chromium.org QLabel fVisibleText; 1007dcae67cae277549accdd38d0496b72d00151239chudy@google.com QFrame fVisibleFrame; 1017dcae67cae277549accdd38d0496b72d00151239chudy@google.com QVBoxLayout fVisibleFrameLayout; 10222d39332bdba4e2e36aa050220392dcd33d81c19commit-bot@chromium.org QComboBox fVisibilityCombo; 103902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 1047dcae67cae277549accdd38d0496b72d00151239chudy@google.com QLabel fCommandToggle; 1057dcae67cae277549accdd38d0496b72d00151239chudy@google.com QFrame fCommandFrame; 1067dcae67cae277549accdd38d0496b72d00151239chudy@google.com QVBoxLayout fCommandLayout; 107902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 1082d537a18f49cb492358c2b051f4786075dd9406cchudy@google.com QHBoxLayout fCurrentCommandLayout; 1097dcae67cae277549accdd38d0496b72d00151239chudy@google.com QLabel fCurrentCommandLabel; 110e606d6e210b17dd9dd582d4d3ec70acb4f3213d5chudy@google.com QLineEdit fCurrentCommandBox; 111902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 1122d537a18f49cb492358c2b051f4786075dd9406cchudy@google.com QHBoxLayout fCommandHitLayout; 113e606d6e210b17dd9dd582d4d3ec70acb4f3213d5chudy@google.com QLabel fCommandHitLabel; 114e606d6e210b17dd9dd582d4d3ec70acb4f3213d5chudy@google.com QLineEdit fCommandHitBox; 115e606d6e210b17dd9dd582d4d3ec70acb4f3213d5chudy@google.com 116ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com QFrame fCanvasFrame; 117ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com QVBoxLayout fCanvasLayout; 1182d537a18f49cb492358c2b051f4786075dd9406cchudy@google.com QLabel fCanvasToggle; 119ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com 120ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com QHBoxLayout fRasterLayout; 121ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com QLabel fRasterLabel; 122ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com QCheckBox fRasterCheckBox; 123ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com 124768ac85655017d4106444bf3ad044680a575ccaacommit-bot@chromium.org QHBoxLayout fVizLayout; 125f4741c1322944e194ca34a8f5cf8188fe2c0efe2robertphillips@google.com QLabel fOverdrawVizLabel; 126f4741c1322944e194ca34a8f5cf8188fe2c0efe2robertphillips@google.com QCheckBox fOverdrawVizCheckBox; 127768ac85655017d4106444bf3ad044680a575ccaacommit-bot@chromium.org QLabel fMegaVizLabel; 128768ac85655017d4106444bf3ad044680a575ccaacommit-bot@chromium.org QCheckBox fMegaVizCheckBox; 1292a67e123a3e559774a16a58cbe5106bc0fb86740commit-bot@chromium.org QLabel fPathOpsLabel; 1302a67e123a3e559774a16a58cbe5106bc0fb86740commit-bot@chromium.org QCheckBox fPathOpsCheckBox; 131f4741c1322944e194ca34a8f5cf8188fe2c0efe2robertphillips@google.com 132e8fe4bc3efa8f18f5651c5d005fba1935a741be0robertphillips@google.com#if SK_SUPPORT_GPU 133ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com QHBoxLayout fGLLayout; 134ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com QLabel fGLLabel; 135ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com QCheckBox fGLCheckBox; 136fde1e7ccb4524aa2e0c42872e529ee25d09e7f34commit-bot@chromium.org QGroupBox fGLMSAAButtonGroup; 137fde1e7ccb4524aa2e0c42872e529ee25d09e7f34commit-bot@chromium.org QVBoxLayout fGLMSAALayout; 13822d39332bdba4e2e36aa050220392dcd33d81c19commit-bot@chromium.org QComboBox fGLMSAACombo; 139e8fe4bc3efa8f18f5651c5d005fba1935a741be0robertphillips@google.com#endif 140ea5488b9655fc7d71345c3a823de85f8b74e3279chudy@google.com 14132bbcf828d66ad244fa25b468bc3a229e531491frobertphillips@google.com // for filtering group 14232bbcf828d66ad244fa25b468bc3a229e531491frobertphillips@google.com QGroupBox fFilterButtonGroup; 14322d39332bdba4e2e36aa050220392dcd33d81c19commit-bot@chromium.org QComboBox fFilterCombo; 14432bbcf828d66ad244fa25b468bc3a229e531491frobertphillips@google.com QVBoxLayout fFilterLayout; 14532bbcf828d66ad244fa25b468bc3a229e531491frobertphillips@google.com 1467dcae67cae277549accdd38d0496b72d00151239chudy@google.com QFrame fZoomFrame; 1477dcae67cae277549accdd38d0496b72d00151239chudy@google.com QHBoxLayout fZoomLayout; 1482d537a18f49cb492358c2b051f4786075dd9406cchudy@google.com QLabel fZoomSetting; 1492d537a18f49cb492358c2b051f4786075dd9406cchudy@google.com QLineEdit fZoomBox; 150902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com}; 151902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 152902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#endif /* SKSETTINGSWIDGET_H_ */ 153