/* Copyright (C) 1998-2002 The gtkmm Development Team
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 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
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, see <https://www.gnu.org/licenses/>.
 */

// To exclude this file from the documentation when build-deprecated-api=false.
_CONFIGINCLUDE(gtkmmconfig.h)

#include <gtkmm/menuitem.h>
#include <gtkmm/stockid.h>
#include <gtkmm/accelgroup.h>
_DEFS(gtkmm,gtk)
_PINCLUDE(gtkmm/private/menuitem_p.h)

#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
#undef GTK_DISABLE_DEPRECATED
#define GDK_DISABLE_DEPRECATION_WARNINGS 1
#m4 _POP()

_IS_DEPRECATED // This whole file is deprecated.

namespace Gtk
{

/** A menu item with an icon.
 *
 * A GtkImageMenuItem is a menu item which has an icon next to the text label. Note that the
 * user can disable display of menu icons, so make sure to still fill in the text label.
 *
 * @deprecated Use Gtk::MenuItem instead.
 *
 * @ingroup Menus
 * @ingroup Widgets                                                                                                                                                S
 */
class GTKMM_API ImageMenuItem : public MenuItem
{
  _CLASS_GTKOBJECT(ImageMenuItem,GtkImageMenuItem,GTK_IMAGE_MENU_ITEM,Gtk::MenuItem,GtkMenuItem,,,GTKMM_API)
public:

  _CTOR_DEFAULT
  explicit ImageMenuItem(Widget& image,
                         const Glib::ustring& label, bool mnemonic = false);
  explicit ImageMenuItem(const Glib::ustring& label, bool mnemonic = false);
  explicit ImageMenuItem(const StockID& id);

  _WRAP_METHOD(void set_always_show_image(bool always_show = true), gtk_image_menu_item_set_always_show_image)
  _WRAP_METHOD(bool get_always_show_image() const, gtk_image_menu_item_get_always_show_image)

  _WRAP_METHOD(void set_image(Widget& image), gtk_image_menu_item_set_image)
  _WRAP_METHOD(Widget* get_image(), gtk_image_menu_item_get_image)
  _WRAP_METHOD(const Widget* get_image() const, gtk_image_menu_item_get_image, constversion)

  _WRAP_METHOD(void set_use_stock(bool use_stock = true), gtk_image_menu_item_set_use_stock)
  _WRAP_METHOD(bool get_use_stock() const, gtk_image_menu_item_get_use_stock)
  _WRAP_METHOD(void set_accel_group(const Glib::RefPtr<AccelGroup>& accel_group), gtk_image_menu_item_set_accel_group)

  _WRAP_PROPERTY("image", Widget*)
  _WRAP_PROPERTY("use-stock", bool)
  _WRAP_PROPERTY("accel-group", Glib::RefPtr<AccelGroup>)
  _WRAP_PROPERTY("always-show-image", bool)

};

} //namespace Gtk
