gtkmm 4.16.0
Public Member Functions | Static Public Member Functions | Protected Member Functions | Related Symbols | List of all members
Gtk::SingleSelection Class Reference

A selection model that allows selecting a single item. More...

#include <gtkmm/singleselection.h>

Inheritance diagram for Gtk::SingleSelection:
Inheritance graph
[legend]

Public Member Functions

 SingleSelection (SingleSelection &&src) noexcept
 
SingleSelectionoperator= (SingleSelection &&src) noexcept
 
 ~SingleSelection () noexcept override
 
GtkSingleSelectiongobj ()
 Provides access to the underlying C GObject.
 
const GtkSingleSelectiongobj () const
 Provides access to the underlying C GObject.
 
GtkSingleSelectiongobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
 
Glib::RefPtr< Gio::ListModel > get_model ()
 Gets the model that self is wrapping.
 
Glib::RefPtr< const Gio::ListModel > get_model () const
 Gets the model that self is wrapping.
 
void set_model (const Glib::RefPtr< Gio::ListModel > &model)
 Sets the model that self should wrap.
 
guint get_selected () const
 Gets the position of the selected item.
 
void set_selected (guint position)
 Selects the item at the given position.
 
Glib::RefPtr< Glib::ObjectBase > get_selected_item ()
 Gets the selected item.
 
Glib::RefPtr< const Glib::ObjectBase > get_selected_item () const
 Gets the selected item.
 
bool get_autoselect () const
 Checks if autoselect has been enabled or disabled via set_autoselect().
 
void set_autoselect (bool autoselect=true)
 Enables or disables autoselect.
 
bool get_can_unselect () const
 If true, Gtk::SelectionModel::unselect_item() is supported and allows unselecting the selected item.
 
void set_can_unselect (bool can_unselect=true)
 If true, unselecting the current item via Gtk::SelectionModel::unselect_item() is supported.
 
Glib::PropertyProxy< bool > property_autoselect ()
 If the selection will always select an item.
 
Glib::PropertyProxy_ReadOnly< bool > property_autoselect () const
 If the selection will always select an item.
 
Glib::PropertyProxy< bool > property_can_unselect ()
 If unselecting the selected item is allowed.
 
Glib::PropertyProxy_ReadOnly< bool > property_can_unselect () const
 If unselecting the selected item is allowed.
 
Glib::PropertyProxy< guint > property_selected ()
 Position of the selected item.
 
Glib::PropertyProxy_ReadOnly< guint > property_selected () const
 Position of the selected item.
 
Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Glib::ObjectBase > > property_selected_item () const
 The selected item.
 
Glib::PropertyProxy_ReadOnly< GType > property_item_type () const
 The type of items.
 
Glib::PropertyProxy< Glib::RefPtr< Gio::ListModel > > property_model ()
 The model being managed.
 
Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Gio::ListModel > > property_model () const
 The model being managed.
 
Glib::PropertyProxy_ReadOnly< unsigned int > property_n_items () const
 The number of items.
 
- Public Member Functions inherited from Gtk::SelectionModel
 SelectionModel (SelectionModel &&src) noexcept
 
SelectionModeloperator= (SelectionModel &&src) noexcept
 
 ~SelectionModel () noexcept override
 
GtkSelectionModelgobj ()
 Provides access to the underlying C GObject.
 
const GtkSelectionModelgobj () const
 Provides access to the underlying C GObject.
 
bool is_selected (guint position) const
 Checks if the given item is selected.
 
Glib::RefPtr< const Bitsetget_selection () const
 Gets the set containing all currently selected items in the model.
 
Glib::RefPtr< const Bitsetget_selection (guint position, guint n_items) const
 Gets the set of selected items in a range.
 
bool select_item (guint position, bool unselect_rest)
 Requests to select an item in the model.
 
bool unselect_item (guint position)
 Requests to unselect an item in the model.
 
bool select_range (guint position, guint n_items, bool unselect_rest)
 Requests to select a range of items in the model.
 
bool unselect_range (guint position, guint n_items)
 Requests to unselect a range of items in the model.
 
bool select_all ()
 Requests to select all items in the model.
 
bool unselect_all ()
 Requests to unselect all items in the model.
 
bool set_selection (const Glib::RefPtr< const Bitset > &selected, const Glib::RefPtr< const Bitset > &mask)
 Make selection changes.
 
Glib::SignalProxy< void(guint, guint)> signal_selection_changed ()
 

Static Public Member Functions

static GType get_type ()
 Get the GType for this class, for use with the underlying GObject type system.
 
