// -*- c++ -*-
//  Generated by gtkmmproc from ./../widget.gen_h -- DO NOT MODIFY!
#include <gtk--/widget.h>
#include <gtk--/private/widget_p.h>

//#include <vector>
#include <gtk--/adjustment.h>
#include <gtk--/window.h>
#include <gtk--/accelgroup.h>
#include <gtk--/style.h>
#include <gtk/gtkdnd.h>
#include <gtk/gtkselection.h>
#include <gtk/gtkwidget.h>
#include <gtk/gtkcontainer.h>

namespace Gtk
{

Widget::~Widget()
{
}

void
Widget::realize_if_needed()
{
  if (!is_realized()) realize();
}

Gdk_Window
Widget::get_window() const
{
  g_return_val_if_fail(is_realized(),0);
  return Gdk_Window(gtkobj()->window);
}

#if GTK_VERSION_GT_MICRO(1,2,0)
bool
Widget::accelerators_locked()
{
  return (gtk_widget_accelerators_locked(gtkobj()))?true:false;
}
#endif

void
Widget::path(string    &pathx,
		 string    &path_reversed)
{
  guint path_length;
  gchar *_path, *_path_reversed;

  gtk_widget_path(gtkobj(), &path_length, &_path, &_path_reversed);
  pathx = _path;
  path_reversed = _path_reversed;
  g_free(_path);
  g_free(_path_reversed);
}

void
Widget::class_path(string    &pathx,
		       string    &path_reversed)
{
  guint path_length;
  gchar *_path, *_path_reversed;

  gtk_widget_class_path(gtkobj(), &path_length, &_path, &_path_reversed);
  pathx = _path;
  path_reversed = _path_reversed;
  g_free(_path);
  g_free(_path_reversed);
}

GtkStateType Widget::get_state() const
{
  return GtkStateType(GTK_WIDGET_STATE (GTK_WIDGET(gtkobj())));
}

} /* namespace Gtk */

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

