Renamed JsCanvas to JsContext and moved into it's own file.

Fleshed out a lot of the Path interface.

BUG=
R=robertphillips@google.com, tfarina@chromium.org, reed@google.com

Author: jcgregorio@google.com

Review URL: https://codereview.chromium.org/121303004

git-svn-id: http://skia.googlecode.com/svn/trunk@12913 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/experimental/SkV8Example/Path.h b/experimental/SkV8Example/Path.h
new file mode 100644
index 0000000..0c69770
--- /dev/null
+++ b/experimental/SkV8Example/Path.h
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2014 Google Inc.
+ *
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ *
+ */
+
+#ifndef SkV8Example_Path_DEFINED
+#define SkV8Example_Path_DEFINED
+
+#include <v8.h>
+
+#include "SkPath.h"
+#include "SkTypes.h"
+
+class Global;
+
+class Path : SkNoncopyable {
+public:
+    Path() : fSkPath() {}
+    virtual ~Path() {}
+
+    const SkPath& getSkPath() { return fSkPath; }
+
+    // The JS Path constuctor implementation.
+    static void ConstructPath(const v8::FunctionCallbackInfo<v8::Value>& args);
+
+    // Add the Path JS constructor to the global context.
+    static void AddToGlobal(Global* global);
+
+    // Path JS methods.
+    static void ClosePath(const v8::FunctionCallbackInfo<v8::Value>& args);
+    static void MoveTo(const v8::FunctionCallbackInfo<v8::Value>& args);
+    static void LineTo(const v8::FunctionCallbackInfo<v8::Value>& args);
+    static void QuadraticCurveTo(
+            const v8::FunctionCallbackInfo<v8::Value>& args);
+    static void BezierCurveTo(const v8::FunctionCallbackInfo<v8::Value>& args);
+    static void Arc(const v8::FunctionCallbackInfo<v8::Value>& args);
+    static void Rect(const v8::FunctionCallbackInfo<v8::Value>& args);
+private:
+    SkPath fSkPath;
+
+    static Path* Unwrap(const v8::FunctionCallbackInfo<v8::Value>& args);
+
+    static Global* gGlobal;
+};
+
+#endif