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_Path2DBuilder_DEFINED
     11 #define SkV8Example_Path2DBuilder_DEFINED
     12 
     13 #include <v8.h>
     14 
     15 #include "SkPath.h"
     16 #include "SkTypes.h"
     17 
     18 class Global;
     19 
     20 class Path2DBuilder : SkNoncopyable {
     21 public:
     22     Path2DBuilder() : fSkPath() {}
     23     virtual ~Path2DBuilder() {}
     24 
     25     const SkPath& getSkPath() { return fSkPath; }
     26 
     27     // The JS Path2DBuilder constuctor implementation.
     28     static void ConstructPath(const v8::FunctionCallbackInfo<v8::Value>& args);
     29 
     30     // Add the Path2DBuilder JS constructor to the global context.
     31     static void AddToGlobal(Global* global);
     32 
     33     // Path2DBuilder 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     static void Finalize(const v8::FunctionCallbackInfo<v8::Value>& args);
     45 private:
     46     SkPath fSkPath;
     47 
     48     static Path2DBuilder* Unwrap(const v8::FunctionCallbackInfo<v8::Value>& args);
     49 
     50     static Global* gGlobal;
     51 };
     52 
     53 #endif
     54