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

#ifndef __gnu_xml_dom_DomEvent$DomUIEvent__
#define __gnu_xml_dom_DomEvent$DomUIEvent__

#pragma interface

#include <gnu/xml/dom/DomEvent.h>
extern "Java"
{
  namespace gnu
  {
    namespace xml
    {
      namespace dom
      {
          class DomEvent$DomUIEvent;
      }
    }
  }
  namespace org
  {
    namespace w3c
    {
      namespace dom
      {
        namespace views
        {
            class AbstractView;
        }
      }
    }
  }
}

class gnu::xml::dom::DomEvent$DomUIEvent : public ::gnu::xml::dom::DomEvent
{

public:
  DomEvent$DomUIEvent(::java::lang::String *);
  virtual ::org::w3c::dom::views::AbstractView * getView();
  virtual jint getDetail();
  virtual void initUIEvent(::java::lang::String *, jboolean, jboolean, ::org::w3c::dom::views::AbstractView *, jint);
private:
  ::org::w3c::dom::views::AbstractView * __attribute__((aligned(__alignof__( ::gnu::xml::dom::DomEvent)))) view;
  jint detail;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_xml_dom_DomEvent$DomUIEvent__
