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

#ifndef __java_awt_PointerInfo__
#define __java_awt_PointerInfo__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class GraphicsDevice;
        class Point;
        class PointerInfo;
    }
  }
}

class java::awt::PointerInfo : public ::java::lang::Object
{

public: // actually package-private
  PointerInfo(::java::awt::GraphicsDevice *, ::java::awt::Point *);
public:
  virtual ::java::awt::GraphicsDevice * getDevice();
  virtual ::java::awt::Point * getLocation();
private:
  ::java::awt::GraphicsDevice * __attribute__((aligned(__alignof__( ::java::lang::Object)))) gd;
  ::java::awt::Point * p;
public:
  static ::java::lang::Class class$;
};

#endif // __java_awt_PointerInfo__
