NAME

Glib::Ex::SignalObject -- object for Glib signal connection

SYNOPSIS

use Glib::Ex::SignalObject;
$signal = Glib::Ex::SignalObject->new (object => $my_obj,
                                       name   => 'some-signal',
                                       callback => \&my_handler,
                                       userdata => 'some data');

$signal->disconnect;   # explicit disconnect
$signal->connect;      # reconnect later
$signal->set_connected ($bool);  # or control connectedness

$signal->set_object ($other_obj);   # change origin object
$signal->set_name ('diff-signal');  # change signal name

$signal = undef;       # disconnected by forgetting

DESCRIPTION

Glib::Ex::SignalObject is an object-oriented way to manage a signal connection on a Glib object (including Gtk widgets). It features,

  • Automatic disconnect by just forgetting the object

  • Changable origin and name settings to move the connection to somewhere else, including undef to have no connection for a time.

  • A "connect" state to have a connection not made for a time.

  • Optional weakening of the userdata to avoid circular references (and disconnect when that target goes away).

FUNCTIONS

Glib::Ex::SignalObject->new (key => value, ...)

Create and return a new signal object. The following parameters are taken in key/value style,

object          originating object (Glib::Object etc), or undef
name            signal name (string), or undef
callback        handler function to call
userdata        data passed to the callback function
weak_userdata   flag to weaken userdata reference
connect         flag to not immediately connect

SEE ALSO

Glib::Object