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

#ifndef __javax_swing_plaf_basic_BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI__
#define __javax_swing_plaf_basic_BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI__

#pragma interface

#include <javax/swing/plaf/basic/BasicPanelUI.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Graphics;
    }
  }
  namespace javax
  {
    namespace swing
    {
        class JComponent;
      namespace plaf
      {
        namespace basic
        {
            class BasicTabbedPaneUI$ScrollingPanel;
            class BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI;
        }
      }
    }
  }
}

class javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI : public ::javax::swing::plaf::basic::BasicPanelUI
{

  BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI(::javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingPanel *);
public:
  virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *);
public: // actually package-private
  BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI(::javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingPanel *, ::javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI *);
  ::javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingPanel * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicPanelUI)))) this$1;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_plaf_basic_BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI__
