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