// -*- c++ -*-
//  Generated by gtkmmproc from ./../editable.gen_h -- DO NOT MODIFY!
#include <gtk--/editable.h>
#include <gtk--/private/editable_p.h>
namespace Gtk {
Gtk::Editable *wrap (GtkEditable *o)
  {
    return static_cast<Gtk::Editable *> (Gtk::wrap_auto ((GtkObject *) (o)));
  }
}

namespace Gtk {
Editable_Class Editable::editable_class = {0};

Object* Editable_Class::wrap_new(GtkObject* o)
  {
    Object* cpp=manage(new Editable((GtkEditable*)(o)));
    return cpp;
  }

bool Editable::isA( Object *checkcast)
  {
    return GTK_IS_EDITABLE(checkcast->gtkobj());
  }

GtkType Editable::get_type()
  {
    return editable_class.get_type();
  }

GtkType Editable_Class::get_type()
  {
    if (!type)
      {
        CppClassParent::CppObjectType::get_type();
        GtkTypeInfo info =
          {
            "Gtk__Editable",
            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_editable_get_type(), &info);
      }
    return type;
  }

const char* const Editable::signal_names[]={
   "changed",
   "activate",
   "insert_text",
   "delete_text",
   "set_editable",
   "move_cursor",
   "move_word",
   "move_page",
   "move_to_row",
   "move_to_column",
   "kill_char",
   "kill_word",
   "kill_line",
   "cut_clipboard",
   "copy_clipboard",
   "paste_clipboard",
   "update_text",
   "set_selection",
   "set_position",
   0};

void Editable::initialize_class()
  {

     editable_self=this;

  }

void Editable_Class::class_init_function(GtkEditableClass *klass)
  {
    CppClassParent::class_init_function((BaseClassParent*)klass);
    klass->changed=changed_callback;
    klass->activate=activate_callback;
    klass->insert_text=insert_text_callback;
    klass->delete_text=delete_text_callback;
    klass->set_editable=set_editable_callback;
    klass->move_cursor=move_cursor_callback;
    klass->move_word=move_word_callback;
    klass->move_page=move_page_callback;
    klass->move_to_row=move_to_row_callback;
    klass->move_to_column=move_to_column_callback;
    klass->kill_char=kill_char_callback;
    klass->kill_word=kill_word_callback;
    klass->kill_line=kill_line_callback;
    klass->cut_clipboard=cut_clipboard_callback;
    klass->copy_clipboard=copy_clipboard_callback;
    klass->paste_clipboard=paste_clipboard_callback;
  }

void Editable_Class::object_init_function(GtkEditable *)
  {}

}

Gtk::Editable::Editable()
  :     Gtk::Widget((GtkWidget*)(gtk_object_new(get_type(),0)))
  {
    initialize_class();
  }

Gtk::Editable::Editable(GtkEditable *castitem)
  :     Gtk::Widget((GtkWidget*)(castitem))
  {
    initialize_class();
  }

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

void Gtk::Editable::select_region(gint start,gint end)
  {
    gtk_editable_select_region(gtkobj(),start,end);
  }

gint Gtk::Editable::get_position() const
  {
    return gtk_editable_get_position(const_cast<GtkEditable*>(gtkobj()));
  }

string Gtk::Editable::get_chars(gint start_pos,gint end_pos) const
  {
    return gtk_editable_get_chars(const_cast<GtkEditable*>(gtkobj()),start_pos,end_pos);
  }

void Gtk::Editable::claim_selection(gboolean claim,guint32 time)
  {
    gtk_editable_claim_selection(gtkobj(),claim,time);
  }

void Gtk::Editable::delete_selection()
  {
    gtk_editable_delete_selection(gtkobj());
  }

void Gtk::Editable_Class::changed_callback(GtkEditable* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Editable::changed_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->changed)
      (base->changed)(gtkobj());

  }

void Gtk::Editable_Class::activate_callback(GtkEditable* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Editable::activate_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->activate)
      (base->activate)(gtkobj());

  }

void Gtk::Editable_Class::insert_text_callback(GtkEditable* o_,const gchar* p0,gint p1,gint* p2)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->insert_text_impl(p0,p1,p2);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->insert_text)
          (base->insert_text)(o_,p0,p1,p2);
      }

  }

