// -*- c++ -*-
//  Generated by gtkmmproc from ./../listitem.gen_h -- DO NOT MODIFY!
#include <gtk--/listitem.h>
#include <gtk--/private/listitem_p.h>
#include <gtk--/misc.h>
#include <gtk--/label.h>
namespace Gtk
{

ListItem::ListItem(const string &label,gfloat x,gfloat y)
  :     Item((GtkItem*)(gtk_object_new(get_type(),0)))
{
  initialize_class();
  add_label(label,x,y);
}

}

namespace Gtk {
Gtk::ListItem *wrap (GtkListItem *o)
  {
    return static_cast<Gtk::ListItem *> (Gtk::wrap_auto ((GtkObject *) (o)));
  }
}

namespace Gtk {
ListItem_Class ListItem::list_item_class = {0};

Object* ListItem_Class::wrap_new(GtkObject* o)
  {
    Object* cpp=manage(new ListItem((GtkListItem*)(o)));
    return cpp;
  }

bool ListItem::isA( Object *checkcast)
  {
    return GTK_IS_LIST_ITEM(checkcast->gtkobj());
  }

GtkType ListItem::get_type()
  {
    return list_item_class.get_type();
  }

GtkType ListItem_Class::get_type()
  {
    if (!type)
      {
        CppClassParent::CppObjectType::get_type();
        GtkTypeInfo info =
          {
            "Gtk__ListItem",
            sizeof(BaseObjectType),
            sizeof(BaseClassType),
            (GtkClassInitFunc) class_init_function,
            (GtkObjectInitFunc) object_init_function,
            /* reserved_1 */ NULL,
            /* reserved_2 */ NULL,
            /*base_class_init_func */ (GtkClassInitFunc) NULL
          };
        type=gtk_type_unique(gtk_list_item_get_type(), &info);
      }
    return type;
  }

const char* const ListItem::signal_names[]={
   "toggle_focus_row",
   "select_all",
   "unselect_all",
   "undo_selection",
   "start_selection",
   "end_selection",
   "extend_selection",
   "scroll_horizontal",
   "scroll_vertical",
   "toggle_add_mode",
   0};

void ListItem::initialize_class()
  {

     list_item_self=this;

  }

void ListItem_Class::class_init_function(GtkListItemClass *klass)
  {
    CppClassParent::class_init_function((BaseClassParent*)klass);
    klass->toggle_focus_row=toggle_focus_row_callback;
    klass->select_all=select_all_callback;
    klass->unselect_all=unselect_all_callback;
    klass->undo_selection=undo_selection_callback;
    klass->start_selection=start_selection_callback;
    klass->end_selection=end_selection_callback;
    klass->extend_selection=extend_selection_callback;
    klass->scroll_horizontal=scroll_horizontal_callback;
    klass->scroll_vertical=scroll_vertical_callback;
    klass->toggle_add_mode=toggle_add_mode_callback;
  }

void ListItem_Class::object_init_function(GtkListItem *)
  {}

}

Gtk::ListItem::ListItem()
  :     Gtk::Item((GtkItem*)(gtk_object_new(get_type(),0)))
  {
    initialize_class();
  }

Gtk::ListItem::ListItem(GtkListItem *castitem)
  :     Gtk::Item((GtkItem*)(castitem))
  {
    initialize_class();
  }

Gtk::ListItem::~ListItem() { destroy_(); }

void Gtk::ListItem_Class::toggle_focus_row_callback(GtkListItem* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->toggle_focus_row_impl();
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->toggle_focus_row)
          (base->toggle_focus_row)(o_);
      }

  }

void Gtk::ListItem::toggle_focus_row_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->toggle_focus_row)
      (base->toggle_focus_row)(gtkobj());

  }

void Gtk::ListItem_Class::select_all_callback(GtkListItem* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->select_all_impl();
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->select_all)
          (base->select_all)(o_);
      }

  }

void Gtk::ListItem::select_all_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->select_all)
      (base->select_all)(gtkobj());

  }

void Gtk::ListItem_Class::unselect_all_callback(GtkListItem* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->unselect_all_impl();
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->unselect_all)
          (base->unselect_all)(o_);
      }

  }

void Gtk::ListItem::unselect_all_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->unselect_all)
      (base->unselect_all)(gtkobj());

  }

void Gtk::ListItem_Class::undo_selection_callback(GtkListItem* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->undo_selection_impl();
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->undo_selection)
          (base->undo_selection)(o_);
      }

  }

void Gtk::ListItem::undo_selection_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->undo_selection)
      (base->undo_selection)(gtkobj());

  }

void Gtk::ListItem_Class::start_selection_callback(GtkListItem* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->start_selection_impl();
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->start_selection)
          (base->start_selection)(o_);
      }

  }

void Gtk::ListItem::start_selection_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->start_selection)
      (base->start_selection)(gtkobj());

  }

void Gtk::ListItem_Class::end_selection_callback(GtkListItem* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->end_selection_impl();
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->end_selection)
          (base->end_selection)(o_);
      }

  }

void Gtk::ListItem::end_selection_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->end_selection)
      (base->end_selection)(gtkobj());

  }

void Gtk::ListItem_Class::extend_selection_callback(GtkListItem* o_,GtkScrollType scroll_type,gfloat position,gboolean auto_start_selection)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->extend_selection_impl(scroll_type,position,auto_start_selection);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->extend_selection)
          (base->extend_selection)(o_,scroll_type,position,auto_start_selection);
      }

  }

void Gtk::ListItem::extend_selection_impl(GtkScrollType scroll_type,gfloat position,gboolean auto_start_selection)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->extend_selection)
      (base->extend_selection)(gtkobj(),scroll_type,position,auto_start_selection);

  }

void Gtk::ListItem_Class::scroll_horizontal_callback(GtkListItem* o_,GtkScrollType scroll_type,gfloat position)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->scroll_horizontal_impl(scroll_type,position);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->scroll_horizontal)
          (base->scroll_horizontal)(o_,scroll_type,position);
      }

  }

void Gtk::ListItem::scroll_horizontal_impl(GtkScrollType scroll_type,gfloat position)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->scroll_horizontal)
      (base->scroll_horizontal)(gtkobj(),scroll_type,position);

  }

void Gtk::ListItem_Class::scroll_vertical_callback(GtkListItem* o_,GtkScrollType scroll_type,gfloat position)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->scroll_vertical_impl(scroll_type,position);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->scroll_vertical)
          (base->scroll_vertical)(o_,scroll_type,position);
      }

  }

void Gtk::ListItem::scroll_vertical_impl(GtkScrollType scroll_type,gfloat position)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->scroll_vertical)
      (base->scroll_vertical)(gtkobj(),scroll_type,position);

  }

void Gtk::ListItem_Class::toggle_add_mode_callback(GtkListItem* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->toggle_add_mode_impl();
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->toggle_add_mode)
          (base->toggle_add_mode)(o_);
      }

  }

void Gtk::ListItem::toggle_add_mode_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->toggle_add_mode)
      (base->toggle_add_mode)(gtkobj());

  }
