Home | History | Annotate | Download | only in SkV8Example
      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:
     22     Path2D() : fSkPath() {}
     23     virtual ~Path2D() {}
     24 
     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