class GObject::SignalGroup

Overview

GSignalGroup manages a collection of signals on a GObject.

GSignalGroup simplifies the process of connecting many signals to a GObject as a group. As such there is no API to disconnect a signal from the group.

In particular, this allows you to:

One place you might want to use such a structure is with Gtk::TextView and Gtk::TextBuffer. Often times, you'll need to connect to many signals on Gtk::TextBuffer from a Gtk::TextView subclass. This allows you to create a signal group during instance construction, simply bind the Gtk::TextView:buffer property to GSignalGroup:target and connect all the signals you need. When the Gtk::TextView:buffer property changes all of the signals will be transitioned correctly.

Defined in:

lib/gi-crystal/src/auto/g_object-2.0/signal_group.cr

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from class GObject::Object

==(other : self) ==, bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding bind_property, bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding bind_property_full, data(key : String) : Pointer(Void) | Nil data, finalize finalize, freeze_notify : Nil freeze_notify, getv(names : Enumerable(String), values : Enumerable(_)) : Nil getv, hash(hasher) hash, notify(property_name : String) : Nil notify, notify_by_pspec(pspec : GObject::ParamSpec) : Nil notify_by_pspec, notify_signal notify_signal, property(property_name : String, value : _) : Nil property, qdata(quark : UInt32) : Pointer(Void) | Nil qdata, ref_count : UInt32 ref_count, run_dispose : Nil run_dispose, set_data(key : String, data : Pointer(Void) | Nil) : Nil set_data, set_property(property_name : String, value : _) : Nil set_property, steal_data(key : String) : Pointer(Void) | Nil steal_data, steal_qdata(quark : UInt32) : Pointer(Void) | Nil steal_qdata, thaw_notify : Nil thaw_notify, to_unsafe : Pointer(Void) to_unsafe, watch_closure(closure : GObject::Closure) : Nil watch_closure

Constructor methods inherited from class GObject::Object

cast(obj : GObject::Object) : self cast, new(pointer : Pointer(Void), transfer : GICrystal::Transfer)
new
new
, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv

Class methods inherited from class GObject::Object

cast?(obj : GObject::Object) : self | Nil cast?, compat_control(what : UInt64, data : Pointer(Void) | Nil) : UInt64 compat_control, g_type : UInt64 g_type, interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec interface_find_property, interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec) interface_list_properties

Macros inherited from class GObject::Object

previous_vfunc(*args) previous_vfunc, previous_vfunc!(*args) previous_vfunc!, signal(signature) signal

Constructor Detail

def self.new(target_type : UInt64) : self #

Creates a new #GSignalGroup for target instances of target_type.


def self.new #

Initialize a new SignalGroup.


def self.new(*, target : GObject::Object | Nil = nil, target_type : UInt64 | Nil = nil) #

Class Method Detail

def self.g_type : UInt64 #

Returns the type id (GType) registered in GLib type system.


Instance Method Detail

def ==(other : self) #
Description copied from class Reference

Returns true if this reference is the same as other. Invokes same?.


def bind_signal #

def block : Nil #

Blocks all signal handlers managed by self so they will not be called during any signal emissions. Must be unblocked exactly the same number of times it has been blocked to become active again.

This blocked state will be kept across changes of the target instance.


def connect_closure(detailed_signal : String, closure : GObject::Closure, after : Bool) : Nil #

Connects closure to the signal detailed_signal on #GSignalGroup:target.

You cannot connect a signal handler after #GSignalGroup:target has been set.


def connect_data(detailed_signal : String, c_handler : GObject::Callback, data : Pointer(Void) | Nil, notify : GObject::ClosureNotify, flags : GObject::ConnectFlags) : Nil #

Connects c_handler to the signal detailed_signal on the target instance of self.

You cannot connect a signal handler after #GSignalGroup:target has been set.


def connect_swapped(detailed_signal : String, c_handler : GObject::Callback, data : Pointer(Void) | Nil) : Nil #

Connects c_handler to the signal detailed_signal on the target instance of self.

The instance on which the signal is emitted and data will be swapped when calling c_handler.

You cannot connect a signal handler after #GSignalGroup:target has been set.


def dup_target : GObject::Object | Nil #

Gets the target instance used when connecting signals.


def hash(hasher) #
Description copied from class Reference

See Object#hash(hasher)


def target : GObject::Object | Nil #

def target=(target : GObject::Object | Nil) : Nil #

Sets the target instance used when connecting signals. Any signal that has been registered with g_signal_group_connect_object() or similar functions will be connected to this object.

If the target instance was previously set, signals will be disconnected from that object prior to connecting to target.


def target_type : UInt64 #

def target_type=(value : UInt64) : UInt64 #

def unbind_signal #

def unblock : Nil #

Unblocks all signal handlers managed by self so they will be called again during any signal emissions unless it is blocked again. Must be unblocked exactly the same number of times it has been blocked to become active again.