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

#ifndef __javax_swing_text_html_FrameSetView$FrameSetRow__
#define __javax_swing_text_html_FrameSetView$FrameSetRow__

#pragma interface

#include <javax/swing/text/BoxView.h>
#include <gcj/array.h>

extern "Java"
{
  namespace javax
  {
    namespace swing
    {
      namespace text
      {
          class Element;
          class ViewFactory;
        namespace html
        {
            class FrameSetView;
            class FrameSetView$FrameSetRow;
        }
      }
    }
  }
}

class javax::swing::text::html::FrameSetView$FrameSetRow : public ::javax::swing::text::BoxView
{

public: // actually package-private
  FrameSetView$FrameSetRow(::javax::swing::text::html::FrameSetView *, ::javax::swing::text::Element *, jint);
public: // actually protected
  virtual void loadChildren(::javax::swing::text::ViewFactory *);
  virtual void layoutMajorAxis(jint, jint, JArray< jint > *, JArray< jint > *);
private:
  jint __attribute__((aligned(__alignof__( ::javax::swing::text::BoxView)))) row;
public: // actually package-private
  ::javax::swing::text::html::FrameSetView * this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_text_html_FrameSetView$FrameSetRow__
