class Gio::ListStore
- Gio::ListStore
- GObject::Object
- Reference
- Object
Overview
#GListStore is a simple implementation of #GListModel that stores all items in memory.
It provides insertions, deletions, and lookups in logarithmic time with a fast path for the common case of iterating the list linearly.
Included Modules
Defined in:
lib/gi-crystal/src/auto/gio-2.0/list_store.crConstructors
-
.new(item_type : UInt64) : self
Creates a new #GListStore with items of type item_type.
-
.new
Initialize a new
ListStore
. - .new(*, item_type : UInt64 | Nil = nil)
Class Method Summary
-
.g_type : UInt64
Returns the type id (GType) registered in GLib type system.
Instance Method Summary
-
#==(other : self)
Returns
true
if this reference is the same as other. -
#append(item : GObject::Object) : Nil
Appends item to store.
-
#find(item : GObject::Object) : Bool
Looks up the given item in the list store by looping over the items until the first occurrence of item.
-
#find_with_equal_func(item : GObject::Object, equal_func : GLib::EqualFunc) : Bool
Looks up the given item in the list store by looping over the items and comparing them with compare_func until the first occurrence of item which matches.
-
#hash(hasher)
See
Object#hash(hasher)
-
#insert(position : UInt32, item : GObject::Object) : Nil
Inserts item into store at position.
-
#insert_sorted(item : GObject::Object, compare_func : GLib::CompareDataFunc, user_data : Pointer(Void) | Nil) : UInt32
Inserts item into store at a position to be determined by the compare_func.
- #item_type : UInt64
- #item_type=(value : UInt64) : UInt64
-
#remove(position : UInt32) : Nil
Removes the item from store that is at position.
-
#remove_all : Nil
Removes all items from store.
-
#sort(compare_func : GLib::CompareDataFunc, user_data : Pointer(Void) | Nil) : Nil
Sort the items in store according to compare_func.
-
#splice(position : UInt32, n_removals : UInt32, additions : Enumerable(GObject::Object)) : Nil
Changes store by removing n_removals items and adding n_additions items to it.
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) : Nilitems_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
Creates a new #GListStore with items of type item_type. item_type must be a subclass of #GObject.
Class Method Detail
Returns the type id (GType) registered in GLib type system.
Instance Method Detail
Returns true
if this reference is the same as other. Invokes same?
.
Appends item to store. item must be of type #GListStore:item-type.
This function takes a ref on item.
Use g_list_store_splice() to append multiple items at the same time efficiently.
Looks up the given item in the list store by looping over the items until
the first occurrence of item. If item was not found, then position will
not be set, and this method will return false
.
If you need to compare the two items with a custom comparison function, use g_list_store_find_with_equal_func() with a custom #GEqualFunc instead.
Looks up the given item in the list store by looping over the items and
comparing them with compare_func until the first occurrence of item which
matches. If item was not found, then position will not be set, and this
method will return false
.
Inserts item into store at position. item must be of type #GListStore:item-type or derived from it. position must be smaller than the length of the list, or equal to it to append.
This function takes a ref on item.
Use g_list_store_splice() to insert multiple items at the same time efficiently.
Inserts item into store at a position to be determined by the compare_func.
The list must already be sorted before calling this function or the result is undefined. Usually you would approach this by only ever inserting items by way of this function.
This function takes a ref on item.
Removes the item from store that is at position. position must be smaller than the current length of the list.
Use g_list_store_splice() to remove multiple items at the same time efficiently.
Sort the items in store according to compare_func.
Changes store by removing n_removals items and adding n_additions
items to it. additions must contain n_additions items of type
#GListStore:item-type. nil
is not permitted.
This function is more efficient than g_list_store_insert() and g_list_store_remove(), because it only emits #GListModel::items-changed once for the change.
This function takes a ref on each item in additions.
The parameters position and n_removals must be correct (ie: position + n_removals must be less than or equal to the length of the list at the time this function is called).