// 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 VetoableChangeSupport;
    }
    namespace awt
    {
      class Color;
      class Font;
      class Container;
      namespace event
      {
        class KeyEvent;
        class ActionListener;
        class MouseEvent;
      }
      class Component;
      class Point;
      class Insets;
      class Graphics;
      class Rectangle;
      class Image;
      class Dimension;
    }
  }
  namespace javax
  {
    namespace swing
    {
      class JComponent;
      class JToolTip;
      class JRootPane;
      class KeyStroke;
      class TransferHandler;
      class InputVerifier;
      class ActionMap;
      class ComponentInputMap;
      class InputMap;
      namespace event
      {
        class AncestorListener;
        class EventListenerList;
      }
      namespace plaf
      {
        class ComponentUI;
      }
      class JPopupMenu;
      namespace border
      {
        class Border;
      }
    }
    namespace accessibility
    {
      class AccessibleContext;
    }
  }
}

class javax::swing::JComponent : public ::java::awt::Container
{
public:
  JComponent ();
private:
  ::java::util::Hashtable *getClientProperties ();
public:
  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 removeVetoableChangeListener (::java::beans::VetoableChangeListener *);
  virtual void addAncestorListener (::javax::swing::event::AncestorListener *);
  virtual void addVetoableChangeListener (::java::beans::VetoableChangeListener *);
  virtual JArray< ::java::util::EventListener *> *getListeners (::java::lang::Class *);
  virtual JArray< ::javax::swing::event::AncestorListener *> *getAncestorListeners ();
  virtual JArray< ::java::beans::VetoableChangeListener *> *getVetoableChangeListeners ();
public:  // actually protected
  virtual void fireVetoableChange (::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *);
public:
  virtual void firePropertyChange (::java::lang::String *, jint, jint);
  virtual void firePropertyChange (::java::lang::String *, jboolean, jboolean);
  virtual void firePropertyChange (::java::lang::String *, jchar, jchar);
  virtual ::javax::accessibility::AccessibleContext *getAccessibleContext () { return 0; }
  virtual jfloat getAlignmentX ();
  virtual jfloat getAlignmentY ();
  virtual jboolean getAutoscrolls () { return autoscrolls; }
  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 getDebugGraphicsOptions ();
  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 jboolean isMaximumSizeSet ();
  virtual jboolean isMinimumSizeSet ();
  virtual jboolean isPreferredSizeSet ();
  virtual ::java::awt::Component *getNextFocusableComponent ();
  virtual JArray< ::javax::swing::KeyStroke *> *getRegisteredKeyStrokes ();
  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 toolTipText; }
  virtual ::java::lang::String *getToolTipText (::java::awt::event::MouseEvent *);
  virtual jboolean getInheritsPopupMenu () { return inheritsPopupMenu; }
  virtual void setInheritsPopupMenu (jboolean);
  virtual ::javax::swing::JPopupMenu *getComponentPopupMenu ();
  virtual void setComponentPopupMenu (::javax::swing::JPopupMenu *);
  virtual ::java::awt::Container *getTopLevelAncestor ();
  virtual void computeVisibleRect (::java::awt::Rectangle *);
  virtual ::java::awt::Rectangle *getVisibleRect ();
  virtual void grabFocus ();
  virtual jboolean isDoubleBuffered () { return doubleBuffered; }
  static jboolean isLightweightComponent (::java::awt::Component *);
  virtual jboolean isManagingFocus ();
  virtual jboolean isOpaque () { return opaque; }
  virtual jboolean isOptimizedDrawingEnabled ();
  virtual jboolean isPaintingTile () { return paintingTile; }
  virtual jboolean isRequestFocusEnabled () { return requestFocusEnabled; }
  virtual jboolean isValidateRoot ();
  virtual void paint (::java::awt::Graphics *);
private:
  void initializeDragBuffer ();
public:  // actually protected
  virtual void paintBorder (::java::awt::Graphics *);
  virtual void paintChildren (::java::awt::Graphics *);
private:
  jboolean isCompletelyObscured (jint, ::java::awt::Rectangle *);
public:  // actually protected
  virtual void paintComponent (::java::awt::Graphics *);
public:
  virtual void paintImmediately (jint, jint, jint, jint);
  virtual void paintImmediately (::java::awt::Rectangle *);
public: // actually package-private
  virtual void paintImmediately2 (::java::awt::Rectangle *);
private:
  jboolean isPaintingDoubleBuffered ();
  void paintDoubleBuffered (::java::awt::Rectangle *);
  void clipAndTranslateGraphics (::java::awt::Component *, ::java::awt::Component *, ::java::awt::Graphics *);
public: // actually package-private
  virtual void paintSimple (::java::awt::Rectangle *);
public:  // actually protected
  virtual ::java::lang::String *paramString ();
public:
  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 setInputMap (jint, ::javax::swing::InputMap *);
  virtual ::javax::swing::InputMap *getInputMap (jint);
  virtual ::javax::swing::InputMap *getInputMap ();
  virtual ::javax::swing::ActionMap *getActionMap ();
  virtual void setActionMap (::javax::swing::ActionMap *);
  virtual jint getConditionForKeyStroke (::javax::swing::KeyStroke *);
  virtual ::java::awt::event::ActionListener *getActionForKeyStroke (::javax::swing::KeyStroke *);
