gtkmm: Gtk::SingleSelection Class Reference

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

#include <gtkmm/singleselection.h>

Inheritance diagram for Gtk::SingleSelection:

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::ListModelget_model ()
 Gets the model that self is wrapping. More...

 
Glib::RefPtr< const Gio::ListModelget_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::ObjectBaseget_selected_item ()
 Gets the selected item. More...

 
Glib::RefPtr< const Glib::ObjectBaseget_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)
 If autoselect is true, self will enforce that an item is always selected. 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< 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...

 
- Public Member Functions inherited from Glib::Object
 Object (const Object &)=delete
 
Objectoperator= (const Object &)=delete
 
 Object (Object &&src) noexcept
 
Objectoperator= (Object &&src) noexcept
 
void * get_data (const QueryQuark &key)
 
void set_data (const Quark &key, void *data)
 
void set_data (const Quark &key, void *data, DestroyNotify notify)
 
void remove_data (const QueryQuark &quark)
 
void * steal_data (const QueryQuark &quark)
 
Glib::RefPtr< Glib::Objectwrap (GObject *object, bool take_copy=false)
 
- Public Member Functions inherited from Glib::ObjectBase
 ObjectBase (const ObjectBase &)=delete
 
ObjectBaseoperator= (const ObjectBase &)=delete
 
void set_property_value (const Glib::ustring &property_name, const Glib::ValueBase &value)
 
void get_property_value (const Glib::ustring &property_name, Glib::ValueBase &value) const
 
void set_property (const Glib::ustring &property_name, const PropertyType &value)
 
void get_property (const Glib::ustring &property_name, PropertyType &value) const
 
PropertyType get_property (const Glib::ustring &property_name) const
 
sigc::connection connect_property_changed (const Glib::ustring &property_name, const sigc::slot< void()> &slot)
 
sigc::connection connect_property_changed (const Glib::ustring &property_name, sigc::slot< void()> &&slot)
 
void freeze_notify ()
 
void thaw_notify ()
 
virtual void reference () const
 
virtual void unreference () const
 
GObject * gobj ()
 
const GObject * gobj () const
 
GObject * gobj_copy () const
 
- Public Member Functions inherited from sigc::trackable
 trackable () noexcept
 
 trackable (const trackable &src) noexcept
 
 trackable (trackable &&src) noexcept
 
 ~trackable ()
 
void add_destroy_notify_callback (notifiable *data, func_destroy_notify func) const
 
void notify_callbacks ()
 
trackableoperator= (const trackable &src)
 
trackableoperator= (trackable &&src) noexcept
 
void remove_destroy_notify_callback (notifiable *data) const
 
- Public Member Functions inherited from Gio::ListModel
 ListModel (ListModel &&src) noexcept
 
ListModeloperator= (ListModel &&src) noexcept
 
 ~ListModel () noexcept override
 
GListModel * gobj ()
 
const GListModel * gobj () const
 
GType get_item_type () const
 
guint get_n_items () const
 
Glib::RefPtr< Glib::ObjectBaseget_object (guint position)
 
Glib::RefPtr< const Glib::ObjectBaseget_object (guint position) const
 
Glib::SignalProxy< void(guint, guint, guint)> signal_items_changed ()
 
Glib::RefPtr< Gio::ListModelwrap (GListModel *object, bool take_copy=false)
 
- Public Member Functions inherited from Glib::Interface
 Interface ()
 
 Interface (Interface &&src) noexcept
 
Interfaceoperator= (Interface &&src) noexcept
 
 Interface (const Glib::Interface_Class &interface_class)
 
 Interface (GObject *castitem)
 
 ~Interface () noexcept override
 
 Interface (const Interface &)=delete
 
Interfaceoperator= (const Interface &)=delete
 
GObject * gobj ()
 
const GObject * gobj () const
 
- 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 a set containing a set where the values in the range [position, position + n_items) match the selected state of the items in that 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)
 This is the most advanced selection updating method that allows the most fine-grained control over 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 Gio::ListModel
static void add_interface (GType gtype_implementer)
 
static GType get_type ()
 
- 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 Glib::Object
 Object ()
 
 Object (const Glib::ConstructParams &construct_params)
 
 Object (GObject *castitem)
 
 ~Object () noexcept override
 
- Protected Member Functions inherited from Glib::ObjectBase
 ObjectBase ()
 
 ObjectBase (const char *custom_type_name)
 
 ObjectBase (const std::type_info &custom_type_info)
 
 ObjectBase (ObjectBase &&src) noexcept
 
ObjectBaseoperator= (ObjectBase &&src) noexcept
 
virtual ~ObjectBase () noexcept=0
 
void initialize (GObject *castitem)
 
void initialize_move (GObject *castitem, Glib::ObjectBase *previous_wrapper)
 
- Protected Member Functions inherited from Gio::ListModel
 ListModel ()
 
void items_changed (guint position, guint removed, guint added)
 
virtual GType get_item_type_vfunc ()
 
virtual guint get_n_items_vfunc ()
 
virtual gpointer get_item_vfunc (guint position)
 
- 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...

 

Additional Inherited Members

- Public Types inherited from Glib::Object
typedef void(*)(gpointer data DestroyNotify)
 
- Public Types inherited from sigc::trackable
typedef internal::func_destroy_notify func_destroy_notify
 
- Public Types inherited from sigc::notifiable
typedef internal::func_destroy_notify func_destroy_notify
 

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< 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< 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)

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 Gtk::SingleSelection::property_autoselect() will cause the 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.
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 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 Gtk::SingleSelection::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

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.