gio/auto/
menu.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::object::IsA;
7use glib::translate::*;
8use std::fmt;
9use MenuItem;
10use MenuModel;
11
12glib_wrapper! {
13    pub struct Menu(Object<gio_sys::GMenu, MenuClass>) @extends MenuModel;
14
15    match fn {
16        get_type => || gio_sys::g_menu_get_type(),
17    }
18}
19
20impl Menu {
21    pub fn new() -> Menu {
22        unsafe { from_glib_full(gio_sys::g_menu_new()) }
23    }
24
25    pub fn append(&self, label: Option<&str>, detailed_action: Option<&str>) {
26        unsafe {
27            gio_sys::g_menu_append(
28                self.to_glib_none().0,
29                label.to_glib_none().0,
30                detailed_action.to_glib_none().0,
31            );
32        }
33    }
34
35    pub fn append_item(&self, item: &MenuItem) {
36        unsafe {
37            gio_sys::g_menu_append_item(self.to_glib_none().0, item.to_glib_none().0);
38        }
39    }
40
41    pub fn append_section<P: IsA<MenuModel>>(&self, label: Option<&str>, section: &P) {
42        unsafe {
43            gio_sys::g_menu_append_section(
44                self.to_glib_none().0,
45                label.to_glib_none().0,
46                section.as_ref().to_glib_none().0,
47            );
48        }
49    }
50
51    pub fn append_submenu<P: IsA<MenuModel>>(&self, label: Option<&str>, submenu: &P) {
52        unsafe {
53            gio_sys::g_menu_append_submenu(
54                self.to_glib_none().0,
55                label.to_glib_none().0,
56                submenu.as_ref().to_glib_none().0,
57            );
58        }
59    }
60
61    pub fn freeze(&self) {
62        unsafe {
63            gio_sys::g_menu_freeze(self.to_glib_none().0);
64        }
65    }
66
67    pub fn insert(&self, position: i32, label: Option<&str>, detailed_action: Option<&str>) {
68        unsafe {
69            gio_sys::g_menu_insert(
70                self.to_glib_none().0,
71                position,
72                label.to_glib_none().0,
73                detailed_action.to_glib_none().0,
74            );
75        }
76    }
77
78    pub fn insert_item(&self, position: i32, item: &MenuItem) {
79        unsafe {
80            gio_sys::g_menu_insert_item(self.to_glib_none().0, position, item.to_glib_none().0);
81        }
82    }
83
84    pub fn insert_section<P: IsA<MenuModel>>(
85        &self,
86        position: i32,
87        label: Option<&str>,
88        section: &P,
89    ) {
90        unsafe {
91            gio_sys::g_menu_insert_section(
92                self.to_glib_none().0,
93                position,
94                label.to_glib_none().0,
95                section.as_ref().to_glib_none().0,
96            );
97        }
98    }
99
100    pub fn insert_submenu<P: IsA<MenuModel>>(
101        &self,
102        position: i32,
103        label: Option<&str>,
104        submenu: &P,
105    ) {
106        unsafe {
107            gio_sys::g_menu_insert_submenu(
108                self.to_glib_none().0,
109                position,
110                label.to_glib_none().0,
111                submenu.as_ref().to_glib_none().0,
112            );
113        }
114    }
115
116    pub fn prepend(&self, label: Option<&str>, detailed_action: Option<&str>) {
117        unsafe {
118            gio_sys::g_menu_prepend(
119                self.to_glib_none().0,
120                label.to_glib_none().0,
121                detailed_action.to_glib_none().0,
122            );
123        }
124    }
125
126    pub fn prepend_item(&self, item: &MenuItem) {
127        unsafe {
128            gio_sys::g_menu_prepend_item(self.to_glib_none().0, item.to_glib_none().0);
129        }
130    }
131
132    pub fn prepend_section<P: IsA<MenuModel>>(&self, label: Option<&str>, section: &P) {
133        unsafe {
134            gio_sys::g_menu_prepend_section(
135                self.to_glib_none().0,
136                label.to_glib_none().0,
137                section.as_ref().to_glib_none().0,
138            );
139        }
140    }
141
142    pub fn prepend_submenu<P: IsA<MenuModel>>(&self, label: Option<&str>, submenu: &P) {
143        unsafe {
144            gio_sys::g_menu_prepend_submenu(
145                self.to_glib_none().0,
146                label.to_glib_none().0,
147                submenu.as_ref().to_glib_none().0,
148            );
149        }
150    }
151
152    pub fn remove(&self, position: i32) {
153        unsafe {
154            gio_sys::g_menu_remove(self.to_glib_none().0, position);
155        }
156    }
157
158    pub fn remove_all(&self) {
159        unsafe {
160            gio_sys::g_menu_remove_all(self.to_glib_none().0);
161        }
162    }
163}
164
165impl Default for Menu {
166    fn default() -> Self {
167        Self::new()
168    }
169}
170
171impl fmt::Display for Menu {
172    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
173        write!(f, "Menu")
174    }
175}