class GObject::SignalGroup

Overview

#GSignalGroup manages to simplify 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

Constructor Detail

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

Creates a new #GSignalGroup for target instances of target_type.


[View source]
def self.new #

Initialize a new SignalGroup.


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

[View source]

Class Method Detail

def self.g_type : UInt64 #

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


[View source]

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 #

[View source]
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.


[View source]
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.


[View source]
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.


[View source]
def dup_target : GObject::Object | Nil #

Gets the target instance used when connecting signals.


[View source]
def hash(hasher) #
Description copied from class Reference

See Object#hash(hasher)


def target : GObject::Object | Nil #

[View source]
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.


[View source]
def target_type : UInt64 #

[View source]
def target_type=(value : UInt64) : UInt64 #

[View source]
def unbind_signal #

[View source]
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.


[View source]