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

#ifndef __javax_swing_GrayFilter__
#define __javax_swing_GrayFilter__

#pragma interface

#include <java/awt/image/RGBImageFilter.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Image;
    }
  }
  namespace javax
  {
    namespace swing
    {
        class GrayFilter;
    }
  }
}

class javax::swing::GrayFilter : public ::java::awt::image::RGBImageFilter
{

public:
  GrayFilter(jboolean, jint);
  static ::java::awt::Image * createDisabledImage(::java::awt::Image *);
  virtual jint filterRGB(jint, jint, jint);
private:
  jboolean __attribute__((aligned(__alignof__( ::java::awt::image::RGBImageFilter)))) b;
  jdouble p;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_GrayFilter__
