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

#ifndef __javax_swing_JPopupMenu__
#define __javax_swing_JPopupMenu__

#pragma interface

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

extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Component;
        class Dimension;
        class Insets;
      namespace event
      {
          class KeyEvent;
          class MouseEvent;
      }
    }
    namespace beans
    {
        class PropertyChangeListener;
    }
  }
  namespace javax
  {
    namespace accessibility
    {
        class AccessibleContext;
    }
    namespace swing
    {
        class Action;
        class JMenuItem;
        class JPopupMenu;
        class MenuElement;
        class MenuSelectionManager;
        class Popup;
        class SingleSelectionModel;
      namespace event
      {
          class MenuKeyListener;
          class PopupMenuListener;
      }
      namespace plaf
      {
          class PopupMenuUI;
      }
    }
  }
}

class javax::swing::JPopupMenu : public ::javax::swing::JComponent
{

public:
  JPopupMenu();
  JPopupMenu(::java::lang::String *);
  virtual ::javax::swing::JMenuItem * add(::javax::swing::JMenuItem *);
  virtual ::javax::swing::JMenuItem * add(::java::lang::String *);
  virtual ::javax::swing::JMenuItem * add(::javax::swing::Action *);
  virtual void remove(jint);
  virtual void insert(::javax::swing::Action *, jint);
  virtual void insert(::java::awt::Component *, jint);
  static jboolean getDefaultLightWeightPopupEnabled();
  static void setDefaultLightWeightPopupEnabled(jboolean);
  virtual ::javax::swing::plaf::PopupMenuUI * getUI();
  virtual void setUI(::javax::swing::plaf::PopupMenuUI *);
  virtual void updateUI();
  virtual ::java::lang::String * getUIClassID();
  virtual ::javax::swing::SingleSelectionModel * getSelectionModel();
  virtual void setSelectionModel(::javax::swing::SingleSelectionModel *);
public: // actually protected
  virtual ::javax::swing::JMenuItem * createActionComponent(::javax::swing::Action *);
  virtual ::java::beans::PropertyChangeListener * createActionChangeListener(::javax::swing::JMenuItem *);
public:
  virtual jboolean isLightWeightPopupEnabled();
  virtual void setLightWeightPopupEnabled(jboolean);
  virtual ::java::lang::String * getLabel();
  virtual void setLabel(::java::lang::String *);
  virtual void addSeparator();
  virtual void addMenuKeyListener(::javax::swing::event::MenuKeyListener *);
  virtual void removeMenuKeyListener(::javax::swing::event::MenuKeyListener *);
  virtual JArray< ::javax::swing::event::MenuKeyListener * > * getMenuKeyListeners();
  virtual void addPopupMenuListener(::javax::swing::event::PopupMenuListener *);
  virtual void removePopupMenuListener(::javax::swing::event::PopupMenuListener *);
  virtual JArray< ::javax::swing::event::PopupMenuListener * > * getPopupMenuListeners();
public: // actually protected
  virtual void firePopupMenuWillBecomeVisible();
  virtual void firePopupMenuWillBecomeInvisible();
  virtual void firePopupMenuCanceled();
public:
  virtual void pack();
  virtual jboolean isVisible();
  virtual void setVisible(jboolean);
  virtual void setLocation(jint, jint);
  virtual ::java::awt::Component * getInvoker();
  virtual void setInvoker(::java::awt::Component *);
  virtual void show(::java::awt::Component *, jint, jint);
  virtual ::java::awt::Component * getComponentAtIndex(jint);
  virtual jint getComponentIndex(::java::awt::Component *);
  virtual void setPopupSize(::java::awt::Dimension *);
  virtual void setPopupSize(jint, jint);
  virtual void setSelected(::java::awt::Component *);
  virtual jboolean isBorderPainted();
  virtual void setBorderPainted(jboolean);
  virtual ::java::awt::Insets * getMargin();
public: // actually protected
  virtual ::java::lang::String * paramString();
public:
  virtual void processMouseEvent(::java::awt::event::MouseEvent *, JArray< ::javax::swing::MenuElement * > *, ::javax::swing::MenuSelectionManager *);
  virtual void processKeyEvent(::java::awt::event::KeyEvent *, JArray< ::javax::swing::MenuElement * > *, ::javax::swing::MenuSelectionManager *);
  virtual void menuSelectionChanged(jboolean);
  virtual JArray< ::javax::swing::MenuElement * > * getSubElements();
  virtual ::java::awt::Component * getComponent();
  virtual jboolean isPopupTrigger(::java::awt::event::MouseEvent *);
  virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
public: // actually package-private
  virtual jboolean onTop();
private:
  static const jlong serialVersionUID = -8336996630009646009LL;
  jboolean __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) borderPainted;
  static jboolean DefaultLightWeightPopupEnabled;
public: // actually package-private
  ::java::awt::Component * invoker;
private:
  ::java::lang::String * label;
  ::java::awt::Insets * margin;
  jboolean lightWeightPopupEnabled;
public: // actually protected
  ::javax::swing::SingleSelectionModel * selectionModel;
private:
  ::javax::swing::Popup * popup;
  jint popupLocationX;
  jint popupLocationY;
  jboolean visible;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_JPopupMenu__
