Refactoring into a public facing facing SkDebugger class first pass.

Review URL: https://codereview.appspot.com/6450096

git-svn-id: http://skia.googlecode.com/svn/trunk@4986 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/debugger/SkDebugger.h b/debugger/SkDebugger.h
new file mode 100644
index 0000000..eb724f3
--- /dev/null
+++ b/debugger/SkDebugger.h
@@ -0,0 +1,112 @@
+
+/*
+ * 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 SKDEBUGGER_H_
+#define SKDEBUGGER_H_
+
+#include "SkDebugCanvas.h"
+#include "SkPicture.h"
+
+class SkDebugger {
+public:
+    SkDebugger();
+
+    ~SkDebugger();
+
+    void setIndex(int index) {
+        fIndex = index;
+    }
+    void draw(SkCanvas* canvas) {
+        if (fIndex > 0) {
+            fDebugCanvas->drawTo(canvas, fIndex);
+        }
+    }
+
+    void step();
+    void stepBack();
+    void play();
+    void rewind();
+
+    bool isCommandVisible(int index) {
+        return fDebugCanvas->getDrawCommandVisibilityAt(index);
+    }
+
+    void setCommandVisible(int index, bool isVisible) {
+        fDebugCanvas->toggleCommand(index, isVisible);
+    }
+
+    // TODO(chudy): Replace with SkTDArray
+    std::vector<std::string>* getDrawCommands() {
+        return fDebugCanvas->getDrawCommandsAsStrings();
+    }
+
+    void highlightCurrentCommand(bool on) {
+        fDebugCanvas->toggleFilter(on);
+    }
+
+    void resize(int width, int height) {
+        fDebugCanvas->setBounds(width, height);
+    }
+
+    void loadPicture(SkPicture* picture);
+
+    SkPicture* makePicture();
+
+    int getSize() {
+        return fDebugCanvas->getSize();
+    }
+
+    void setUserOffset(SkIPoint userOffset) {
+        // Should this live in debugger instead?
+        fDebugCanvas->setUserOffset(userOffset);
+    }
+
+    void setUserScale(float userScale) {
+        fDebugCanvas->setUserScale(userScale);
+    }
+
+    int getCommandAtPoint(int x, int y, int index) {
+        return fDebugCanvas->getCommandAtPoint(x, y, index);
+    }
+
+    std::vector<std::string>* getCommandInfo(int index) {
+        return fDebugCanvas->getCommandInfo(index);
+    }
+
+    const SkMatrix& getCurrentMatrix() {
+        return fDebugCanvas->getCurrentMatrix();
+    }
+
+    const SkIRect& getCurrentClip() {
+        return fDebugCanvas->getCurrentClip();
+    }
+
+    int pictureHeight() {
+        return fPictureHeight;
+    }
+
+    int pictureWidth() {
+        return fPictureWidth;
+    }
+
+    int index() {
+        return fIndex;
+    }
+
+private:
+    SkDebugCanvas* fDebugCanvas;
+    SkPicture* fPicture;
+
+    int fPictureWidth;
+    int fPictureHeight;
+    int fIndex;
+};
+
+
+#endif /* SKDEBUGGER_H_ */