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

#ifndef __java_awt_dnd_DragSourceEvent__
#define __java_awt_dnd_DragSourceEvent__

#pragma interface

#include <java/util/EventObject.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Point;
      namespace dnd
      {
          class DragSourceContext;
          class DragSourceEvent;
      }
    }
  }
}

class java::awt::dnd::DragSourceEvent : public ::java::util::EventObject
{

public:
  DragSourceEvent(::java::awt::dnd::DragSourceContext *);
  DragSourceEvent(::java::awt::dnd::DragSourceContext *, jint, jint);
  virtual ::java::awt::dnd::DragSourceContext * getDragSourceContext();
  virtual ::java::awt::Point * getLocation();
  virtual jint getX();
  virtual jint getY();
private:
  static const jlong serialVersionUID = -763287114604032641LL;
  jboolean __attribute__((aligned(__alignof__( ::java::util::EventObject)))) locationSpecified;
  jint x;
  jint y;
public:
  static ::java::lang::Class class$;
};

#endif // __java_awt_dnd_DragSourceEvent__
