Branch: Tag:

2005-07-28

2005-07-28 15:26:09 by Martin Nilsson <mani@lysator.liu.se>

GTK2

Rev: src/post_modules/GTK2/AUTHORS:1.1
Rev: src/post_modules/GTK2/build_pgtk.pike:1.1
Rev: src/post_modules/GTK2/gdkeventstrings.h:1.1
Rev: src/post_modules/GTK2/module.pmod.in:1.1
Rev: src/post_modules/GTK2/pgtk.h:1.1
Rev: src/post_modules/GTK2/source/common_draw.inc:1.1
Rev: src/post_modules/GTK2/source/constants.pre:1.1
Rev: src/post_modules/GTK2/source/encode_truecolor.c:1.1
Rev: src/post_modules/GTK2/source/gdkatom.pre:1.1
Rev: src/post_modules/GTK2/source/gdkbitmap.pre:1.1
Rev: src/post_modules/GTK2/source/gdkcolor.pre:1.1
Rev: src/post_modules/GTK2/source/gdkdisplay.pre:1.1
Rev: src/post_modules/GTK2/source/gdkdragcontext.pre:1.1
Rev: src/post_modules/GTK2/source/gdkdrawable.pre:1.1
Rev: src/post_modules/GTK2/source/gdkevent.pre:1.1
Rev: src/post_modules/GTK2/source/gdkgc.pre:1.1
Rev: src/post_modules/GTK2/source/gdkimage.pre:1.1
Rev: src/post_modules/GTK2/source/gdkpixbuf.pre:1.1
Rev: src/post_modules/GTK2/source/gdkpixbufanimation.pre:1.1
Rev: src/post_modules/GTK2/source/gdkpixbufanimationiter.pre:1.1
Rev: src/post_modules/GTK2/source/gdkpixmap.pre:1.1
Rev: src/post_modules/GTK2/source/gdkrectangle.pre:1.1
Rev: src/post_modules/GTK2/source/gdkregion.pre:1.1
Rev: src/post_modules/GTK2/source/gdkwindow.pre:1.1
Rev: src/post_modules/GTK2/source/gladexml.pre:1.1
Rev: src/post_modules/GTK2/source/global.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomeabout.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomeapp.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomeappbar.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomeapplet.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomecalculator.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomecanvas.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomecanvasgroup.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomecanvasitem.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomecanvasline.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomecolorpicker.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedateedit.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedialog.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedock.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedockband.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedockitem.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedocklayout.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedruid.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedruidpage.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedruidpagefinish.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedruidpagestandard.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedruidpagestart.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomehref.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomeiconentry.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomeiconselection.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomeless.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomemessagebox.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomenumberentry.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomepaperselector.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomepropertybox.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomescores.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomestatusdocklet.pre:1.1
Rev: src/post_modules/GTK2/source/gnomeapp.pre:1.1
Rev: src/post_modules/GTK2/source/gnomeappbar.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvas.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasbpath.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasclipgroup.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasellipse.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasgroup.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasitem.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasline.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvaspixbuf.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasre.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasrect.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasrichtext.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasshape.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvastext.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvaswidget.pre:1.1
Rev: src/post_modules/GTK2/source/gnomeclient.pre:1.1
Rev: src/post_modules/GTK2/source/gnomedateedit.pre:1.1
Rev: src/post_modules/GTK2/source/gnomedruid.pre:1.1
Rev: src/post_modules/GTK2/source/gnomedruidpage.pre:1.1
Rev: src/post_modules/GTK2/source/gnomedruidpageedge.pre:1.1
Rev: src/post_modules/GTK2/source/gnomedruidpagestandard.pre:1.1
Rev: src/post_modules/GTK2/source/gnomehref.pre:1.1
Rev: src/post_modules/GTK2/source/gnomeiconentry.pre:1.1
Rev: src/post_modules/GTK2/source/gnomeiconselection.pre:1.1
Rev: src/post_modules/GTK2/source/gobject.pre:1.1
Rev: src/post_modules/GTK2/source/gtkaboutdialog.pre:1.1
Rev: src/post_modules/GTK2/source/gtkaccelgroup.pre:1.1
Rev: src/post_modules/GTK2/source/gtkaccellabel.pre:1.1
Rev: src/post_modules/GTK2/source/gtkaction.pre:1.1
Rev: src/post_modules/GTK2/source/gtkactiongroup.pre:1.1
Rev: src/post_modules/GTK2/source/gtkadjustment.pre:1.1
Rev: src/post_modules/GTK2/source/gtkalignment.pre:1.1
Rev: src/post_modules/GTK2/source/gtkarrow.pre:1.1
Rev: src/post_modules/GTK2/source/gtkaspectframe.pre:1.1
Rev: src/post_modules/GTK2/source/gtkbin.pre:1.1
Rev: src/post_modules/GTK2/source/gtkbox.pre:1.1
Rev: src/post_modules/GTK2/source/gtkbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtkbuttonbox.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcalendar.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcelleditable.inc:1.1
Rev: src/post_modules/GTK2/source/gtkcelllayout.inc:1.1
Rev: src/post_modules/GTK2/source/gtkcellrenderer.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcellrenderercombo.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcellrendererpixbuf.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcellrendererprogress.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcellrenderertext.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcellrenderertoggle.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcellview.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcheckbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcheckmenuitem.pre:1.1
Rev: src/post_modules/GTK2/source/gtkclipboard.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcolorbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcolorselection.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcolorselectiondialog.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcombo.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcombobox.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcomboboxentry.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcontainer.pre:1.1
Rev: src/post_modules/GTK2/source/gtkdata.pre:1.1
Rev: src/post_modules/GTK2/source/gtkdialog.pre:1.1
Rev: src/post_modules/GTK2/source/gtkdrawingarea.pre:1.1
Rev: src/post_modules/GTK2/source/gtkeditable.inc:1.1
Rev: src/post_modules/GTK2/source/gtkentry.pre:1.1
Rev: src/post_modules/GTK2/source/gtkentrycompletion.pre:1.1
Rev: src/post_modules/GTK2/source/gtkeventbox.pre:1.1
Rev: src/post_modules/GTK2/source/gtkexpander.pre:1.1
Rev: src/post_modules/GTK2/source/gtkfilechooser.inc:1.1
Rev: src/post_modules/GTK2/source/gtkfilechooserbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtkfilechooserdialog.pre:1.1
Rev: src/post_modules/GTK2/source/gtkfilechooserwidget.pre:1.1
Rev: src/post_modules/GTK2/source/gtkfilefilter.pre:1.1
Rev: src/post_modules/GTK2/source/gtkfileselection.pre:1.1
Rev: src/post_modules/GTK2/source/gtkfixed.pre:1.1
Rev: src/post_modules/GTK2/source/gtkfontbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtkfontselection.pre:1.1
Rev: src/post_modules/GTK2/source/gtkfontselectiondialog.pre:1.1
Rev: src/post_modules/GTK2/source/gtkframe.pre:1.1
Rev: src/post_modules/GTK2/source/gtkhandlebox.pre:1.1
Rev: src/post_modules/GTK2/source/gtkhbox.pre:1.1
Rev: src/post_modules/GTK2/source/gtkhbuttonbox.pre:1.1
Rev: src/post_modules/GTK2/source/gtkhpaned.pre:1.1
Rev: src/post_modules/GTK2/source/gtkhscale.pre:1.1
Rev: src/post_modules/GTK2/source/gtkhscrollbar.pre:1.1
Rev: src/post_modules/GTK2/source/gtkhseparator.pre:1.1
Rev: src/post_modules/GTK2/source/gtkiconfactory.pre:1.1
Rev: src/post_modules/GTK2/source/gtkiconinfo.pre:1.1
Rev: src/post_modules/GTK2/source/gtkiconset.pre:1.1
Rev: src/post_modules/GTK2/source/gtkiconsize.pre:1.1
Rev: src/post_modules/GTK2/source/gtkiconsource.pre:1.1
Rev: src/post_modules/GTK2/source/gtkicontheme.pre:1.1
Rev: src/post_modules/GTK2/source/gtkiconview.pre:1.1
Rev: src/post_modules/GTK2/source/gtkimage.pre:1.1
Rev: src/post_modules/GTK2/source/gtkimagemenuitem.pre:1.1
Rev: src/post_modules/GTK2/source/gtkinvisible.pre:1.1
Rev: src/post_modules/GTK2/source/gtkitem.pre:1.1
Rev: src/post_modules/GTK2/source/gtklabel.pre:1.1
Rev: src/post_modules/GTK2/source/gtklayout.pre:1.1
Rev: src/post_modules/GTK2/source/gtkliststore.pre:1.1
Rev: src/post_modules/GTK2/source/gtkmenu.pre:1.1
Rev: src/post_modules/GTK2/source/gtkmenubar.pre:1.1
Rev: src/post_modules/GTK2/source/gtkmenuitem.pre:1.1
Rev: src/post_modules/GTK2/source/gtkmenushell.pre:1.1
Rev: src/post_modules/GTK2/source/gtkmenutoolbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtkmisc.pre:1.1
Rev: src/post_modules/GTK2/source/gtknotebook.pre:1.1
Rev: src/post_modules/GTK2/source/gtkobject.pre:1.1
Rev: src/post_modules/GTK2/source/gtkpaned.pre:1.1
Rev: src/post_modules/GTK2/source/gtkplug.pre:1.1
Rev: src/post_modules/GTK2/source/gtkprogress.pre:1.1
Rev: src/post_modules/GTK2/source/gtkprogressbar.pre:1.1
Rev: src/post_modules/GTK2/source/gtkradioaction.pre:1.1
Rev: src/post_modules/GTK2/source/gtkradiobutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtkradiomenuitem.pre:1.1
Rev: src/post_modules/GTK2/source/gtkradiotoolbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtkrange.pre:1.1
Rev: src/post_modules/GTK2/source/gtkrcstyle.pre:1.1
Rev: src/post_modules/GTK2/source/gtkscale.pre:1.1
Rev: src/post_modules/GTK2/source/gtkscrollbar.pre:1.1
Rev: src/post_modules/GTK2/source/gtkscrolledwindow.pre:1.1
Rev: src/post_modules/GTK2/source/gtkselectiondata.pre:1.1
Rev: src/post_modules/GTK2/source/gtkseparator.pre:1.1
Rev: src/post_modules/GTK2/source/gtkseparatormenuitem.pre:1.1
Rev: src/post_modules/GTK2/source/gtkseparatortoolitem.pre:1.1
Rev: src/post_modules/GTK2/source/gtksettings.pre:1.1
Rev: src/post_modules/GTK2/source/gtksizegroup.pre:1.1
Rev: src/post_modules/GTK2/source/gtksocket.pre:1.1
Rev: src/post_modules/GTK2/source/gtkspinbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtkstatusbar.pre:1.1
Rev: src/post_modules/GTK2/source/gtkstyle.pre:1.1
Rev: src/post_modules/GTK2/source/gtktable.pre:1.1
Rev: src/post_modules/GTK2/source/gtktearoffmenuitem.pre:1.1
Rev: src/post_modules/GTK2/source/gtktextattributes.pre:1.1
Rev: src/post_modules/GTK2/source/gtktextbuffer.pre:1.1
Rev: src/post_modules/GTK2/source/gtktextchildanchor.pre:1.1
Rev: src/post_modules/GTK2/source/gtktextiter.pre:1.1
Rev: src/post_modules/GTK2/source/gtktextmark.pre:1.1
Rev: src/post_modules/GTK2/source/gtktexttag.pre:1.1
Rev: src/post_modules/GTK2/source/gtktexttagtable.pre:1.1
Rev: src/post_modules/GTK2/source/gtktextview.pre:1.1
Rev: src/post_modules/GTK2/source/gtktoggleaction.pre:1.1
Rev: src/post_modules/GTK2/source/gtktogglebutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtktoggletoolbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtktoolbar.pre:1.1
Rev: src/post_modules/GTK2/source/gtktoolbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtktoolitem.pre:1.1
Rev: src/post_modules/GTK2/source/gtktooltips.pre:1.1
Rev: src/post_modules/GTK2/source/gtktreedragdest.inc:1.1
Rev: src/post_modules/GTK2/source/gtktreedragsource.inc:1.1
Rev: src/post_modules/GTK2/source/gtktreeiter.pre:1.1
Rev: src/post_modules/GTK2/source/gtktreemodel.inc:1.1
Rev: src/post_modules/GTK2/source/gtktreemodel.pre:1.1
Rev: src/post_modules/GTK2/source/gtktreepath.pre:1.1
Rev: src/post_modules/GTK2/source/gtktreerowreference.pre:1.1
Rev: src/post_modules/GTK2/source/gtktreeselection.pre:1.1
Rev: src/post_modules/GTK2/source/gtktreesortable.inc:1.1
Rev: src/post_modules/GTK2/source/gtktreestore.pre:1.1
Rev: src/post_modules/GTK2/source/gtktreeview.pre:1.1
Rev: src/post_modules/GTK2/source/gtktreeviewcolumn.pre:1.1
Rev: src/post_modules/GTK2/source/gtkuimanager.pre:1.1
Rev: src/post_modules/GTK2/source/gtkvbox.pre:1.1
Rev: src/post_modules/GTK2/source/gtkvbuttonbox.pre:1.1
Rev: src/post_modules/GTK2/source/gtkviewport.pre:1.1
Rev: src/post_modules/GTK2/source/gtkvpaned.pre:1.1
Rev: src/post_modules/GTK2/source/gtkvscale.pre:1.1
Rev: src/post_modules/GTK2/source/gtkvscrollbar.pre:1.1
Rev: src/post_modules/GTK2/source/gtkvseparator.pre:1.1
Rev: src/post_modules/GTK2/source/gtkwidget.pre:1.1
Rev: src/post_modules/GTK2/source/gtkwindow.pre:1.1
Rev: src/post_modules/GTK2/source/gtkwindowgroup.pre:1.1
Rev: src/post_modules/GTK2/source/pangoattrlist.pre:1.1
Rev: src/post_modules/GTK2/source/pangocontext.pre:1.1
Rev: src/post_modules/GTK2/source/pangofontdescription.pre:1.1
Rev: src/post_modules/GTK2/source/pangolayout.pre:1.1
Rev: src/post_modules/GTK2/source/pangolayoutiter.pre:1.1
Rev: src/post_modules/GTK2/source/pangolayoutline.pre:1.1
Rev: src/post_modules/GTK2/source/pangotabarray.pre:1.1
Rev: src/post_modules/GTK2/source/support.c:1.1

