/* * Copyright 2012 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SKCANVASWIDGET_H_ #define SKCANVASWIDGET_H_ #include #include #include "SkStream.h" #include "SkRasterWidget.h" #include "SkGLWidget.h" #include "SkDebugger.h" class SkCanvasWidget : public QWidget { Q_OBJECT public: SkCanvasWidget(QWidget* parent, SkDebugger* debugger); ~SkCanvasWidget(); enum WidgetType { kRaster_8888_WidgetType = 1 << 0, kGPU_WidgetType = 1 << 1, }; void drawTo(int index); void setWidgetVisibility(WidgetType type, bool isHidden); void zoom(float zoomIncrement); void resetWidgetTransform(); signals: void scaleFactorChanged(float newScaleFactor); void commandChanged(int newCommand); void hitChanged(int hit); private slots: void keyZoom(int zoomIncrement) { zoom(zoomIncrement); } private: QHBoxLayout fHorizontalLayout; SkRasterWidget fRasterWidget; SkGLWidget fGLWidget; SkDebugger* fDebugger; SkIPoint fPreviousPoint; SkIPoint fUserOffset; float fUserScaleFactor; void mouseMoveEvent(QMouseEvent* event); void mousePressEvent(QMouseEvent* event); void mouseDoubleClickEvent(QMouseEvent* event); void wheelEvent(QWheelEvent* event) { zoom(event->delta()/120); } }; #endif /* SKCANVASWIDGET_H_ */