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

#ifndef __gnu_java_awt_peer_gtk_GtkPopupMenuPeer__
#define __gnu_java_awt_peer_gtk_GtkPopupMenuPeer__

#pragma interface

#include <gnu/java/awt/peer/gtk/GtkMenuPeer.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace awt
      {
        namespace peer
        {
          namespace gtk
          {
              class GtkGenericPeer;
              class GtkPopupMenuPeer;
          }
        }
      }
    }
  }
  namespace java
  {
    namespace awt
    {
        class Component;
        class Event;
        class PopupMenu;
    }
  }
}

class gnu::java::awt::peer::gtk::GtkPopupMenuPeer : public ::gnu::java::awt::peer::gtk::GtkMenuPeer
{

public:
  GtkPopupMenuPeer(::java::awt::PopupMenu *);
public: // actually package-private
  virtual void setupAccelGroup(::gnu::java::awt::peer::gtk::GtkGenericPeer *);
  virtual void show(jint, jint, jlong);
public:
  virtual void show(::java::awt::Component *, jint, jint);
  virtual void show(::java::awt::Event *);
  static ::java::lang::Class class$;
};

#endif // __gnu_java_awt_peer_gtk_GtkPopupMenuPeer__
