class Gtk::StringList

Overview

Gtk::StringList is a list model that wraps an array of strings.

The objects in the model have a "string" property.

Gtk::StringList is well-suited for any place where you would typically use a char*[], but need a list model.

Gtk::StringList as Gtk::Buildable

The Gtk::StringList implementation of the Gtk::Buildable interface supports adding items directly using the element and specifying elements for each item. Each element supports the regular translation attributes “translatable”, “context” and “comments”.

Here is a UI definition fragment specifying a Gtk::StringList

WARNING ⚠️ The following code is in xml ⚠️

<object class="Gtk::StringList">
  <items>
    <item translatable="yes">Factory</item>
    <item translatable="yes">Home</item>
    <item translatable="yes">Subway</item>
  </items>
</object>

Included Modules

Defined in:

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

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from module Gtk::Buildable

buildable_id : String | Nil buildable_id, to_unsafe to_unsafe

Constructor methods inherited from module Gtk::Buildable

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

Class methods inherited from module Gtk::Buildable

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

Constructor Detail

def self.new(strings : Enumerable(String) | Nil) : self #

Creates a new Gtk::StringList with the given strings.


[View source]
def self.new #

Initialize a new StringList.


[View source]
def self.new(*strings : String) #

[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 append(string : String) : Nil #

Appends string to self.

The string will be copied. See Gtk::StringList#take for a way to avoid that.


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

See Object#hash(hasher)


def remove(position : UInt32) : Nil #

Removes the string at position from self. position must be smaller than the current length of the list.


[View source]
def splice(position : UInt32, n_removals : UInt32, additions : Enumerable(String) | Nil) : Nil #

Changes self by removing n_removals strings and adding additions to it.

This function is more efficient than Gtk::StringList#append and Gtk::StringList#remove, because it only emits the ::items-changed signal once for the change.

This function copies the strings 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).


[View source]
def string(position : UInt32) : String | Nil #

Gets the string that is at position in self.

If self does not contain position items, nil is returned.

This function returns the const char *. To get the object wrapping it, use g_list_model_get_item().


[View source]
def take(string : String) : Nil #

Adds string to self at the end, and takes ownership of it.

This variant of Gtk::StringList#append is convenient for formatting strings:

WARNING ⚠️ The following code is in c ⚠️

gtk_string_list_take (self, g_strdup_print ("%d dollars", lots));

[View source]