gtkmm: Gtk::SignalListItemFactory Class Reference

A listitem factory providing signals. More...

#include <gtkmm/signallistitemfactory.h>

Inheritance diagram for Gtk::SignalListItemFactory:

Public Member Functions

 SignalListItemFactory (SignalListItemFactory&& src) noexcept
 
SignalListItemFactoryoperator= (SignalListItemFactory&& src) noexcept
 
 ~SignalListItemFactory () noexcept override
 
GtkSignalListItemFactory* gobj ()
 Provides access to the underlying C GObject. More...

 
const GtkSignalListItemFactory* gobj () const
 Provides access to the underlying C GObject. More...

 
GtkSignalListItemFactory* gobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...

 
Glib::SignalProxy< void(const Glib::RefPtr< ListItem >&)> signal_setup ()
 
Glib::SignalProxy< void(const Glib::RefPtr< ListItem >&)> signal_bind ()
 
Glib::SignalProxy< void(const Glib::RefPtr< ListItem >&)> signal_unbind ()
 
Glib::SignalProxy< void(const Glib::RefPtr< ListItem >&)> signal_teardown ()
 
- Public Member Functions inherited from Gtk::ListItemFactory
 ListItemFactory (ListItemFactory&& src) noexcept
 
ListItemFactoryoperator= (ListItemFactory&& src) noexcept
 
 ~ListItemFactory () noexcept override
 
GtkListItemFactory* gobj ()
 Provides access to the underlying C GObject. More...

 
const GtkListItemFactory* gobj () const
 Provides access to the underlying C GObject. More...

 
GtkListItemFactory* gobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...

 
- Public Member Functions inherited from Glib::Object
 Object (const Object &)=delete
 
Objectoperator= (const Object &)=delete
 
 Object (Object &&src) noexcept
 
Objectoperator= (Object &&src) noexcept
 
void * get_data (const QueryQuark &key)
 
void set_data (const Quark &key, void *data)
 
void set_data (const Quark &key, void *data, DestroyNotify notify)
 
void remove_data (const QueryQuark &quark)
 
void * steal_data (const QueryQuark &quark)
 
Glib::RefPtr< Glib::Objectwrap (GObject *object, bool take_copy=false)
 
- Public Member Functions inherited from Glib::ObjectBase
 ObjectBase (const ObjectBase &)=delete
 
ObjectBaseoperator= (const ObjectBase &)=delete
 
void set_property_value (const Glib::ustring &property_name, const Glib::ValueBase &value)
 
void get_property_value (const Glib::ustring &property_name, Glib::ValueBase &value) const
 
void set_property (const Glib::ustring &property_name, const PropertyType &value)
 
void get_property (const Glib::ustring &property_name, PropertyType &value) const
 
PropertyType get_property (const Glib::ustring &property_name) const
 
sigc::connection connect_property_changed (const Glib::ustring &property_name, const sigc::slot< void()> &slot)
 
sigc::connection connect_property_changed (const Glib::ustring &property_name, sigc::slot< void()> &&slot)
 
void freeze_notify ()
 
void thaw_notify ()
 
virtual void reference () const
 
virtual void unreference () const
 
GObject * gobj ()
 
const GObject * gobj () const
 
GObject * gobj_copy () const
 
- Public Member Functions inherited from sigc::trackable
 trackable () noexcept
 
 trackable (const trackable &src) noexcept
 
 trackable (trackable &&src) noexcept
 
 ~trackable ()
 
void add_destroy_notify_callback (notifiable *data, func_destroy_notify func) const
 
void notify_callbacks ()
 
trackableoperator= (const trackable &src)
 
trackableoperator= (trackable &&src) noexcept
 
void remove_destroy_notify_callback (notifiable *data) const
 

Static Public Member Functions

static GType get_type ()
 Get the GType for this class, for use with the underlying GObject type system. More...

 
static Glib::RefPtr< SignalListItemFactorycreate ()
 
- Static Public Member Functions inherited from Gtk::ListItemFactory
static GType get_type ()
 Get the GType for this class, for use with the underlying GObject type system. More...

 

Protected Member Functions

 SignalListItemFactory ()
 
- Protected Member Functions inherited from Glib::Object
 Object ()
 
 Object (const Glib::ConstructParams &construct_params)
 
 Object (GObject *castitem)
 
 ~Object () noexcept override
 
- Protected Member Functions inherited from Glib::ObjectBase
 ObjectBase ()
 
 ObjectBase (const char *custom_type_name)
 
 ObjectBase (const std::type_info &custom_type_info)
 
 ObjectBase (ObjectBase &&src) noexcept
 
ObjectBaseoperator= (ObjectBase &&src) noexcept
 
virtual ~ObjectBase () noexcept=0
 
void initialize (GObject *castitem)
 
void initialize_move (GObject *castitem, Glib::ObjectBase *previous_wrapper)
 

Related Functions

(Note that these are not member functions.)

Glib::RefPtr< Gtk::SignalListItemFactorywrap (GtkSignalListItemFactory* object, bool take_copy=false)
 A Glib::wrap() method for this object. More...

 

