// GENERATED — DO NOT EDIT
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/class.Application.html).
pub type Application
///|
pub(open) trait IApplication {
fn as_application(Self) -> Application
fn add_window(Self, &IWindow) -> Unit = _
fn get_active_window(Self) -> Window? = _
fn get_menu_by_id(Self, String) -> @gio.Menu? = _
fn get_menubar(Self) -> @gio.MenuModel? = _
fn get_window_by_id(Self, UInt) -> Window? = _
fn get_windows(Self) -> Array[Window] = _
fn inhibit(Self, &IWindow?, ApplicationInhibitFlags, String?) -> UInt = _
fn remove_window(Self, &IWindow) -> Unit = _
fn set_accels_for_action(Self, String, Array[String]) -> Unit = _
fn set_menubar(Self, &@gio.IMenuModel?) -> Unit = _
fn uninhibit(Self, UInt) -> Unit = _
fn connect_query_end(Self, (Application) -> Unit) -> UInt64 = _
fn connect_window_added(Self, (Application, Window) -> Unit) -> UInt64 = _
fn connect_window_removed(Self, (Application, Window) -> Unit) -> UInt64 = _
}
///|
pub impl IApplication for Application with fn as_application(self) {
self
}
///|
/// Implementation contract for Application.window_added. Self is the retained MoonBit state; the second parameter is the invoked Application object.
pub(open) trait VApplicationWindowAdded {
fn window_added(Self, Application, &IWindow) -> Unit
}
///|
/// Implementation contract for Application.window_removed. Self is the retained MoonBit state; the second parameter is the invoked Application object.
pub(open) trait VApplicationWindowRemoved {
fn window_removed(Self, Application, &IWindow) -> Unit
}
///|
#borrow(application_id)
extern "c" fn moonbit_gtk_application_new(
application_id : @glib.Nullable[Bytes],
flags : Int,
) -> Application = "moonbit_gtk_application_new"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/ctor.Application.new.html).
pub fn Application::new(
application_id : String?,
flags : @gio.ApplicationFlags,
) -> Application {
moonbit_gtk_application_new(
match application_id {
Some(s) => @glib.Nullable::some(@encoding/utf8.encode(s))
None => @glib.Nullable::null()
},
flags.to_int(),
)
}
///|
#borrow(self_, window)
extern "c" fn moonbit_gtk_application_add_window(
self_ : Application,
window : Window,
) = "moonbit_gtk_application_add_window"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.Application.add_window.html).
pub fn Application::add_window(self : Application, window : &IWindow) -> Unit {
moonbit_gtk_application_add_window(self, window.as_window())
}
///|
#borrow(self_)
extern "c" fn moonbit_gtk_application_get_active_window(
self_ : Application,
) -> @glib.Nullable[Window] = "moonbit_gtk_application_get_active_window"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.Application.get_active_window.html).
pub fn Application::get_active_window(self : Application) -> Window? {
let raw_result = moonbit_gtk_application_get_active_window(self)
raw_result.to_option()
}
///|
#borrow(self_, id)
extern "c" fn moonbit_gtk_application_get_menu_by_id(
self_ : Application,
id : Bytes,
) -> @glib.Nullable[@gio.Menu] = "moonbit_gtk_application_get_menu_by_id"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.Application.get_menu_by_id.html).
pub fn Application::get_menu_by_id(
self : Application,
id : String,
) -> @gio.Menu? {
let raw_result = moonbit_gtk_application_get_menu_by_id(
self,
@encoding/utf8.encode(id),
)
raw_result.to_option()
}
///|
#borrow(self_)
extern "c" fn moonbit_gtk_application_get_menubar(
self_ : Application,
) -> @glib.Nullable[@gio.MenuModel] = "moonbit_gtk_application_get_menubar"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.Application.get_menubar.html).
pub fn Application::get_menubar(self : Application) -> @gio.MenuModel? {
let raw_result = moonbit_gtk_application_get_menubar(self)
raw_result.to_option()
}
///|
#borrow(self_)
extern "c" fn moonbit_gtk_application_get_window_by_id(
self_ : Application,
id : UInt,
) -> @glib.Nullable[Window] = "moonbit_gtk_application_get_window_by_id"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.Application.get_window_by_id.html).
pub fn Application::get_window_by_id(self : Application, id : UInt) -> Window? {
let raw_result = moonbit_gtk_application_get_window_by_id(self, id)
raw_result.to_option()
}
///|
#borrow(self_, result)
extern "c" fn moonbit_gtk_application_get_windows(
self_ : Application,
result : Ref[FixedArray[Window]],
) = "moonbit_gtk_application_get_windows"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.Application.get_windows.html).
pub fn Application::get_windows(self : Application) -> Array[Window] {
let result_ref : Ref[FixedArray[Window]] = Ref([])
moonbit_gtk_application_get_windows(self, result_ref)
let values : Array[Window] = Array::new(capacity=result_ref.val.length())
for value in result_ref.val {
values.push(value)
}
values
}
///|
#borrow(self_, window, reason)
extern "c" fn moonbit_gtk_application_inhibit(
self_ : Application,
window : @glib.Nullable[Window],
flags : Int,
reason : @glib.Nullable[Bytes],
) -> UInt = "moonbit_gtk_application_inhibit"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.Application.inhibit.html).
pub fn Application::inhibit(
self : Application,
window : &IWindow?,
flags : ApplicationInhibitFlags,
reason : String?,
) -> UInt {
moonbit_gtk_application_inhibit(
self,
match window {
Some(v) => @glib.Nullable::some(v.as_window())
None => @glib.Nullable::null()
},
flags.to_int(),
match reason {
Some(s) => @glib.Nullable::some(@encoding/utf8.encode(s))
None => @glib.Nullable::null()
},
)
}
///|
#borrow(self_, window)
extern "c" fn moonbit_gtk_application_remove_window(
self_ : Application,
window : Window,
) = "moonbit_gtk_application_remove_window"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.Application.remove_window.html).
pub fn Application::remove_window(
self : Application,
window : &IWindow,
) -> Unit {
moonbit_gtk_application_remove_window(self, window.as_window())
}
///|
#borrow(self_, detailed_action_name, __sa_accels)
extern "c" fn moonbit_gtk_application_set_accels_for_action(
self_ : Application,
detailed_action_name : Bytes,
__sa_accels : FixedArray[Bytes],
) = "moonbit_gtk_application_set_accels_for_action"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.Application.set_accels_for_action.html).
pub fn Application::set_accels_for_action(
self : Application,
detailed_action_name : String,
accels : Array[String],
) -> Unit {
moonbit_gtk_application_set_accels_for_action(
self,
@encoding/utf8.encode(detailed_action_name),
FixedArray::from_array(accels.map(fn(s) { @encoding/utf8.encode(s) })),
)
}
///|
#borrow(self_, menubar)
extern "c" fn moonbit_gtk_application_set_menubar(
self_ : Application,
menubar : @glib.Nullable[@gio.MenuModel],
) = "moonbit_gtk_application_set_menubar"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.Application.set_menubar.html).
pub fn Application::set_menubar(
self : Application,
menubar : &@gio.IMenuModel?,
) -> Unit {
moonbit_gtk_application_set_menubar(
self,
match menubar {
Some(v) => @glib.Nullable::some(v.as_menu_model())
None => @glib.Nullable::null()
},
)
}
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.Application.uninhibit.html).
#borrow(self)
pub extern "c" fn Application::uninhibit(self : Application, cookie : UInt) = "moonbit_gtk_application_uninhibit"
///|
#borrow(instance)
extern "c" fn gtk_application_connect_query_end(
instance : Application,
function : FuncRef[(Application, (Application) -> Unit) -> Unit],
closure : (Application) -> Unit,
) -> UInt64 = "moonbit_gtk_application_connect_query_end"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/signal.Application.query-end.html).
pub fn Application::connect_query_end(
self : Application,
f : (Application) -> Unit,
) -> UInt64 {
gtk_application_connect_query_end(self, fn(instance_, f) { f(instance_) }, f)
}
///|
#borrow(instance)
extern "c" fn gtk_application_connect_window_added(
instance : Application,
function : FuncRef[
(Application, Window, (Application, Window) -> Unit) -> Unit,
],
closure : (Application, Window) -> Unit,
) -> UInt64 = "moonbit_gtk_application_connect_window_added"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/signal.Application.window-added.html).
pub fn Application::connect_window_added(
self : Application,
f : (Application, Window) -> Unit,
) -> UInt64 {
gtk_application_connect_window_added(
self,
fn(instance_, window, f) { f(instance_, window) },
f,
)
}
///|
#borrow(instance)
extern "c" fn gtk_application_connect_window_removed(
instance : Application,
function : FuncRef[
(Application, Window, (Application, Window) -> Unit) -> Unit,
],
closure : (Application, Window) -> Unit,
) -> UInt64 = "moonbit_gtk_application_connect_window_removed"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/signal.Application.window-removed.html).
pub fn Application::connect_window_removed(
self : Application,
f : (Application, Window) -> Unit,
) -> UInt64 {
gtk_application_connect_window_removed(
self,
fn(instance_, window, f) { f(instance_, window) },
f,
)
}
///|
#borrow(self_)
extern "c" fn moonbit_gtk_application_get_screensaver_active(
self_ : Application,
) -> Int = "moonbit_gtk_application_get_screensaver_active"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.Application.screensaver-active.html).
pub fn Application::get_screensaver_active(self : Application) -> Bool {
moonbit_gtk_application_get_screensaver_active(self) != 0
}
///|
impl IApplication with fn add_window(self, window) -> Unit {
self.as_application().add_window(window)
}
///|
impl IApplication with fn get_active_window(self) -> Window? {
self.as_application().get_active_window()
}
///|
impl IApplication with fn get_menu_by_id(self, id) -> @gio.Menu? {
self.as_application().get_menu_by_id(id)
}
///|
impl IApplication with fn get_menubar(self) -> @gio.MenuModel? {
self.as_application().get_menubar()
}
///|
impl IApplication with fn get_window_by_id(self, id) -> Window? {
self.as_application().get_window_by_id(id)
}
///|
impl IApplication with fn get_windows(self) -> Array[Window] {
self.as_application().get_windows()
}
///|
impl IApplication with fn inhibit(self, window, flags, reason) -> UInt {
self.as_application().inhibit(window, flags, reason)
}
///|
impl IApplication with fn remove_window(self, window) -> Unit {
self.as_application().remove_window(window)
}
///|
impl IApplication with fn set_accels_for_action(
self,
detailed_action_name,
accels,
) -> Unit {
self.as_application().set_accels_for_action(detailed_action_name, accels)
}
///|
impl IApplication with fn set_menubar(self, menubar) -> Unit {
self.as_application().set_menubar(menubar)
}
///|
impl IApplication with fn uninhibit(self, cookie) -> Unit {
self.as_application().uninhibit(cookie)
}
///|
impl IApplication with fn connect_query_end(self, f) -> UInt64 {
self.as_application().connect_query_end(f)
}
///|
impl IApplication with fn connect_window_added(self, f) -> UInt64 {
self.as_application().connect_window_added(f)
}
///|
impl IApplication with fn connect_window_removed(self, f) -> UInt64 {
self.as_application().connect_window_removed(f)
}
///|
pub fn Application::as_gio_application(self : Application) -> @gio.Application = "%identity"
///|
pub impl @gio.IApplication for Application with fn as_application(self) {
self.as_gio_application()
}
///|
pub fn Application::as_gobject_object(self : Application) -> @gobject.Object = "%identity"
///|
pub impl @gobject.IObject for Application with fn as_object(self) {
self.as_gobject_object()
}
///|
pub fn Application::as_gio_action_group(self : Application) -> @gio.ActionGroup = "%identity"
///|
pub impl @gio.IActionGroup for Application with fn as_action_group(self) {
self.as_gio_action_group()
}