blob: 93c1299c61e29c42163205c18651945ba854e8b2 [file] [log] [blame]
commit-bot@chromium.orgc8d73282014-01-06 18:17:24 +00001/*
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
commit-bot@chromium.orgf679d1b2014-02-27 20:20:21 +000010#ifndef SkV8Example_Path2D_DEFINED
11#define SkV8Example_Path2D_DEFINED
commit-bot@chromium.orgc8d73282014-01-06 18:17:24 +000012
13#include <v8.h>
14
15#include "SkPath.h"
16#include "SkTypes.h"
17
18class Global;
19
commit-bot@chromium.orgf679d1b2014-02-27 20:20:21 +000020class Path2D : SkNoncopyable {
commit-bot@chromium.orgc8d73282014-01-06 18:17:24 +000021public:
commit-bot@chromium.orgf679d1b2014-02-27 20:20:21 +000022 Path2D() : fSkPath() {}
23 virtual ~Path2D() {}
commit-bot@chromium.orgc8d73282014-01-06 18:17:24 +000024
25 const SkPath& getSkPath() { return fSkPath; }
26
commit-bot@chromium.orgf679d1b2014-02-27 20:20:21 +000027 // The JS Path2D constuctor implementation.
commit-bot@chromium.orgc8d73282014-01-06 18:17:24 +000028 static void ConstructPath(const v8::FunctionCallbackInfo<v8::Value>& args);
29
commit-bot@chromium.orgf679d1b2014-02-27 20:20:21 +000030 // Add the Path2D JS constructor to the global context.
commit-bot@chromium.orgc8d73282014-01-06 18:17:24 +000031 static void AddToGlobal(Global* global);
32
commit-bot@chromium.orgf679d1b2014-02-27 20:20:21 +000033 // Path2D JS methods.
commit-bot@chromium.orgc8d73282014-01-06 18:17:24 +000034 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);
commit-bot@chromium.orgcd110182014-01-10 21:33:01 +000042 static void Oval(const v8::FunctionCallbackInfo<v8::Value>& args);
commit-bot@chromium.orge1df5652014-02-13 16:00:58 +000043 static void ConicTo(const v8::FunctionCallbackInfo<v8::Value>& args);
commit-bot@chromium.orgc8d73282014-01-06 18:17:24 +000044private:
45 SkPath fSkPath;
46
commit-bot@chromium.orgf679d1b2014-02-27 20:20:21 +000047 static Path2D* Unwrap(const v8::FunctionCallbackInfo<v8::Value>& args);
commit-bot@chromium.orgc8d73282014-01-06 18:17:24 +000048
49 static Global* gGlobal;
50};
51
52#endif