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>
Image::GetComplete(Local<String>, const AccessorInfo &info) {
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() {
complete = false;
filename = (char *) "";
_surface = NULL;
width = height = 0;
state = DEFAULT;
}
/*
@ -198,7 +198,7 @@ EIO_AfterLoad(eio_req *req) {
void
Image::load() {
Ref();
complete = false;
state = LOADING;
eio_custom(EIO_Load, EIO_PRI_DEFAULT, EIO_AfterLoad, this);
ev_ref(EV_DEFAULT_UC);
}
@ -210,7 +210,7 @@ Image::load() {
void
Image::loaded() {
HandleScope scope;
complete = true;
state = COMPLETE;
if (!onload.IsEmpty()) {
TryCatch try_catch;

7
src/Image.h

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

Loading…
Cancel
Save