// GENERATED — DO NOT EDIT

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

///|
pub(open) trait IScrolledWindow {
  fn as_scrolled_window(Self) -> ScrolledWindow
  fn get_child(Self) -> Widget? = _
  fn get_hadjustment(Self) -> Adjustment = _
  fn get_has_frame(Self) -> Bool = _
  fn get_hscrollbar(Self) -> Widget = _
  fn get_kinetic_scrolling(Self) -> Bool = _
  fn get_max_content_height(Self) -> Int = _
  fn get_max_content_width(Self) -> Int = _
  fn get_min_content_height(Self) -> Int = _
  fn get_min_content_width(Self) -> Int = _
  fn get_overlay_scrolling(Self) -> Bool = _
  fn get_placement(Self) -> CornerType = _
  fn get_policy(Self) -> (PolicyType, PolicyType) = _
  fn get_propagate_natural_height(Self) -> Bool = _
  fn get_propagate_natural_width(Self) -> Bool = _
  fn get_vadjustment(Self) -> Adjustment = _
  fn get_vscrollbar(Self) -> Widget = _
  fn set_child(Self, &IWidget?) -> Unit = _
  fn set_hadjustment(Self, &IAdjustment?) -> Unit = _
  fn set_has_frame(Self, Bool) -> Unit = _
  fn set_kinetic_scrolling(Self, Bool) -> Unit = _
  fn set_max_content_height(Self, Int) -> Unit = _
  fn set_max_content_width(Self, Int) -> Unit = _
  fn set_min_content_height(Self, Int) -> Unit = _
  fn set_min_content_width(Self, Int) -> Unit = _
  fn set_overlay_scrolling(Self, Bool) -> Unit = _
  fn set_placement(Self, CornerType) -> Unit = _
  fn set_policy(Self, PolicyType, PolicyType) -> Unit = _
  fn set_propagate_natural_height(Self, Bool) -> Unit = _
  fn set_propagate_natural_width(Self, Bool) -> Unit = _
  fn set_vadjustment(Self, &IAdjustment?) -> Unit = _
  fn unset_placement(Self) -> Unit = _
  fn connect_edge_overshot(Self, (ScrolledWindow, PositionType) -> Unit) -> UInt64 = _
  fn connect_edge_reached(Self, (ScrolledWindow, PositionType) -> Unit) -> UInt64 = _
  fn connect_move_focus_out(Self, (ScrolledWindow, DirectionType) -> Unit) -> UInt64 = _
  fn connect_scroll_child(Self, (ScrolledWindow, ScrollType, Bool) -> Bool) -> UInt64 = _
}

///|
pub impl IScrolledWindow for ScrolledWindow with fn as_scrolled_window(self) {
  self
}

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

