package Gtk::GladeXML; require Gtk; require Exporter; require DynaLoader; require AutoLoader; use Carp; use strict; $Gtk::GladeXML::VERSION = '0.7000'; @Gtk::GladeXML::ISA = qw(Exporter DynaLoader); # Items to export into callers namespace by default. Note: do not export # names by default without a very good reason. Use EXPORT_OK instead. # Do not simply export all your public functions/methods/constants. @Gtk::GladeXML::EXPORT = qw( ); # Other items we are prepared to export if requested @Gtk::GladeXML::EXPORT_OK = qw( ); bootstrap Gtk::GladeXML; require Gtk::GladeXML::Types; sub dl_load_flags {0x01} # Autoload methods go after __END__, and are processed by the autosplit program. sub _connect_helper { my ($handler_name, $object, $signal_name, $signal_data, $connect_object, $after, $handler, @data) = @_; no strict qw/refs/; if ($connect_object) { my ($func) = $after? "signal_connect_object_after" : "signal_connect_object"; $object->$func ($signal_name, $connect_object, $handler, @data, $signal_data); } else { my ($func) = $after? "signal_connect_after" : "signal_connect"; $object->$func ($signal_name, $handler, $signal_data); } } sub _autoconnect_helper { my ($handler_name, $object, $signal_name, $signal_data, $connect_object, $after, $package) = @_; my ($handler) = $handler_name; no strict qw/refs/; $handler = $package ."::". $handler_name if $package; if ($connect_object) { my ($func) = $after? "signal_connect_object_after" : "signal_connect_object"; $object->$func ($signal_name, $connect_object, $handler, $signal_data); } else { my ($func) = $after? "signal_connect_after" : "signal_connect"; $object->$func ($signal_name, $handler, $signal_data); } } sub handler_connect { my ($self, $hname, @handler) = @_; $self->signal_connect_full($hname, \&_connect_helper, @handler); } sub signal_autoconnect_from_package { my ($self, $package) = @_; my ($handler); my ($chunk); ($package, undef, undef) = caller() unless $package; $self->signal_autoconnect_full(\&_autoconnect_helper, $package); } 1; __END__