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

#ifndef __javax_swing_plaf_basic_BasicOptionPaneUI$4__
#define __javax_swing_plaf_basic_BasicOptionPaneUI$4__

#pragma interface

#include <javax/swing/plaf/basic/BasicOptionPaneUI$MessageIcon.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Component;
        class Graphics;
    }
  }
  namespace javax
  {
    namespace swing
    {
      namespace plaf
      {
        namespace basic
        {
            class BasicOptionPaneUI$4;
        }
      }
    }
  }
}

class javax::swing::plaf::basic::BasicOptionPaneUI$4 : public ::javax::swing::plaf::basic::BasicOptionPaneUI$MessageIcon
{

public: // actually package-private
  BasicOptionPaneUI$4();
public:
  virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint);
  static ::java::lang::Class class$;
};

#endif // __javax_swing_plaf_basic_BasicOptionPaneUI$4__