static Glib::RefPtr< SingleSelectioncreate ()
 
static Glib::RefPtr< SingleSelectioncreate (const Glib::RefPtr< Gio::ListModel > &model)
 
- Static Public Member Functions inherited from Gtk::SelectionModel
static void add_interface (GType gtype_implementer)
 
static GType get_type ()
 Get the GType for this class, for use with the underlying GObject type system.
 

Protected Member Functions

 SingleSelection ()
 
 SingleSelection (const Glib::RefPtr< Gio::ListModel > &model)
 
- Protected Member Functions inherited from Gtk::SelectionModel
 SelectionModel ()
 You should derive from this class to use it.
 
void selection_changed (guint position, guint n_items)
 Helper function for implementations of Gtk::SelectionModel.
 
virtual bool is_selected_vfunc (guint position) const
 
virtual Glib::RefPtr< const Bitsetget_selection_vfunc (guint position, guint n_items)
 
virtual bool select_item_vfunc (guint position, bool unselect_rest)
 
virtual bool unselect_item_vfunc (guint position)
 
virtual bool select_range_vfunc (guint position, guint n_items, bool unselect_rest)
 
virtual bool unselect_range_vfunc (guint position, guint n_items)
 
virtual bool select_all_vfunc ()
 
virtual bool unselect_all_vfunc ()
 
virtual bool set_selection_vfunc (const Glib::RefPtr< const Bitset > &selected, const Glib::RefPtr< const Bitset > &mask)
 

Related Symbols

(Note that these are not member symbols.)

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

Detailed Description

A selection model that allows selecting a single item.

Gtk::SingleSelection is an implementation of the Gtk::SelectionModel interface that allows selecting a single element. It is the default selection method used by list widgets in GTK.

Note that the selection is persistent – if the selected item is removed and re-added in the same Gio::ListModel::signal_items_changed() emission, it stays selected. In particular, this means that changing the sort order of an underlying sort model will preserve the selection.

See also
SelectionModel
Since gtkmm 3.96:

Constructor & Destructor Documentation

◆ SingleSelection() [1/3]

Gtk::SingleSelection::SingleSelection ( SingleSelection &&  src)
noexcept

◆ ~SingleSelection()

Gtk::SingleSelection::~SingleSelection ( )
overridenoexcept

◆ SingleSelection() [2/3]

Gtk::SingleSelection::SingleSelection ( )
protected

◆ SingleSelection() [3/3]

Gtk::SingleSelection::SingleSelection ( const Glib::RefPtr< Gio::ListModel > &  model)
explicitprotected

Member Function Documentation

◆ create() [1/2]

static Glib::RefPtr< SingleSelection > Gtk::SingleSelection::create ( )
static

◆ create() [2/2]

static Glib::RefPtr< SingleSelection > Gtk::SingleSelection::create ( const Glib::RefPtr< Gio::ListModel > &  model)
static

◆ get_autoselect()

bool Gtk::SingleSelection::get_autoselect ( ) const

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

Returns
true if autoselect is enabled.

◆ get_can_unselect()

bool Gtk::SingleSelection::get_can_unselect ( ) const

If true, Gtk::SelectionModel::unselect_item() is supported and allows unselecting the selected item.

Returns
true to support unselecting.

◆ get_model() [1/2]

Glib::RefPtr< Gio::ListModel > Gtk::SingleSelection::get_model ( )

Gets the model that self is wrapping.

Returns
The model being wrapped.

◆ get_model() [2/2]

Glib::RefPtr< const Gio::ListModel > Gtk::SingleSelection::get_model ( ) const

Gets the model that self is wrapping.

Returns
The model being wrapped.

◆ get_selected()

guint Gtk::SingleSelection::get_selected ( ) const

Gets the position of the selected item.

If no item is selected, GTK_INVALID_LIST_POSITION is returned.

Returns
The position of the selected item.

◆ get_selected_item() [1/2]

Glib::RefPtr< Glib::ObjectBase > Gtk::SingleSelection::get_selected_item ( )

Gets the selected item.

If no item is selected, nullptr is returned.

Returns
The selected item.

◆ get_selected_item() [2/2]

Glib::RefPtr< const Glib::ObjectBase > Gtk::SingleSelection::get_selected_item ( ) const

Gets the selected item.

If no item is selected, nullptr is returned.

Returns
The selected item.

◆ get_type()

static GType Gtk::SingleSelection::get_type ( )
static

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

◆ gobj() [1/2]

GtkSingleSelection * Gtk::SingleSelection::gobj ( )
inline

Provides access to the underlying C GObject.

