class GObject::SignalGroup
- GObject::SignalGroup
- GObject::Object
- Reference
- Object
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:
- Change the target instance, which automatically causes disconnection of the signals from the old instance and connecting to the new instance.
- Block and unblock signals as a group
- Ensuring that blocked state transfers across target instances.
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.crConstructors
-
.new(target_type : UInt64) : self
Creates a new #GSignalGroup for target instances of target_type.
-
.new
Initialize a new
SignalGroup
. - .new(*, target : GObject::Object | Nil = nil, target_type : UInt64 | Nil = nil)
Class Method Summary
-
.g_type : UInt64
Returns the type id (GType) registered in GLib type system.
Instance Method Summary
-
#==(other : self)
Returns
true
if this reference is the same as other. - #bind_signal
-
#block : Nil
Blocks all signal handlers managed by self so they will not be called during any signal emissions.
-
#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.
-
#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.
-
#dup_target : GObject::Object | Nil
Gets the target instance used when connecting signals.
- #hash(hasher)
- #target : GObject::Object | Nil
-
#target=(target : GObject::Object | Nil) : Nil
Sets the target instance used when connecting signals.
- #target_type : UInt64
- #target_type=(value : UInt64) : UInt64
- #unbind_signal
-
#unblock : Nil
Unblocks all signal handlers managed by self so they will be called again during any signal emissions unless it is blocked again.
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
Creates a new #GSignalGroup for target instances of target_type.
Class Method Detail
Returns the type id (GType) registered in GLib type system.
Instance Method Detail
Returns true
if this reference is the same as other. Invokes same?
.
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.
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.
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.
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.
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.