use glib::{prelude::*, translate::*};
use std::fmt;
#[cfg(feature = "gio_v2_32")]
#[cfg_attr(docsrs, doc(cfg(feature = "gio_v2_32")))]
glib::wrapper! {
#[doc(alias = "DzlJoinedMenu")]
pub struct JoinedMenu(Object<ffi::DzlJoinedMenu, ffi::DzlJoinedMenuClass>) @extends gio::MenuModel;
match fn {
type_ => || ffi::dzl_joined_menu_get_type(),
}
}
#[cfg(not(any(feature = "gio_v2_32")))]
glib::wrapper! {
#[doc(alias = "DzlJoinedMenu")]
pub struct JoinedMenu(Object<ffi::DzlJoinedMenu, ffi::DzlJoinedMenuClass>);
match fn {
type_ => || ffi::dzl_joined_menu_get_type(),
}
}
impl JoinedMenu {
#[doc(alias = "dzl_joined_menu_new")]
pub fn new() -> JoinedMenu {
assert_initialized_main_thread!();
unsafe { from_glib_full(ffi::dzl_joined_menu_new()) }
}
#[doc(alias = "dzl_joined_menu_append_menu")]
pub fn append_menu(&self, model: &impl IsA<gio::MenuModel>) {
unsafe {
ffi::dzl_joined_menu_append_menu(
self.to_glib_none().0,
model.as_ref().to_glib_none().0,
);
}
}
#[doc(alias = "dzl_joined_menu_get_n_joined")]
#[doc(alias = "get_n_joined")]
pub fn n_joined(&self) -> u32 {
unsafe { ffi::dzl_joined_menu_get_n_joined(self.to_glib_none().0) }
}
#[doc(alias = "dzl_joined_menu_prepend_menu")]
pub fn prepend_menu(&self, model: &impl IsA<gio::MenuModel>) {
unsafe {
ffi::dzl_joined_menu_prepend_menu(
self.to_glib_none().0,
model.as_ref().to_glib_none().0,
);
}
}
#[doc(alias = "dzl_joined_menu_remove_index")]
pub fn remove_index(&self, index: u32) {
unsafe {
ffi::dzl_joined_menu_remove_index(self.to_glib_none().0, index);
}
}
#[doc(alias = "dzl_joined_menu_remove_menu")]
pub fn remove_menu(&self, model: &impl IsA<gio::MenuModel>) {
unsafe {
ffi::dzl_joined_menu_remove_menu(
self.to_glib_none().0,
model.as_ref().to_glib_none().0,
);
}
}
}
impl Default for JoinedMenu {
fn default() -> Self {
Self::new()
}
}
impl fmt::Display for JoinedMenu {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.write_str("JoinedMenu")
}
}