gtkmm  4.18.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

Gtk::SingleSelection::SingleSelection ( SingleSelection&&  src)
noexcept
Gtk::SingleSelection::~SingleSelection ( )
overridenoexcept
Gtk::SingleSelection::SingleSelection ( )
protected
Gtk::SingleSelection::SingleSelection ( const Glib::RefPtr< Gio::ListModel > &  model)
explicitprotected

Member Function Documentation

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

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

Returns
true if autoselect is enabled.
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.
Glib::RefPtr<Gio::ListModel> Gtk::SingleSelection::get_model ( )

Gets the model that self is wrapping.

Returns
The model being wrapped.
Glib::RefPtr<const Gio::ListModel> Gtk::SingleSelection::get_model ( ) const

Gets the model that self is wrapping.

Returns
The model being wrapped.
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.
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.
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.
static GType Gtk::SingleSelection::get_type ( )
static

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

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

Provides access to the underlying C GObject.

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

Provides access to the underlying C GObject.

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.

SingleSelection& Gtk::SingleSelection::operator= ( SingleSelection&&  src)
noexcept
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.

Parameters
can_unselecttrue to allow unselecting.
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.
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 Function Documentation

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.