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

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 ::javax::accessibility::AccessibleContext * getAccessibleContext();
  virtual jfloat getAlignmentX();
  virtual jfloat getAlignmentY();
  virtual jboolean getAutoscrolls();
  virtual void setBorder(::javax::swing::border::Border *);
  virtual ::javax::swing::border::Border * getBorder();
  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 ::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 *);
  virtual void setToolTipText(::java::lang::String *);
  virtual ::java::lang::String * getToolTipText();
  virtual ::java::lang::String * getToolTipText(::java::awt::event::MouseEvent *);
  virtual jboolean getInheritsPopupMenu();
  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();
  static jboolean isLightweightComponent(::java::awt::Component *);
  virtual jboolean isManagingFocus();
  virtual jboolean isOpaque();
  virtual jboolean isOptimizedDrawingEnabled();
  virtual jboolean isPaintingTile();
  virtual jboolean isRequestFocusEnabled();
  virtual jboolean isValidateRoot();
  virtual void paint(::java::awt::Graphics *);
private:
  jboolean isOccupiedByChild(jint, jint, jint, jint);
  void initializeDragBuffer();
public: // actually protected
  virtual void paintBorder(::java::awt::Graphics *);
  virtual void paintChildren(::java::awt::Graphics *);
private:
  jboolean isCompletelyObscured(jint, jint, jint, jint, jint);
  jboolean isPartiallyObscured(jint, jint, jint, jint, jint);
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(jint, jint, jint, jint);
  virtual jboolean onTop();
  virtual jboolean isPaintRoot();
private:
  void paintDoubleBuffered(jint, jint, jint, jint);
  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 setNextFocusableComponent(::java::awt::Component *);
  virtual void setRequestFocusEnabled(jboolean);
  virtual ::javax::swing::TransferHandler * getTransferHandler();
  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();
  virtual void setInputVerifier(::javax::swing::InputVerifier *);
  virtual jboolean getVerifyInputWhenFocusTarget();
  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);
  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
  jfloat alignmentX;
  jfloat alignmentY;
  ::javax::swing::border::Border * border;
  ::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;
  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 = -1;
  static const jint WHEN_FOCUSED = 0;
  static const jint WHEN_ANCESTOR_OF_FOCUSED_COMPONENT = 1;
  static const jint WHEN_IN_FOCUSED_WINDOW = 2;
public: // actually package-private
  ::java::awt::Component * paintChild;
private:
  jboolean clientOpaqueSet;
  jboolean clientAutoscrollsSet;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_JComponent__
