Browse Source

Added Canvas getter/setters

v1.x
Tj Holowaychuk 15 years ago
parent
commit
b23861d1b6
  1. 48
      src/canvas.cc
  2. 8
      src/canvas.h

48
src/canvas.cc

@ -31,8 +31,11 @@ Canvas::Initialize(Handle<Object> target) {
t->InstanceTemplate()->SetInternalFieldCount(1);
t->SetClassName(String::NewSymbol("Canvas"));
Local<ObjectTemplate> proto = t->PrototypeTemplate();
NODE_SET_PROTOTYPE_METHOD(t, "streamPNGSync", StreamPNGSync);
NODE_SET_PROTOTYPE_METHOD(t, "savePNG", SavePNG);
proto->SetAccessor(String::NewSymbol("width"), GetWidth, SetWidth);
proto->SetAccessor(String::NewSymbol("height"), GetHeight, SetHeight);
target->Set(String::NewSymbol("Canvas"), t->GetFunction());
}
@ -48,12 +51,55 @@ Canvas::New(const Arguments &args) {
if (args[0]->IsNumber()) width = args[0]->Uint32Value();
if (args[1]->IsNumber()) height = args[1]->Uint32Value();
Canvas *canvas = new Canvas(width, height);
canvas->Wrap(args.This());
return args.This();
}
/*
* Get width.
*/
Handle<Value>
Canvas::GetWidth(Local<String> prop, const AccessorInfo &info) {
Canvas *canvas = ObjectWrap::Unwrap<Canvas>(info.This());
return Number::New(canvas->width);
}
/*
* Set width.
*/
void
Canvas::SetWidth(Local<String> prop, Local<Value> val, const AccessorInfo &info) {
if (val->IsNumber()) {
Canvas *canvas = ObjectWrap::Unwrap<Canvas>(info.This());
canvas->width = val->Uint32Value();
}
}
/*
* Get height.
*/
Handle<Value>
Canvas::GetHeight(Local<String> prop, const AccessorInfo &info) {
Canvas *canvas = ObjectWrap::Unwrap<Canvas>(info.This());
return Number::New(canvas->height);
}
/*
* Set height.
*/
void
Canvas::SetHeight(Local<String> prop, Local<Value> val, const AccessorInfo &info) {
if (val->IsNumber()) {
Canvas *canvas = ObjectWrap::Unwrap<Canvas>(info.This());
canvas->height = val->Uint32Value();
}
}
/*
* Canvas::StreamPNG callback.
*/

8
src/canvas.h

@ -52,10 +52,10 @@ class Canvas: public node::ObjectWrap {
int height;
static void Initialize(Handle<Object> target);
static Handle<Value> New(const Arguments &args);
static Handle<Value> SetHeight(const Arguments &args);
static Handle<Value> GetHeight(const Arguments &args);
static Handle<Value> SetWidth(const Arguments &args);
static Handle<Value> GetWidth(const Arguments &args);
static Handle<Value> GetWidth(Local<String> prop, const AccessorInfo &info);
static Handle<Value> GetHeight(Local<String> prop, const AccessorInfo &info);
static void SetWidth(Local<String> prop, Local<Value> val, const AccessorInfo &info);
static void SetHeight(Local<String> prop, Local<Value> val, const AccessorInfo &info);
static Handle<Value> SavePNG(const Arguments &args);
static Handle<Value> StreamPNGSync(const Arguments &args);
static Handle<Value> Error(cairo_status_t status);

Loading…
Cancel
Save