Gtk.SectionModel¶
interface
An interface that adds support for sections to list models.
A GtkSectionModel groups successive items into so-called sections. List widgets
like GtkListView and GtkGridView then allow displaying section headers for
these sections by installing a header factory.
Many GTK list models support sections inherently, or they pass through the sections of a model they are wrapping.
When the section groupings of a model change, the model will emit the
SectionModel.sections-changed signal by calling the
SectionModel.sections_changed function. All sections in the given range
then need to be queried again.
The Gio.ListModel.items-changed signal has the same effect, all sections in
that range are invalidated, too.
Methods¶
get_section¶
Query the section that covers the given position. The number of
items in the section can be computed by out_end - out_start.
If the position is larger than the number of items, a single range from n_items to G_MAXUINT will be returned.
Parameters:
position— the position of the item to query
sections_changed¶
This function emits the SectionModel.sections-changed
signal to notify about changes to sections.
It must cover all positions that used to be a section start or that are now a section start. It does not have to cover all positions for which the section has changed.
The Gio.ListModel.items-changed implies the effect of the
SectionModel.sections-changed signal for all the items
it covers.
It is recommended that when changes to the items cause section changes
in a larger range, that the larger range is included in the emission
of the Gio.ListModel.items-changed instead of emitting
two signals.
Parameters:
position— the first changed itemn_items— the number of changed items
Virtual methods¶
do_get_section¶
Query the section that covers the given position. The number of
items in the section can be computed by out_end - out_start.
If the position is larger than the number of items, a single range from n_items to G_MAXUINT will be returned.
Parameters:
position— the position of the item to query
Signals¶
sections-changed¶
Emitted when the start-of-section state of some of the items in model changes.
Note that this signal does not specify the new section state of the items, they need to be queried manually. It is also not necessary for a model to change the section state of any of the items in the section model, though it would be rather useless to emit such a signal.
The Gio.ListModel.items-changed implies the effect of the
SectionModel.sections-changed signal for all the items
it covers.