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

#ifndef __javax_swing_plaf_metal_MetalIconFactory$TreeHardDriveIcon__
#define __javax_swing_plaf_metal_MetalIconFactory$TreeHardDriveIcon__

#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$TreeHardDriveIcon;
        }
      }
    }
  }
}

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

public:
  MetalIconFactory$TreeHardDriveIcon();
  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$TreeHardDriveIcon__
