// GENERATED — DO NOT EDIT

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/class.Spinner.html).
pub type Spinner

///|
pub(open) trait ISpinner {
  fn as_spinner(Self) -> Spinner
  fn get_spinning(Self) -> Bool = _
  fn set_spinning(Self, Bool) -> Unit = _
  fn start(Self) -> Unit = _
  fn stop(Self) -> Unit = _
}

///|
pub impl ISpinner for Spinner with fn as_spinner(self) {
  self
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/ctor.Spinner.new.html).
pub extern "c" fn Spinner::new() -> Spinner = "moonbit_gtk_spinner_new"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.Spinner.get_spinning.html).
#borrow(self)
pub extern "c" fn Spinner::get_spinning(self : Spinner) -> Bool = "moonbit_gtk_spinner_get_spinning"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.Spinner.set_spinning.html).
#borrow(self)
pub extern "c" fn Spinner::set_spinning(self : Spinner, spinning : Bool) = "moonbit_gtk_spinner_set_spinning"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.Spinner.start.html).
#borrow(self)
pub extern "c" fn Spinner::start(self : Spinner) = "moonbit_gtk_spinner_start"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.Spinner.stop.html).
#borrow(self)
pub extern "c" fn Spinner::stop(self : Spinner) = "moonbit_gtk_spinner_stop"

///|
impl ISpinner with fn get_spinning(self) -> Bool {
  self.as_spinner().get_spinning()
}

///|
impl ISpinner with fn set_spinning(self, spinning) -> Unit {
  self.as_spinner().set_spinning(spinning)
}

///|
impl ISpinner with fn start(self) -> Unit {
  self.as_spinner().start()
}

///|
impl ISpinner with fn stop(self) -> Unit {
  self.as_spinner().stop()
}

///|
pub fn Spinner::as_widget(self : Spinner) -> Widget = "%identity"

///|
pub impl IWidget for Spinner with fn as_widget(self) {
  self.as_widget()
}

///|
pub fn Spinner::as_gobject_object(self : Spinner) -> @gobject.Object = "%identity"

///|
pub impl @gobject.IObject for Spinner with fn as_object(self) {
  self.as_gobject_object()
}