///|
#borrow(self_)
extern "c" fn moonbit_gtk_scrolled_window_get_child(
  self_ : ScrolledWindow,
) -> @glib.Nullable[Widget] = "moonbit_gtk_scrolled_window_get_child"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.get_child.html).
pub fn ScrolledWindow::get_child(self : ScrolledWindow) -> Widget? {
  let raw_result = moonbit_gtk_scrolled_window_get_child(self)
  raw_result.to_option()
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.get_hadjustment.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::get_hadjustment(
  self : ScrolledWindow,
) -> Adjustment = "moonbit_gtk_scrolled_window_get_hadjustment"

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

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.get_hscrollbar.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::get_hscrollbar(
  self : ScrolledWindow,
) -> Widget = "moonbit_gtk_scrolled_window_get_hscrollbar"

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

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.get_max_content_height.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::get_max_content_height(
  self : ScrolledWindow,
) -> Int = "moonbit_gtk_scrolled_window_get_max_content_height"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.get_max_content_width.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::get_max_content_width(
  self : ScrolledWindow,
) -> Int = "moonbit_gtk_scrolled_window_get_max_content_width"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.get_min_content_height.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::get_min_content_height(
  self : ScrolledWindow,
) -> Int = "moonbit_gtk_scrolled_window_get_min_content_height"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.get_min_content_width.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::get_min_content_width(
  self : ScrolledWindow,
) -> Int = "moonbit_gtk_scrolled_window_get_min_content_width"

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

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.get_placement.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::get_placement(
  self : ScrolledWindow,
) -> CornerType = "moonbit_gtk_scrolled_window_get_placement"

///|
#borrow(self_, hscrollbar_policy, vscrollbar_policy)
extern "c" fn moonbit_gtk_scrolled_window_get_policy(
  self_ : ScrolledWindow,
  hscrollbar_policy : Ref[PolicyType],
  vscrollbar_policy : Ref[PolicyType],
) = "moonbit_gtk_scrolled_window_get_policy"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.get_policy.html).
pub fn ScrolledWindow::get_policy(
  self : ScrolledWindow,
) -> (PolicyType, PolicyType) {
  let hscrollbar_policy = Ref(PolicyType::Always)
  let vscrollbar_policy = Ref(PolicyType::Always)
  moonbit_gtk_scrolled_window_get_policy(
    self, hscrollbar_policy, vscrollbar_policy,
  )
  (hscrollbar_policy.val, vscrollbar_policy.val)
}

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

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

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.get_vadjustment.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::get_vadjustment(
  self : ScrolledWindow,
) -> Adjustment = "moonbit_gtk_scrolled_window_get_vadjustment"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.get_vscrollbar.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::get_vscrollbar(
  self : ScrolledWindow,
) -> Widget = "moonbit_gtk_scrolled_window_get_vscrollbar"

///|
#borrow(self_, child)
extern "c" fn moonbit_gtk_scrolled_window_set_child(
  self_ : ScrolledWindow,
  child : @glib.Nullable[Widget],
) = "moonbit_gtk_scrolled_window_set_child"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.set_child.html).
pub fn ScrolledWindow::set_child(
  self : ScrolledWindow,
  child : &IWidget?,
) -> Unit {
  moonbit_gtk_scrolled_window_set_child(
    self,
    match child {
      Some(v) => @glib.Nullable::some(v.as_widget())
      None => @glib.Nullable::null()
    },
  )
}

///|
#borrow(self_, hadjustment)
extern "c" fn moonbit_gtk_scrolled_window_set_hadjustment(
  self_ : ScrolledWindow,
  hadjustment : @glib.Nullable[Adjustment],
) = "moonbit_gtk_scrolled_window_set_hadjustment"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.set_hadjustment.html).
pub fn ScrolledWindow::set_hadjustment(
  self : ScrolledWindow,
  hadjustment : &IAdjustment?,
) -> Unit {
  moonbit_gtk_scrolled_window_set_hadjustment(
    self,
    match hadjustment {
      Some(v) => @glib.Nullable::some(v.as_adjustment())
      None => @glib.Nullable::null()
    },
  )
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.set_has_frame.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::set_has_frame(
  self : ScrolledWindow,
  has_frame : Bool,
) = "moonbit_gtk_scrolled_window_set_has_frame"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.set_kinetic_scrolling.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::set_kinetic_scrolling(
  self : ScrolledWindow,
  kinetic_scrolling : Bool,
) = "moonbit_gtk_scrolled_window_set_kinetic_scrolling"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.set_max_content_height.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::set_max_content_height(
  self : ScrolledWindow,
  height : Int,
) = "moonbit_gtk_scrolled_window_set_max_content_height"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.set_max_content_width.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::set_max_content_width(
  self : ScrolledWindow,
  width : Int,
) = "moonbit_gtk_scrolled_window_set_max_content_width"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.set_min_content_height.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::set_min_content_height(
  self : ScrolledWindow,
  height : Int,
) = "moonbit_gtk_scrolled_window_set_min_content_height"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.set_min_content_width.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::set_min_content_width(
  self : ScrolledWindow,
  width : Int,
) = "moonbit_gtk_scrolled_window_set_min_content_width"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.set_overlay_scrolling.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::set_overlay_scrolling(
  self : ScrolledWindow,
  overlay_scrolling : Bool,
) = "moonbit_gtk_scrolled_window_set_overlay_scrolling"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.set_placement.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::set_placement(
  self : ScrolledWindow,
  window_placement : CornerType,
) = "moonbit_gtk_scrolled_window_set_placement"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.set_policy.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::set_policy(
  self : ScrolledWindow,
  hscrollbar_policy : PolicyType,
  vscrollbar_policy : PolicyType,
) = "moonbit_gtk_scrolled_window_set_policy"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.set_propagate_natural_height.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::set_propagate_natural_height(
  self : ScrolledWindow,
  propagate : Bool,
) = "moonbit_gtk_scrolled_window_set_propagate_natural_height"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.set_propagate_natural_width.html).
#borrow(self)
pub extern "c" fn ScrolledWindow::set_propagate_natural_width(
  self : ScrolledWindow,
  propagate : Bool,
) = "moonbit_gtk_scrolled_window_set_propagate_natural_width"

