gtk4/tree_view_column.rs
1// Take a look at the license at the top of the repository in the LICENSE file.
2
3use glib::translate::*;
4
5use crate::{CellRenderer, TreeViewColumn, ffi, prelude::*};
6
7impl TreeViewColumn {
8 /// s a simple example:
9 ///
10 /// **⚠️ The following code is in c ⚠️**
11 ///
12 /// ```c
13 /// enum { TEXT_COLUMN, COLOR_COLUMN, N_COLUMNS };
14 /// // ...
15 /// {
16 /// GtkTreeViewColumn *column;
17 /// GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
18 ///
19 /// column = gtk_tree_view_column_new_with_attributes ("Title",
20 /// renderer,
21 /// "text", TEXT_COLUMN,
22 /// "foreground", COLOR_COLUMN,
23 /// NULL);
24 /// }
25 /// ```
26 ///
27 /// # Deprecated since 4.10
28 ///
29 /// Use GtkColumnView instead
30 /// ## `title`
31 /// The title to set the header to
32 /// ## `cell`
33 /// The [`CellRenderer`][crate::CellRenderer]
34 ///
35 /// # Returns
36 ///
37 /// A newly created [`TreeViewColumn`][crate::TreeViewColumn].
38 #[doc(alias = "gtk_tree_view_column_new_with_attributes")]
39 #[doc(alias = "new_with_attributes")]
40 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
41 #[allow(deprecated)]
42 pub fn with_attributes(
43 title: &str,
44 cell_renderer: &impl IsA<CellRenderer>,
45 attributes: &[(&str, i32)],
46 ) -> Self {
47 assert_initialized_main_thread!();
48 let tree_view_column = TreeViewColumn::new();
49 tree_view_column.set_title(title);
50 tree_view_column.pack_start(cell_renderer, true);
51 tree_view_column.set_attributes(cell_renderer, attributes);
52
53 tree_view_column
54 }
55
56 /// Sets the attributes in the list as the attributes of @self.
57 ///
58 /// The attributes should be in attribute/column order, as in
59 /// gtk_tree_view_column_add_attribute(). All existing attributes
60 /// are removed, and replaced with the new attributes.
61 ///
62 /// # Deprecated since 4.10
63 ///
64 /// Use GtkColumnView instead
65 /// ## `cell_renderer`
66 /// re setting the attributes of
67 #[doc(alias = "gtk_tree_view_column_set_attributes")]
68 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
69 #[allow(deprecated)]
70 pub fn set_attributes(
71 &self,
72 cell_renderer: &impl IsA<CellRenderer>,
73 attributes: &[(&str, i32)],
74 ) {
75 self.clear_attributes(cell_renderer);
76 attributes.iter().for_each(|(attribute, column)| {
77 self.add_attribute(cell_renderer, attribute, *column);
78 });
79 }
80
81 #[doc(alias = "gtk_tree_view_column_set_cell_data_func")]
82 #[doc(alias = "set_cell_data_func")]
83 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
84 #[allow(deprecated)]
85 pub fn unset_cell_data_func(&self, cell_renderer: &impl IsA<CellRenderer>) {
86 unsafe {
87 ffi::gtk_tree_view_column_set_cell_data_func(
88 self.to_glib_none().0,
89 cell_renderer.as_ref().to_glib_none().0,
90 None,
91 std::ptr::null_mut(),
92 None,
93 );
94 }
95 }
96}