/* * Copyright 2011 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "SkView.h" #include "SkColor.h" #include "SkBitmap.h" #include "SkCanvas.h" #include "SkGPipe.h" #include "SkPaint.h" #include "SkDebugDumper.h" #define SKDEBUGGER_COMMANDTYPE "SKDEBUGGER_COMMAND" #define SKDEBUGGER_STATETYPE "SKDEBUGGER_STATE" #define SKDEBUGGER_ATOM "SKDEBUGGER_ATOM" #define SKDEBUGGER_MATRIX "SKDEBUGGER_MATRIX" #define SKDEBUGGER_CLIP "SKDEBUGGER_CLIP" #define SKDEBUGGER_PAINTINFO "SKDEBUGGER_PAINTINFO" #define SKDEBUGGER_PAINT "SKDEBUGGER_PAINT" #define SKDEBUGGER_TEXTSIZE 14 #define CMD_WIDTH 200 #define INFO_HEIGHT 150.0f #define SKDEBUGGER_HIGHLIGHTCOLOR 0xFF113399 #define SKDEBUGGER_TEXTCOLOR 0xFF000000 #define SKDEBUGGER_RESIZEBARCOLOR 0xFF333333 #define SKDEBUGGER_RESIZEBARSIZE 5 /* * Debugger - Info Panel */ class DebuggerStateView : public SkView { public: DebuggerStateView(); protected: virtual bool onEvent(const SkEvent& evt); virtual void onDraw(SkCanvas* canvas); private: SkColor fBGColor; SkPaint fPaint; SkString fMatrix; SkString fPaintInfo; SkString fClip; bool fResizing; typedef SkView INHERITED; }; /* * Debugger - Commands List */ class DebuggerCommandsView : public SkView { public: DebuggerCommandsView(); ~DebuggerCommandsView(); int nextItem(); int prevItem(); int scrollUp(); int scrollDown(); void highlight(int index); int selectHighlight(int ypos); void toggleCentered(); protected: virtual bool onEvent(const SkEvent& evt); virtual void onSizeChange(); virtual void onDraw(SkCanvas* canvas); private: void init(); void alignCenter(); SkColor fBGColor; int fTopIndex; int fHighlight; SkScalar fSpacing; int fRange; bool fResizing; bool fCentered; SkTDArray fList; typedef SkView INHERITED; }; static void* PaintProc(void* ptr, bool doRef) { SkPaint* p = (SkPaint*) ptr; if (doRef) { return new SkPaint(*p); } else { delete p; return NULL; } }