1 /* 2 * Copyright 2014 Google Inc. 3 * 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 SkV8Example_Path2D_DEFINED 11 #define SkV8Example_Path2D_DEFINED 12 13 #include <v8.h> 14 15 #include "SkPath.h" 16 #include "SkTypes.h" 17 18 class Global; 19 20 class Path2D : SkNoncopyable { 21 public: Path2D()22 Path2D() : fSkPath() {} ~Path2D()23 virtual ~Path2D() {} 24 getSkPath()25 const SkPath& getSkPath() { return fSkPath; } 26 27 // The JS Path2D constuctor implementation. 28 static void ConstructPath(const v8::FunctionCallbackInfo<v8::Value>& args); 29 30 // Add the Path2D JS constructor to the global context. 31 static void AddToGlobal(Global* global); 32 33 // Path2D JS methods. 34 static void ClosePath(const v8::FunctionCallbackInfo<v8::Value>& args); 35 static void MoveTo(const v8::FunctionCallbackInfo<v8::Value>& args); 36 static void LineTo(const v8::FunctionCallbackInfo<v8::Value>& args); 37 static void QuadraticCurveTo( 38 const v8::FunctionCallbackInfo<v8::Value>& args); 39 static void BezierCurveTo(const v8::FunctionCallbackInfo<v8::Value>& args); 40 static void Arc(const v8::FunctionCallbackInfo<v8::Value>& args); 41 static void Rect(const v8::FunctionCallbackInfo<v8::Value>& args); 42 static void Oval(const v8::FunctionCallbackInfo<v8::Value>& args); 43 static void ConicTo(const v8::FunctionCallbackInfo<v8::Value>& args); 44 private: 45 SkPath fSkPath; 46 47 static Path2D* Unwrap(const v8::FunctionCallbackInfo<v8::Value>& args); 48 49 static Global* gGlobal; 50 }; 51 52 #endif 53