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

#ifndef __javax_swing_text_DefaultEditorKit$InsertTabAction__
#define __javax_swing_text_DefaultEditorKit$InsertTabAction__

#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$InsertTabAction;
      }
    }
  }
}

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

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

#endif // __javax_swing_text_DefaultEditorKit$InsertTabAction__
