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

#ifndef __javax_swing_plaf_metal_MetalIconFactory$FileChooserHomeFolderIcon__
#define __javax_swing_plaf_metal_MetalIconFactory$FileChooserHomeFolderIcon__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Component;
        class Graphics;
    }
  }
  namespace javax
  {
    namespace swing
    {
      namespace plaf
      {
        namespace metal
        {
            class MetalIconFactory$FileChooserHomeFolderIcon;
        }
      }
    }
  }
}

class javax::swing::plaf::metal::MetalIconFactory$FileChooserHomeFolderIcon : public ::java::lang::Object
{

public:
  MetalIconFactory$FileChooserHomeFolderIcon();
  virtual jint getIconWidth();
  virtual jint getIconHeight();
  virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint);
  static ::java::lang::Class class$;
};

#endif // __javax_swing_plaf_metal_MetalIconFactory$FileChooserHomeFolderIcon__
