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

#ifndef __javax_swing_text_DefaultEditorKit$SelectionBeginAction__
#define __javax_swing_text_DefaultEditorKit$SelectionBeginAction__

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

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

public: // actually package-private
  DefaultEditorKit$SelectionBeginAction();
public:
  virtual void actionPerformed(::java::awt::event::ActionEvent *);
  static ::java::lang::Class class$;
};

#endif // __javax_swing_text_DefaultEditorKit$SelectionBeginAction__
