
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __java_awt_image_ImageObserver__
#define __java_awt_image_ImageObserver__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Image;
      namespace image
      {
          class ImageObserver;
      }
    }
  }
}

class java::awt::image::ImageObserver : public ::java::lang::Object
{

public:
  virtual jboolean imageUpdate(::java::awt::Image *, jint, jint, jint, jint, jint) = 0;
  static const jint WIDTH = 1;
  static const jint HEIGHT = 2;
  static const jint PROPERTIES = 4;
  static const jint SOMEBITS = 8;
  static const jint FRAMEBITS = 16;
  static const jint ALLBITS = 32;
  static const jint ERROR = 64;
  static const jint ABORT = 128;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __java_awt_image_ImageObserver__
