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

#ifndef __javax_swing_text_DefaultCaret__
#define __javax_swing_text_DefaultCaret__

#pragma interface

#include <java/awt/Rectangle.h>
#include <gcj/array.h>

extern "Java"
{
  namespace java
  {
    namespace awt
    {
      class Rectangle;
      class Graphics;
      namespace event
      {
        class FocusEvent;
        class MouseEvent;
      }
      class Point;
    }
    namespace beans
    {
      class PropertyChangeListener;
    }
  }
  namespace javax
  {
    namespace swing
    {
      class Timer;
      namespace text
      {
        class DefaultCaret;
        class Highlighter$HighlightPainter;
        class DefaultCaret$BlinkTimerListener;
        class JTextComponent;
      }
      namespace event
      {
        class ChangeListener;
        class DocumentListener;
        class EventListenerList;
        class ChangeEvent;
      }
    }
  }
}

class javax::swing::text::DefaultCaret : public ::java::awt::Rectangle
{
public:
  DefaultCaret ();
  virtual void setUpdatePolicy (jint);
  virtual jint getUpdatePolicy () { return policy; }
  virtual void mouseDragged (::java::awt::event::MouseEvent *);
  virtual void mouseMoved (::java::awt::event::MouseEvent *) { }
  virtual void mouseClicked (::java::awt::event::MouseEvent *) { }
  virtual void mouseEntered (::java::awt::event::MouseEvent *) { }
  virtual void mouseExited (::java::awt::event::MouseEvent *) { }
  virtual void mousePressed (::java::awt::event::MouseEvent *);
  virtual void mouseReleased (::java::awt::event::MouseEvent *) { }
  virtual void focusGained (::java::awt::event::FocusEvent *);
  virtual void focusLost (::java::awt::event::FocusEvent *);
public:  // actually protected
  virtual void moveCaret (::java::awt::event::MouseEvent *);
  virtual void positionCaret (::java::awt::event::MouseEvent *);
public:
  virtual void deinstall (::javax::swing::text::JTextComponent *);
  virtual void install (::javax::swing::text::JTextComponent *);
  virtual void setMagicCaretPosition (::java::awt::Point *);
  virtual ::java::awt::Point *getMagicCaretPosition () { return magicCaretPosition; }
  virtual jint getMark () { return mark; }
private:
  void handleHighlight ();
public:
  virtual void setSelectionVisible (jboolean);
  virtual jboolean isSelectionVisible () { return selectionVisible; }
public:  // actually protected
  virtual void repaint ();
public:
  virtual void paint (::java::awt::Graphics *);
  virtual JArray< ::java::util::EventListener *> *getListeners (::java::lang::Class *);
  virtual void addChangeListener (::javax::swing::event::ChangeListener *);
  virtual void removeChangeListener (::javax::swing::event::ChangeListener *);
  virtual JArray< ::javax::swing::event::ChangeListener *> *getChangeListeners ();
public:  // actually protected
  virtual void fireStateChanged ();
  virtual ::javax::swing::text::JTextComponent *getComponent () { return textComponent; }
public:
  virtual jint getBlinkRate () { return blinkRate; }
  virtual void setBlinkRate (jint);
  virtual jint getDot () { return dot; }
  virtual void moveDot (jint);
  virtual void setDot (jint);
public: // actually package-private
  virtual void appear ();
public:
  virtual jboolean isVisible () { return visible; }
  virtual void setVisible (jboolean);
public:  // actually protected
  virtual ::javax::swing::text::Highlighter$HighlightPainter *getSelectionPainter ();
  virtual void damage (::java::awt::Rectangle *);
  virtual void adjustVisibility (::java::awt::Rectangle *);
private:
  void initBlinkTimer ();
  static const jlong serialVersionUID = 4325555698756477346LL;
public:
  static const jint ALWAYS_UPDATE = 2L;
  static const jint NEVER_UPDATE = 1L;
  static const jint UPDATE_WHEN_ON_EDT = 0L;
public: // actually package-private
  jint __attribute__((aligned(__alignof__( ::java::awt::Rectangle ))))  policy;
public:  // actually protected
  ::javax::swing::event::ChangeEvent *changeEvent;
  ::javax::swing::event::EventListenerList *listenerList;
public: // actually package-private
  ::javax::swing::event::DocumentListener *documentListener;
  ::java::beans::PropertyChangeListener *propertyChangeListener;
private:
  ::javax::swing::text::JTextComponent *textComponent;
  jboolean selectionVisible;
  jint blinkRate;
  jint dot;
  jint mark;
  ::java::awt::Point *magicCaretPosition;
public: // actually package-private
  jboolean visible;
private:
  ::java::lang::Object *highlightEntry;
  ::javax::swing::Timer *blinkTimer;
  ::javax::swing::text::DefaultCaret$BlinkTimerListener *blinkListener;
  static jboolean $assertionsDisabled;

  friend class javax_swing_text_DefaultCaret$PropertyChangeHandler;
  friend class javax_swing_text_DefaultCaret$DocumentHandler;
  friend class javax_swing_text_DefaultCaret$BlinkTimerListener;
public:

  static ::java::lang::Class class$;
};

#endif /* __javax_swing_text_DefaultCaret__ */
