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

#ifndef __javax_swing_JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem__
#define __javax_swing_JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem__

#pragma interface

#include <javax/swing/JMenuItem$AccessibleJMenuItem.h>
extern "Java"
{
  namespace javax
  {
    namespace accessibility
    {
        class AccessibleRole;
    }
    namespace swing
    {
        class JCheckBoxMenuItem;
        class JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem;
    }
  }
}

class javax::swing::JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem : public ::javax::swing::JMenuItem$AccessibleJMenuItem
{

public: // actually protected
  JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem(::javax::swing::JCheckBoxMenuItem *);
public:
  virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
private:
  static const jlong serialVersionUID = 1079958073579370777LL;
public: // actually package-private
  ::javax::swing::JCheckBoxMenuItem * __attribute__((aligned(__alignof__( ::javax::swing::JMenuItem$AccessibleJMenuItem)))) this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem__