namespace Gtk {
Widget_Class Widget::widget_class = {0};

Object* Widget_Class::wrap_new(GtkObject* o)
  {
    Object* cpp=manage(new Widget((GtkWidget*)(o)));
    return cpp;
  }

bool Widget::isA( Object *checkcast)
  {
    return GTK_IS_WIDGET(checkcast->gtkobj());
  }

GtkType Widget::get_type()
  {
    return widget_class.get_type();
  }

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

const char* const Widget::signal_names[]={
   "show",
   "show_all",
   "hide",
   "hide_all",
   "map",
   "unmap",
   "realize",
   "grab_focus",
   "draw",
   "draw_focus",
   "draw_default",
   "size_request",
   "size_allocate",
   "state_changed",
   "parent_set",
   "style_set",
   "event",
   "button_press_event",
   "button_release_event",
   "motion_notify_event",
   "delete_event",
   "expose_event",
   "key_press_event",
   "key_release_event",
   "enter_notify_event",
   "leave_notify_event",
   "configure_event",
   "focus_in_event",
   "focus_out_event",
   "map_event",
   "unmap_event",
   "property_notify_event",
   "selection_clear_event",
   "selection_request_event",
   "selection_notify_event",
   "proximity_in_event",
   "proximity_out_event",
   "client_event",
   "no_expose_event",
   "visibility_notify_event",
   "debug_msg",
   "selection_get",
   "selection_received",
   "drag_begin",
   "drag_end",
   "drag_data_get",
   "drag_data_delete",
   "drag_leave",
   "drag_motion",
   "drag_drop",
   "drag_data_received",
   0};

void Widget::initialize_class()
  {

     widget_self=this;

  }

void Widget_Class::class_init_function(GtkWidgetClass *klass)
  {
    CppClassParent::class_init_function((BaseClassParent*)klass);
    klass->show=show_callback;
    klass->show_all=show_all_callback;
    klass->hide=hide_callback;
    klass->hide_all=hide_all_callback;
    klass->map=map_callback;
    klass->unmap=unmap_callback;
    klass->realize=realize_callback;
    klass->grab_focus=grab_focus_callback;
    klass->draw=draw_callback;
    klass->draw_focus=draw_focus_callback;
    klass->draw_default=draw_default_callback;
    klass->size_request=size_request_callback;
    klass->size_allocate=size_allocate_callback;
    klass->state_changed=state_changed_callback;
    klass->parent_set=parent_set_callback;
    klass->style_set=style_set_callback;
    klass->event=event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->button_press_event=button_press_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("button_press_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->button_release_event=button_release_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("button_release_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->motion_notify_event=motion_notify_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("motion_notify_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->delete_event=delete_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("delete_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->expose_event=expose_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("expose_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->key_press_event=key_press_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("key_press_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->key_release_event=key_release_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("key_release_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->enter_notify_event=enter_notify_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("enter_notify_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->leave_notify_event=leave_notify_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("leave_notify_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->configure_event=configure_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("configure_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->focus_in_event=focus_in_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("focus_in_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->focus_out_event=focus_out_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("focus_out_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->map_event=map_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("map_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->unmap_event=unmap_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("unmap_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->property_notify_event=property_notify_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("property_notify_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->selection_clear_event=selection_clear_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("selection_clear_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->selection_request_event=selection_request_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("selection_request_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->selection_notify_event=selection_notify_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("selection_notify_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->proximity_in_event=proximity_in_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("proximity_in_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->proximity_out_event=proximity_out_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("proximity_out_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->client_event=client_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("client_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->no_expose_event=no_expose_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("no_expose_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->visibility_notify_event=visibility_notify_event_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("visibility_notify_event",Widget::get_type()),&gtkmm_marshal_INT__POINTER);
    klass->debug_msg=debug_msg_callback;
    klass->selection_get=selection_get_callback;
    klass->selection_received=selection_received_callback;
    klass->drag_begin=drag_begin_callback;
    klass->drag_end=drag_end_callback;
    klass->drag_data_get=drag_data_get_callback;
    klass->drag_data_delete=drag_data_delete_callback;
    klass->drag_leave=drag_leave_callback;
    klass->drag_motion=drag_motion_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("drag_motion",Widget::get_type()),&gtkmm_marshal_BOOL__POINTER_INT_INT_INT);
    klass->drag_drop=drag_drop_callback;
    gtkmm_signal_set_marshal(gtk_signal_lookup("drag_drop",Widget::get_type()),&gtkmm_marshal_BOOL__POINTER_INT_INT_INT);
    klass->drag_data_received=drag_data_received_callback;
  }

void Widget_Class::object_init_function(GtkWidget *)
  {}

}

Gtk::Widget::Widget(GtkWidget *castitem)
  :     Gtk::Object((GtkObject*)(castitem))
  {
    initialize_class();
  }

void Gtk::Widget::unparent()
  {
    gtk_widget_unparent(gtkobj());
  }

void Gtk::Widget::show_now()
  {
    gtk_widget_show_now(gtkobj());
  }

void Gtk::Widget::queue_draw()
  {
    gtk_widget_queue_draw(gtkobj());
  }

void Gtk::Widget::queue_draw_area(gint x,gint y,gint width,gint height)
  {
    gtk_widget_queue_draw_area(gtkobj(),x,y,width,height);
  }

void Gtk::Widget::queue_clear()
  {
    gtk_widget_queue_clear(gtkobj());
  }

void Gtk::Widget::queue_clear_area(gint x,gint y,gint width,gint height)
  {
    gtk_widget_queue_clear_area(gtkobj(),x,y,width,height);
  }

void Gtk::Widget::queue_resize()
  {
    gtk_widget_queue_resize(gtkobj());
  }

void Gtk::Widget::lock_accelerators()
  {
    gtk_widget_lock_accelerators(gtkobj());
  }

void Gtk::Widget::unlock_accelerators()
  {
    gtk_widget_unlock_accelerators(gtkobj());
  }

void Gtk::Widget::add_accelerator(const nstring& accel_signal,Gtk::AccelGroup& accel_group,guint accel_key,guint accel_mods,GtkAccelFlags accel_flags)
  {
    gtk_widget_add_accelerator(gtkobj(),accel_signal.gc_str(),accel_group.gtkobj(),accel_key,accel_mods,accel_flags);
  }

void Gtk::Widget::remove_accelerator(Gtk::AccelGroup& accel_group,guint accel_key,guint accel_mods)
  {
    gtk_widget_remove_accelerator(gtkobj(),accel_group.gtkobj(),accel_key,accel_mods);
  }

void Gtk::Widget::remove_accelerators(const nstring& accel_signal,bool visible_only)
  {
    gtk_widget_remove_accelerators(gtkobj(),accel_signal.gc_str(),(gboolean)visible_only);
  }

bool Gtk::Widget::activate()
  {
    return ((gtk_widget_activate(gtkobj()))?true:false);
  }

void Gtk::Widget::reparent(Gtk::Widget& newparent)
  {
    gtk_widget_reparent(gtkobj(),newparent.gtkobj());
  }

void Gtk::Widget::popup(gint x,gint y)
  {
    gtk_widget_popup(gtkobj(),x,y);
  }

gint Gtk::Widget::intersect(const Gdk_Rectangle& area,const Gdk_Rectangle& intersection) const
  {
    return gtk_widget_intersect(const_cast<GtkWidget*>(gtkobj()),const_cast<GdkRectangle*>(area.gdkobj()),const_cast<GdkRectangle*>(intersection.gdkobj()));
  }

void Gtk::Widget::grab_default()
  {
    gtk_widget_grab_default(gtkobj());
  }

void Gtk::Widget::set_name(const nstring& name)
  {
    gtk_widget_set_name(gtkobj(),name.gc_str());
  }

Gtk::nstring Gtk::Widget::get_name() const
  {
    return gtk_widget_get_name(const_cast<GtkWidget*>(gtkobj()));
  }

void Gtk::Widget::set_state(GtkStateType state)
  {
    gtk_widget_set_state(gtkobj(),state);
  }

void Gtk::Widget::set_sensitive(bool sensitive)
  {
    gtk_widget_set_sensitive(gtkobj(),(gboolean)sensitive);
  }

void Gtk::Widget::set_app_paintable(bool app_paintable)
  {
    gtk_widget_set_app_paintable(gtkobj(),app_paintable);
  }

void Gtk::Widget::set_parent_window(const Gdk_Window& parent_window)
  {
    gtk_widget_set_parent_window(gtkobj(),const_cast<GdkWindow*>(parent_window.gdkobj()));
  }

Gdk_Window Gtk::Widget::get_parent_window() const
  {
    return gtk_widget_get_parent_window(const_cast<GtkWidget*>(gtkobj()));
  }

void Gtk::Widget::set_uposition(gint x,gint y)
  {
    gtk_widget_set_uposition(gtkobj(),x,y);
  }

void Gtk::Widget::set_usize(gint x,gint y)
  {
    gtk_widget_set_usize(gtkobj(),x,y);
  }

void Gtk::Widget::set_events(gint events)
  {
    gtk_widget_set_events(gtkobj(),events);
  }

void Gtk::Widget::add_events(gint events)
  {
    gtk_widget_add_events(gtkobj(),events);
  }

void Gtk::Widget::set_extension_events(GdkExtensionMode mode)
  {
    gtk_widget_set_extension_events(gtkobj(),mode);
  }

GdkExtensionMode Gtk::Widget::get_extension_events() const
  {
    return gtk_widget_get_extension_events(const_cast<GtkWidget*>(gtkobj()));
  }

Gtk::Window* Gtk::Widget::get_toplevel()
  {
    return Gtk::wrap((GtkWindow*)(gtk_widget_get_toplevel(gtkobj())));
  }

Gtk::Widget* Gtk::Widget::get_ancestor(GtkType type) const
  {
    return Gtk::wrap(gtk_widget_get_ancestor(const_cast<GtkWidget*>(gtkobj()),type));
  }

Gdk_Colormap Gtk::Widget::get_colormap() const
  {
    return gtk_widget_get_colormap(const_cast<GtkWidget*>(gtkobj()));
  }

Gdk_Visual Gtk::Widget::get_visual() const
  {
    return gtk_widget_get_visual(const_cast<GtkWidget*>(gtkobj()));
  }

void Gtk::Widget::set_colormap(const Gdk_Colormap& colormap)
  {
    gtk_widget_set_colormap(gtkobj(),const_cast<GdkColormap*>(colormap.gdkobj()));
  }

void Gtk::Widget::set_visual(const Gdk_Visual& visual)
  {
    gtk_widget_set_visual(gtkobj(),const_cast<GdkVisual*>(visual.gdkobj()));
  }

gint Gtk::Widget::get_events() const
  {
    return gtk_widget_get_events(const_cast<GtkWidget*>(gtkobj()));
  }

void Gtk::Widget::get_pointer(gint& x,gint& y) const
  {
    gtk_widget_get_pointer(const_cast<GtkWidget*>(gtkobj()),&x,&y);
  }

bool Gtk::Widget::is_ancestor(Gtk::Widget& widget) const
  {
    return ((gtk_widget_is_ancestor(const_cast<GtkWidget*>(gtkobj()),widget.gtkobj()))?true:false);
  }

void Gtk::Widget::set_style(Gtk::Style& style)
  {
    gtk_widget_set_style(gtkobj(),style.gtkobj());
  }

void Gtk::Widget::set_rc_style()
  {
    gtk_widget_set_rc_style(gtkobj());
  }

void Gtk::Widget::ensure_style()
  {
    gtk_widget_ensure_style(gtkobj());
  }

Gtk::Style* Gtk::Widget::get_style() const
  {
    return Gtk::wrap(gtk_widget_get_style(const_cast<GtkWidget*>(gtkobj())));
  }

void Gtk::Widget::restore_default_style()
  {
    gtk_widget_restore_default_style(gtkobj());
  }

void Gtk::Widget::set_composite_name(const nstring& name)
  {
    gtk_widget_set_composite_name(gtkobj(),const_cast<gchar*>(name.gc_str()));
  }

Gtk::nstring Gtk::Widget::get_composite_name()
  {
    return gtk_widget_get_composite_name(gtkobj());
  }

void Gtk::Widget::reset_rc_styles()
  {
    gtk_widget_reset_rc_styles(gtkobj());
  }

void Gtk::Widget::push_style(Gtk::Style& style)
  {
    gtk_widget_push_style(style.gtkobj());
  }

void Gtk::Widget::push_colormap(const Gdk_Colormap& cmap)
  {
    gtk_widget_push_colormap(const_cast<GdkColormap*>(cmap.gdkobj()));
  }

void Gtk::Widget::push_visual(const Gdk_Visual& visual)
  {
    gtk_widget_push_visual(const_cast<GdkVisual*>(visual.gdkobj()));
  }

void Gtk::Widget::push_composite_child()
  {
    gtk_widget_push_composite_child();
  }

void Gtk::Widget::pop_style()
  {
    gtk_widget_pop_style();
  }

void Gtk::Widget::pop_colormap()
  {
    gtk_widget_pop_colormap();
  }

void Gtk::Widget::pop_visual()
  {
    gtk_widget_pop_visual();
  }

void Gtk::Widget::pop_composite_child()
  {
    gtk_widget_pop_composite_child();
  }

void Gtk::Widget::set_default_style(Gtk::Style& style)
  {
    gtk_widget_set_default_style(style.gtkobj());
  }

void Gtk::Widget::set_default_colormap(const Gdk_Colormap& colormap)
  {
    gtk_widget_set_default_colormap(const_cast<GdkColormap*>(colormap.gdkobj()));
  }

void Gtk::Widget::set_default_visual(const Gdk_Visual& visual)
  {
    gtk_widget_set_default_visual(const_cast<GdkVisual*>(visual.gdkobj()));
  }

Gtk::Style* Gtk::Widget::get_default_style()
  {
    return Gtk::wrap(gtk_widget_get_default_style());
  }

Gdk_Colormap Gtk::Widget::get_default_colormap()
  {
    return gtk_widget_get_default_colormap();
  }

Gdk_Visual Gtk::Widget::get_default_visual()
  {
    return gtk_widget_get_default_visual();
  }

void Gtk::Widget::shape_combine_mask(const Gdk_Bitmap& shape_mask,gint offset_x,gint offset_y)
  {
    gtk_widget_shape_combine_mask(gtkobj(),const_cast<GdkBitmap*>(shape_mask.gdkobj()),offset_x,offset_y);
  }

void Gtk::Widget::reset_shapes()
  {
    gtk_widget_reset_shapes(gtkobj());
  }

GdkDragContext* Gtk::Widget::gtkmm_drag_begin(GtkTargetList* p0,GdkDragAction p1,gint p2,GdkEvent* p3)
  {
    return gtk_drag_begin(gtkobj(),p0,p1,p2,p3);
  }

void Gtk::Widget::drag_get_data(Gdk_Drag_Context& context,Gdk_Atom target,guint32 time)
  {
    gtk_drag_get_data(gtkobj(),context.gdkobj(),target,time);
  }

void Gtk::Widget::drag_finish(Gdk_Drag_Context& context,bool success,bool del,guint32 time)
  {
    gtk_drag_finish(context.gdkobj(),(gboolean)success,(gboolean)del,time);
  }

void Gtk::Widget::drag_highlight()
  {
    gtk_drag_highlight(gtkobj());
  }

void Gtk::Widget::drag_unhighlight()
  {
    gtk_drag_unhighlight(gtkobj());
  }

void Gtk::Widget::drag_dest_set(GtkDestDefaults flags,const GtkTargetEntry* targets,gint n_targets,GdkDragAction actions)
  {
    gtk_drag_dest_set(gtkobj(),flags,targets,n_targets,actions);
  }

void Gtk::Widget::drag_dest_set_proxy(Gdk_Window& proxy_window,GdkDragProtocol protocol,bool use_coordinates)
  {
    gtk_drag_dest_set_proxy(gtkobj(),proxy_window.gdkobj(),protocol,(gboolean)use_coordinates);
  }

void Gtk::Widget::drag_dest_unset()
  {
    gtk_drag_dest_unset(gtkobj());
  }

void Gtk::Widget::drag_source_set(GdkModifierType start_button_mask,const GtkTargetEntry* targets,gint n_targets,GdkDragAction actions)
  {
    gtk_drag_source_set(gtkobj(),start_button_mask,targets,n_targets,actions);
  }

void Gtk::Widget::drag_source_unset()
  {
    gtk_drag_source_unset(gtkobj());
  }

void Gtk::Widget::drag_source_set_icon(Gdk_Colormap& colormap,Gdk_Pixmap& pixmap,Gdk_Bitmap& mask)
  {
    gtk_drag_source_set_icon(gtkobj(),colormap.gdkobj(),pixmap.gdkobj(),mask.gdkobj());
  }

Gtk::Widget* Gtk::Widget::drag_get_source_widget(GdkDragContext* context)
  {
    return Gtk::wrap(gtk_drag_get_source_widget(context));
  }

void Gtk::Widget::drag_set_icon_widget(Gdk_Drag_Context& context,Gtk::Widget& widget,gint hot_x,gint hot_y)
  {
    gtk_drag_set_icon_widget(context.gdkobj(),widget.gtkobj(),hot_x,hot_y);
  }

void Gtk::Widget::drag_set_icon_pixmap(Gdk_Drag_Context& context,Gdk_Colormap& colormap,Gdk_Pixmap& pixmap,Gdk_Bitmap& mask,gint hot_x,gint hot_y)
  {
    gtk_drag_set_icon_pixmap(context.gdkobj(),colormap.gdkobj(),pixmap.gdkobj(),mask.gdkobj(),hot_x,hot_y);
  }

void Gtk::Widget::drag_set_icon_default(Gdk_Drag_Context& context)
  {
    gtk_drag_set_icon_default(context.gdkobj());
  }

void Gtk::Widget::drag_set_default_icon(Gdk_Colormap& colormap,Gdk_Pixmap& pixmap,Gdk_Bitmap& mask,gint hot_x,gint hot_y)
  {
    gtk_drag_set_default_icon(colormap.gdkobj(),pixmap.gdkobj(),mask.gdkobj(),hot_x,hot_y);
  }

void Gtk::Widget::show_all()
  {
    gtk_widget_show_all(gtkobj());
  }

void Gtk::Widget::hide_all()
  {
    gtk_widget_hide_all(gtkobj());
  }

void Gtk::Widget::draw(GdkRectangle* p0)
  {
    gtk_widget_draw(gtkobj(),p0);
  }

gint gtkmm_widget_button_press_event(GtkWidget* widget,GdkEventButton* p0)
  {
    static guint signum=gtk_signal_lookup("button_press_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_button_release_event(GtkWidget* widget,GdkEventButton* p0)
  {
    static guint signum=gtk_signal_lookup("button_release_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_motion_notify_event(GtkWidget* widget,GdkEventMotion* p0)
  {
    static guint signum=gtk_signal_lookup("motion_notify_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_delete_event(GtkWidget* widget,GdkEventAny* p0)
  {
    static guint signum=gtk_signal_lookup("delete_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_expose_event(GtkWidget* widget,GdkEventExpose* p0)
  {
    static guint signum=gtk_signal_lookup("expose_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_key_press_event(GtkWidget* widget,GdkEventKey* p0)
  {
    static guint signum=gtk_signal_lookup("key_press_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_key_release_event(GtkWidget* widget,GdkEventKey* p0)
  {
    static guint signum=gtk_signal_lookup("key_release_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_enter_notify_event(GtkWidget* widget,GdkEventCrossing* p0)
  {
    static guint signum=gtk_signal_lookup("enter_notify_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_leave_notify_event(GtkWidget* widget,GdkEventCrossing* p0)
  {
    static guint signum=gtk_signal_lookup("leave_notify_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_configure_event(GtkWidget* widget,GdkEventConfigure* p0)
  {
    static guint signum=gtk_signal_lookup("configure_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_focus_in_event(GtkWidget* widget,GdkEventFocus* p0)
  {
    static guint signum=gtk_signal_lookup("focus_in_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_focus_out_event(GtkWidget* widget,GdkEventFocus* p0)
  {
    static guint signum=gtk_signal_lookup("focus_out_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_map_event(GtkWidget* widget,GdkEventAny* p0)
  {
    static guint signum=gtk_signal_lookup("map_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_unmap_event(GtkWidget* widget,GdkEventAny* p0)
  {
    static guint signum=gtk_signal_lookup("unmap_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_property_notify_event(GtkWidget* widget,GdkEventProperty* p0)
  {
    static guint signum=gtk_signal_lookup("property_notify_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_selection_clear_event(GtkWidget* widget,GdkEventSelection* p0)
  {
    static guint signum=gtk_signal_lookup("selection_clear_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_selection_request_event(GtkWidget* widget,GdkEventSelection* p0)
  {
    static guint signum=gtk_signal_lookup("selection_request_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_selection_notify_event(GtkWidget* widget,GdkEventSelection* p0)
  {
    static guint signum=gtk_signal_lookup("selection_notify_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_proximity_in_event(GtkWidget* widget,GdkEventProximity* p0)
  {
    static guint signum=gtk_signal_lookup("proximity_in_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_proximity_out_event(GtkWidget* widget,GdkEventProximity* p0)
  {
    static guint signum=gtk_signal_lookup("proximity_out_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_client_event(GtkWidget* widget,GdkEventClient* p0)
  {
    static guint signum=gtk_signal_lookup("client_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_no_expose_event(GtkWidget* widget,GdkEventAny* p0)
  {
    static guint signum=gtk_signal_lookup("no_expose_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

gint gtkmm_widget_visibility_notify_event(GtkWidget* widget,GdkEventVisibility* p0)
  {
    static guint signum=gtk_signal_lookup("visibility_notify_event",gtk_widget_get_type());
    gint rc;
    g_return_val_if_fail (widget != NULL, 0 );
    g_return_val_if_fail (GTK_WIDGET (widget), 0 );

    gtk_signal_emit(GTK_OBJECT(widget),signum,p0,&rc);
    return rc;
  }

Gtk::Widget::Widget()
  :     Gtk::Object((GtkObject*)(gtk_object_new(get_type(),0)))
  {
    initialize_class();
  }

void Gtk::Widget_Class::show_callback(GtkWidget* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::show_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->show)
      (base->show)(gtkobj());

  }

void Gtk::Widget_Class::show_all_callback(GtkWidget* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::show_all_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->show_all)
      (base->show_all)(gtkobj());

  }

void Gtk::Widget_Class::hide_callback(GtkWidget* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::hide_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->hide)
      (base->hide)(gtkobj());

  }

void Gtk::Widget_Class::hide_all_callback(GtkWidget* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::hide_all_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->hide_all)
      (base->hide_all)(gtkobj());

  }

void Gtk::Widget_Class::map_callback(GtkWidget* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::map__impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->map)
      (base->map)(gtkobj());

  }

void Gtk::Widget_Class::unmap_callback(GtkWidget* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::unmap__impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->unmap)
      (base->unmap)(gtkobj());

  }

void Gtk::Widget_Class::realize_callback(GtkWidget* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::realize_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->realize)
      (base->realize)(gtkobj());

  }

void Gtk::Widget_Class::grab_focus_callback(GtkWidget* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::grab_focus_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->grab_focus)
      (base->grab_focus)(gtkobj());

  }

void Gtk::Widget_Class::draw_callback(GtkWidget* o_,GdkRectangle* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::draw_impl(GdkRectangle* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->draw)
      (base->draw)(gtkobj(),p0);

  }

void Gtk::Widget_Class::draw_focus_callback(GtkWidget* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::draw_focus_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->draw_focus)
      (base->draw_focus)(gtkobj());

  }

void Gtk::Widget_Class::draw_default_callback(GtkWidget* o_)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::draw_default_impl()
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->draw_default)
      (base->draw_default)(gtkobj());

  }

void Gtk::Widget_Class::size_request_callback(GtkWidget* o_,GtkRequisition* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::size_request_impl(GtkRequisition* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->size_request)
      (base->size_request)(gtkobj(),p0);

  }

void Gtk::Widget_Class::size_allocate_callback(GtkWidget* o_,GtkAllocation* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::size_allocate_impl(GtkAllocation* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->size_allocate)
      (base->size_allocate)(gtkobj(),p0);

  }

void Gtk::Widget_Class::state_changed_callback(GtkWidget* o_,GtkStateType p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::state_changed_impl(GtkStateType p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->state_changed)
      (base->state_changed)(gtkobj(),p0);

  }

void Gtk::Widget_Class::parent_set_callback(GtkWidget* p0,GtkWidget* p1)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)p0,Gtk::quark_)));

    if (obj)
      obj->parent_changed_impl(Gtk::wrap(p1));
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)p0)->klass->type));
        if (base->parent_set)
          (base->parent_set)(p0,p1);
      }

  }

void Gtk::Widget::parent_changed_impl(Gtk::Widget* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->parent_set)
      (base->parent_set)(gtkobj(),(GtkWidget*)Gtk::unwrap(p0));

  }

namespace {
static void parent_changed_convert_func(SigC::Callback1<void,Gtk::Widget*> *s,GtkWidget* p1)
  {
     s->call(Gtk::wrap(p1));
  }

}

SigC::Connection
Gtk::Widget::Proxy_parent_changed::connect(const SigC::Slot1<void,Gtk::Widget*> &s)
   {
    return BaseType::connect(SigC::convert(s,&parent_changed_convert_func));
   }

void Gtk::Widget_Class::style_set_callback(GtkWidget* p0,GtkStyle* p1)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)p0,Gtk::quark_)));

    if (obj)
      obj->style_changed_impl(Gtk::wrap(p1));
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)p0)->klass->type));
        if (base->style_set)
          (base->style_set)(p0,p1);
      }

  }

void Gtk::Widget::style_changed_impl(Gtk::Style* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->style_set)
      (base->style_set)(gtkobj(),(p0?p0->gtkobj():0));

  }

namespace {
static void style_changed_convert_func(SigC::Callback1<void,Gtk::Style*> *s,GtkStyle* p1)
  {
     s->call(Gtk::wrap(p1));
  }

}

SigC::Connection
Gtk::Widget::Proxy_style_changed::connect(const SigC::Slot1<void,Gtk::Style*> &s)
   {
    return BaseType::connect(SigC::convert(s,&style_changed_convert_func));
   }

gint Gtk::Widget_Class::event_callback(GtkWidget* o_,GdkEvent* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->event)
          return (base->event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::event_impl(GdkEvent* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->event)
      return (base->event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::button_press_event_callback(GtkWidget* o_,GdkEventButton* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->button_press_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->button_press_event)
          return (base->button_press_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::button_press_event_impl(GdkEventButton* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->button_press_event)
      return (base->button_press_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::button_release_event_callback(GtkWidget* o_,GdkEventButton* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->button_release_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->button_release_event)
          return (base->button_release_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::button_release_event_impl(GdkEventButton* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->button_release_event)
      return (base->button_release_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::motion_notify_event_callback(GtkWidget* o_,GdkEventMotion* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->motion_notify_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->motion_notify_event)
          return (base->motion_notify_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::motion_notify_event_impl(GdkEventMotion* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->motion_notify_event)
      return (base->motion_notify_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::delete_event_callback(GtkWidget* o_,GdkEventAny* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->delete_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->delete_event)
          return (base->delete_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::delete_event_impl(GdkEventAny* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->delete_event)
      return (base->delete_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::expose_event_callback(GtkWidget* o_,GdkEventExpose* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->expose_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->expose_event)
          return (base->expose_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::expose_event_impl(GdkEventExpose* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->expose_event)
      return (base->expose_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::key_press_event_callback(GtkWidget* o_,GdkEventKey* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->key_press_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->key_press_event)
          return (base->key_press_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::key_press_event_impl(GdkEventKey* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->key_press_event)
      return (base->key_press_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::key_release_event_callback(GtkWidget* o_,GdkEventKey* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->key_release_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->key_release_event)
          return (base->key_release_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::key_release_event_impl(GdkEventKey* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->key_release_event)
      return (base->key_release_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::enter_notify_event_callback(GtkWidget* o_,GdkEventCrossing* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->enter_notify_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->enter_notify_event)
          return (base->enter_notify_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::enter_notify_event_impl(GdkEventCrossing* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->enter_notify_event)
      return (base->enter_notify_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::leave_notify_event_callback(GtkWidget* o_,GdkEventCrossing* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->leave_notify_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->leave_notify_event)
          return (base->leave_notify_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::leave_notify_event_impl(GdkEventCrossing* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->leave_notify_event)
      return (base->leave_notify_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::configure_event_callback(GtkWidget* o_,GdkEventConfigure* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->configure_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->configure_event)
          return (base->configure_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::configure_event_impl(GdkEventConfigure* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->configure_event)
      return (base->configure_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::focus_in_event_callback(GtkWidget* o_,GdkEventFocus* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->focus_in_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->focus_in_event)
          return (base->focus_in_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::focus_in_event_impl(GdkEventFocus* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->focus_in_event)
      return (base->focus_in_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::focus_out_event_callback(GtkWidget* o_,GdkEventFocus* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->focus_out_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->focus_out_event)
          return (base->focus_out_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::focus_out_event_impl(GdkEventFocus* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->focus_out_event)
      return (base->focus_out_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::map_event_callback(GtkWidget* o_,GdkEventAny* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->map_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->map_event)
          return (base->map_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::map_event_impl(GdkEventAny* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->map_event)
      return (base->map_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::unmap_event_callback(GtkWidget* o_,GdkEventAny* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->unmap_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->unmap_event)
          return (base->unmap_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::unmap_event_impl(GdkEventAny* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->unmap_event)
      return (base->unmap_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::property_notify_event_callback(GtkWidget* o_,GdkEventProperty* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->property_notify_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->property_notify_event)
          return (base->property_notify_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::property_notify_event_impl(GdkEventProperty* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->property_notify_event)
      return (base->property_notify_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::selection_clear_event_callback(GtkWidget* o_,GdkEventSelection* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->selection_clear_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->selection_clear_event)
          return (base->selection_clear_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::selection_clear_event_impl(GdkEventSelection* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->selection_clear_event)
      return (base->selection_clear_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::selection_request_event_callback(GtkWidget* o_,GdkEventSelection* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->selection_request_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->selection_request_event)
          return (base->selection_request_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::selection_request_event_impl(GdkEventSelection* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->selection_request_event)
      return (base->selection_request_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::selection_notify_event_callback(GtkWidget* o_,GdkEventSelection* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->selection_notify_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->selection_notify_event)
          return (base->selection_notify_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::selection_notify_event_impl(GdkEventSelection* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->selection_notify_event)
      return (base->selection_notify_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::proximity_in_event_callback(GtkWidget* o_,GdkEventProximity* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->proximity_in_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->proximity_in_event)
          return (base->proximity_in_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::proximity_in_event_impl(GdkEventProximity* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->proximity_in_event)
      return (base->proximity_in_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::proximity_out_event_callback(GtkWidget* o_,GdkEventProximity* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->proximity_out_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->proximity_out_event)
          return (base->proximity_out_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::proximity_out_event_impl(GdkEventProximity* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->proximity_out_event)
      return (base->proximity_out_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::client_event_callback(GtkWidget* o_,GdkEventClient* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->client_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->client_event)
          return (base->client_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::client_event_impl(GdkEventClient* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->client_event)
      return (base->client_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::no_expose_event_callback(GtkWidget* o_,GdkEventAny* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->no_expose_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->no_expose_event)
          return (base->no_expose_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::no_expose_event_impl(GdkEventAny* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->no_expose_event)
      return (base->no_expose_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

gint Gtk::Widget_Class::visibility_notify_event_callback(GtkWidget* o_,GdkEventVisibility* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->visibility_notify_event_impl(p0);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->visibility_notify_event)
          return (base->visibility_notify_event)(o_,p0);
        gtkmm_set_ignore();
      }
    return 0;

  }

gint Gtk::Widget::visibility_notify_event_impl(GdkEventVisibility* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->visibility_notify_event)
      return (base->visibility_notify_event)(gtkobj(),p0);
    gtkmm_set_ignore();
    return 0;

  }

void Gtk::Widget_Class::debug_msg_callback(GtkWidget* o_,const gchar* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::debug_msg_impl(const gchar* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->debug_msg)
      (base->debug_msg)(gtkobj(),p0);

  }

void Gtk::Widget_Class::selection_get_callback(GtkWidget* o_,GtkSelectionData* p0,guint p1,guint p2)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::selection_get_impl(GtkSelectionData* p0,guint p1,guint p2)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->selection_get)
      (base->selection_get)(gtkobj(),p0,p1,p2);

  }

void Gtk::Widget_Class::selection_received_callback(GtkWidget* o_,GtkSelectionData* p0,guint p1)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::selection_received_impl(GtkSelectionData* p0,guint p1)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->selection_received)
      (base->selection_received)(gtkobj(),p0,p1);

  }

void Gtk::Widget_Class::drag_begin_callback(GtkWidget* o_,GdkDragContext* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::drag_begin_impl(GdkDragContext* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->drag_begin)
      (base->drag_begin)(gtkobj(),p0);

  }

void Gtk::Widget_Class::drag_end_callback(GtkWidget* o_,GdkDragContext* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::drag_end_impl(GdkDragContext* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->drag_end)
      (base->drag_end)(gtkobj(),p0);

  }

void Gtk::Widget_Class::drag_data_get_callback(GtkWidget* o_,GdkDragContext* p0,GtkSelectionData* p1,guint p2,guint p3)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::drag_data_get_impl(GdkDragContext* p0,GtkSelectionData* p1,guint p2,guint p3)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->drag_data_get)
      (base->drag_data_get)(gtkobj(),p0,p1,p2,p3);

  }

void Gtk::Widget_Class::drag_data_delete_callback(GtkWidget* o_,GdkDragContext* p0)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::drag_data_delete_impl(GdkDragContext* p0)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->drag_data_delete)
      (base->drag_data_delete)(gtkobj(),p0);

  }

void Gtk::Widget_Class::drag_leave_callback(GtkWidget* o_,GdkDragContext* p0,guint p1)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

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

  }

void Gtk::Widget::drag_leave_impl(GdkDragContext* p0,guint p1)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->drag_leave)
      (base->drag_leave)(gtkobj(),p0,p1);

  }

gboolean Gtk::Widget_Class::drag_motion_callback(GtkWidget* o_,GdkDragContext* p0,gint p1,gint p2,guint p3)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->drag_motion_impl(p0,p1,p2,p3);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->drag_motion)
          return (base->drag_motion)(o_,p0,p1,p2,p3);
        gtkmm_set_ignore();
      }
    return 0;

  }

gboolean Gtk::Widget::drag_motion_impl(GdkDragContext* p0,gint p1,gint p2,guint p3)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->drag_motion)
      return (base->drag_motion)(gtkobj(),p0,p1,p2,p3);
    gtkmm_set_ignore();
    return 0;

  }

gboolean Gtk::Widget_Class::drag_drop_callback(GtkWidget* o_,GdkDragContext* p0,gint p1,gint p2,guint p3)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      return obj->drag_drop_impl(p0,p1,p2,p3);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->drag_drop)
          return (base->drag_drop)(o_,p0,p1,p2,p3);
        gtkmm_set_ignore();
      }
    return 0;

  }

gboolean Gtk::Widget::drag_drop_impl(GdkDragContext* p0,gint p1,gint p2,guint p3)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->drag_drop)
      return (base->drag_drop)(gtkobj(),p0,p1,p2,p3);
    gtkmm_set_ignore();
    return 0;

  }

void Gtk::Widget_Class::drag_data_received_callback(GtkWidget* o_,GdkDragContext* p0,gint p1,gint p2,GtkSelectionData* p3,guint p4,guint32 p5)
  {
    CppObjectType *obj=
      static_cast<CppObjectType *>(static_cast<Gtk::Object *>(
        gtk_object_get_data_by_id((GtkObject*)o_,Gtk::quark_)));

    if (obj)
      obj->drag_data_received_impl(p0,p1,p2,p3,p4,p5);
    else
      {
        BaseClassType* base=
          static_cast<BaseClassType*>(
            gtk_type_parent_class(((GtkObject*)o_)->klass->type));
        if (base->drag_data_received)
          (base->drag_data_received)(o_,p0,p1,p2,p3,p4,p5);
      }

  }

void Gtk::Widget::drag_data_received_impl(GdkDragContext* p0,gint p1,gint p2,GtkSelectionData* p3,guint p4,guint32 p5)
  {
    BaseClassType* base=
      static_cast<BaseClassType*>(
        gtk_type_parent_class(gtkobject->klass->type));
    if (base->drag_data_received)
      (base->drag_data_received)(gtkobj(),p0,p1,p2,p3,p4,p5);

  }

Gtk::Widget* Gtk::Widget::get_parent() const
  { return Gtk::wrap(gtkobj()->parent); }
