class Gtk::SingleSelection

Overview

Gtk::SingleSelection is a Gtk::SelectionModel that allows selecting a single item.

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

Included Modules

Defined in:

lib/gi-crystal/src/auto/gtk-4.0/single_selection.cr

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from module Gtk::SelectionModel

is_selected(position : UInt32) : Bool is_selected, select_all : Bool select_all, select_item(position : UInt32, unselect_rest : Bool) : Bool select_item, select_range(position : UInt32, n_items : UInt32, unselect_rest : Bool) : Bool select_range, selection : Gtk::Bitset selection, selection_changed(position : UInt32, n_items : UInt32) : Nil selection_changed, selection_changed_signal selection_changed_signal, selection_in_range(position : UInt32, n_items : UInt32) : Gtk::Bitset selection_in_range, set_selection(selected : Gtk::Bitset, mask : Gtk::Bitset) : Bool set_selection, to_unsafe to_unsafe, unselect_all : Bool unselect_all, unselect_item(position : UInt32) : Bool unselect_item, unselect_range(position : UInt32, n_items : UInt32) : Bool unselect_range

Constructor methods inherited from module Gtk::SelectionModel

cast(obj : GObject::Object) : self cast

Class methods inherited from module Gtk::SelectionModel

cast?(obj : GObject::Object) : self | Nil cast?, g_type : UInt64 g_type

Instance methods inherited from module Gio::ListModel

item(position : UInt32) : GObject::Object | Nil item, item_type : UInt64 item_type, items_changed(position : UInt32, removed : UInt32, added : UInt32) : Nil
items_changed(position : Int, removed : Int, added : Int) : Nil
items_changed
, items_changed_signal items_changed_signal, n_items : UInt32 n_items, to_unsafe to_unsafe

Constructor methods inherited from module Gio::ListModel

cast(obj : GObject::Object) : self cast

Class methods inherited from module Gio::ListModel

cast?(obj : GObject::Object) : self | Nil cast?, g_type : UInt64 g_type

Instance methods inherited from class GObject::Object

==(other : self) ==, bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding bind_property, bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding bind_property_full, data(key : String) : Pointer(Void) | Nil data, finalize finalize, freeze_notify : Nil freeze_notify, getv(names : Enumerable(String), values : Enumerable(_)) : Nil getv, hash(hasher) hash, notify(property_name : String) : Nil notify, notify_by_pspec(pspec : GObject::ParamSpec) : Nil notify_by_pspec, notify_signal notify_signal, property(property_name : String, value : _) : Nil property, qdata(quark : UInt32) : Pointer(Void) | Nil qdata, ref_count : UInt32 ref_count, run_dispose : Nil run_dispose, set_data(key : String, data : Pointer(Void) | Nil) : Nil set_data, set_property(property_name : String, value : _) : Nil set_property, steal_data(key : String) : Pointer(Void) | Nil steal_data, steal_qdata(quark : UInt32) : Pointer(Void) | Nil steal_qdata, thaw_notify : Nil thaw_notify, to_unsafe : Pointer(Void) to_unsafe, watch_closure(closure : GObject::Closure) : Nil watch_closure

Constructor methods inherited from class GObject::Object

cast(obj : GObject::Object) : self cast, new(pointer : Pointer(Void), transfer : GICrystal::Transfer)
new
new
, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv

Class methods inherited from class GObject::Object

cast?(obj : GObject::Object) : self | Nil cast?, compat_control(what : UInt64, data : Pointer(Void) | Nil) : UInt64 compat_control, g_type : UInt64 g_type, interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec interface_find_property, interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec) interface_list_properties

Macros inherited from class GObject::Object

previous_vfunc(*args) previous_vfunc, previous_vfunc!(*args) previous_vfunc!, signal(signature) signal

Constructor Detail

def self.new(model : Gio::ListModel | Nil) : self #

Creates a new selection to handle model.


[View source]
def self.new #

Initialize a new SingleSelection.


[View source]
def self.new(*, autoselect : Bool | Nil = nil, can_unselect : Bool | Nil = nil, model : Gio::ListModel | Nil = nil, selected : UInt32 | Nil = nil, selected_item : GObject::Object | Nil = nil) #

[View source]

Class Method Detail

def self.g_type : UInt64 #

Returns the type id (GType) registered in GLib type system.


[View source]

Instance Method Detail

def ==(other : self) #
Description copied from class Reference

Returns true if this reference is the same as other. Invokes same?.


def autoselect : Bool #

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


[View source]
def autoselect=(autoselect : Bool) : Nil #

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.


[View source]
def autoselect? : Bool #

[View source]
def can_unselect : Bool #

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


[View source]
def can_unselect=(can_unselect : Bool) : Nil #

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

Note that setting Gtk::SingleSelection#autoselect will cause unselecting to not work, so it practically makes no sense to set both at the same time the same time.


[View source]
def can_unselect? : Bool #

[View source]
def hash(hasher) #
Description copied from class Reference

See Object#hash(hasher)


def model : Gio::ListModel | Nil #

Gets the model that self is wrapping.


[View source]
def model=(model : Gio::ListModel | Nil) : Nil #

Sets the model that self should wrap.

If model is nil, self will be empty.


[View source]
def selected : UInt32 #

Gets the position of the selected item.

If no item is selected, %GTK_INVALID_LIST_POSITION is returned.


[View source]
def selected=(position : UInt32) : Nil #

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


[View source]
def selected_item : GObject::Object | Nil #

Gets the selected item.

If no item is selected, nil is returned.


[View source]