void Gtk::Editable::insert_text_impl(const gchar* p0,gint p1,gint* p2)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->insert_text)
      (base->insert_text)(gtkobj(),p0,p1,p2);

  }

void Gtk::Editable_Class::delete_text_callback(GtkEditable* o_,gint p0,gint p1)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->delete_text_impl(p0,p1);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->delete_text)
          (base->delete_text)(o_,p0,p1);
      }

  }

void Gtk::Editable::delete_text_impl(gint p0,gint p1)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->delete_text)
      (base->delete_text)(gtkobj(),p0,p1);

  }

void Gtk::Editable_Class::set_editable_callback(GtkEditable* o_,gboolean p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->set_editable_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->set_editable)
          (base->set_editable)(o_,p0);
      }

  }

void Gtk::Editable::set_editable_impl(gboolean p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->set_editable)
      (base->set_editable)(gtkobj(),p0);

  }

void Gtk::Editable_Class::move_cursor_callback(GtkEditable* o_,gint p0,gint p1)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->move_cursor_impl(p0,p1);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->move_cursor)
          (base->move_cursor)(o_,p0,p1);
      }

  }

void Gtk::Editable::move_cursor_impl(gint p0,gint p1)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->move_cursor)
      (base->move_cursor)(gtkobj(),p0,p1);

  }

void Gtk::Editable_Class::move_word_callback(GtkEditable* o_,gint p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->move_word_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->move_word)
          (base->move_word)(o_,p0);
      }

  }

void Gtk::Editable::move_word_impl(gint p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->move_word)
      (base->move_word)(gtkobj(),p0);

  }

void Gtk::Editable_Class::move_page_callback(GtkEditable* o_,gint p0,gint p1)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->move_page_impl(p0,p1);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->move_page)
          (base->move_page)(o_,p0,p1);
      }

  }

void Gtk::Editable::move_page_impl(gint p0,gint p1)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->move_page)
      (base->move_page)(gtkobj(),p0,p1);

  }

void Gtk::Editable_Class::move_to_row_callback(GtkEditable* o_,gint p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->move_to_row_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->move_to_row)
          (base->move_to_row)(o_,p0);
      }

  }

void Gtk::Editable::move_to_row_impl(gint p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->move_to_row)
      (base->move_to_row)(gtkobj(),p0);

  }

void Gtk::Editable_Class::move_to_column_callback(GtkEditable* o_,gint p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->move_to_column_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->move_to_column)
          (base->move_to_column)(o_,p0);
      }

  }

void Gtk::Editable::move_to_column_impl(gint p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->move_to_column)
      (base->move_to_column)(gtkobj(),p0);

  }

void Gtk::Editable_Class::kill_char_callback(GtkEditable* o_,gint p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->kill_char_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->kill_char)
          (base->kill_char)(o_,p0);
      }

  }

void Gtk::Editable::kill_char_impl(gint p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->kill_char)
      (base->kill_char)(gtkobj(),p0);

  }

void Gtk::Editable_Class::kill_word_callback(GtkEditable* o_,gint p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->kill_word_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->kill_word)
          (base->kill_word)(o_,p0);
      }

  }

void Gtk::Editable::kill_word_impl(gint p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->kill_word)
      (base->kill_word)(gtkobj(),p0);

  }

void Gtk::Editable_Class::kill_line_callback(GtkEditable* o_,gint p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->kill_line_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->kill_line)
          (base->kill_line)(o_,p0);
      }

  }

void Gtk::Editable::kill_line_impl(gint p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->kill_line)
      (base->kill_line)(gtkobj(),p0);

  }

void Gtk::Editable_Class::cut_clipboard_callback(GtkEditable* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Editable::cut_clipboard_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->cut_clipboard)
      (base->cut_clipboard)(gtkobj());

  }

void Gtk::Editable_Class::copy_clipboard_callback(GtkEditable* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Editable::copy_clipboard_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->copy_clipboard)
      (base->copy_clipboard)(gtkobj());

  }

void Gtk::Editable_Class::paste_clipboard_callback(GtkEditable* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Editable::paste_clipboard_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->paste_clipboard)
      (base->paste_clipboard)(gtkobj());

  }
