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

#ifndef __javax_swing_plaf_basic_BasicTextUI__
#define __javax_swing_plaf_basic_BasicTextUI__

#pragma interface

#include <javax/swing/plaf/TextUI.h>
#include <gcj/array.h>

extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Dimension;
        class Graphics;
        class Insets;
        class Point;
        class Rectangle;
      namespace event
      {
          class FocusListener;
      }
    }
    namespace beans
    {
        class PropertyChangeEvent;
    }
  }
  namespace javax
  {
    namespace swing
    {
        class ActionMap;
        class InputMap;
        class JComponent;
      namespace plaf
      {
        namespace basic
        {
            class BasicTextUI;
            class BasicTextUI$Handler;
            class BasicTextUI$RootView;
        }
      }
      namespace text
      {
          class Caret;
          class EditorKit;
          class Element;
          class Highlighter;
          class JTextComponent;
          class Keymap;
          class Position$Bias;
          class View;
      }
    }
  }
}

class javax::swing::plaf::basic::BasicTextUI : public ::javax::swing::plaf::TextUI
{

public:
  BasicTextUI();
public: // actually protected
  virtual ::javax::swing::text::Caret * createCaret();
  virtual ::javax::swing::text::Highlighter * createHighlighter();
  virtual ::javax::swing::text::JTextComponent * getComponent();
public:
  virtual void installUI(::javax::swing::JComponent *);
public: // actually protected
  virtual void installDefaults();
private:
  void installFixedDefaults();
public: // actually protected
  virtual void installListeners();
  virtual ::java::lang::String * getKeymapName();
  virtual ::javax::swing::text::Keymap * createKeymap();
  virtual void installKeyboardActions();
private:
  ::javax::swing::ActionMap * getActionMap();
  ::javax::swing::ActionMap * createActionMap();
  ::javax::swing::InputMap * getInputMap();
public:
  virtual void uninstallUI(::javax::swing::JComponent *);
public: // actually protected
  virtual void uninstallDefaults();
private:
  void uninstallFixedDefaults();
public: // actually protected
  virtual void uninstallListeners();
  virtual void uninstallKeyboardActions();
  virtual ::java::lang::String * getPropertyPrefix() = 0;
public:
  virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *);
  virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *);
  virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *);
  virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *);
public: // actually protected
  virtual void paintSafely(::java::awt::Graphics *);
  virtual void paintBackground(::java::awt::Graphics *);
public:
  virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *);
  virtual void damageRange(::javax::swing::text::JTextComponent *, jint, jint);
  virtual void damageRange(::javax::swing::text::JTextComponent *, jint, jint, ::javax::swing::text::Position$Bias *, ::javax::swing::text::Position$Bias *);
  virtual ::javax::swing::text::EditorKit * getEditorKit(::javax::swing::text::JTextComponent *);
  virtual jint getNextVisualPositionFrom(::javax::swing::text::JTextComponent *, jint, ::javax::swing::text::Position$Bias *, jint, JArray< ::javax::swing::text::Position$Bias * > *);
  virtual ::javax::swing::text::View * getRootView(::javax::swing::text::JTextComponent *);
  virtual ::java::awt::Rectangle * modelToView(::javax::swing::text::JTextComponent *, jint);
  virtual ::java::awt::Rectangle * modelToView(::javax::swing::text::JTextComponent *, jint, ::javax::swing::text::Position$Bias *);
  virtual jint viewToModel(::javax::swing::text::JTextComponent *, ::java::awt::Point *);
  virtual jint viewToModel(::javax::swing::text::JTextComponent *, ::java::awt::Point *, JArray< ::javax::swing::text::Position$Bias * > *);
  virtual ::javax::swing::text::View * create(::javax::swing::text::Element *);
  virtual ::javax::swing::text::View * create(::javax::swing::text::Element *, jint, jint);
public: // actually protected
  virtual ::java::awt::Rectangle * getVisibleEditorRect();
  virtual void setView(::javax::swing::text::View *);
  virtual void modelChanged();
  virtual void propertyChange(::java::beans::PropertyChangeEvent *);
private:
  static ::java::awt::event::FocusListener * focusListener;
  static ::javax::swing::text::EditorKit * kit;
public: // actually package-private
  ::javax::swing::plaf::basic::BasicTextUI$Handler * __attribute__((aligned(__alignof__( ::javax::swing::plaf::TextUI)))) handler;
  ::javax::swing::plaf::basic::BasicTextUI$RootView * rootView;
  ::javax::swing::text::JTextComponent * textComponent;
private:
  ::java::awt::Insets * cachedInsets;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_plaf_basic_BasicTextUI__
