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

#ifndef __gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer__
#define __gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer__

#pragma interface

#include <gnu/java/awt/peer/gtk/GtkMenuItemPeer.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace awt
      {
        namespace peer
        {
          namespace gtk
          {
              class GtkCheckboxMenuItemPeer;
          }
        }
      }
    }
  }
  namespace java
  {
    namespace awt
    {
        class CheckboxMenuItem;
    }
  }
}

class gnu::java::awt::peer::gtk::GtkCheckboxMenuItemPeer : public ::gnu::java::awt::peer::gtk::GtkMenuItemPeer
{

public: // actually protected
  virtual void create(::java::lang::String *);
public:
  GtkCheckboxMenuItemPeer(::java::awt::CheckboxMenuItem *);
  virtual void setState(jboolean);
public: // actually protected
  virtual void postMenuActionEvent();
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer__
