// -*- c++ -*-
/*  Generated by gensig from list.gen_h. DO NOT MODIFY!!! */
#ifndef GTKMM_LIST_HEADER
#define GTKMM_LIST_HEADER
/* $Id: list.gen_h,v 1.27.2.2 1999/03/20 04:59:41 terop Exp $ */

/* list.h
 * 
 * Copyright (C) 1998-1999 
 *
 * 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--/container.h>
#include <gtk/gtklist.h>
class Gtk_List_Class;
#line 24 "list.gen_h"

//: Slow implementation of lists.
// Gtk_List is somewhat broken. To insert anything useful to list at its
// current state, use Gtk_Container::add(Gtk_Widget*)
class Gtk_List : public Gtk_Container {
public:
protected:
  typedef Gtk_List_Class    CppClassType;
  typedef GtkList           BaseObjectType;
  typedef GtkListClass      BaseClassType;

  virtual void *get_parent_class();

private:
  friend CppClassType;
  static CppClassType list_class; 
  GtkType get_type(); 

public:


  Gtk_List();
  Gtk_List(GtkList *castitem);
	
  Signal_proxy0<BaseObjectType> selection_changed;
  Signal_proxy1<BaseObjectType,GtkWidget*> select_child_c;
  Signal_proxy1<BaseObjectType,GtkWidget*> unselect_child_c;
  Signal1<Gtk_Widget*> select_child;
  Signal1<Gtk_Widget*> unselect_child;
  void select_child_callback(Gtk_Widget *p1);
  void unselect_child_callback(Gtk_Widget *p1);

  // The insert-items methods in this class are not really working correctly
  // with gtk--.. use add() method from Gtk_Container instead.
  void insert_items(GList *items, gint position);
  // obsolete, use begin()/end() from Gtk_Container and STL's insertion algorithms
  void append_items(GList *items);
  // obsolete, use begin()/end() from Gtk_Container and STL's insertion algorithms
  void prepend_items(GList *items);
  // obsolete, use begin()/end() from Gtk_Container and STL's insertion algorithms
  void remove_items(GList *items);
  // obsolete, use begin()/end() from Gtk_Container and STL's insertion algorithms
  void remove_items_no_unref(GList *items);
  void clear_items(gint start, gint end);
  void select_item(gint item);
  void unselect_item(gint item);
//   virtual void select_child(Gtk_Widget *child); // signal
//   virtual void unselect_child(Gtk_Widget *child); // signal
  gint child_position(const Gtk_Widget &child); 
  void set_selection_mode(GtkSelectionMode  mode);

protected:
  /* impl functions */
  virtual void selection_changed_impl();
  virtual void select_child_c_impl(GtkWidget* p1);
  virtual void unselect_child_c_impl(GtkWidget* p1);
public:
  GtkList* gtkobj() { return GTK_LIST(gtkobject); }
  const GtkList* gtkobj() const { return GTK_LIST(gtkobject); }
  static bool isGtkList(Gtk_Object *checkcast);
#line 62 "list.gen_h"

}; 

#endif