///|
#borrow(self_, vadjustment)
extern "c" fn moonbit_gtk_scrolled_window_set_vadjustment(
  self_ : ScrolledWindow,
  vadjustment : @glib.Nullable[Adjustment],
) = "moonbit_gtk_scrolled_window_set_vadjustment"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.ScrolledWindow.set_vadjustment.html).
pub fn ScrolledWindow::set_vadjustment(
  self : ScrolledWindow,
  vadjustment : &IAdjustment?,
) -> Unit {
  moonbit_gtk_scrolled_window_set_vadjustment(
    self,
    match vadjustment {
      Some(v) => @glib.Nullable::some(v.as_adjustment())
      None => @glib.Nullable::null()
    },
  )
}

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

///|
#borrow(instance)
extern "c" fn gtk_scrolled_window_connect_edge_overshot(
  instance : ScrolledWindow,
  function : FuncRef[
    (ScrolledWindow, PositionType, (ScrolledWindow, PositionType) -> Unit) -> Unit,
  ],
  closure : (ScrolledWindow, PositionType) -> Unit,
) -> UInt64 = "moonbit_gtk_scrolled_window_connect_edge_overshot"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/signal.ScrolledWindow.edge-overshot.html).
pub fn ScrolledWindow::connect_edge_overshot(
  self : ScrolledWindow,
  f : (ScrolledWindow, PositionType) -> Unit,
) -> UInt64 {
  gtk_scrolled_window_connect_edge_overshot(
    self,
    fn(instance_, pos, f) { f(instance_, pos) },
    f,
  )
}

///|
#borrow(instance)
extern "c" fn gtk_scrolled_window_connect_edge_reached(
  instance : ScrolledWindow,
  function : FuncRef[
    (ScrolledWindow, PositionType, (ScrolledWindow, PositionType) -> Unit) -> Unit,
  ],
  closure : (ScrolledWindow, PositionType) -> Unit,
) -> UInt64 = "moonbit_gtk_scrolled_window_connect_edge_reached"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/signal.ScrolledWindow.edge-reached.html).
pub fn ScrolledWindow::connect_edge_reached(
  self : ScrolledWindow,
  f : (ScrolledWindow, PositionType) -> Unit,
) -> UInt64 {
  gtk_scrolled_window_connect_edge_reached(
    self,
    fn(instance_, pos, f) { f(instance_, pos) },
    f,
  )
}

///|
#borrow(instance)
extern "c" fn gtk_scrolled_window_connect_move_focus_out(
  instance : ScrolledWindow,
  function : FuncRef[
    (ScrolledWindow, DirectionType, (ScrolledWindow, DirectionType) -> Unit) -> Unit,
  ],
  closure : (ScrolledWindow, DirectionType) -> Unit,
) -> UInt64 = "moonbit_gtk_scrolled_window_connect_move_focus_out"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/signal.ScrolledWindow.move-focus-out.html).
pub fn ScrolledWindow::connect_move_focus_out(
  self : ScrolledWindow,
  f : (ScrolledWindow, DirectionType) -> Unit,
) -> UInt64 {
  gtk_scrolled_window_connect_move_focus_out(
    self,
    fn(instance_, direction_type, f) { f(instance_, direction_type) },
    f,
  )
}

