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

#ifndef __javax_swing_plaf_metal_MetalIconFactory$FileChooserUpFolderIcon__
#define __javax_swing_plaf_metal_MetalIconFactory$FileChooserUpFolderIcon__

#pragma interface

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

class javax::swing::plaf::metal::MetalIconFactory$FileChooserUpFolderIcon : public ::javax::swing::plaf::metal::MetalIconFactory$FileChooserNewFolderIcon
{

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

#endif // __javax_swing_plaf_metal_MetalIconFactory$FileChooserUpFolderIcon__
