SkCanvasWidget.h revision 686e68019374dca3692cac6d5f8d94515e53d6c8
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#ifndef SKCANVASWIDGET_H_ 11#define SKCANVASWIDGET_H_ 12 13#include <QWidget> 14#include <QHBoxLayout> 15#include "SkStream.h" 16#include "SkRasterWidget.h" 17#include "SkGLWidget.h" 18#include "SkDebugger.h" 19 20class SkCanvasWidget : public QWidget { 21 Q_OBJECT 22 23public: 24 SkCanvasWidget(QWidget* parent, SkDebugger* debugger); 25 26 ~SkCanvasWidget(); 27 28 enum WidgetType { 29 kRaster_8888_WidgetType = 1 << 0, 30 kGPU_WidgetType = 1 << 1, 31 }; 32 33 void drawTo(int index); 34 35 void setWidgetVisibility(WidgetType type, bool isHidden); 36 37 void zoom(float zoomIncrement); 38 39 void resetWidgetTransform(); 40 41signals: 42 void scaleFactorChanged(float newScaleFactor); 43 void commandChanged(int newCommand); 44 void hitChanged(int hit); 45 46private slots: 47 void keyZoom(int zoomIncrement) { 48 zoom(zoomIncrement); 49 } 50 51private: 52 QHBoxLayout fHorizontalLayout; 53 SkRasterWidget fRasterWidget; 54 SkGLWidget fGLWidget; 55 SkDebugger* fDebugger; 56 SkIPoint fPreviousPoint; 57 SkIPoint fUserOffset; 58 float fUserScaleFactor; 59 60 void mouseMoveEvent(QMouseEvent* event); 61 62 void mousePressEvent(QMouseEvent* event); 63 64 void mouseDoubleClickEvent(QMouseEvent* event); 65 66 void wheelEvent(QWheelEvent* event) { 67 zoom(event->delta()/120); 68 } 69}; 70 71 72#endif /* SKCANVASWIDGET_H_ */ 73