///|
#borrow(instance)
extern "c" fn gtk_scrolled_window_connect_scroll_child(
  instance : ScrolledWindow,
  function : FuncRef[
    (
      ScrolledWindow,
      ScrollType,
      Bool,
      (ScrolledWindow, ScrollType, Bool) -> Bool,
    ) -> Bool,
  ],
  closure : (ScrolledWindow, ScrollType, Bool) -> Bool,
) -> UInt64 = "moonbit_gtk_scrolled_window_connect_scroll_child"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/signal.ScrolledWindow.scroll-child.html).
pub fn ScrolledWindow::connect_scroll_child(
  self : ScrolledWindow,
  f : (ScrolledWindow, ScrollType, Bool) -> Bool,
) -> UInt64 {
  gtk_scrolled_window_connect_scroll_child(
    self,
    fn(instance_, scroll, horizontal, f) { f(instance_, scroll, horizontal) },
    f,
  )
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.ScrolledWindow.hscrollbar-policy.html).
#borrow(self_)
pub extern "c" fn ScrolledWindow::get_hscrollbar_policy(
  self_ : ScrolledWindow,
) -> PolicyType = "moonbit_gtk_scrolled_window_get_hscrollbar_policy"

///|
#borrow(self_)
pub extern "c" fn ScrolledWindow::set_hscrollbar_policy(
  self_ : ScrolledWindow,
  value : PolicyType,
) = "moonbit_gtk_scrolled_window_set_hscrollbar_policy"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.ScrolledWindow.vscrollbar-policy.html).
#borrow(self_)
pub extern "c" fn ScrolledWindow::get_vscrollbar_policy(
  self_ : ScrolledWindow,
) -> PolicyType = "moonbit_gtk_scrolled_window_get_vscrollbar_policy"

///|
#borrow(self_)
pub extern "c" fn ScrolledWindow::set_vscrollbar_policy(
  self_ : ScrolledWindow,
  value : PolicyType,
) = "moonbit_gtk_scrolled_window_set_vscrollbar_policy"

///|
impl IScrolledWindow with fn get_child(self) -> Widget? {
  self.as_scrolled_window().get_child()
}

///|
impl IScrolledWindow with fn get_hadjustment(self) -> Adjustment {
  self.as_scrolled_window().get_hadjustment()
}

///|
impl IScrolledWindow with fn get_has_frame(self) -> Bool {
  self.as_scrolled_window().get_has_frame()
}

///|
impl IScrolledWindow with fn get_hscrollbar(self) -> Widget {
  self.as_scrolled_window().get_hscrollbar()
}

///|
impl IScrolledWindow with fn get_kinetic_scrolling(self) -> Bool {
  self.as_scrolled_window().get_kinetic_scrolling()
}

///|
impl IScrolledWindow with fn get_max_content_height(self) -> Int {
  self.as_scrolled_window().get_max_content_height()
}

///|
impl IScrolledWindow with fn get_max_content_width(self) -> Int {
  self.as_scrolled_window().get_max_content_width()
}

///|
impl IScrolledWindow with fn get_min_content_height(self) -> Int {
  self.as_scrolled_window().get_min_content_height()
}

///|
impl IScrolledWindow with fn get_min_content_width(self) -> Int {
  self.as_scrolled_window().get_min_content_width()
}

///|
impl IScrolledWindow with fn get_overlay_scrolling(self) -> Bool {
  self.as_scrolled_window().get_overlay_scrolling()
}

///|
impl IScrolledWindow with fn get_placement(self) -> CornerType {
  self.as_scrolled_window().get_placement()
}

