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

#ifndef __javax_swing_JComponent__
#define __javax_swing_JComponent__

#pragma interface

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

extern "Java"
{
  namespace java
  {
    namespace beans
    {
      class VetoableChangeListener;
      class PropertyChangeListener;
    }
    namespace awt
    {
      class Color;
      class Font;
      class Container;
      class Component;
      class Point;
      class Insets;
      class Graphics;
      namespace event
      {
        class FocusEvent;
        class KeyEvent;
        class MouseEvent;
        class ActionListener;
      }
      class Rectangle;
      class Dimension;
    }
  }
  namespace javax
  {
    namespace swing
    {
      class JComponent;
      class JRootPane;
      class KeyStroke;
      namespace event
      {
        class AncestorListener;
      }
      namespace plaf
      {
        class ComponentUI;
      }
      class JToolTip;
      namespace border
      {
        class Border;
      }
    }
    namespace accessibility
    {
      class AccessibleContext;
    }
  }
}

class javax::swing::JComponent : public ::java::awt::Container
{
public:
  JComponent ();
  virtual jboolean contains (jint, jint);
  virtual void addNotify ();
public: // actually package-private
  virtual ::java::util::Hashtable *get_prop_hash ();
public:
  virtual ::java::util::Vector *get_veto_list ();
  virtual ::java::util::Vector *get_change_list ();
  virtual ::java::util::Vector *get_ancestor_list ();
  virtual ::java::lang::Object *getClientProperty (::java::lang::Object *);
  virtual void putClientProperty (::java::lang::Object *, ::java::lang::Object *);
  virtual void removeAncestorListener (::javax::swing::event::AncestorListener *);
  virtual void removePropertyChangeListener (::java::beans::PropertyChangeListener *);
  virtual void removePropertyChangeListener (::java::lang::String *, ::java::beans::PropertyChangeListener *);
  virtual void removeVetoableChangeListener (::java::beans::VetoableChangeListener *);
  virtual void addAncestorListener (::javax::swing::event::AncestorListener *);
  virtual void addPropertyChangeListener (::java::beans::PropertyChangeListener *);
  virtual void addPropertyChangeListener (::java::lang::String *, ::java::beans::PropertyChangeListener *);
  virtual void addVetoableChangeListener (::java::beans::VetoableChangeListener *);
  virtual void computeVisibleRect (::java::awt::Rectangle *) { }
  virtual void firePropertyChange (::java::lang::String *, jboolean, jboolean) { }
  virtual void firePropertyChange (::java::lang::String *, jbyte, jbyte) { }
  virtual void firePropertyChange (::java::lang::String *, jchar, jchar) { }
  virtual void firePropertyChange (::java::lang::String *, jdouble, jdouble) { }
  virtual void firePropertyChange (::java::lang::String *, jfloat, jfloat) { }
  virtual void firePropertyChange (::java::lang::String *, jint, jint) { }
  virtual void firePropertyChange (::java::lang::String *, jlong, jlong) { }
public:  // actually protected
  virtual void firePropertyChange (::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *) { }
public:
  virtual void firePropertyChange (::java::lang::String *, jshort, jshort) { }
public:  // actually protected
  virtual void fireVetoableChange (::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *) { }
public:
  virtual ::javax::accessibility::AccessibleContext *getAccessibleContext () { return 0; }
  virtual ::java::awt::event::ActionListener *getActionForKeyStroke (::javax::swing::KeyStroke *) { return 0; }
  virtual jfloat getAlignmentX ();
  virtual jfloat getAlignmentY ();
  virtual jboolean getAutoscrolls ();
  virtual void setBorder (::javax::swing::border::Border *);
  virtual ::javax::swing::border::Border *getBorder () { return border; }
  virtual ::java::awt::Rectangle *getBounds (::java::awt::Rectangle *);
public:  // actually protected
  virtual ::java::awt::Graphics *getComponentGraphics (::java::awt::Graphics *);
public:
  virtual jint getConditionForKeyStroke (::javax::swing::KeyStroke *);
  virtual jint getDebugGraphicsOptions ();
  virtual ::java::awt::Graphics *getGraphics ();
  virtual ::java::awt::Insets *getInsets ();
  virtual ::java::awt::Insets *getInsets (::java::awt::Insets *);
  virtual ::java::awt::Point *getLocation (::java::awt::Point *);
  virtual ::java::awt::Dimension *getMaximumSize ();
  virtual ::java::awt::Dimension *getMinimumSize ();
  virtual ::java::awt::Dimension *getPreferredSize ();
  virtual ::java::awt::Component *getNextFocusableComponent () { return 0; }
  virtual JArray< ::javax::swing::KeyStroke *> *getRegisteredKeyStrokes () { return 0; }
  virtual ::javax::swing::JRootPane *getRootPane ();
  virtual ::java::awt::Dimension *getSize (::java::awt::Dimension *);
  virtual ::javax::swing::JToolTip *createToolTip ();
  virtual ::java::awt::Point *getToolTipLocation (::java::awt::event::MouseEvent *) { return 0; }
  virtual void setToolTipText (::java::lang::String *);
  virtual ::java::lang::String *getToolTipText () { return tool_tip_text; }
  virtual ::java::lang::String *getToolTipText (::java::awt::event::MouseEvent *) { return tool_tip_text; }
  virtual ::java::awt::Container *getTopLevelAncestor ();
  virtual ::java::awt::Rectangle *getVisibleRect ();
  virtual void grabFocus () { }
  virtual jboolean hasFocus ();
  virtual jboolean isDoubleBuffered () { return use_double_buffer; }
  virtual jboolean isFocusCycleRoot ();
  virtual jboolean isFocusTraversable ();
  static jboolean isLightweightComponent (::java::awt::Component *);
  virtual jboolean isManagingFocus ();
  virtual jboolean isOpaque () { return opaque; }
  virtual jboolean isOptimizedDrawingEnabled ();
  virtual jboolean isPaintingTile ();
  virtual jboolean isRequestFocusEnabled ();
  virtual jboolean isValidateRoot ();
  virtual void paint (::java::awt::Graphics *);
public:  // actually protected
  virtual void paintBorder (::java::awt::Graphics *);
  virtual void paintChildren (::java::awt::Graphics *) { }
  virtual void paintComponent (::java::awt::Graphics *);
public:
  virtual void paintImmediately (jint, jint, jint, jint) { }
  virtual void paintImmediately (::java::awt::Rectangle *);
public:  // actually protected
  virtual ::java::lang::String *paramString ();
  virtual void processComponentKeyEvent (::java::awt::event::KeyEvent *) { }
  virtual void processFocusEvent (::java::awt::event::FocusEvent *) { }
  virtual void processKeyEvent (::java::awt::event::KeyEvent *) { }
public:
  virtual void processMouseMotionEvent (::java::awt::event::MouseEvent *) { }
  virtual void registerKeyboardAction (::java::awt::event::ActionListener *, ::javax::swing::KeyStroke *, jint);
  virtual void registerKeyboardAction (::java::awt::event::ActionListener *, ::java::lang::String *, ::javax::swing::KeyStroke *, jint) { }
  virtual void removeNotify () { }
  virtual void repaint (jlong, jint, jint, jint, jint);
  virtual void repaint (::java::awt::Rectangle *);
  virtual jboolean requestDefaultFocus ();
  virtual void requestFocus ();
  virtual void resetKeyboardActions () { }
  virtual void reshape (jint, jint, jint, jint);
  virtual void revalidate ();
  virtual void scrollRectToVisible (::java::awt::Rectangle *) { }
  virtual void setAlignmentX (jfloat) { }
  virtual void setAlignmentY (jfloat) { }
  virtual void setAutoscrolls (jboolean) { }
  virtual void setDebugGraphicsOptions (jint) { }
  virtual void setDoubleBuffered (jboolean);
  virtual void setEnabled (jboolean);
  virtual void setFont (::java::awt::Font *);
  virtual void setBackground (::java::awt::Color *);
  virtual void setForeground (::java::awt::Color *);
  virtual void setMaximumSize (::java::awt::Dimension *);
  virtual void setMinimumSize (::java::awt::Dimension *);
  virtual void setPreferredSize (::java::awt::Dimension *);
  virtual void setNextFocusableComponent (::java::awt::Component *) { }
  virtual void setOpaque (jboolean);
  virtual void setRequestFocusEnabled (jboolean) { }
  virtual void setVisible (jboolean);
  virtual void unregisterKeyboardAction (::javax::swing::KeyStroke *) { }
  virtual void update (::java::awt::Graphics *);
  virtual ::java::lang::String *getUIClassID ();
public:  // actually protected
  virtual void setUI (::javax::swing::plaf::ComponentUI *);
public:
  virtual void updateUI ();
public: // actually package-private
  static const jlong serialVersionUID = -5242478962609715464LL;
public:  // actually protected
  ::javax::accessibility::AccessibleContext * __attribute__((aligned(__alignof__( ::java::awt::Container )))) accessibleContext;
public: // actually package-private
  ::java::awt::Dimension *pref;
  ::java::awt::Dimension *min;
  ::java::awt::Dimension *max;
  ::javax::swing::border::Border *border;
  ::javax::swing::JToolTip *tooltip;
  ::java::lang::String *tool_tip_text;
  jboolean use_double_buffer;
  jboolean opaque;
public:  // actually protected
  ::javax::swing::plaf::ComponentUI *ui;
public: // actually package-private
  ::java::util::Vector *ancestor_list;
  ::java::util::Vector *veto_list;
  ::java::util::Vector *change_list;
  ::java::util::Hashtable *prop_hash;

  friend class javax_swing_JComponent$AccessibleJComponent;
public:

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

#endif /* __javax_swing_JComponent__ */
