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

#ifndef __javax_swing_text_StringContent$InsertUndo__
#define __javax_swing_text_StringContent$InsertUndo__

#pragma interface

#include <javax/swing/undo/AbstractUndoableEdit.h>
extern "Java"
{
  namespace javax
  {
    namespace swing
    {
      namespace text
      {
          class StringContent;
          class StringContent$InsertUndo;
      }
    }
  }
}

class javax::swing::text::StringContent$InsertUndo : public ::javax::swing::undo::AbstractUndoableEdit
{

public:
  StringContent$InsertUndo(::javax::swing::text::StringContent *, jint, jint);
  virtual void undo();
  virtual void redo();
private:
  jint __attribute__((aligned(__alignof__( ::javax::swing::undo::AbstractUndoableEdit)))) start;
  jint length;
  ::java::lang::String * redoContent;
  ::java::util::Vector * positions;
public: // actually package-private
  ::javax::swing::text::StringContent * this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_text_StringContent$InsertUndo__
