### Class

# Gtk SingleSelection

#### Description [src]

    final class Gtk.SingleSelection : GObject.Object
      implements Gio.ListModel, Gtk.SectionModel, Gtk.SelectionModel {
      /* No available fields */
    }

`GtkSingleSelection` is a `GtkSelectionModel` that allows selecting a single item.

Note that the selection is persistent — if the selected item is removed and re-added in the same `GListModel::items-changed` emission, it stays selected. In particular, this means that changing the sort order of an underlying sort model will preserve the selection.

#### Hierarchy

#### Ancestors

- GObject

#### Implements

- GListModel
- GtkSectionModel
- GtkSelectionModel

#### Constructors

###### gtk_single_selection_new

Creates a new selection to handle `model`.

#### Instance methods

###### gtk_single_selection_get_autoselect

Checks if autoselect has been enabled or disabled via gtk_single_selection_set_autoselect().

###### gtk_single_selection_get_can_unselect

If `TRUE`, `gtk_selection_model_unselect_item()` is supported and allows unselecting the selected item.

###### gtk_single_selection_get_model

Gets the model that `self` is wrapping.

###### gtk_single_selection_get_selected

Gets the position of the selected item.

###### gtk_single_selection_get_selected_item

Gets the selected item.

###### gtk_single_selection_set_autoselect

Enables or disables autoselect.

###### gtk_single_selection_set_can_unselect

If `TRUE`, unselecting the current item via `gtk_selection_model_unselect_item()` is supported.

###### gtk_single_selection_set_model

Sets the model that `self` should wrap.

###### gtk_single_selection_set_selected

Selects the item at the given position.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

##### Methods inherited from GListModel (5)

###### g_list_model_get_item

Get the item at `position`.

since: 2.44

###### g_list_model_get_item_type

Gets the type of the items in `list`.

since: 2.44

###### g_list_model_get_n_items

Gets the number of items in `list`.

since: 2.44

###### g_list_model_get_object

Get the item at `position`.

since: 2.44

###### g_list_model_items_changed

Emits the `GListModel::items-changed` signal on `list`.

since: 2.44

##### Methods inherited from GtkSectionModel (2)

###### gtk_section_model_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`.

since: 4.12

###### gtk_section_model_sections_changed

No description available.

##### Methods inherited from GtkSelectionModel (11)

###### gtk_selection_model_get_selection

Gets the set containing all currently selected items in the model.

###### gtk_selection_model_get_selection_in_range

Gets the set of selected items in a range.

###### gtk_selection_model_is_selected

Checks if the given item is selected.

###### gtk_selection_model_select_all

Requests to select all items in the model.

###### gtk_selection_model_select_item

Requests to select an item in the model.

###### gtk_selection_model_select_range

Requests to select a range of items in the model.

###### gtk_selection_model_selection_changed

Helper function for implementations of `GtkSelectionModel`.

###### gtk_selection_model_set_selection

Make selection changes.

###### gtk_selection_model_unselect_all

Requests to unselect all items in the model.

###### gtk_selection_model_unselect_item

Requests to unselect an item in the model.

###### gtk_selection_model_unselect_range

Requests to unselect a range of items in the model.

#### Properties

###### Gtk.SingleSelection:autoselect

If the selection will always select an item.

###### Gtk.SingleSelection:can-unselect

If unselecting the selected item is allowed.

###### Gtk.SingleSelection:item-type

The type of items. See `g_list_model_get_item_type()`.

since: 4.8

###### Gtk.SingleSelection:model

The model being managed.

###### Gtk.SingleSelection:n-items

The number of items. See `g_list_model_get_n_items()`.

since: 4.8

###### Gtk.SingleSelection:selected

Position of the selected item.

###### Gtk.SingleSelection:selected-item

The selected item.

#### Signals

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

##### Signals inherited from GListModel (1)

###### GListModel::items-changed

This signal is emitted whenever items were added to or removed from `list`. At `position`, `removed` items were removed and `added` items were added in their place.

since: 2.44

##### Signals inherited from GtkSectionModel (1)

###### GtkSectionModel::sections-changed

Emitted when the start-of-section state of some of the items in `model` changes.

since: 4.12

##### Signals inherited from GtkSelectionModel (1)

###### GtkSelectionModel::selection-changed

Emitted when the selection state of some of the items in `model` changes.

#### Class structure

    struct GtkSingleSelectionClass {
      GObjectClass parent_class;

    }

No description available.

###### Class members

`parent_class: GObjectClass`
  No description available.