public:  // actually protected
  virtual void processComponentKeyEvent (::java::awt::event::KeyEvent *) { }
  virtual void processKeyEvent (::java::awt::event::KeyEvent *);
  virtual jboolean processKeyBinding (::javax::swing::KeyStroke *, ::java::awt::event::KeyEvent *, jint, jboolean);
public:
  virtual void unregisterKeyboardAction (::javax::swing::KeyStroke *);
  virtual void resetKeyboardActions ();
  virtual void repaint (jlong, jint, jint, jint, jint);
  virtual void repaint (::java::awt::Rectangle *);
  virtual jboolean requestDefaultFocus ();
  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 setRequestFocusEnabled (jboolean);
  virtual ::javax::swing::TransferHandler *getTransferHandler () { return transferHandler; }
  virtual void setTransferHandler (::javax::swing::TransferHandler *);
  virtual void setOpaque (jboolean);
  virtual void setVisible (jboolean);
  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 () { }
  static ::java::util::Locale *getDefaultLocale ();
  static void setDefaultLocale (::java::util::Locale *);
  virtual ::javax::swing::InputVerifier *getInputVerifier () { return inputVerifier; }
  virtual void setInputVerifier (::javax::swing::InputVerifier *);
  virtual jboolean getVerifyInputWhenFocusTarget () { return verifyInputWhenFocusTarget; }
  virtual void setVerifyInputWhenFocusTarget (jboolean);
  virtual void requestFocus ();
  virtual jboolean requestFocus (jboolean);
  virtual jboolean requestFocusInWindow ();
public:  // actually protected
  virtual jboolean requestFocusInWindow (jboolean);
public:
  virtual void addNotify ();
  virtual void removeNotify ();
  virtual jboolean contains (jint, jint);
  virtual void disable ();
  virtual void enable ();
  virtual ::java::awt::Graphics *getGraphics ();
  virtual jint getX ();
  virtual jint getY ();
  virtual jint getHeight ();
  virtual jint getWidth ();
  virtual void print (::java::awt::Graphics *);
  virtual void printAll (::java::awt::Graphics *);
public:  // actually protected
  virtual void printComponent (::java::awt::Graphics *);
  virtual void printChildren (::java::awt::Graphics *);
  virtual void printBorder (::java::awt::Graphics *);
  virtual void processMouseMotionEvent (::java::awt::event::MouseEvent *);
public:
  virtual void reshape (jint, jint, jint, jint);
public: // actually package-private
  virtual void fireAncestorEvent (::javax::swing::JComponent *, jint);
private:
  ::java::awt::Component *findPaintRoot (::java::awt::Rectangle *);
  ::java::awt::Component *findOverlapFreeParent (::java::awt::Rectangle *);
  ::java::awt::Component *findOpaqueParent (::java::awt::Component *);
public: // actually package-private
  virtual void updateComponentInputMap (::javax::swing::ComponentInputMap *);
  virtual void setUIProperty (::java::lang::String *, ::java::lang::Object *);
private:
  static const jlong serialVersionUID = -7908749299918704233LL;
public:  // actually protected
  ::javax::accessibility::AccessibleContext * __attribute__((aligned(__alignof__( ::java::awt::Container )))) accessibleContext;
public: // actually package-private
  ::java::awt::Dimension *preferredSize;
  ::java::awt::Dimension *minimumSize;
  ::java::awt::Dimension *maximumSize;
  jfloat alignmentX;
  jfloat alignmentY;
  ::javax::swing::border::Border *border;
  ::java::lang::String *toolTipText;
  ::javax::swing::JPopupMenu *componentPopupMenu;
  jboolean inheritsPopupMenu;
  jboolean doubleBuffered;
  jint debugGraphicsOptions;
  jboolean opaque;
public:  // actually protected
  ::javax::swing::plaf::ComponentUI *ui;
public: // actually package-private
  jboolean requestFocusEnabled;
  jboolean autoscrolls;
  static jboolean paintingDoubleBuffered;
private:
  static jboolean isRepainting;
public:  // actually protected
  ::javax::swing::event::EventListenerList *listenerList;
private:
  ::java::beans::VetoableChangeSupport *vetoableChangeSupport;
  ::java::util::Hashtable *clientProperties;
  ::javax::swing::InputMap *inputMap_whenFocused;
  ::javax::swing::InputMap *inputMap_whenAncestorOfFocused;
  ::javax::swing::ComponentInputMap *inputMap_whenInFocusedWindow;
  ::javax::swing::ActionMap *actionMap;
  jboolean verifyInputWhenFocusTarget;
  ::javax::swing::InputVerifier *inputVerifier;
  ::javax::swing::TransferHandler *transferHandler;
  jboolean paintingTile;
  ::java::awt::Image *dragBuffer;
  jboolean dragBufferInitialized;
  static ::java::awt::Rectangle *rectCache;
  static ::java::util::Locale *defaultLocale;
public:
  static ::java::lang::String *TOOL_TIP_TEXT_KEY;
  static const jint UNDEFINED_CONDITION = -1L;
  static const jint WHEN_FOCUSED = 0L;
  static const jint WHEN_ANCESTOR_OF_FOCUSED_COMPONENT = 1L;
  static const jint WHEN_IN_FOCUSED_WINDOW = 2L;
private:
  jboolean clientOpaqueSet;
  jboolean clientAutoscrollsSet;

  friend class javax_swing_JComponent$1;
  friend class javax_swing_JComponent$ActionListenerProxy;
  friend class javax_swing_JComponent$AccessibleJComponent;
public:

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

#endif /* __javax_swing_JComponent__ */
