Skip to main content

gtk4/auto/
list_store.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4#![allow(deprecated)]
5
6use crate::{Buildable, TreeDragDest, TreeDragSource, TreeIter, TreeModel, TreeSortable, ffi};
7use glib::translate::*;
8
9glib::wrapper! {
10    /// Use `Gio::ListStore` instead
11    ///
12    /// ```text
13    ///
14    ///
15    /// # Implements
16    ///
17    /// [`trait@glib::ObjectExt`], [`BuildableExt`][trait@crate::prelude::BuildableExt], [`TreeDragDestExt`][trait@crate::prelude::TreeDragDestExt], [`TreeDragSourceExt`][trait@crate::prelude::TreeDragSourceExt], [`TreeModelExt`][trait@crate::prelude::TreeModelExt], [`TreeSortableExt`][trait@crate::prelude::TreeSortableExt], [`TreeModelExtManual`][trait@crate::prelude::TreeModelExtManual], [`TreeSortableExtManual`][trait@crate::prelude::TreeSortableExtManual]
18    #[doc(alias = "GtkListStore")]
19    pub struct ListStore(Object<ffi::GtkListStore, ffi::GtkListStoreClass>) @implements Buildable, TreeDragDest, TreeDragSource, TreeModel, TreeSortable;
20
21    match fn {
22        type_ => || ffi::gtk_list_store_get_type(),
23    }
24}
25
26impl ListStore {
27    /// Appends a new row to @self.  @iter will be changed to point to this new
28    /// row.  The row will be empty after this function is called.  To fill in
29    /// values, you need to call gtk_list_store_set() or gtk_list_store_set_value().
30    ///
31    /// # Deprecated since 4.10
32    ///
33    /// Use list models
34    ///
35    /// # Returns
36    ///
37    ///
38    /// ## `iter`
39    /// An unset [`TreeIter`][crate::TreeIter] to set to the appended row
40    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
41    #[allow(deprecated)]
42    #[doc(alias = "gtk_list_store_append")]
43    pub fn append(&self) -> TreeIter {
44        unsafe {
45            let mut iter = TreeIter::uninitialized();
46            ffi::gtk_list_store_append(self.to_glib_none().0, iter.to_glib_none_mut().0);
47            iter
48        }
49    }
50
51    /// Removes all rows from the list store.
52    ///
53    /// # Deprecated since 4.10
54    ///
55    /// Use list models
56    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
57    #[allow(deprecated)]
58    #[doc(alias = "gtk_list_store_clear")]
59    pub fn clear(&self) {
60        unsafe {
61            ffi::gtk_list_store_clear(self.to_glib_none().0);
62        }
63    }
64
65    /// Creates a new row at @position.  @iter will be changed to point to this new
66    /// row.  If @position is -1 or is larger than the number of rows on the list,
67    /// then the new row will be appended to the list. The row will be empty after
68    /// this function is called.  To fill in values, you need to call
69    /// gtk_list_store_set() or gtk_list_store_set_value().
70    ///
71    /// # Deprecated since 4.10
72    ///
73    /// Use list models
74    /// ## `position`
75    /// position to insert the new row, or -1 for last
76    ///
77    /// # Returns
78    ///
79    ///
80    /// ## `iter`
81    /// An unset [`TreeIter`][crate::TreeIter] to set to the new row
82    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
83    #[allow(deprecated)]
84    #[doc(alias = "gtk_list_store_insert")]
85    pub fn insert(&self, position: i32) -> TreeIter {
86        unsafe {
87            let mut iter = TreeIter::uninitialized();
88            ffi::gtk_list_store_insert(self.to_glib_none().0, iter.to_glib_none_mut().0, position);
89            iter
90        }
91    }
92
93    /// Inserts a new row after @sibling. If @sibling is [`None`], then the row will be
94    /// prepended to the beginning of the list. @iter will be changed to point to
95    /// this new row. The row will be empty after this function is called. To fill
96    /// in values, you need to call gtk_list_store_set() or gtk_list_store_set_value().
97    ///
98    /// # Deprecated since 4.10
99    ///
100    /// Use list models
101    /// ## `sibling`
102    /// A valid [`TreeIter`][crate::TreeIter]
103    ///
104    /// # Returns
105    ///
106    ///
107    /// ## `iter`
108    /// An unset [`TreeIter`][crate::TreeIter] to set to the new row
109    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
110    #[allow(deprecated)]
111    #[doc(alias = "gtk_list_store_insert_after")]
112    pub fn insert_after(&self, sibling: Option<&TreeIter>) -> TreeIter {
113        unsafe {
114            let mut iter = TreeIter::uninitialized();
115            ffi::gtk_list_store_insert_after(
116                self.to_glib_none().0,
117                iter.to_glib_none_mut().0,
118                mut_override(sibling.to_glib_none().0),
119            );
120            iter
121        }
122    }
123
124    /// Inserts a new row before @sibling. If @sibling is [`None`], then the row will
125    /// be appended to the end of the list. @iter will be changed to point to this
126    /// new row. The row will be empty after this function is called. To fill in
127    /// values, you need to call gtk_list_store_set() or gtk_list_store_set_value().
128    ///
129    /// # Deprecated since 4.10
130    ///
131    /// Use list models
132    /// ## `sibling`
133    /// A valid [`TreeIter`][crate::TreeIter]
134    ///
135    /// # Returns
136    ///
137    ///
138    /// ## `iter`
139    /// An unset [`TreeIter`][crate::TreeIter] to set to the new row
140    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
141    #[allow(deprecated)]
142    #[doc(alias = "gtk_list_store_insert_before")]
143    pub fn insert_before(&self, sibling: Option<&TreeIter>) -> TreeIter {
144        unsafe {
145            let mut iter = TreeIter::uninitialized();
146            ffi::gtk_list_store_insert_before(
147                self.to_glib_none().0,
148                iter.to_glib_none_mut().0,
149                mut_override(sibling.to_glib_none().0),
150            );
151            iter
152        }
153    }
154
155    /// Checks if the given iter is a valid iter for this [`ListStore`][crate::ListStore].
156    ///
157    /// This function is slow. Only use it for debugging and/or testing
158    /// purposes.
159    ///
160    /// # Deprecated since 4.10
161    ///
162    /// Use list models
163    /// ## `iter`
164    /// the iterator to check
165    ///
166    /// # Returns
167    ///
168    /// [`true`] if the iter is valid, [`false`] if the iter is invalid.
169    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
170    #[allow(deprecated)]
171    #[doc(alias = "gtk_list_store_iter_is_valid")]
172    pub fn iter_is_valid(&self, iter: &TreeIter) -> bool {
173        unsafe {
174            from_glib(ffi::gtk_list_store_iter_is_valid(
175                self.to_glib_none().0,
176                mut_override(iter.to_glib_none().0),
177            ))
178        }
179    }
180
181    /// Moves @iter in @self to the position after @position. Note that this
182    /// function only works with unsorted stores. If @position is [`None`], @iter
183    /// will be moved to the start of the list.
184    ///
185    /// # Deprecated since 4.10
186    ///
187    /// Use list models
188    /// ## `iter`
189    /// A [`TreeIter`][crate::TreeIter]
190    /// ## `position`
191    /// A [`TreeIter`][crate::TreeIter]
192    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
193    #[allow(deprecated)]
194    #[doc(alias = "gtk_list_store_move_after")]
195    pub fn move_after(&self, iter: &TreeIter, position: Option<&TreeIter>) {
196        unsafe {
197            ffi::gtk_list_store_move_after(
198                self.to_glib_none().0,
199                mut_override(iter.to_glib_none().0),
200                mut_override(position.to_glib_none().0),
201            );
202        }
203    }
204
205    /// Moves @iter in @self to the position before @position. Note that this
206    /// function only works with unsorted stores. If @position is [`None`], @iter
207    /// will be moved to the end of the list.
208    ///
209    /// # Deprecated since 4.10
210    ///
211    /// Use list models
212    /// ## `iter`
213    /// A [`TreeIter`][crate::TreeIter]
214    /// ## `position`
215    /// A [`TreeIter`][crate::TreeIter]
216    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
217    #[allow(deprecated)]
218    #[doc(alias = "gtk_list_store_move_before")]
219    pub fn move_before(&self, iter: &TreeIter, position: Option<&TreeIter>) {
220        unsafe {
221            ffi::gtk_list_store_move_before(
222                self.to_glib_none().0,
223                mut_override(iter.to_glib_none().0),
224                mut_override(position.to_glib_none().0),
225            );
226        }
227    }
228
229    /// Prepends a new row to @self. @iter will be changed to point to this new
230    /// row. The row will be empty after this function is called. To fill in
231    /// values, you need to call gtk_list_store_set() or gtk_list_store_set_value().
232    ///
233    /// # Deprecated since 4.10
234    ///
235    /// Use list models
236    ///
237    /// # Returns
238    ///
239    ///
240    /// ## `iter`
241    /// An unset [`TreeIter`][crate::TreeIter] to set to the prepend row
242    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
243    #[allow(deprecated)]
244    #[doc(alias = "gtk_list_store_prepend")]
245    pub fn prepend(&self) -> TreeIter {
246        unsafe {
247            let mut iter = TreeIter::uninitialized();
248            ffi::gtk_list_store_prepend(self.to_glib_none().0, iter.to_glib_none_mut().0);
249            iter
250        }
251    }
252
253    /// Removes the given row from the list store.  After being removed,
254    /// @iter is set to be the next valid row, or invalidated if it pointed
255    /// to the last row in @self.
256    ///
257    /// # Deprecated since 4.10
258    ///
259    /// Use list models
260    /// ## `iter`
261    /// A valid [`TreeIter`][crate::TreeIter]
262    ///
263    /// # Returns
264    ///
265    /// [`true`] if @iter is valid, [`false`] if not.
266    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
267    #[allow(deprecated)]
268    #[doc(alias = "gtk_list_store_remove")]
269    pub fn remove(&self, iter: &TreeIter) -> bool {
270        unsafe {
271            from_glib(ffi::gtk_list_store_remove(
272                self.to_glib_none().0,
273                mut_override(iter.to_glib_none().0),
274            ))
275        }
276    }
277
278    /// Swaps @a and @b in @self. Note that this function only works with
279    /// unsorted stores.
280    ///
281    /// # Deprecated since 4.10
282    ///
283    /// Use list models
284    /// ## `a`
285    /// A [`TreeIter`][crate::TreeIter]
286    /// ## `b`
287    /// Another [`TreeIter`][crate::TreeIter]
288    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
289    #[allow(deprecated)]
290    #[doc(alias = "gtk_list_store_swap")]
291    pub fn swap(&self, a: &TreeIter, b: &TreeIter) {
292        unsafe {
293            ffi::gtk_list_store_swap(
294                self.to_glib_none().0,
295                mut_override(a.to_glib_none().0),
296                mut_override(b.to_glib_none().0),
297            );
298        }
299    }
300}