gio/auto/
menu_item.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
5use crate::{ffi, Icon, MenuModel};
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9    #[doc(alias = "GMenuItem")]
10    pub struct MenuItem(Object<ffi::GMenuItem>);
11
12    match fn {
13        type_ => || ffi::g_menu_item_get_type(),
14    }
15}
16
17impl MenuItem {
18    #[doc(alias = "g_menu_item_new")]
19    pub fn new(label: Option<&str>, detailed_action: Option<&str>) -> MenuItem {
20        unsafe {
21            from_glib_full(ffi::g_menu_item_new(
22                label.to_glib_none().0,
23                detailed_action.to_glib_none().0,
24            ))
25        }
26    }
27
28    #[doc(alias = "g_menu_item_new_from_model")]
29    #[doc(alias = "new_from_model")]
30    pub fn from_model(model: &impl IsA<MenuModel>, item_index: i32) -> MenuItem {
31        unsafe {
32            from_glib_full(ffi::g_menu_item_new_from_model(
33                model.as_ref().to_glib_none().0,
34                item_index,
35            ))
36        }
37    }
38
39    #[doc(alias = "g_menu_item_new_section")]
40    pub fn new_section(label: Option<&str>, section: &impl IsA<MenuModel>) -> MenuItem {
41        unsafe {
42            from_glib_full(ffi::g_menu_item_new_section(
43                label.to_glib_none().0,
44                section.as_ref().to_glib_none().0,
45            ))
46        }
47    }
48
49    #[doc(alias = "g_menu_item_new_submenu")]
50    pub fn new_submenu(label: Option<&str>, submenu: &impl IsA<MenuModel>) -> MenuItem {
51        unsafe {
52            from_glib_full(ffi::g_menu_item_new_submenu(
53                label.to_glib_none().0,
54                submenu.as_ref().to_glib_none().0,
55            ))
56        }
57    }
58
59    //#[doc(alias = "g_menu_item_get_attribute")]
60    //#[doc(alias = "get_attribute")]
61    //pub fn is_attribute(&self, attribute: &str, format_string: &str, : /*Unknown conversion*//*Unimplemented*/Basic: VarArgs) -> bool {
62    //    unsafe { TODO: call ffi:g_menu_item_get_attribute() }
63    //}
64
65    #[doc(alias = "g_menu_item_get_attribute_value")]
66    #[doc(alias = "get_attribute_value")]
67    pub fn attribute_value(
68        &self,
69        attribute: &str,
70        expected_type: Option<&glib::VariantTy>,
71    ) -> Option<glib::Variant> {
72        unsafe {
73            from_glib_full(ffi::g_menu_item_get_attribute_value(
74                self.to_glib_none().0,
75                attribute.to_glib_none().0,
76                expected_type.to_glib_none().0,
77            ))
78        }
79    }
80
81    #[doc(alias = "g_menu_item_get_link")]
82    #[doc(alias = "get_link")]
83    pub fn link(&self, link: &str) -> Option<MenuModel> {
84        unsafe {
85            from_glib_full(ffi::g_menu_item_get_link(
86                self.to_glib_none().0,
87                link.to_glib_none().0,
88            ))
89        }
90    }
91
92    //#[doc(alias = "g_menu_item_set_action_and_target")]
93    //pub fn set_action_and_target(&self, action: Option<&str>, format_string: Option<&str>, : /*Unknown conversion*//*Unimplemented*/Basic: VarArgs) {
94    //    unsafe { TODO: call ffi:g_menu_item_set_action_and_target() }
95    //}
96
97    #[doc(alias = "g_menu_item_set_action_and_target_value")]
98    pub fn set_action_and_target_value(
99        &self,
100        action: Option<&str>,
101        target_value: Option<&glib::Variant>,
102    ) {
103        unsafe {
104            ffi::g_menu_item_set_action_and_target_value(
105                self.to_glib_none().0,
106                action.to_glib_none().0,
107                target_value.to_glib_none().0,
108            );
109        }
110    }
111
112    //#[doc(alias = "g_menu_item_set_attribute")]
113    //pub fn set_attribute(&self, attribute: &str, format_string: Option<&str>, : /*Unknown conversion*//*Unimplemented*/Basic: VarArgs) {
114    //    unsafe { TODO: call ffi:g_menu_item_set_attribute() }
115    //}
116
117    #[doc(alias = "g_menu_item_set_attribute_value")]
118    pub fn set_attribute_value(&self, attribute: &str, value: Option<&glib::Variant>) {
119        unsafe {
120            ffi::g_menu_item_set_attribute_value(
121                self.to_glib_none().0,
122                attribute.to_glib_none().0,
123                value.to_glib_none().0,
124            );
125        }
126    }
127
128    #[doc(alias = "g_menu_item_set_detailed_action")]
129    pub fn set_detailed_action(&self, detailed_action: &str) {
130        unsafe {
131            ffi::g_menu_item_set_detailed_action(
132                self.to_glib_none().0,
133                detailed_action.to_glib_none().0,
134            );
135        }
136    }
137
138    #[doc(alias = "g_menu_item_set_icon")]
139    pub fn set_icon(&self, icon: &impl IsA<Icon>) {
140        unsafe {
141            ffi::g_menu_item_set_icon(self.to_glib_none().0, icon.as_ref().to_glib_none().0);
142        }
143    }
144
145    #[doc(alias = "g_menu_item_set_label")]
146    pub fn set_label(&self, label: Option<&str>) {
147        unsafe {
148            ffi::g_menu_item_set_label(self.to_glib_none().0, label.to_glib_none().0);
149        }
150    }
151
152    #[doc(alias = "g_menu_item_set_link")]
153    pub fn set_link(&self, link: &str, model: Option<&impl IsA<MenuModel>>) {
154        unsafe {
155            ffi::g_menu_item_set_link(
156                self.to_glib_none().0,
157                link.to_glib_none().0,
158                model.map(|p| p.as_ref()).to_glib_none().0,
159            );
160        }
161    }
162
163    #[doc(alias = "g_menu_item_set_section")]
164    pub fn set_section(&self, section: Option<&impl IsA<MenuModel>>) {
165        unsafe {
166            ffi::g_menu_item_set_section(
167                self.to_glib_none().0,
168                section.map(|p| p.as_ref()).to_glib_none().0,
169            );
170        }
171    }
172
173    #[doc(alias = "g_menu_item_set_submenu")]
174    pub fn set_submenu(&self, submenu: Option<&impl IsA<MenuModel>>) {
175        unsafe {
176            ffi::g_menu_item_set_submenu(
177                self.to_glib_none().0,
178                submenu.map(|p| p.as_ref()).to_glib_none().0,
179            );
180        }
181    }
182}