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

#ifndef __java_awt_Component__
#define __java_awt_Component__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace java
  {
    namespace beans
    {
      class PropertyChangeListener;
      class PropertyChangeSupport;
    }
    namespace awt
    {
      class MenuComponent;
      class PopupMenu;
      class AWTEvent;
      class Event;
      class Component;
      class Image;
      class FontMetrics;
      class Graphics;
      class Rectangle;
      class Point;
      namespace image
      {
        class ImageObserver;
        class ImageProducer;
        class ColorModel;
      }
      class Toolkit;
      class GraphicsConfiguration;
      class ComponentOrientation;
      namespace event
      {
        class HierarchyEvent;
        class InputMethodEvent;
        class MouseEvent;
        class KeyEvent;
        class FocusEvent;
        class ComponentEvent;
        class PaintEvent;
        class HierarchyBoundsListener;
        class HierarchyListener;
        class InputMethodListener;
        class MouseMotionListener;
        class MouseListener;
        class KeyListener;
        class FocusListener;
        class ComponentListener;
      }
      namespace peer
      {
        class ComponentPeer;
      }
      class Container;
      class Dimension;
      class Cursor;
      class Font;
      class Color;
    }
  }
};

class ::java::awt::Component : public ::java::lang::Object
{
public:  // actually protected
  Component ();
public:
  virtual ::java::lang::String *getName ();
  virtual void setName (::java::lang::String *);
public: // actually package-private
  virtual ::java::lang::String *generateName () { return 0; }
public:
  virtual ::java::awt::Container *getParent () { return parent; }
public: // actually package-private
  void setPeer (::java::awt::peer::ComponentPeer *);
public:
  virtual ::java::awt::peer::ComponentPeer *getPeer () { return peer; }
  virtual ::java::awt::GraphicsConfiguration *getGraphicsConfiguration ();
public: // actually package-private
  virtual ::java::awt::GraphicsConfiguration *getGraphicsConfigurationImpl ();
public:
  ::java::lang::Object *getTreeLock ();
public: // actually package-private
  void setTreeLock (::java::lang::Object *);
public:
  virtual ::java::awt::Toolkit *getToolkit ();
  virtual jboolean isValid () { return valid; }
  virtual jboolean isDisplayable ();
  virtual jboolean isVisible () { return visible; }
  virtual jboolean isShowing ();
  virtual jboolean isEnabled () { return enabled; }
  virtual void setEnabled (jboolean);
  virtual void enable ();
  virtual void enable (jboolean);
  virtual void disable ();
  virtual jboolean isDoubleBuffered ();
  virtual void enableInputMethods (jboolean) { }
  virtual void setVisible (jboolean);
  virtual void show ();
  virtual void show (jboolean);
  virtual void hide ();
  virtual ::java::awt::Color *getForeground ();
  virtual void setForeground (::java::awt::Color *);
  virtual ::java::awt::Color *getBackground ();
  virtual void setBackground (::java::awt::Color *);
  virtual ::java::awt::Font *getFont ();
  virtual void setFont (::java::awt::Font *);
  virtual ::java::util::Locale *getLocale ();
  virtual void setLocale (::java::util::Locale *);
  virtual ::java::awt::image::ColorModel *getColorModel ();
  virtual ::java::awt::Point *getLocation ();
  virtual ::java::awt::Point *getLocationOnScreen ();
  virtual ::java::awt::Point *location ();
  virtual void setLocation (jint, jint);
  virtual void move (jint, jint);
  virtual void setLocation (::java::awt::Point *);
  virtual ::java::awt::Dimension *getSize ();
  virtual ::java::awt::Dimension *size ();
  virtual void setSize (jint, jint);
  virtual void resize (jint, jint);
  virtual void setSize (::java::awt::Dimension *);
  virtual void resize (::java::awt::Dimension *);
  virtual ::java::awt::Rectangle *getBounds ();
  virtual ::java::awt::Rectangle *bounds ();
  virtual void setBounds (jint, jint, jint, jint);
  virtual void reshape (jint, jint, jint, jint);
  virtual void setBounds (::java::awt::Rectangle *);
  virtual jint getX () { return x; }
  virtual jint getY () { return y; }
  virtual jint getWidth () { return width; }
  virtual jint getHeight () { return height; }
  virtual ::java::awt::Rectangle *getBounds (::java::awt::Rectangle *);
  virtual ::java::awt::Dimension *getSize (::java::awt::Dimension *);
  virtual ::java::awt::Point *getLocation (::java::awt::Point *);
  virtual jboolean isOpaque ();
  virtual jboolean isLightweight ();
  virtual ::java::awt::Dimension *getPreferredSize ();
  virtual ::java::awt::Dimension *preferredSize ();
  virtual ::java::awt::Dimension *getMinimumSize ();
  virtual ::java::awt::Dimension *minimumSize ();
  virtual ::java::awt::Dimension *getMaximumSize ();
  virtual jfloat getAlignmentX ();
  virtual jfloat getAlignmentY ();
  virtual void doLayout () { }
  virtual void layout ();
  virtual void validate ();
  virtual void invalidate ();
  virtual ::java::awt::Graphics *getGraphics ();
  virtual ::java::awt::FontMetrics *getFontMetrics (::java::awt::Font *);
  virtual void setCursor (::java::awt::Cursor *);
  virtual ::java::awt::Cursor *getCursor () { return cursor; }
  virtual void paint (::java::awt::Graphics *) { }
  virtual void update (::java::awt::Graphics *);
  virtual void paintAll (::java::awt::Graphics *);
  virtual void repaint ();
  virtual void repaint (jlong);
  virtual void repaint (jint, jint, jint, jint);
  virtual void repaint (jlong, jint, jint, jint, jint);
  virtual void print (::java::awt::Graphics *);
  virtual void printAll (::java::awt::Graphics *);
  virtual jboolean imageUpdate (::java::awt::Image *, jint, jint, jint, jint, jint);
  virtual ::java::awt::Image *createImage (::java::awt::image::ImageProducer *);
  virtual ::java::awt::Image *createImage (jint, jint);
  virtual jboolean prepareImage (::java::awt::Image *, ::java::awt::image::ImageObserver *);
  virtual jboolean prepareImage (::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *);
  virtual jint checkImage (::java::awt::Image *, ::java::awt::image::ImageObserver *);
  virtual jint checkImage (::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *);
  virtual jboolean contains (jint, jint);
  virtual jboolean inside (jint, jint);
  virtual jboolean contains (::java::awt::Point *);
  virtual ::java::awt::Component *getComponentAt (jint, jint);
  virtual ::java::awt::Component *locate (jint, jint);
  virtual ::java::awt::Component *getComponentAt (::java::awt::Point *);
  virtual void deliverEvent (::java::awt::Event *) { }
  void dispatchEvent (::java::awt::AWTEvent *);
public: // actually package-private
  virtual void dispatchEventImpl (::java::awt::AWTEvent *);
public:
  virtual jboolean postEvent (::java::awt::Event *);
  virtual void addComponentListener (::java::awt::event::ComponentListener *);
  virtual void removeComponentListener (::java::awt::event::ComponentListener *);
  virtual void addFocusListener (::java::awt::event::FocusListener *);
  virtual void removeFocusListener (::java::awt::event::FocusListener *);
  virtual void addHierarchyListener (::java::awt::event::HierarchyListener *);
  virtual void removeHierarchyListener (::java::awt::event::HierarchyListener *);
  virtual void addHierarchyBoundsListener (::java::awt::event::HierarchyBoundsListener *);
  virtual void removeHierarchyBoundsListener (::java::awt::event::HierarchyBoundsListener *);
  virtual void addKeyListener (::java::awt::event::KeyListener *);
  virtual void removeKeyListener (::java::awt::event::KeyListener *);
  virtual void addMouseListener (::java::awt::event::MouseListener *);
  virtual void removeMouseListener (::java::awt::event::MouseListener *);
  virtual void addMouseMotionListener (::java::awt::event::MouseMotionListener *);
  virtual void removeMouseMotionListener (::java::awt::event::MouseMotionListener *);
  virtual void addInputMethodListener (::java::awt::event::InputMethodListener *);
  virtual void removeInputMethodListener (::java::awt::event::InputMethodListener *);
  virtual JArray< ::java::util::EventListener *> *getListeners (::java::lang::Class *);
public: // actually package-private
  static JArray< ::java::util::EventListener *> *getListenersImpl (::java::lang::Class *, ::java::util::EventListener *);
  static void getListenerList (::java::util::EventListener *, ::java::util::Vector *);
public:  // actually protected
  void enableEvents (jlong);
  void disableEvents (jlong);
  virtual ::java::awt::AWTEvent *coalesceEvents (::java::awt::AWTEvent *, ::java::awt::AWTEvent *);
private:
  ::java::awt::event::PaintEvent *coalescePaintEvents (::java::awt::event::PaintEvent *, ::java::awt::event::PaintEvent *);
public:  // actually protected
  virtual void processEvent (::java::awt::AWTEvent *);
  virtual void processComponentEvent (::java::awt::event::ComponentEvent *);
  virtual void processFocusEvent (::java::awt::event::FocusEvent *);
  virtual void processKeyEvent (::java::awt::event::KeyEvent *);
  virtual void processMouseEvent (::java::awt::event::MouseEvent *);
  virtual void processMouseMotionEvent (::java::awt::event::MouseEvent *);
  virtual void processInputMethodEvent (::java::awt::event::InputMethodEvent *);
  virtual void processHierarchyEvent (::java::awt::event::HierarchyEvent *);
  virtual void processHierarchyBoundsEvent (::java::awt::event::HierarchyEvent *);
private:
  void processPaintEvent (::java::awt::event::PaintEvent *);
public:
  virtual jboolean handleEvent (::java::awt::Event *);
  virtual jboolean mouseDown (::java::awt::Event *, jint, jint);
  virtual jboolean mouseDrag (::java::awt::Event *, jint, jint);
  virtual jboolean mouseUp (::java::awt::Event *, jint, jint);
  virtual jboolean mouseMove (::java::awt::Event *, jint, jint);
  virtual jboolean mouseEnter (::java::awt::Event *, jint, jint);
  virtual jboolean mouseExit (::java::awt::Event *, jint, jint);
  virtual jboolean keyDown (::java::awt::Event *, jint);
  virtual jboolean keyUp (::java::awt::Event *, jint);
  virtual jboolean action (::java::awt::Event *, ::java::lang::Object *);
  virtual void addNotify ();
  virtual void removeNotify ();
  virtual jboolean gotFocus (::java::awt::Event *, ::java::lang::Object *);
  virtual jboolean lostFocus (::java::awt::Event *, ::java::lang::Object *);
  virtual jboolean isFocusTraversable ();
  virtual void requestFocus ();
public: // actually package-private
  virtual ::java::awt::Component *findNextFocusComponent (::java::awt::Component *) { return 0; }
public:
  virtual void transferFocus ();
  virtual void nextFocus ();
  virtual jboolean hasFocus () { return hasFocus__; }
  virtual void add (::java::awt::PopupMenu *);
  virtual void remove (::java::awt::MenuComponent *);
public:  // actually protected
  virtual ::java::lang::String *paramString ();
public:
  virtual ::java::lang::String *toString ();
  virtual void list ();
  virtual void list (::java::io::PrintStream *);
  virtual void list (::java::io::PrintStream *, jint);
  virtual void list (::java::io::PrintWriter *);
  virtual void list (::java::io::PrintWriter *, jint);
  virtual void addPropertyChangeListener (::java::beans::PropertyChangeListener *);
  virtual void removePropertyChangeListener (::java::beans::PropertyChangeListener *);
  virtual void addPropertyChangeListener (::java::lang::String *, ::java::beans::PropertyChangeListener *);
  virtual void removePropertyChangeListener (::java::lang::String *, ::java::beans::PropertyChangeListener *);
public:  // actually protected
  virtual void firePropertyChange (::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *);
public:
  virtual void setComponentOrientation (::java::awt::ComponentOrientation *);
  virtual ::java::awt::ComponentOrientation *getComponentOrientation () { return orientation; }
  static const jfloat BOTTOM_ALIGNMENT;
  static const jfloat CENTER_ALIGNMENT;
  static const jfloat TOP_ALIGNMENT;
  static const jfloat RIGHT_ALIGNMENT;
  static const jfloat LEFT_ALIGNMENT;
public: // actually package-private
  static ::java::lang::Object *treeLock;
  jint x;
  jint y;
  jint width;
  jint height;
  ::java::awt::Color *foreground;
  ::java::awt::Color *background;
  ::java::awt::Font *font;
  ::java::awt::Font *peerFont;
  ::java::awt::Cursor *cursor;
  ::java::util::Locale *locale;
  jboolean visible;
  jboolean enabled;
  jboolean valid;
  jboolean hasFocus__;
  ::java::util::Vector *popups;
  ::java::lang::String *name;
  jboolean nameExplicitlySet;
  ::java::awt::Dimension *minSize;
  ::java::awt::Dimension *prefSize;
  jboolean newEventsOnly;
  jlong eventMask;
  ::java::beans::PropertyChangeSupport *changeSupport;
  jboolean isPacked;
  jint componentSerializedDataVersion;
  ::java::awt::Container *parent;
  ::java::awt::peer::ComponentPeer *peer;
  ::java::awt::event::ComponentListener *componentListener;
  ::java::awt::event::FocusListener *focusListener;
  ::java::awt::event::KeyListener *keyListener;
  ::java::awt::event::MouseListener *mouseListener;
  ::java::awt::event::MouseMotionListener *mouseMotionListener;
  ::java::awt::event::InputMethodListener *inputMethodListener;
  ::java::awt::event::HierarchyListener *hierarchyListener;
  ::java::awt::event::HierarchyBoundsListener *hierarchyBoundsListener;
  ::java::awt::ComponentOrientation *orientation;
public:

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

#endif /* __java_awt_Component__ */
