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

#ifndef __javax_swing_plaf_metal_MetalIconFactory$InternalFrameMaximizeIcon__
#define __javax_swing_plaf_metal_MetalIconFactory$InternalFrameMaximizeIcon__

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

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

public:
  MetalIconFactory$InternalFrameMaximizeIcon();
  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$InternalFrameMaximizeIcon__
