gtkmm 4.14.0
Public Member Functions | Static Public Member Functions | Protected Member Functions | Related Functions | 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
 
GtkSingleSelection * gobj ()
 Provides access to the underlying C GObject. More...
 
const GtkSingleSelection * gobj () const
 Provides access to the underlying C GObject. More...
 
GtkSingleSelection * 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::RefPtr< Gio::ListModel > get_model ()
 Gets the model that self is wrapping. More...
 
Glib::RefPtr< const Gio::ListModel > get_model () const
 Gets the model that self is wrapping. More...
 
void set_model (const Glib::RefPtr< Gio::ListModel > & model)
 Sets the model that self should wrap. More...
 
guint get_selected () const
 Gets the position of the selected item. More...
 
void set_selected (guint position)
 Selects the item at the given position. More...
 
Glib::RefPtr< Glib::ObjectBase > get_selected_item ()
 Gets the selected item. More...
 
Glib::RefPtr< const Glib::ObjectBase > get_selected_item () const
 Gets the selected item. More...
 
bool get_autoselect () const
 Checks if autoselect has been enabled or disabled via set_autoselect(). More...
 
void set_autoselect (bool autoselect=true)
 Enables or disables autoselect. More...
 
bool get_can_unselect () const
 If true, Gtk::SelectionModel::unselect_item() is supported and allows unselecting the selected item. More...
 
void set_can_unselect (bool can_unselect=true)
 If true, unselecting the current item via Gtk::SelectionModel::unselect_item() is supported. More...
 
Glib::PropertyProxy< bool > property_autoselect ()
 If the selection will always select an item. More...
 
Glib::PropertyProxy_ReadOnly< bool > property_autoselect () const
 If the selection will always select an item. More...
 
Glib::PropertyProxy< bool > property_can_unselect ()
 If unselecting the selected item is allowed. More...
 
Glib::PropertyProxy_ReadOnly< bool > property_can_unselect () const
 If unselecting the selected item is allowed. More...
 
Glib::PropertyProxy< guint > property_selected ()
 Position of the selected item. More...
 
Glib::PropertyProxy_ReadOnly< guint > property_selected () const
 Position of the selected item. More...
 
Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Glib::ObjectBase > > property_selected_item () const
 The selected item. More...
 
Glib::PropertyProxy_ReadOnly< GType > property_item_type () const
 The type of items. More...
 
Glib::PropertyProxy< Glib::RefPtr< Gio::ListModel > > property_model ()
 The model being managed. More...
 
Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Gio::ListModel > > property_model () const
 The model being managed. More...
 
Glib::PropertyProxy_ReadOnly< unsigned int > property_n_items () const
 The number of items. More...
 
- Public Member Functions inherited from Gtk::SelectionModel
 SelectionModel (SelectionModel && src) noexcept
 
SelectionModeloperator= (SelectionModel && src) noexcept
 
 ~SelectionModel () noexcept override
 
GtkSelectionModel * gobj ()
 Provides access to the underlying C GObject. More...
 
const GtkSelectionModel * gobj () const
 Provides access to the underlying C GObject. More...
 
bool is_selected (guint position) const
 Checks if the given item is selected. More...
 
Glib::RefPtr< const Bitsetget_selection () const
 Gets the set containing all currently selected items in the model. More...
 
Glib::RefPtr< const Bitsetget_selection (guint position, guint n_items) const
 Gets the set of selected items in a range. More...
 
bool select_item (guint position, bool unselect_rest)
 Requests to select an item in the model. More...
 
bool unselect_item (guint position)
 Requests to unselect an item in the model. More...
 
bool select_range (guint position, guint n_items, bool unselect_rest)
 Requests to select a range of items in the model. More...
 
bool unselect_range (guint position, guint n_items)
 Requests to unselect a range of items in the model. More...
 
bool select_all ()
 Requests to select all items in the model. More...
 
bool unselect_all ()
 Requests to unselect all items in the model. More...
 
bool set_selection (const Glib::RefPtr< const Bitset > & selected, const Glib::RefPtr< const Bitset > & mask)
 Make selection changes. More...
 
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. More...
 
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. More...
 

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. More...
 
void selection_changed (guint position, guint n_items)
 Helper function for implementations of Gtk::SelectionModel. More...
 
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 Functions

(Note that these are not member functions.)

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

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.

Parameters
positionThe item to select or GTK_INVALID_LIST_POSITION.

Friends And Related Function 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.