static void icon_loader_write_cb (EventObject *obj, EventArgs *ea, gpointer user_data) { HttpRequestWriteEventArgs *args = (HttpRequestWriteEventArgs *) ea; IconLoader *icon = (IconLoader *) user_data; const guchar *buffer = (const guchar*)args->GetData (); gint32 offset = args->GetOffset (); gint32 n = args->GetCount (); if (icon->loader == NULL && offset == 0) CreateLoader (icon, buffer); if (icon->loader && icon->moon_error == NULL) icon->loader->Write (buffer, n, &icon->moon_error); }
void BitmapImage::pixbuf_write (EventObject *sender, EventArgs *calldata, gpointer data) { BitmapImage *source = (BitmapImage *) data; HttpRequestWriteEventArgs *ea = (HttpRequestWriteEventArgs *) calldata; source->PixbufWrite ((unsigned char *) ea->GetData (), ea->GetOffset (), ea->GetCount ()); if (source->moon_error) { ImageErrorEventArgs *args = NULL; if (source->HasHandlers(ImageFailedEvent)) args = new ImageErrorEventArgs (*source->moon_error); source->CleanupLoader (); if (args) source->Emit (ImageFailedEvent, args); } }