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

#ifndef __javax_swing_plaf_metal_MetalIconFactory$TreeLeafIcon__
#define __javax_swing_plaf_metal_MetalIconFactory$TreeLeafIcon__

#pragma interface

#include <javax/swing/plaf/metal/MetalIconFactory$FileIcon16.h>
extern "Java"
{
  namespace javax
  {
    namespace swing
    {
      namespace plaf
      {
        namespace metal
        {
            class MetalIconFactory$TreeLeafIcon;
        }
      }
    }
  }
}

class javax::swing::plaf::metal::MetalIconFactory$TreeLeafIcon : public ::javax::swing::plaf::metal::MetalIconFactory$FileIcon16
{

public:
  MetalIconFactory$TreeLeafIcon();
  virtual jint getAdditionalHeight();
  virtual jint getShift();
  static ::java::lang::Class class$;
};

#endif // __javax_swing_plaf_metal_MetalIconFactory$TreeLeafIcon__
