class Gtk::SignalListItemFactory

Overview

Gtk::SignalListItemFactory is a Gtk::ListItemFactory that emits signals to to manage listitems.

Signals are emitted for every listitem in the same order:

  1. Gtk::SignalListItemFactory::#setup is emitted to set up permanent things on the listitem. This usually means constructing the widgets used in the row and adding them to the listitem.

  2. Gtk::SignalListItemFactory::#bind is emitted to bind the item passed via Gtk::ListItem#item to the widgets that have been created in step 1 or to add item-specific widgets. Signals are connected to listen to changes - both to changes in the item to update the widgets or to changes in the widgets to update the item. After this signal has been called, the listitem may be shown in a list widget.

  3. Gtk::SignalListItemFactory::#unbind is emitted to undo everything done in step 2. Usually this means disconnecting signal handlers. Once this signal has been called, the listitem will no longer be used in a list widget.

  4. Gtk::SignalListItemFactory::#bind and Gtk::SignalListItemFactory::#unbind may be emitted multiple times again to bind the listitem for use with new items. By reusing listitems, potentially costly setup can be avoided. However, it means code needs to make sure to properly clean up the listitem in step 3 so that no information from the previous use leaks into the next use.

  5. Gtk::SignalListItemFactory::#teardown is emitted to allow undoing the effects of Gtk::SignalListItemFactory::#setup. After this signal was emitted on a listitem, the listitem will be destroyed and not be used again.

Note that during the signal emissions, changing properties on the Gtk::ListItems passed will not trigger notify signals as the listitem's notifications are frozen. See g_object_freeze_notify() for details.

For tracking changes in other properties in the Gtk::ListItem, the ::notify signal is recommended. The signal can be connected in the Gtk::SignalListItemFactory::#setup signal and removed again during Gtk::SignalListItemFactory::#teardown.

Defined in:

lib/gi-crystal/src/auto/gtk-4.0/signal_list_item_factory.cr

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from class Gtk::ListItemFactory

==(other : self) ==, hash(hasher) hash

Constructor methods inherited from class Gtk::ListItemFactory

new new

Class methods inherited from class Gtk::ListItemFactory

g_type : UInt64 g_type

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 : self #

Creates a new Gtk::SignalListItemFactory.

You need to connect signal handlers before you use it.


[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 hash(hasher) #
Description copied from class Reference

See Object#hash(hasher)


def setup_signal #

[View source]
def teardown_signal #

[View source]
def unbind_signal #

[View source]