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

#ifndef __javax_swing_text_DefaultEditorKit$InsertContentAction__
#define __javax_swing_text_DefaultEditorKit$InsertContentAction__

#pragma interface

#include <javax/swing/text/TextAction.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
      namespace event
      {
          class ActionEvent;
      }
    }
  }
  namespace javax
  {
    namespace swing
    {
      namespace text
      {
          class DefaultEditorKit$InsertContentAction;
      }
    }
  }
}

class javax::swing::text::DefaultEditorKit$InsertContentAction : public ::javax::swing::text::TextAction
{

public:
  DefaultEditorKit$InsertContentAction();
  virtual void actionPerformed(::java::awt::event::ActionEvent *);
  static ::java::lang::Class class$;
};

#endif // __javax_swing_text_DefaultEditorKit$InsertContentAction__
