55// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
66//
77
8- #include " canvas .h"
9- #include " image .h"
8+ #include " Canvas .h"
9+ #include " Image .h"
1010
1111/*
1212 * Initialize Image.
@@ -20,6 +20,7 @@ Image::Initialize(Handle<Object> target) {
2020 t->SetClassName (String::NewSymbol (" Image" ));
2121
2222 Local<ObjectTemplate> proto = t->PrototypeTemplate ();
23+ NODE_SET_PROTOTYPE_METHOD (t, " inspect" , Inspect);
2324 proto->SetAccessor (String::NewSymbol (" src" ), GetSrc, SetSrc);
2425 target->Set (String::NewSymbol (" Image" ), t->GetFunction ());
2526}
@@ -36,11 +37,52 @@ Image::New(const Arguments &args) {
3637 return args.This ();
3738}
3839
40+ /*
41+ * Custom inspect.
42+ */
43+
44+ Handle<Value>
45+ Image::Inspect (const Arguments &args) {
46+ HandleScope scope;
47+ Image *img = ObjectWrap::Unwrap<Image>(args.This ());
48+ Local<String> str = String::New (" [Image" );
49+ if (img->loaded ()) {
50+ str = String::Concat (str, String::New (" " ));
51+ str = String::Concat (str, String::New (img->filename ()));
52+ }
53+ str = String::Concat (str, String::New (" ]" ));
54+ return scope.Close (str);
55+ }
56+
57+ /*
58+ * Get src path.
59+ */
60+
61+ Handle<Value>
62+ Image::GetSrc (Local<String>, const AccessorInfo &info) {
63+ Image *img = ObjectWrap::Unwrap<Image>(info.This ());
64+ return String::New (img->filename ());
65+ }
66+
67+ /*
68+ * Set src path.
69+ */
70+
71+ void
72+ Image::SetSrc (Local<String>, Local<Value> val, const AccessorInfo &info) {
73+ if (val->IsString ()) {
74+ String::AsciiValue src (val);
75+ Image *img = ObjectWrap::Unwrap<Image>(info.This ());
76+ img->load (*src);
77+ }
78+ }
79+
3980/*
4081 * Initialize a new Image.
4182 */
4283
4384Image::Image () {
85+ _filename = NULL ;
4486 _surface = NULL ;
4587}
4688
@@ -50,4 +92,10 @@ Image::Image() {
5092
5193Image::~Image () {
5294 cairo_surface_destroy (_surface);
95+ }
96+
97+ void
98+ Image::load (char *path) {
99+ _filename = path;
100+ // TODO: implement
53101}
0 commit comments