From 230611991cf21a844e461178ddce133fa39f098f Mon Sep 17 00:00:00 2001 From: Tj Holowaychuk Date: Thu, 30 Sep 2010 11:02:15 -0700 Subject: [PATCH] Added globalAlpha getter/setter --- src/context2d.cc | 22 ++++++++++++++++++++++ src/context2d.h | 3 +++ 2 files changed, 25 insertions(+) diff --git a/src/context2d.cc b/src/context2d.cc index 52ec7b4..f82e9b6 100644 --- a/src/context2d.cc +++ b/src/context2d.cc @@ -100,6 +100,7 @@ Context2d::Initialize(Handle target) { NODE_SET_PROTOTYPE_METHOD(t, "arc", Arc); NODE_SET_PROTOTYPE_METHOD(t, "setFillRGBA", SetFillRGBA); NODE_SET_PROTOTYPE_METHOD(t, "setStrokeRGBA", SetStrokeRGBA); + proto->SetAccessor(String::NewSymbol("globalAlpha"), GetGlobalAlpha, SetGlobalAlpha); proto->SetAccessor(String::NewSymbol("miterLimit"), GetMiterLimit, SetMiterLimit); proto->SetAccessor(String::NewSymbol("lineWidth"), GetLineWidth, SetLineWidth); proto->SetAccessor(String::NewSymbol("lineCap"), GetLineCap, SetLineCap); @@ -128,6 +129,7 @@ Context2d::Context2d(Canvas *canvas): ObjectWrap() { _canvas = canvas; _context = cairo_create(canvas->getSurface()); cairo_set_line_width(_context, 1); + globalAlpha = NULL; RGBA(fill,0,0,0,1); RGBA(stroke,0,0,0,1); } @@ -140,6 +142,26 @@ Context2d::~Context2d() { cairo_destroy(_context); } +/* + * Get global alpha. + */ + +Handle +Context2d::GetGlobalAlpha(Local prop, const AccessorInfo &info) { + Context2d *context = ObjectWrap::Unwrap(info.This()); + return Number::New(context->globalAlpha); +} + +/* + * Set global alpha. + */ + +void +Context2d::SetGlobalAlpha(Local prop, Local val, const AccessorInfo &info) { + Context2d *context = ObjectWrap::Unwrap(info.This()); + context->globalAlpha = val->NumberValue(); +} + /* * Get miter limit. */ diff --git a/src/context2d.h b/src/context2d.h index 7249a8f..b9c3695 100644 --- a/src/context2d.h +++ b/src/context2d.h @@ -18,6 +18,7 @@ class Context2d: public node::ObjectWrap { public: rgba_t fill; rgba_t stroke; + float globalAlpha; static void Initialize(Handle target); static Handle New(const Arguments &args); static Handle Save(const Arguments &args); @@ -40,10 +41,12 @@ class Context2d: public node::ObjectWrap { static Handle ClearRect(const Arguments &args); static Handle Rect(const Arguments &args); static Handle Arc(const Arguments &args); + static Handle GetGlobalAlpha(Local prop, const AccessorInfo &info); static Handle GetMiterLimit(Local prop, const AccessorInfo &info); static Handle GetLineCap(Local prop, const AccessorInfo &info); static Handle GetLineJoin(Local prop, const AccessorInfo &info); static Handle GetLineWidth(Local prop, const AccessorInfo &info); + static void SetGlobalAlpha(Local prop, Local val, const AccessorInfo &info); static void SetMiterLimit(Local prop, Local val, const AccessorInfo &info); static void SetLineCap(Local prop, Local val, const AccessorInfo &info); static void SetLineJoin(Local prop, Local val, const AccessorInfo &info);