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}