OLD | NEW |
| (Empty) |
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_BaseContext_DEFINED | |
11 #define SkV8Example_BaseContext_DEFINED | |
12 | |
13 #include <v8.h> | |
14 | |
15 #include "SkPaint.h" | |
16 | |
17 class SkCanvas; | |
18 class Global; | |
19 | |
20 // BaseContext contains common functionality for both JsContext | |
21 // and DisplayList. | |
22 class BaseContext { | |
23 public: | |
24 BaseContext(Global* global) | |
25 : fGlobal(global) | |
26 { | |
27 fFillStyle.setColor(SK_ColorBLACK); | |
28 fFillStyle.setAntiAlias(true); | |
29 fFillStyle.setStyle(SkPaint::kFill_Style); | |
30 fStrokeStyle.setColor(SK_ColorBLACK); | |
31 fStrokeStyle.setAntiAlias(true); | |
32 fStrokeStyle.setStyle(SkPaint::kStroke_Style); | |
33 } | |
34 virtual ~BaseContext() {} | |
35 | |
36 // Retrieve the SkCanvas to draw on. May return NULL. | |
37 virtual SkCanvas* getCanvas() = 0; | |
38 | |
39 // Add the Javascript attributes and methods that BaseContext implements to
the ObjectTemplate. | |
40 void addAttributesAndMethods(v8::Handle<v8::ObjectTemplate> tmpl); | |
41 | |
42 protected: | |
43 // Get the pointer out of obj. | |
44 static BaseContext* Unwrap(v8::Handle<v8::Object> obj); | |
45 | |
46 Global* fGlobal; | |
47 SkPaint fFillStyle; | |
48 SkPaint fStrokeStyle; | |
49 | |
50 private: | |
51 static void GetStyle(v8::Local<v8::String> name, | |
52 const v8::PropertyCallbackInfo<v8::Value>& info, | |
53 const SkPaint& style); | |
54 static void SetStyle(v8::Local<v8::String> name, v8::Local<v8::Value> value, | |
55 const v8::PropertyCallbackInfo<void>& info, | |
56 SkPaint& style); | |
57 // JS Attributes | |
58 static void GetFillStyle(v8::Local<v8::String> name, | |
59 const v8::PropertyCallbackInfo<v8::Value>& info); | |
60 static void SetFillStyle(v8::Local<v8::String> name, v8::Local<v8::Value> va
lue, | |
61 const v8::PropertyCallbackInfo<void>& info); | |
62 static void GetStrokeStyle(v8::Local<v8::String> name, | |
63 const v8::PropertyCallbackInfo<v8::Value>& info); | |
64 static void SetStrokeStyle(v8::Local<v8::String> name, v8::Local<v8::Value>
value, | |
65 const v8::PropertyCallbackInfo<void>& info); | |
66 static void GetWidth(v8::Local<v8::String> name, | |
67 const v8::PropertyCallbackInfo<v8::Value>& info); | |
68 static void GetHeight(v8::Local<v8::String> name, | |
69 const v8::PropertyCallbackInfo<v8::Value>& info); | |
70 | |
71 // JS Methods | |
72 static void FillRect(const v8::FunctionCallbackInfo<v8::Value>& args); | |
73 static void Stroke(const v8::FunctionCallbackInfo<v8::Value>& args); | |
74 static void Fill(const v8::FunctionCallbackInfo<v8::Value>& args); | |
75 static void Rotate(const v8::FunctionCallbackInfo<v8::Value>& args); | |
76 static void Save(const v8::FunctionCallbackInfo<v8::Value>& args); | |
77 static void Restore(const v8::FunctionCallbackInfo<v8::Value>& args); | |
78 static void Translate(const v8::FunctionCallbackInfo<v8::Value>& args); | |
79 static void ResetTransform(const v8::FunctionCallbackInfo<v8::Value>& args); | |
80 }; | |
81 | |
82 #endif | |
OLD | NEW |