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