///|
impl IScrolledWindow with fn get_policy(self) -> (PolicyType, PolicyType) {
  self.as_scrolled_window().get_policy()
}

///|
impl IScrolledWindow with fn get_propagate_natural_height(self) -> Bool {
  self.as_scrolled_window().get_propagate_natural_height()
}

///|
impl IScrolledWindow with fn get_propagate_natural_width(self) -> Bool {
  self.as_scrolled_window().get_propagate_natural_width()
}

///|
impl IScrolledWindow with fn get_vadjustment(self) -> Adjustment {
  self.as_scrolled_window().get_vadjustment()
}

///|
impl IScrolledWindow with fn get_vscrollbar(self) -> Widget {
  self.as_scrolled_window().get_vscrollbar()
}

///|
impl IScrolledWindow with fn set_child(self, child) -> Unit {
  self.as_scrolled_window().set_child(child)
}

///|
impl IScrolledWindow with fn set_hadjustment(self, hadjustment) -> Unit {
  self.as_scrolled_window().set_hadjustment(hadjustment)
}

///|
impl IScrolledWindow with fn set_has_frame(self, has_frame) -> Unit {
  self.as_scrolled_window().set_has_frame(has_frame)
}

///|
impl IScrolledWindow with fn set_kinetic_scrolling(self, kinetic_scrolling) -> Unit {
  self.as_scrolled_window().set_kinetic_scrolling(kinetic_scrolling)
}

///|
impl IScrolledWindow with fn set_max_content_height(self, height) -> Unit {
  self.as_scrolled_window().set_max_content_height(height)
}

///|
impl IScrolledWindow with fn set_max_content_width(self, width) -> Unit {
  self.as_scrolled_window().set_max_content_width(width)
}

///|
impl IScrolledWindow with fn set_min_content_height(self, height) -> Unit {
  self.as_scrolled_window().set_min_content_height(height)
}

///|
impl IScrolledWindow with fn set_min_content_width(self, width) -> Unit {
  self.as_scrolled_window().set_min_content_width(width)
}

///|
impl IScrolledWindow with fn set_overlay_scrolling(self, overlay_scrolling) -> Unit {
  self.as_scrolled_window().set_overlay_scrolling(overlay_scrolling)
}

///|
impl IScrolledWindow with fn set_placement(self, window_placement) -> Unit {
  self.as_scrolled_window().set_placement(window_placement)
}

///|
impl IScrolledWindow with fn set_policy(
  self,
  hscrollbar_policy,
  vscrollbar_policy,
) -> Unit {
  self.as_scrolled_window().set_policy(hscrollbar_policy, vscrollbar_policy)
}

///|
impl IScrolledWindow with fn set_propagate_natural_height(self, propagate) -> Unit {
  self.as_scrolled_window().set_propagate_natural_height(propagate)
}

///|
impl IScrolledWindow with fn set_propagate_natural_width(self, propagate) -> Unit {
  self.as_scrolled_window().set_propagate_natural_width(propagate)
}

///|
impl IScrolledWindow with fn set_vadjustment(self, vadjustment) -> Unit {
  self.as_scrolled_window().set_vadjustment(vadjustment)
}

///|
impl IScrolledWindow with fn unset_placement(self) -> Unit {
  self.as_scrolled_window().unset_placement()
}

///|
impl IScrolledWindow with fn connect_edge_overshot(self, f) -> UInt64 {
  self.as_scrolled_window().connect_edge_overshot(f)
}

///|
impl IScrolledWindow with fn connect_edge_reached(self, f) -> UInt64 {
  self.as_scrolled_window().connect_edge_reached(f)
}

///|
impl IScrolledWindow with fn connect_move_focus_out(self, f) -> UInt64 {
  self.as_scrolled_window().connect_move_focus_out(f)
}

///|
impl IScrolledWindow with fn connect_scroll_child(self, f) -> UInt64 {
  self.as_scrolled_window().connect_scroll_child(f)
}

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

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

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

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