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

#ifndef __javax_swing_JMenu__
#define __javax_swing_JMenu__

#pragma interface

#include <javax/swing/JMenuItem.h>
#include <gcj/array.h>

extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Component;
        class Point;
      namespace event
      {
          class KeyEvent;
      }
    }
    namespace beans
    {
        class PropertyChangeListener;
    }
  }
  namespace javax
  {
    namespace accessibility
    {
        class AccessibleContext;
    }
    namespace swing
    {
        class Action;
        class ButtonModel;
        class JMenu;
        class JMenu$WinListener;
        class JMenuItem;
        class JPopupMenu;
        class KeyStroke;
        class MenuElement;
      namespace event
      {
          class ChangeListener;
          class MenuEvent;
          class MenuListener;
      }
    }
  }
}

class javax::swing::JMenu : public ::javax::swing::JMenuItem
{

public:
  JMenu();
  JMenu(::java::lang::String *);
  JMenu(::javax::swing::Action *);
  JMenu(::java::lang::String *, jboolean);
  virtual ::javax::swing::JMenuItem * add(::javax::swing::JMenuItem *);
  virtual ::java::awt::Component * add(::java::awt::Component *);
  virtual ::java::awt::Component * add(::java::awt::Component *, jint);
  virtual ::javax::swing::JMenuItem * add(::java::lang::String *);
  virtual ::javax::swing::JMenuItem * add(::javax::swing::Action *);
  virtual void remove(::javax::swing::JMenuItem *);
  virtual void remove(jint);
  virtual void remove(::java::awt::Component *);
  virtual void removeAll();
  virtual void insert(::java::lang::String *, jint);
  virtual ::javax::swing::JMenuItem * insert(::javax::swing::JMenuItem *, jint);
  virtual ::javax::swing::JMenuItem * insert(::javax::swing::Action *, jint);
  virtual void updateUI();
  virtual ::java::lang::String * getUIClassID();
  virtual void setModel(::javax::swing::ButtonModel *);
  virtual jboolean isSelected();
  virtual void setSelected(jboolean);
  virtual jboolean isPopupMenuVisible();
  virtual void setPopupMenuVisible(jboolean);
public: // actually protected
  virtual ::java::awt::Point * getPopupMenuOrigin();
public:
  virtual jint getDelay();
  virtual void setDelay(jint);
  virtual void setMenuLocation(jint, jint);
public: // actually protected
  virtual ::javax::swing::JMenuItem * createActionComponent(::javax::swing::Action *);
  virtual ::java::beans::PropertyChangeListener * createActionChangeListener(::javax::swing::JMenuItem *);
public:
  virtual void addSeparator();
  virtual void insertSeparator(jint);
  virtual ::javax::swing::JMenuItem * getItem(jint);
  virtual jint getItemCount();
  virtual jboolean isTearOff();
  virtual jint getMenuComponentCount();
  virtual ::java::awt::Component * getMenuComponent(jint);
  virtual JArray< ::java::awt::Component * > * getMenuComponents();
  virtual jboolean isTopLevelMenu();
  virtual jboolean isMenuComponent(::java::awt::Component *);
  virtual ::javax::swing::JPopupMenu * getPopupMenu();
  virtual void addMenuListener(::javax::swing::event::MenuListener *);
  virtual void removeMenuListener(::javax::swing::event::MenuListener *);
  virtual JArray< ::javax::swing::event::MenuListener * > * getMenuListeners();
public: // actually protected
  virtual void fireMenuSelected();
  virtual void fireMenuDeselected();
  virtual void fireMenuCanceled();
  virtual ::javax::swing::JMenu$WinListener * createWinListener(::javax::swing::JPopupMenu *);
public:
  virtual void menuSelectionChanged(jboolean);
  virtual JArray< ::javax::swing::MenuElement * > * getSubElements();
  virtual ::java::awt::Component * getComponent();
  virtual void setAccelerator(::javax::swing::KeyStroke *);
public: // actually protected
  virtual void processKeyEvent(::java::awt::event::KeyEvent *);
public:
  virtual void doClick(jint);
public: // actually protected
  virtual ::java::lang::String * paramString();
public:
  virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
public: // actually package-private
  virtual JArray< ::javax::swing::MenuElement * > * createPath(::javax::swing::JMenu *);
private:
  static const jlong serialVersionUID = 4227225638931828014LL;
  ::javax::swing::JPopupMenu * __attribute__((aligned(__alignof__( ::javax::swing::JMenuItem)))) popupMenu;
  ::javax::swing::event::MenuEvent * menuEvent;
  jint delay;
public: // actually protected
  ::javax::swing::JMenu$WinListener * popupListener;
private:
  ::java::awt::Point * menuLocation;
  ::javax::swing::event::ChangeListener * menuChangeListener;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_JMenu__
