/* * 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_Path2D_DEFINED #define SkV8Example_Path2D_DEFINED #include <v8.h> #include "SkPath.h" #include "SkTypes.h" class Global; class Path2D : SkNoncopyable { public: Path2D() : fSkPath() {} virtual ~Path2D() {} const SkPath& getSkPath() { return fSkPath; } // The JS Path2D constuctor implementation. static void ConstructPath(const v8::FunctionCallbackInfo<v8::Value>& args); // Add the Path2D JS constructor to the global context. static void AddToGlobal(Global* global); // Path2D 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); static void Oval(const v8::FunctionCallbackInfo<v8::Value>& args); static void ConicTo(const v8::FunctionCallbackInfo<v8::Value>& args); private: SkPath fSkPath; static Path2D* Unwrap(const v8::FunctionCallbackInfo<v8::Value>& args); static Global* gGlobal; }; #endif