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

#ifndef __javax_swing_text_TextAction$VerticalMovementAction__
#define __javax_swing_text_TextAction$VerticalMovementAction__

#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 Caret;
          class TextAction$VerticalMovementAction;
      }
    }
  }
}

class javax::swing::text::TextAction$VerticalMovementAction : public ::javax::swing::text::TextAction
{

public: // actually package-private
  TextAction$VerticalMovementAction(::java::lang::String *, jint);
public:
  virtual void actionPerformed(::java::awt::event::ActionEvent *);
public: // actually protected
  virtual void actionPerformedImpl(::javax::swing::text::Caret *, jint) = 0;
public: // actually package-private
  jint __attribute__((aligned(__alignof__( ::javax::swing::text::TextAction)))) dir;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_text_TextAction$VerticalMovementAction__
