// GENERATED — DO NOT EDIT
///|
/// [Upstream documentation](https://docs.gtk.org/gio/class.MenuItem.html).
pub type MenuItem
///|
pub(open) trait IMenuItem {
fn as_menu_item(Self) -> MenuItem
fn get_link(Self, String) -> MenuModel? = _
fn set_action_and_target_value(Self, String?, &@glib.IVariant?) -> Unit = _
fn set_attribute_value(Self, String, &@glib.IVariant?) -> Unit = _
fn set_detailed_action(Self, String) -> Unit = _
fn set_icon(Self, &IIcon) -> Unit = _
fn set_label(Self, String?) -> Unit = _
fn set_link(Self, String, &IMenuModel?) -> Unit = _
fn set_section(Self, &IMenuModel?) -> Unit = _
fn set_submenu(Self, &IMenuModel?) -> Unit = _
}
///|
pub impl IMenuItem for MenuItem with fn as_menu_item(self) {
self
}
///|
#borrow(label, detailed_action)
extern "c" fn moonbit_g_menu_item_new(
label : @glib.Nullable[Bytes],
detailed_action : @glib.Nullable[Bytes],
) -> MenuItem = "moonbit_g_menu_item_new"
///|
/// [Upstream documentation](https://docs.gtk.org/gio/ctor.MenuItem.new.html).
pub fn MenuItem::new(label : String?, detailed_action : String?) -> MenuItem {
moonbit_g_menu_item_new(
match label {
Some(s) => @glib.Nullable::some(@encoding/utf8.encode(s))
None => @glib.Nullable::null()
},
match detailed_action {
Some(s) => @glib.Nullable::some(@encoding/utf8.encode(s))
None => @glib.Nullable::null()
},
)
}
///|
#borrow(model)
extern "c" fn moonbit_g_menu_item_new_from_model(
model : MenuModel,
item_index : Int,
) -> MenuItem = "moonbit_g_menu_item_new_from_model"
///|
/// [Upstream documentation](https://docs.gtk.org/gio/ctor.MenuItem.new_from_model.html).
pub fn MenuItem::new_from_model(
model : &IMenuModel,
item_index : Int,
) -> MenuItem {
moonbit_g_menu_item_new_from_model(model.as_menu_model(), item_index)
}
///|
#borrow(label, section)
extern "c" fn moonbit_g_menu_item_new_section(
label : @glib.Nullable[Bytes],
section : MenuModel,
) -> MenuItem = "moonbit_g_menu_item_new_section"
///|
/// [Upstream documentation](https://docs.gtk.org/gio/ctor.MenuItem.new_section.html).
pub fn MenuItem::new_section(
label : String?,
section : &IMenuModel,
) -> MenuItem {
moonbit_g_menu_item_new_section(
match label {
Some(s) => @glib.Nullable::some(@encoding/utf8.encode(s))
None => @glib.Nullable::null()
},
section.as_menu_model(),
)
}
///|
#borrow(label, submenu)
extern "c" fn moonbit_g_menu_item_new_submenu(
label : @glib.Nullable[Bytes],
submenu : MenuModel,
) -> MenuItem = "moonbit_g_menu_item_new_submenu"
///|
/// [Upstream documentation](https://docs.gtk.org/gio/ctor.MenuItem.new_submenu.html).
pub fn MenuItem::new_submenu(
label : String?,
submenu : &IMenuModel,
) -> MenuItem {
moonbit_g_menu_item_new_submenu(
match label {
Some(s) => @glib.Nullable::some(@encoding/utf8.encode(s))
None => @glib.Nullable::null()
},
submenu.as_menu_model(),
)
}
///|
#borrow(self_, link)
extern "c" fn moonbit_g_menu_item_get_link(
self_ : MenuItem,
link : Bytes,
) -> @glib.Nullable[MenuModel] = "moonbit_g_menu_item_get_link"
///|
/// [Upstream documentation](https://docs.gtk.org/gio/method.MenuItem.get_link.html).
pub fn MenuItem::get_link(self : MenuItem, link : String) -> MenuModel? {
let raw_result = moonbit_g_menu_item_get_link(
self,
@encoding/utf8.encode(link),
)
raw_result.to_option()
}
///|
#borrow(self_, action, target_value)
extern "c" fn moonbit_g_menu_item_set_action_and_target_value(
self_ : MenuItem,
action : @glib.Nullable[Bytes],
target_value : @glib.Nullable[@glib.Variant],
) = "moonbit_g_menu_item_set_action_and_target_value"
///|
/// [Upstream documentation](https://docs.gtk.org/gio/method.MenuItem.set_action_and_target_value.html).
pub fn MenuItem::set_action_and_target_value(
self : MenuItem,
action : String?,
target_value : &@glib.IVariant?,
) -> Unit {
moonbit_g_menu_item_set_action_and_target_value(
self,
match action {
Some(s) => @glib.Nullable::some(@encoding/utf8.encode(s))
None => @glib.Nullable::null()
},
match target_value {
Some(v) => @glib.Nullable::some(v.as_variant())
None => @glib.Nullable::null()
},
)
}
///|
#borrow(self_, attribute, value)
extern "c" fn moonbit_g_menu_item_set_attribute_value(
self_ : MenuItem,
attribute : Bytes,
value : @glib.Nullable[@glib.Variant],
) = "moonbit_g_menu_item_set_attribute_value"
///|
/// [Upstream documentation](https://docs.gtk.org/gio/method.MenuItem.set_attribute_value.html).
pub fn MenuItem::set_attribute_value(
self : MenuItem,
attribute : String,
value : &@glib.IVariant?,
) -> Unit {
moonbit_g_menu_item_set_attribute_value(
self,
@encoding/utf8.encode(attribute),
match value {
Some(v) => @glib.Nullable::some(v.as_variant())
None => @glib.Nullable::null()
},
)
}
///|
#borrow(self_, detailed_action)
extern "c" fn moonbit_g_menu_item_set_detailed_action(
self_ : MenuItem,
detailed_action : Bytes,
) = "moonbit_g_menu_item_set_detailed_action"
///|
/// [Upstream documentation](https://docs.gtk.org/gio/method.MenuItem.set_detailed_action.html).
pub fn MenuItem::set_detailed_action(
self : MenuItem,
detailed_action : String,
) -> Unit {
moonbit_g_menu_item_set_detailed_action(
self,
@encoding/utf8.encode(detailed_action),
)
}
///|
#borrow(self_, icon)
extern "c" fn moonbit_g_menu_item_set_icon(self_ : MenuItem, icon : Icon) = "moonbit_g_menu_item_set_icon"
///|
/// [Upstream documentation](https://docs.gtk.org/gio/method.MenuItem.set_icon.html).
pub fn MenuItem::set_icon(self : MenuItem, icon : &IIcon) -> Unit {
moonbit_g_menu_item_set_icon(self, icon.as_icon())
}
///|
#borrow(self_, label)
extern "c" fn moonbit_g_menu_item_set_label(
self_ : MenuItem,
label : @glib.Nullable[Bytes],
) = "moonbit_g_menu_item_set_label"
///|
/// [Upstream documentation](https://docs.gtk.org/gio/method.MenuItem.set_label.html).
pub fn MenuItem::set_label(self : MenuItem, label : String?) -> Unit {
moonbit_g_menu_item_set_label(
self,
match label {
Some(s) => @glib.Nullable::some(@encoding/utf8.encode(s))
None => @glib.Nullable::null()
},
)
}
///|
#borrow(self_, link, model)
extern "c" fn moonbit_g_menu_item_set_link(
self_ : MenuItem,
link : Bytes,
model : @glib.Nullable[MenuModel],
) = "moonbit_g_menu_item_set_link"
///|
/// [Upstream documentation](https://docs.gtk.org/gio/method.MenuItem.set_link.html).
pub fn MenuItem::set_link(
self : MenuItem,
link : String,
model : &IMenuModel?,
) -> Unit {
moonbit_g_menu_item_set_link(
self,
@encoding/utf8.encode(link),
match model {
Some(v) => @glib.Nullable::some(v.as_menu_model())
None => @glib.Nullable::null()
},
)
}
///|
#borrow(self_, section)
extern "c" fn moonbit_g_menu_item_set_section(
self_ : MenuItem,
section : @glib.Nullable[MenuModel],
) = "moonbit_g_menu_item_set_section"
///|
/// [Upstream documentation](https://docs.gtk.org/gio/method.MenuItem.set_section.html).
pub fn MenuItem::set_section(self : MenuItem, section : &IMenuModel?) -> Unit {
moonbit_g_menu_item_set_section(
self,
match section {
Some(v) => @glib.Nullable::some(v.as_menu_model())
None => @glib.Nullable::null()
},
)
}
///|
#borrow(self_, submenu)
extern "c" fn moonbit_g_menu_item_set_submenu(
self_ : MenuItem,
submenu : @glib.Nullable[MenuModel],
) = "moonbit_g_menu_item_set_submenu"
///|
/// [Upstream documentation](https://docs.gtk.org/gio/method.MenuItem.set_submenu.html).
pub fn MenuItem::set_submenu(self : MenuItem, submenu : &IMenuModel?) -> Unit {
moonbit_g_menu_item_set_submenu(
self,
match submenu {
Some(v) => @glib.Nullable::some(v.as_menu_model())
None => @glib.Nullable::null()
},
)
}
///|
impl IMenuItem with fn get_link(self, link) -> MenuModel? {
self.as_menu_item().get_link(link)
}
///|
impl IMenuItem with fn set_action_and_target_value(self, action, target_value) -> Unit {
self.as_menu_item().set_action_and_target_value(action, target_value)
}
///|
impl IMenuItem with fn set_attribute_value(self, attribute, value) -> Unit {
self.as_menu_item().set_attribute_value(attribute, value)
}
///|
impl IMenuItem with fn set_detailed_action(self, detailed_action) -> Unit {
self.as_menu_item().set_detailed_action(detailed_action)
}
///|
impl IMenuItem with fn set_icon(self, icon) -> Unit {
self.as_menu_item().set_icon(icon)
}
///|
impl IMenuItem with fn set_label(self, label) -> Unit {
self.as_menu_item().set_label(label)
}
///|
impl IMenuItem with fn set_link(self, link, model) -> Unit {
self.as_menu_item().set_link(link, model)
}
///|
impl IMenuItem with fn set_section(self, section) -> Unit {
self.as_menu_item().set_section(section)
}
///|
impl IMenuItem with fn set_submenu(self, submenu) -> Unit {
self.as_menu_item().set_submenu(submenu)
}
///|
pub fn MenuItem::as_gobject_object(self : MenuItem) -> @gobject.Object = "%identity"
///|
pub impl @gobject.IObject for MenuItem with fn as_object(self) {
self.as_gobject_object()
}