///|
/// MainLoop - main event loop.
/// Automatically unreffed when garbage collected.
pub type MainLoop
///|
#borrow(ctx)
extern "c" fn moonbit_glib_main_loop_new(
ctx : MainContext,
is_running : Bool,
) -> MainLoop = "moonbit_glib_main_loop_new"
///|
extern "c" fn moonbit_glib_main_loop_new_default(is_running : Bool) -> MainLoop = "moonbit_glib_main_loop_new_default"
///|
#borrow(main_loop)
extern "c" fn moonbit_glib_main_loop_run(main_loop : MainLoop) -> Unit = "moonbit_glib_main_loop_run"
///|
#borrow(main_loop)
extern "c" fn moonbit_glib_main_loop_quit(main_loop : MainLoop) -> Unit = "moonbit_glib_main_loop_quit"
///|
#borrow(main_loop)
extern "c" fn moonbit_glib_main_loop_is_running(main_loop : MainLoop) -> Bool = "moonbit_glib_main_loop_is_running"
///|
#borrow(main_loop)
extern "c" fn moonbit_glib_main_loop_get_context(
main_loop : MainLoop,
) -> MainContext = "moonbit_glib_main_loop_get_context"
///|
/// Create a new MainLoop with the given context.
///
/// # Example
///
/// ```mbt check
/// test {
/// let ctx = @glib.MainContext::new()
/// let main_loop = @glib.MainLoop::new(ctx, false)
/// assert_false(main_loop.is_running())
/// }
/// ```
pub fn MainLoop::new(context : MainContext, is_running : Bool) -> MainLoop {
moonbit_glib_main_loop_new(context, is_running)
}
///|
/// Create a new MainLoop with the default context.
///
/// # Example
///
/// ```mbt check
/// test {
/// let main_loop = @glib.MainLoop::new_default(false)
/// assert_false(main_loop.is_running())
/// }
/// ```
pub fn MainLoop::new_default(is_running : Bool) -> MainLoop {
moonbit_glib_main_loop_new_default(is_running)
}
///|
/// Run the main loop until quit is called. Blocks the current thread.
pub fn MainLoop::run(self : MainLoop) -> Unit {
moonbit_glib_main_loop_run(self)
}
///|
/// Signal the main loop to quit.
pub fn MainLoop::quit(self : MainLoop) -> Unit {
moonbit_glib_main_loop_quit(self)
}
///|
/// Check if the main loop is running.
pub fn MainLoop::is_running(self : MainLoop) -> Bool {
moonbit_glib_main_loop_is_running(self)
}
///|
/// Get the context of the main loop.
pub fn MainLoop::get_context(self : MainLoop) -> MainContext {
moonbit_glib_main_loop_get_context(self)
}