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

#ifndef __javax_swing_plaf_basic_BasicTabbedPaneUI$ScrollingViewport__
#define __javax_swing_plaf_basic_BasicTabbedPaneUI$ScrollingViewport__

#pragma interface

#include <javax/swing/JViewport.h>
extern "Java"
{
  namespace javax
  {
    namespace swing
    {
      namespace plaf
      {
        namespace basic
        {
            class BasicTabbedPaneUI;
            class BasicTabbedPaneUI$ScrollingViewport;
        }
      }
    }
  }
}

class javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingViewport : public ::javax::swing::JViewport
{

  BasicTabbedPaneUI$ScrollingViewport(::javax::swing::plaf::basic::BasicTabbedPaneUI *);
public: // actually package-private
  BasicTabbedPaneUI$ScrollingViewport(::javax::swing::plaf::basic::BasicTabbedPaneUI *, ::javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingViewport *);
  ::javax::swing::plaf::basic::BasicTabbedPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::JViewport)))) this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_plaf_basic_BasicTabbedPaneUI$ScrollingViewport__
