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

#ifndef __javax_swing_colorchooser_DefaultSwatchChooserPanel$MainSwatchPanel__
#define __javax_swing_colorchooser_DefaultSwatchChooserPanel$MainSwatchPanel__

#pragma interface

#include <javax/swing/colorchooser/DefaultSwatchChooserPanel$SwatchPanel.h>
#include <gcj/array.h>

extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Color;
        class Graphics;
      namespace event
      {
          class MouseEvent;
      }
    }
  }
  namespace javax
  {
    namespace swing
    {
      namespace colorchooser
      {
          class DefaultSwatchChooserPanel$MainSwatchPanel;
      }
    }
  }
}

class javax::swing::colorchooser::DefaultSwatchChooserPanel$MainSwatchPanel : public ::javax::swing::colorchooser::DefaultSwatchChooserPanel$SwatchPanel
{

public: // actually package-private
  DefaultSwatchChooserPanel$MainSwatchPanel();
public:
  virtual ::java::awt::Color * getColorForPosition(jint, jint);
public: // actually protected
  virtual void initializeColors();
public:
  virtual void paint(::java::awt::Graphics *);
  virtual ::java::lang::String * getToolTipText(::java::awt::event::MouseEvent *);
  static ::java::awt::Color * C204255255;
  static ::java::awt::Color * C255204204;
  static ::java::awt::Color * C204255204;
  static ::java::awt::Color * C204204204;
  static ::java::awt::Color * C153153255;
  static ::java::awt::Color * C051051255;
  static ::java::awt::Color * C153000153;
  static ::java::awt::Color * C000051051;
  static ::java::awt::Color * C051000051;
  static ::java::awt::Color * C051051000;
  static ::java::awt::Color * C102102000;
  static ::java::awt::Color * C153255153;
  static ::java::awt::Color * C102255102;
  static ::java::awt::Color * C000102102;
  static ::java::awt::Color * C102000102;
  static ::java::awt::Color * C000153153;
  static ::java::awt::Color * C153153000;
  static ::java::awt::Color * C204204000;
  static ::java::awt::Color * C204000204;
  static ::java::awt::Color * C000204204;
  static ::java::awt::Color * C051255051;
  static ::java::awt::Color * C255051051;
  static ::java::awt::Color * C255102102;
  static ::java::awt::Color * C102102255;
  static ::java::awt::Color * C255153153;
public: // actually package-private
  static JArray< ::java::awt::Color * > * colors;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_colorchooser_DefaultSwatchChooserPanel$MainSwatchPanel__