1: + require libglade;    -  + class GTK2.GladeXML; + inherit G.Object; +  + %{ + #include <glade/glade.h> +  + /* This function is used by signal_autoconnect to handle signal connection. +  * Basically it uses a mapping and data from the stack to do signal callbacks +  * exactly in the same way as normal signals in PiGTK. +  */ + static void pgtk__signal_connect(const gchar *handler_name, +  GObject *object, +  const gchar *signal_name, +  const gchar *signal_data, +  GObject *connect_object, +  gboolean after, +  gpointer args) + { +  struct mapping *callbacks; +  struct svalue *data; +  int id; +  struct signal_data *b; +  struct svalue *cb; +  struct pike_string *funname; +  guint signal_id; + #ifdef GLADE_CONNECT_DEBUG +  fprintf(stderr,"Connecting handler %s, signal %s,\n data %s, " +  "after: %d\n", +  handler_name,signal_name,signal_data,after); + #endif +  get_all_args("GTK2.GladeXML->_signal_connect",*(INT32 *)args, +  "%m%*",&callbacks,&data); + /* +  funname=make_shared_string(handler_name); +  cb=low_mapping_string_lookup(callbacks,funname); +  free_string(funname); + */ +  cb=simple_mapping_string_lookup(callbacks,handler_name); +  if (cb==NULL) { +  fprintf(stderr,"** WARNING **: Unknown function %s for signal %s\n", +  handler_name,signal_name); +  return; +  } else if (cb->type!=PIKE_T_FUNCTION) { +  fprintf(stderr,"** WARNING **: Value for handler %s for signal %s not a function.\n", +  handler_name,signal_name); +  return; +  } +  b=(struct signal_data *)g_malloc(sizeof(struct signal_data)); +  if (b==NULL) +  Pike_error("Out of memory.\n"); +  assign_svalue_no_free(&b->cb,cb); +  assign_svalue_no_free(&b->args,data); +  b->signal_id=g_signal_lookup(signal_name,G_TYPE_FROM_INSTANCE(object)); +  if (!b->signal_id) { +  g_free(b); +  fprintf(stderr, +  "** WARNING **; Signal \"%s\" not defined in the '%s' " +  "class ancestry.\n", +  signal_name,g_type_name(G_TYPE_FROM_INSTANCE(object))); +  } +  id=g_signal_connect_data(G_OBJECT(object),signal_name, +  G_CALLBACK(pgtk_signal_func_wrapper),b, +  (GClosureNotify)pgtk_free_signal_data, +  G_CONNECT_SWAPPED); + } + %} +  + //! Glade is a free GUI builder for GTK2+ and Gnome. It's normally used to + //! create C-code, but can also produce code for other languages. Libglade + //! is a utility library that builds the GI from the Glade XML save files. + //! This module uses libglade and allows you to easily make GUI designs to be + //! used with your Pike applications. +  + void create(string filename_or_buffer, ?int size, ?string root, ?string domain) + //! Creates a new GladeXML object (and the corresponding widgets) from the + //! XML file. Optionally it will only build the interface from the widget + //! node root. This feature is useful if you only want to build say a + //! toolbar or menu from the XML file, but not the window it is embedded in. + //! Note also that the XML parse tree is cached to speed up creating another + //! GladeXML object from the same file. The third optional argument is used to + //! specify a different translation domain from the default to be used. + //! If xml description is in a string buffer instead, specify the size (or -1 + //! to auto-calculate). If size is 0, then it will assume a file with root + //! and/or domain specified. + { +  pgtk_verify_not_inited(); +  pgtk_verify_setup(); +  { +  char *fname,*root=NULL,*dom=NULL; +  int size=0; +  if (args==1) +  get_all_args("create",args,"%s",&fname); +  else if (args==2) +  get_all_args("create",args,"%s%i",&fname,&size); +  else if (args==3) +  get_all_args("create",args,"%s%i%s",&fname,&size,&root); +  else +  get_all_args("create",args,"%s%i%s%s",&fname,&size,&root,&dom); +  if (size==0) +  THIS->obj=G_OBJECT(glade_xml_new(fname,root,dom)); +  else if (size==-1) +  THIS->obj=G_OBJECT(glade_xml_new_from_buffer(fname,strlen(fname),root,dom)); +  else +  THIS->obj=G_OBJECT(glade_xml_new_from_buffer(fname,size,root,dom)); +  } +  my_pop_n_elems(args); +  pgtk__init_this_object(); + } +  + GTK2.Widget get_widget(string name) + //! This function is used to get the widget corresponding to name in the + //! interface description. You would use this if you have to do anything to + //! the widget after loading. + { +  pgtk_verify_inited(); +  { +  char *name; +  GtkWidget *widget; +  get_all_args("get_widget",args,"%s",&name); +  widget=glade_xml_get_widget(GLADE_XML(THIS->obj),name); +  my_pop_n_elems(args); +  push_gobject(widget); +  } + } +  + array(GTK2.Widget) get_widget_prefix(string name) + //! This function is used to get a list GTK2.Widgets with names that start with + //! the string name in the interface description. + { +  pgtk_verify_inited(); +  { +  char *name; +  GList *gl,*g2; +  int i=0; +  get_all_args("get_widget_prefix",args,"%s",&name); +  gl=g2=glade_xml_get_widget_prefix(GLADE_XML(THIS->obj),name); +  my_pop_n_elems(args); +  while (g2) { +  push_gobject(g2->data); +  g_object_ref(g2->data); +  i++; +  g2=g_list_next(g2); +  } +  f_aggregate(i); +  g_list_free(gl); +  } + } +  + string get_widget_name(GTK2.Widget widget) + //! Used to get the name of a widget that was generated by a GladeXML object. + { +  pgtk_verify_inited(); +  { +  const char *s; +  struct object *o1; +  GtkWidget *widget; +  get_all_args("get_widget_name",args,"%o",&o1); +  widget=GTK_WIDGET(get_gobject(o1)); +  if (!widget) +  Pike_error("GladeXML->get_widget_name: Invalid argument 1, wanted GTK2 object of type WIDGET.\n"); +  s=glade_get_widget_name(widget); +  my_pop_n_elems(args); +  push_text(s); +  g_free((void *)s); +  } + } +  + void signal_autoconnect(mapping(string:function) callbacks, mixed data) + //! Try to connect functions to all signals in the interface. The mapping + //! should consist of handler name : function pairs. The data argument will + //! be saved and sent as the first argument to all callback functions. + { +  pgtk_verify_inited(); +  if (args!=2 || Pike_sp[-args].type!=PIKE_T_MAPPING) +  Pike_error("GTK2.GladeXML->signal_autoconnect: Invalid arguments, expected (mapping,mixed)\n"); +  glade_xml_signal_autoconnect_full(GLADE_XML(THIS->obj),pgtk__signal_connect,&args); +  RETURN_THIS(); + } +  + endrequire;   Newline at end of file added.