// -*- c++ -*-
//  Generated by gtkmmproc from ./../optionmenu.gen_h -- DO NOT MODIFY!
#ifndef _GTKMM_OPTIONMENU_H
#define _GTKMM_OPTIONMENU_H

/* $Id: optionmenu.h,v 1.2 2003/06/17 16:37:41 pbd Exp $ */

/* optionmenu.h
 *
 * Copyright (C) 1998-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--/button.h>
#include <gtk/gtkoptionmenu.h>

namespace Gtk {
class OptionMenu;
class OptionMenu_Class;
}
namespace Gtk { Gtk::OptionMenu *wrap (GtkOptionMenu *o); }
namespace Gtk
{
class Menu;

//: OptionMenu
//- This widget is a container for a single level (i.e. no sub menus) menu. It
//- effectively creates a multiple choice widget, with the current choice displayed.
class OptionMenu : public Button {

public:
  typedef OptionMenu          CppObjectType;
  typedef OptionMenu_Class    CppClassType;
  typedef GtkOptionMenu           BaseObjectType;
  typedef GtkOptionMenuClass      BaseClassType;

private:
  friend class OptionMenu_Class;
  static CppClassType option_menu_class;

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

protected:
  void   initialize_class();
  explicit OptionMenu(GtkOptionMenu *castitem);

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

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

  virtual ~OptionMenu();

private:

public:

  OptionMenu();



  // GtkWidget* gtk_option_menu_get_menu(GtkOptionMenu*);
  Gtk::Menu* get_menu() const;

  //: Give the widget a menu to controll.
  //- This effectively "packs" a menu into the widget. The first item in the
  //- menu is displayed.

  void set_menu(Gtk::Menu& menu);


  void set_menu(Gtk::Menu* menu);


  void remove_menu();


  void set_history(guint index);

public:

protected:
  // impl functions

};

}


//+ PROPERTIES(Gtk_OptionMenu)
//. name: menu
//. type: Gtk_Widget*
//. get:
//. set:
//. desc:

//. name: menu_item
//. type: Gtk_Widget*
//. get:
//. set:
//. desc:

//. name: width
//. type: guint16
//. get:
//. set:
//. desc:

//. name: height
//. type: guint16
//. get:
//. set:
//. desc:

#endif
