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

#ifndef __javax_swing_plaf_basic_BasicSplitPaneUI$BasicVerticalLayoutManager__
#define __javax_swing_plaf_basic_BasicSplitPaneUI$BasicVerticalLayoutManager__

#pragma interface

#include <javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager.h>
extern "Java"
{
  namespace javax
  {
    namespace swing
    {
      namespace plaf
      {
        namespace basic
        {
            class BasicSplitPaneUI;
            class BasicSplitPaneUI$BasicVerticalLayoutManager;
        }
      }
    }
  }
}

class javax::swing::plaf::basic::BasicSplitPaneUI$BasicVerticalLayoutManager : public ::javax::swing::plaf::basic::BasicSplitPaneUI$BasicHorizontalLayoutManager
{

public:
  BasicSplitPaneUI$BasicVerticalLayoutManager(::javax::swing::plaf::basic::BasicSplitPaneUI *);
public: // actually package-private
  ::javax::swing::plaf::basic::BasicSplitPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicSplitPaneUI$BasicHorizontalLayoutManager)))) this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_plaf_basic_BasicSplitPaneUI$BasicVerticalLayoutManager__
