Browse Source

Added Image::state

v1.x
Tj Holowaychuk 14 years ago
parent
commit
ae69896745
  1. 8
      src/Image.cc
  2. 7
      src/Image.h

8
src/Image.cc

@ -50,7 +50,7 @@ Image::New(const Arguments &args) {
Handle<Value> Handle<Value>
Image::GetComplete(Local<String>, const AccessorInfo &info) { Image::GetComplete(Local<String>, const AccessorInfo &info) {
Image *img = ObjectWrap::Unwrap<Image>(info.This()); Image *img = ObjectWrap::Unwrap<Image>(info.This());
return Boolean::New(img->complete); return Boolean::New(Image::COMPLETE == img->state);
} }
/* /*
@ -146,10 +146,10 @@ Image::SetOnerror(Local<String>, Local<Value> val, const AccessorInfo &info) {
*/ */
Image::Image() { Image::Image() {
complete = false;
filename = (char *) ""; filename = (char *) "";
_surface = NULL; _surface = NULL;
width = height = 0; width = height = 0;
state = DEFAULT;
} }
/* /*
@ -198,7 +198,7 @@ EIO_AfterLoad(eio_req *req) {
void void
Image::load() { Image::load() {
Ref(); Ref();
complete = false; state = LOADING;
eio_custom(EIO_Load, EIO_PRI_DEFAULT, EIO_AfterLoad, this); eio_custom(EIO_Load, EIO_PRI_DEFAULT, EIO_AfterLoad, this);
ev_ref(EV_DEFAULT_UC); ev_ref(EV_DEFAULT_UC);
} }
@ -210,7 +210,7 @@ Image::load() {
void void
Image::loaded() { Image::loaded() {
HandleScope scope; HandleScope scope;
complete = true; state = COMPLETE;
if (!onload.IsEmpty()) { if (!onload.IsEmpty()) {
TryCatch try_catch; TryCatch try_catch;

7
src/Image.h

@ -14,7 +14,6 @@ using namespace v8;
class Image: public node::ObjectWrap { class Image: public node::ObjectWrap {
public: public:
bool complete;
char *filename; char *filename;
int width, height; int width, height;
Persistent<Function> onload; Persistent<Function> onload;
@ -39,6 +38,12 @@ class Image: public node::ObjectWrap {
void load(); void load();
Image(); Image();
enum {
DEFAULT
, LOADING
, COMPLETE
} state;
private: private:
cairo_surface_t *_surface; cairo_surface_t *_surface;
~Image(); ~Image();

Loading…
Cancel
Save