libpanel/auto/
session.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, SessionItem};
7use glib::translate::*;
8
9glib::wrapper! {
10    #[doc(alias = "PanelSession")]
11    pub struct Session(Object<ffi::PanelSession, ffi::PanelSessionClass>);
12
13    match fn {
14        type_ => || ffi::panel_session_get_type(),
15    }
16}
17
18impl Session {
19    #[doc(alias = "panel_session_new")]
20    pub fn new() -> Session {
21        assert_initialized_main_thread!();
22        unsafe { from_glib_full(ffi::panel_session_new()) }
23    }
24
25    #[cfg(feature = "v1_4")]
26    #[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
27    #[doc(alias = "panel_session_new_from_variant")]
28    #[doc(alias = "new_from_variant")]
29    pub fn from_variant(variant: &glib::Variant) -> Result<Session, glib::Error> {
30        assert_initialized_main_thread!();
31        unsafe {
32            let mut error = std::ptr::null_mut();
33            let ret = ffi::panel_session_new_from_variant(variant.to_glib_none().0, &mut error);
34            if error.is_null() {
35                Ok(from_glib_full(ret))
36            } else {
37                Err(from_glib_full(error))
38            }
39        }
40    }
41
42    #[doc(alias = "panel_session_append")]
43    pub fn append(&self, item: &SessionItem) {
44        unsafe {
45            ffi::panel_session_append(self.to_glib_none().0, item.to_glib_none().0);
46        }
47    }
48
49    #[cfg(feature = "v1_4")]
50    #[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
51    #[doc(alias = "panel_session_get_item")]
52    #[doc(alias = "get_item")]
53    pub fn item(&self, position: u32) -> Option<SessionItem> {
54        unsafe { from_glib_none(ffi::panel_session_get_item(self.to_glib_none().0, position)) }
55    }
56
57    #[doc(alias = "panel_session_get_n_items")]
58    #[doc(alias = "get_n_items")]
59    pub fn n_items(&self) -> u32 {
60        unsafe { ffi::panel_session_get_n_items(self.to_glib_none().0) }
61    }
62
63    #[doc(alias = "panel_session_insert")]
64    pub fn insert(&self, position: u32, item: &SessionItem) {
65        unsafe {
66            ffi::panel_session_insert(self.to_glib_none().0, position, item.to_glib_none().0);
67        }
68    }
69
70    #[cfg(feature = "v1_4")]
71    #[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
72    #[doc(alias = "panel_session_lookup_by_id")]
73    pub fn lookup_by_id(&self, id: &str) -> Option<SessionItem> {
74        unsafe {
75            from_glib_full(ffi::panel_session_lookup_by_id(
76                self.to_glib_none().0,
77                id.to_glib_none().0,
78            ))
79        }
80    }
81
82    #[doc(alias = "panel_session_prepend")]
83    pub fn prepend(&self, item: &SessionItem) {
84        unsafe {
85            ffi::panel_session_prepend(self.to_glib_none().0, item.to_glib_none().0);
86        }
87    }
88
89    #[doc(alias = "panel_session_remove")]
90    pub fn remove(&self, item: &SessionItem) {
91        unsafe {
92            ffi::panel_session_remove(self.to_glib_none().0, item.to_glib_none().0);
93        }
94    }
95
96    #[doc(alias = "panel_session_remove_at")]
97    pub fn remove_at(&self, position: u32) {
98        unsafe {
99            ffi::panel_session_remove_at(self.to_glib_none().0, position);
100        }
101    }
102
103    #[doc(alias = "panel_session_to_variant")]
104    pub fn to_variant(&self) -> glib::Variant {
105        unsafe { from_glib_full(ffi::panel_session_to_variant(self.to_glib_none().0)) }
106    }
107}
108
109impl Default for Session {
110    fn default() -> Self {
111        Self::new()
112    }
113}