// -*- c++ -*-
//  Generated by gtkmmproc from /usr/obj/ports/gnomemm-1.2.3/gnomemm-1.2.3/src/build_sources/../pixmapmenuitem.gen_h -- DO NOT MODIFY!
#ifndef _GNOMEMM_PIXMAPMENUITEM_H
#define _GNOMEMM_PIXMAPMENUITEM_H

/* $Id: pixmapmenuitem.gen_h,v 1.8 2000/08/29 18:09:02 kenelson Exp $ */


/* gtkpixmapmenuitem.gen_h
 *
 * Copyright (C) 1999 The Gtk-- Development Team
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, write to the Free
 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#include <gtk--/menushell.h>
#include <gtk--/menuitem.h>
#include <gtk--/pixmap.h>
#include <gnome--/pixmap.h>
#include <libgnomeui/gtkpixmapmenuitem.h>

class Gtk::Pixmap;
class Gnome::Pixmap;

namespace Gtk {
class PixmapMenuItem;
class PixmapMenuItem_Class;
}
namespace Gtk { Gtk::PixmapMenuItem *wrap (GtkPixmapMenuItem *o); }
namespace Gtk
{
class PixmapMenuItem : public MenuItem
{

public:
  typedef PixmapMenuItem          CppObjectType;
  typedef PixmapMenuItem_Class    CppClassType;
  typedef GtkPixmapMenuItem           BaseObjectType;
  typedef GtkPixmapMenuItemClass      BaseClassType;

private:
  friend class PixmapMenuItem_Class;
  static CppClassType pixmap_menu_item_class;

  PixmapMenuItem(const PixmapMenuItem&);
  PixmapMenuItem& operator=(const PixmapMenuItem&); // not implemented

protected:
  void   initialize_class();
  explicit PixmapMenuItem(GtkPixmapMenuItem *castitem);

public:
  static GtkType get_type();
  GtkPixmapMenuItem* gtkobj()             { return (GtkPixmapMenuItem*)(gtkobject); }
  const GtkPixmapMenuItem* gtkobj() const { return (GtkPixmapMenuItem*)(gtkobject); }
  static bool isA(Object *checkcast);

  // Hook for proxies
  static const char* const signal_names[];

  virtual ~PixmapMenuItem();

private:

public:
  PixmapMenuItem();



  void set_pixmap (Gtk::Pixmap &pixmap);
  void set_pixmap (Gnome::Pixmap &pixmap);

public:

protected:
  // impl functions

};

namespace Menu_Helpers // Gnome::Menu_Helpers
{
  using namespace Gtk::Menu_Helpers;

  class MenuPixmap
  {
  public:
    MenuPixmap(const Gtk::string &stockId);
    MenuPixmap(const gchar *stockId);
    MenuPixmap(const gchar *const xpmData[]);
    MenuPixmap();

  protected:
    Gtk::string stockId_;
    const gchar *const *xpmData_;
  };

  typedef SigC::Slot0<void> ItemCallback;

  class PixmapMenuElem : public Gtk::Menu_Helpers::Element
  {
  public:
    PixmapMenuElem(Gtk::MenuItem& child)
      :  Gtk::Menu_Helpers::Element(child)
    {}

    //: create a labeled, menuitem with an optional callback
    PixmapMenuElem(const Gtk::string &label,
                   const Gtk::string &tooltip,
                   ItemCallback callback = 0);

    //: create a labeled, menuitem with an optional callback
    PixmapMenuElem(const Gtk::string &label,
                   const Gtk::string &tooltip,
                   Gtk::Menu_Helpers::AccelKey accel_key,
                   ItemCallback callback = 0);

    //: create a labeled, menuitem with a pixmap and an optional
    //: callback
    PixmapMenuElem(Pixmap& pixmap,
                   const Gtk::string &label,
                   const Gtk::string &tooltip,
                   ItemCallback callback = 0);

    // same, with an accelerator
    PixmapMenuElem(Pixmap& pixmap,
                   const Gtk::string &label,
                   const Gtk::string &tooltip,
                   Gtk::Menu_Helpers::AccelKey accel_key,
                   ItemCallback callback = 0);

    // create a labeled menuitem with a submenu
    PixmapMenuElem(const Gtk::string &label,
                   const Gtk::string &tooltip,
                   Gtk::Menu& submenu);

    // create a labeled menuitem with a pixmap and a submenu
    PixmapMenuElem(Pixmap &pixmap,
                   const Gtk::string &label,
                   const Gtk::string &tooltip,
                   Gtk::Menu& submenu);

    virtual ~PixmapMenuElem();
  protected:

    virtual void create_child_menu_item();

    Gtk::string tooltip_;
    Pixmap *pixmap_;

  };
}



}


#endif