◆ gobj() [2/2]

const GtkSingleSelection * Gtk::SingleSelection::gobj ( ) const
inline

Provides access to the underlying C GObject.

◆ gobj_copy()

GtkSingleSelection * Gtk::SingleSelection::gobj_copy ( )

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

◆ operator=()

SingleSelection & Gtk::SingleSelection::operator= ( SingleSelection &&  src)
noexcept

◆ property_autoselect() [1/2]

Glib::PropertyProxy< bool > Gtk::SingleSelection::property_autoselect ( )

If the selection will always select an item.

Default value: true

Returns
A PropertyProxy that allows you to get or set the value of the property, or receive notification when the value of the property changes.

◆ property_autoselect() [2/2]

Glib::PropertyProxy_ReadOnly< bool > Gtk::SingleSelection::property_autoselect ( ) const

If the selection will always select an item.

Default value: true

Returns
A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

◆ property_can_unselect() [1/2]

Glib::PropertyProxy< bool > Gtk::SingleSelection::property_can_unselect ( )

If unselecting the selected item is allowed.

Default value: false

Returns
A PropertyProxy that allows you to get or set the value of the property, or receive notification when the value of the property changes.

◆ property_can_unselect() [2/2]

Glib::PropertyProxy_ReadOnly< bool > Gtk::SingleSelection::property_can_unselect ( ) const

If unselecting the selected item is allowed.

Default value: false

Returns
A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

◆ property_item_type()

Glib::PropertyProxy_ReadOnly< GType > Gtk::SingleSelection::property_item_type ( ) const

The type of items.

See Gio::ListModel::get_item_type().

Since gtkmm 4.8:
Returns
A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

◆ property_model() [1/2]

Glib::PropertyProxy< Glib::RefPtr< Gio::ListModel > > Gtk::SingleSelection::property_model ( )

The model being managed.

Returns
A PropertyProxy that allows you to get or set the value of the property, or receive notification when the value of the property changes.

◆ property_model() [2/2]

Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Gio::ListModel > > Gtk::SingleSelection::property_model ( ) const

The model being managed.

Returns
A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

◆ property_n_items()

Glib::PropertyProxy_ReadOnly< unsigned int > Gtk::SingleSelection::property_n_items ( ) const

The number of items.

See Gio::ListModel::get_n_items().

Since gtkmm 4.8:

Default value: 0

Returns
A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

◆ property_selected() [1/2]

Glib::PropertyProxy< guint > Gtk::SingleSelection::property_selected ( )

Position of the selected item.

Default value: 4294967295

Returns
A PropertyProxy that allows you to get or set the value of the property, or receive notification when the value of the property changes.

◆ property_selected() [2/2]

Glib::PropertyProxy_ReadOnly< guint > Gtk::SingleSelection::property_selected ( ) const

Position of the selected item.

Default value: 4294967295

Returns
A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

◆ property_selected_item()

Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Glib::ObjectBase > > Gtk::SingleSelection::property_selected_item ( ) const

The selected item.

Returns
A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

◆ set_autoselect()

void Gtk::SingleSelection::set_autoselect ( bool  autoselect = true)

Enables or disables autoselect.

If autoselect is true, self will enforce that an item is always selected. It will select a new item when the currently selected item is deleted and it will disallow unselecting the current item.

Parameters
autoselecttrue to always select an item.

◆ set_can_unselect()

void Gtk::SingleSelection::set_can_unselect ( bool  can_unselect = true)

If true, unselecting the current item via Gtk::SelectionModel::unselect_item() is supported.

Note that setting property_autoselect() will cause unselecting to not work, so it practically makes no sense to set both at the same time the same time.

Parameters
can_unselecttrue to allow unselecting.

◆ set_model()

void Gtk::SingleSelection::set_model ( const Glib::RefPtr< Gio::ListModel > &  model)

Sets the model that self should wrap.

If model is nullptr, self will be empty.

Parameters
modelA Gio::ListModel to wrap.

◆ set_selected()

void Gtk::SingleSelection::set_selected ( guint  position)

Selects the item at the given position.

If the list does not have an item at position or GTK_INVALID_LIST_POSITION is given, the behavior depends on the value of the property_autoselect() property: If it is set, no change will occur and the old item will stay selected. If it is unset, the selection will be unset and no item will be selected. This also applies if property_can_unselect() is set to false.

Parameters
positionThe item to select or GTK_INVALID_LIST_POSITION.

Friends And Related Symbol Documentation

◆ wrap()

Glib::RefPtr< Gtk::SingleSelection > wrap ( GtkSingleSelection 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.