libpanel/auto/
menu_manager.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from
3// from gir-files (https://github.com/gtk-rs/gir-files.git)
4// DO NOT EDIT
5
6use crate::ffi;
7#[cfg(feature = "v1_4")]
8#[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
9use glib::prelude::*;
10use glib::translate::*;
11
12glib::wrapper! {
13    #[doc(alias = "PanelMenuManager")]
14    pub struct MenuManager(Object<ffi::PanelMenuManager, ffi::PanelMenuManagerClass>);
15
16    match fn {
17        type_ => || ffi::panel_menu_manager_get_type(),
18    }
19}
20
21impl MenuManager {
22    #[doc(alias = "panel_menu_manager_new")]
23    pub fn new() -> MenuManager {
24        assert_initialized_main_thread!();
25        unsafe { from_glib_full(ffi::panel_menu_manager_new()) }
26    }
27
28    #[cfg(feature = "v1_4")]
29    #[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
30    #[doc(alias = "panel_menu_manager_find_item_by_id")]
31    pub fn find_item_by_id(&self, id: &str) -> (Option<gio::Menu>, u32) {
32        unsafe {
33            let mut position = std::mem::MaybeUninit::uninit();
34            let ret = from_glib_none(ffi::panel_menu_manager_find_item_by_id(
35                self.to_glib_none().0,
36                id.to_glib_none().0,
37                position.as_mut_ptr(),
38            ));
39            (ret, position.assume_init())
40        }
41    }
42
43    #[cfg(feature = "v1_4")]
44    #[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
45    #[doc(alias = "panel_menu_manager_get_menu_by_id")]
46    #[doc(alias = "get_menu_by_id")]
47    pub fn menu_by_id(&self, menu_id: &str) -> gio::Menu {
48        unsafe {
49            from_glib_none(ffi::panel_menu_manager_get_menu_by_id(
50                self.to_glib_none().0,
51                menu_id.to_glib_none().0,
52            ))
53        }
54    }
55
56    #[cfg(feature = "v1_4")]
57    #[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
58    #[doc(alias = "panel_menu_manager_get_menu_ids")]
59    #[doc(alias = "get_menu_ids")]
60    pub fn menu_ids(&self) -> Vec<glib::GString> {
61        unsafe {
62            FromGlibPtrContainer::from_glib_none(ffi::panel_menu_manager_get_menu_ids(
63                self.to_glib_none().0,
64            ))
65        }
66    }
67
68    #[cfg(feature = "v1_4")]
69    #[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
70    #[doc(alias = "panel_menu_manager_merge")]
71    pub fn merge(&self, menu_id: &str, menu_model: &impl IsA<gio::MenuModel>) -> u32 {
72        unsafe {
73            ffi::panel_menu_manager_merge(
74                self.to_glib_none().0,
75                menu_id.to_glib_none().0,
76                menu_model.as_ref().to_glib_none().0,
77            )
78        }
79    }
80
81    #[cfg(feature = "v1_4")]
82    #[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
83    #[doc(alias = "panel_menu_manager_remove")]
84    pub fn remove(&self, merge_id: u32) {
85        unsafe {
86            ffi::panel_menu_manager_remove(self.to_glib_none().0, merge_id);
87        }
88    }
89
90    #[cfg(feature = "v1_4")]
91    #[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
92    #[doc(alias = "panel_menu_manager_set_attribute_string")]
93    pub fn set_attribute_string(
94        &self,
95        menu: &gio::Menu,
96        position: u32,
97        attribute: &str,
98        value: &str,
99    ) {
100        unsafe {
101            ffi::panel_menu_manager_set_attribute_string(
102                self.to_glib_none().0,
103                menu.to_glib_none().0,
104                position,
105                attribute.to_glib_none().0,
106                value.to_glib_none().0,
107            );
108        }
109    }
110}
111
112impl Default for MenuManager {
113    fn default() -> Self {
114        Self::new()
115    }
116}