// GENERATED — DO NOT EDIT
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/class.PopoverMenu.html).
pub type PopoverMenu
///|
pub(open) trait IPopoverMenu {
fn as_popover_menu(Self) -> PopoverMenu
fn add_child(Self, &IWidget, String) -> Bool = _
fn get_flags(Self) -> PopoverMenuFlags = _
fn get_menu_model(Self) -> @gio.MenuModel? = _
fn remove_child(Self, &IWidget) -> Bool = _
fn set_flags(Self, PopoverMenuFlags) -> Unit = _
fn set_menu_model(Self, &@gio.IMenuModel?) -> Unit = _
}
///|
pub impl IPopoverMenu for PopoverMenu with fn as_popover_menu(self) {
self
}
///|
#borrow(model)
extern "c" fn moonbit_gtk_popover_menu_new_from_model(
model : @glib.Nullable[@gio.MenuModel],
) -> PopoverMenu = "moonbit_gtk_popover_menu_new_from_model"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/ctor.PopoverMenu.new_from_model.html).
pub fn PopoverMenu::new_from_model(model : &@gio.IMenuModel?) -> PopoverMenu {
moonbit_gtk_popover_menu_new_from_model(
match model {
Some(v) => @glib.Nullable::some(v.as_menu_model())
None => @glib.Nullable::null()
},
)
}
///|
#borrow(model)
extern "c" fn moonbit_gtk_popover_menu_new_from_model_full(
model : @gio.MenuModel,
flags : Int,
) -> PopoverMenu = "moonbit_gtk_popover_menu_new_from_model_full"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/ctor.PopoverMenu.new_from_model_full.html).
pub fn PopoverMenu::new_from_model_full(
model : &@gio.IMenuModel,
flags : PopoverMenuFlags,
) -> PopoverMenu {
moonbit_gtk_popover_menu_new_from_model_full(
model.as_menu_model(),
flags.to_int(),
)
}
///|
#borrow(self_, child, id)
extern "c" fn moonbit_gtk_popover_menu_add_child(
self_ : PopoverMenu,
child : Widget,
id : Bytes,
) -> Bool = "moonbit_gtk_popover_menu_add_child"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.PopoverMenu.add_child.html).
pub fn PopoverMenu::add_child(
self : PopoverMenu,
child : &IWidget,
id : String,
) -> Bool {
moonbit_gtk_popover_menu_add_child(
self,
child.as_widget(),
@encoding/utf8.encode(id),
)
}
///|
#borrow(self_)
extern "c" fn moonbit_gtk_popover_menu_get_flags(self_ : PopoverMenu) -> Int = "moonbit_gtk_popover_menu_get_flags"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.PopoverMenu.get_flags.html).
pub fn PopoverMenu::get_flags(self : PopoverMenu) -> PopoverMenuFlags {
PopoverMenuFlags::from_int(moonbit_gtk_popover_menu_get_flags(self))
}
///|
#borrow(self_)
extern "c" fn moonbit_gtk_popover_menu_get_menu_model(
self_ : PopoverMenu,
) -> @glib.Nullable[@gio.MenuModel] = "moonbit_gtk_popover_menu_get_menu_model"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.PopoverMenu.get_menu_model.html).
pub fn PopoverMenu::get_menu_model(self : PopoverMenu) -> @gio.MenuModel? {
let raw_result = moonbit_gtk_popover_menu_get_menu_model(self)
raw_result.to_option()
}
///|
#borrow(self_, child)
extern "c" fn moonbit_gtk_popover_menu_remove_child(
self_ : PopoverMenu,
child : Widget,
) -> Bool = "moonbit_gtk_popover_menu_remove_child"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.PopoverMenu.remove_child.html).
pub fn PopoverMenu::remove_child(self : PopoverMenu, child : &IWidget) -> Bool {
moonbit_gtk_popover_menu_remove_child(self, child.as_widget())
}
///|
#borrow(self_)
extern "c" fn moonbit_gtk_popover_menu_set_flags(
self_ : PopoverMenu,
flags : Int,
) = "moonbit_gtk_popover_menu_set_flags"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.PopoverMenu.set_flags.html).
pub fn PopoverMenu::set_flags(
self : PopoverMenu,
flags : PopoverMenuFlags,
) -> Unit {
moonbit_gtk_popover_menu_set_flags(self, flags.to_int())
}
///|
#borrow(self_, model)
extern "c" fn moonbit_gtk_popover_menu_set_menu_model(
self_ : PopoverMenu,
model : @glib.Nullable[@gio.MenuModel],
) = "moonbit_gtk_popover_menu_set_menu_model"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.PopoverMenu.set_menu_model.html).
pub fn PopoverMenu::set_menu_model(
self : PopoverMenu,
model : &@gio.IMenuModel?,
) -> Unit {
moonbit_gtk_popover_menu_set_menu_model(
self,
match model {
Some(v) => @glib.Nullable::some(v.as_menu_model())
None => @glib.Nullable::null()
},
)
}
///|
#borrow(self_)
extern "c" fn moonbit_gtk_popover_menu_get_visible_submenu(
self_ : PopoverMenu,
) -> Bytes = "moonbit_gtk_popover_menu_get_visible_submenu"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.PopoverMenu.visible-submenu.html).
pub fn PopoverMenu::get_visible_submenu(self : PopoverMenu) -> String {
@encoding/utf8.decode_lossy(
moonbit_gtk_popover_menu_get_visible_submenu(self),
)
}
///|
#borrow(self_, value)
extern "c" fn moonbit_gtk_popover_menu_set_visible_submenu(
self_ : PopoverMenu,
value : Bytes,
) = "moonbit_gtk_popover_menu_set_visible_submenu"
///|
pub fn PopoverMenu::set_visible_submenu(
self : PopoverMenu,
value : String,
) -> Unit {
moonbit_gtk_popover_menu_set_visible_submenu(
self,
@encoding/utf8.encode(value),
)
}
///|
impl IPopoverMenu with fn add_child(self, child, id) -> Bool {
self.as_popover_menu().add_child(child, id)
}
///|
impl IPopoverMenu with fn get_flags(self) -> PopoverMenuFlags {
self.as_popover_menu().get_flags()
}
///|
impl IPopoverMenu with fn get_menu_model(self) -> @gio.MenuModel? {
self.as_popover_menu().get_menu_model()
}
///|
impl IPopoverMenu with fn remove_child(self, child) -> Bool {
self.as_popover_menu().remove_child(child)
}
///|
impl IPopoverMenu with fn set_flags(self, flags) -> Unit {
self.as_popover_menu().set_flags(flags)
}
///|
impl IPopoverMenu with fn set_menu_model(self, model) -> Unit {
self.as_popover_menu().set_menu_model(model)
}
///|
pub fn PopoverMenu::as_popover(self : PopoverMenu) -> Popover = "%identity"
///|
pub impl IPopover for PopoverMenu with fn as_popover(self) {
self.as_popover()
}
///|
pub fn PopoverMenu::as_widget(self : PopoverMenu) -> Widget = "%identity"
///|
pub impl IWidget for PopoverMenu with fn as_widget(self) {
self.as_widget()
}
///|
pub fn PopoverMenu::as_gobject_object(self : PopoverMenu) -> @gobject.Object = "%identity"
///|
pub impl @gobject.IObject for PopoverMenu with fn as_object(self) {
self.as_gobject_object()
}
///|
pub fn PopoverMenu::as_native(self : PopoverMenu) -> Native = "%identity"
///|
pub impl INative for PopoverMenu with fn as_native(self) {
self.as_native()
}