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, target_type : UInt64? = nil)
Class Method Summary
-
.g_type : UInt64
Returns the type id (GType) registered in GLib type system.
Instance Method Summary
- #bind_signal
-
#block : Nil
Blocks all signal handlers managed by @self so they will not be called during any signal emissions.
-
#connect_closure(detailed_signal : String, closure : GObject::Closure, after : Bool) : Nil
Connects @closure to the signal @detailed_signal on #GSignalGroup:target.
-
#connect_data(detailed_signal : String, c_handler : GObject::Callback, data : Pointer(Void)?, 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
Connects @c_handler to the signal @detailed_signal on the target instance of @self.
-
#dup_target : GObject::Object?
Gets the target instance used when connecting signals.
- #target : GObject::Object?
-
#target=(target : GObject::Object?) : 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
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)?
data,
finalize
finalize,
freeze_notify : Nil
freeze_notify,
getv(names : Enumerable(String), values : Enumerable(_)) : Nil
getv,
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)?
qdata,
ref_count : UInt32
ref_count,
run_dispose : Nil
run_dispose,
set_data(key : String, data : Pointer(Void)?) : Nil
set_data,
set_property(property_name : String, value : _) : Nil
set_property,
steal_data(key : String) : Pointer(Void)?
steal_data,
steal_qdata(quark : UInt32) : Pointer(Void)?
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,
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
compat_control(what : UInt64, data : Pointer(Void)?) : 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
Creates a new #GSignalGroup for target instances of @target_type.
Class Method Detail
Instance Method Detail
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 @closure to the signal @detailed_signal on #GSignalGroup:target.
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.
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.