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

#ifndef __java_awt_MediaTracker$MediaEntry__
#define __java_awt_MediaTracker$MediaEntry__

#pragma interface

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

class java::awt::MediaTracker$MediaEntry : public ::java::lang::Object
{

public: // actually package-private
  MediaTracker$MediaEntry(::java::awt::MediaTracker *);
public:
  virtual jboolean imageUpdate(::java::awt::Image *, jint, jint, jint, jint, jint);
public: // actually package-private
  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) id;
  ::java::awt::Image * image;
  ::java::awt::MediaTracker$MediaEntry * next;
  jint status;
  jint width;
  jint height;
  ::java::awt::MediaTracker * this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __java_awt_MediaTracker$MediaEntry__
