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

#ifndef __org_w3c_dom_events_MouseEvent__
#define __org_w3c_dom_events_MouseEvent__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace org
  {
    namespace w3c
    {
      namespace dom
      {
        namespace events
        {
            class EventTarget;
            class MouseEvent;
        }
        namespace views
        {
            class AbstractView;
        }
      }
    }
  }
}

class org::w3c::dom::events::MouseEvent : public ::java::lang::Object
{

public:
  virtual jint getScreenX() = 0;
  virtual jint getScreenY() = 0;
  virtual jint getClientX() = 0;
  virtual jint getClientY() = 0;
  virtual jboolean getCtrlKey() = 0;
  virtual jboolean getShiftKey() = 0;
  virtual jboolean getAltKey() = 0;
  virtual jboolean getMetaKey() = 0;
  virtual jshort getButton() = 0;
  virtual ::org::w3c::dom::events::EventTarget * getRelatedTarget() = 0;
  virtual void initMouseEvent(::java::lang::String *, jboolean, jboolean, ::org::w3c::dom::views::AbstractView *, jint, jint, jint, jint, jint, jboolean, jboolean, jboolean, jboolean, jshort, ::org::w3c::dom::events::EventTarget *) = 0;
  virtual ::org::w3c::dom::views::AbstractView * getView() = 0;
  virtual jint getDetail() = 0;
  virtual void initUIEvent(::java::lang::String *, jboolean, jboolean, ::org::w3c::dom::views::AbstractView *, jint) = 0;
  virtual ::java::lang::String * getType() = 0;
  virtual ::org::w3c::dom::events::EventTarget * getTarget() = 0;
  virtual ::org::w3c::dom::events::EventTarget * getCurrentTarget() = 0;
  virtual jshort getEventPhase() = 0;
  virtual jboolean getBubbles() = 0;
  virtual jboolean getCancelable() = 0;
  virtual jlong getTimeStamp() = 0;
  virtual void stopPropagation() = 0;
  virtual void preventDefault() = 0;
  virtual void initEvent(::java::lang::String *, jboolean, jboolean) = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __org_w3c_dom_events_MouseEvent__