Additional Inherited Members

- Public Types inherited from Glib::Object
typedef void(*)(gpointer data DestroyNotify)
 
- Public Types inherited from sigc::trackable
typedef internal::func_destroy_notify func_destroy_notify
 
- Public Types inherited from sigc::notifiable
typedef internal::func_destroy_notify func_destroy_notify
 

Detailed Description

A listitem factory providing signals.

Gtk::SignalListItemFactory is a Gtk::ListItemFactory that provides signals that user code can connect to to manage listitems. Signals are emitted for every listitem in the same order:

  1. signal_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. signal_bind() is emitted to bind the item passed via Gtk::ListItem::property_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. signal_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. signal_bind() and signal_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.

signal_teardown() is emitted to allow undoing the effects of signal_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 Glib::ObjectBase::freeze_notify() for details.

For tracking changes in other properties in the Gtk::ListItem, the Gtk::ListItem notify signal is recommended. The signal can be connected in the signal_setup() signal and removed again during signal_teardown().

See also
Gtk::ListItemFactory
Since gtkmm 3.98:

Constructor & Destructor Documentation

Gtk::SignalListItemFactory::SignalListItemFactory ( SignalListItemFactory&&  src)
noexcept
Gtk::SignalListItemFactory::~SignalListItemFactory ( )
overridenoexcept
Gtk::SignalListItemFactory::SignalListItemFactory ( )
protected

Member Function Documentation

static Glib::RefPtr<SignalListItemFactory> Gtk::SignalListItemFactory::create ( )
static
static GType Gtk::SignalListItemFactory::get_type ( )
static

Get the GType for this class, for use with the underlying GObject type system.

GtkSignalListItemFactory* Gtk::SignalListItemFactory::gobj ( )
inline

Provides access to the underlying C GObject.

const GtkSignalListItemFactory* Gtk::SignalListItemFactory::gobj ( ) const
inline

Provides access to the underlying C GObject.

GtkSignalListItemFactory* Gtk::SignalListItemFactory::gobj_copy ( )

Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

SignalListItemFactory& Gtk::SignalListItemFactory::operator= ( SignalListItemFactory&&  src)
noexcept
Glib::SignalProxy<void(const Glib::RefPtr<ListItem>&)> Gtk::SignalListItemFactory::signal_bind ( )
Slot Prototype:
void on_my_bind(const Glib::RefPtr<ListItem>& list_item)

Flags: Run First

The signal_bind() signal is emitted when a new Gtk::ListItem::property_item() has been set on the list_item and should be bound for use.

After this signal was emitted, the listitem might be shown in a Gtk::ListView or other list widget.

The Gtk::SignalListItemFactory::signal_unbind() signal is the opposite of this signal and can be used to undo everything done in this signal.

Parameters
list_itemThe Gtk::ListItem to bind.
Glib::SignalProxy<void(const Glib::RefPtr<ListItem>&)> Gtk::SignalListItemFactory::signal_setup ( )
Slot Prototype:
void on_my_setup(const Glib::RefPtr<ListItem>& list_item)

Flags: Run First

The signal_setup() signal is emitted when a new listitem has been created and needs to be setup for use. It is the first signal emitted for every listitem.

The Gtk::SignalListItemFactory::signal_teardown() signal is the opposite of this signal and can be used to undo everything done in this signal.

Parameters
list_itemThe Gtk::ListItem to set up.
Glib::SignalProxy<void(const Glib::RefPtr<ListItem>&)> Gtk::SignalListItemFactory::signal_teardown ( )
Slot Prototype:
void on_my_teardown(const Glib::RefPtr<ListItem>& list_item)

Flags: Run First

The signal_teardown() signal is emitted when a listitem is about to be destroyed. It is the last signal ever emitted for this list_item.

This signal is the opposite of the Gtk::SignalListItemFactory::signal_setup() signal and should be used to undo everything done in that signal.

Parameters
list_itemThe Gtk::ListItem to teardown.
Glib::SignalProxy<void(const Glib::RefPtr<ListItem>&)> Gtk::SignalListItemFactory::signal_unbind ( )
Slot Prototype:
void on_my_unbind(const Glib::RefPtr<ListItem>& list_item)

Flags: Run First

The signal_unbind() signal is emitted when a listitem has been removed from use in a list widget and its new Gtk::ListItem::property_item() is about to be unset.

This signal is the opposite of the Gtk::SignalListItemFactory::signal_bind() signal and should be used to undo everything done in that signal.

Parameters
list_itemThe Gtk::ListItem to unbind.

Friends And Related Function Documentation

Glib::RefPtr< Gtk::SignalListItemFactory > wrap ( GtkSignalListItemFactory *  object,
bool  take_copy = false 
)
related

A Glib::wrap() method for this object.

Parameters
objectThe C instance.
take_copyFalse if the result should take ownership of the C instance. True if it should take a new copy or ref.
Returns
A C++ instance that wraps this C instance.