// GENERATED — DO NOT EDIT

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

///|
pub(open) trait IFlowBox {
  fn as_flow_box(Self) -> FlowBox
  fn append(Self, &IWidget) -> Unit = _
  fn get_activate_on_single_click(Self) -> Bool = _
  fn get_child_at_index(Self, Int) -> FlowBoxChild? = _
  fn get_child_at_pos(Self, Int, Int) -> FlowBoxChild? = _
  fn get_column_spacing(Self) -> UInt = _
  fn get_homogeneous(Self) -> Bool = _
  fn get_max_children_per_line(Self) -> UInt = _
  fn get_min_children_per_line(Self) -> UInt = _
  fn get_row_spacing(Self) -> UInt = _
  fn get_selected_children(Self) -> Array[FlowBoxChild] = _
  fn get_selection_mode(Self) -> SelectionMode = _
  fn insert(Self, &IWidget, Int) -> Unit = _
  fn invalidate_filter(Self) -> Unit = _
  fn invalidate_sort(Self) -> Unit = _
  fn prepend(Self, &IWidget) -> Unit = _
  fn remove(Self, &IWidget) -> Unit = _
  fn remove_all(Self) -> Unit = _
  fn select_all(Self) -> Unit = _
  fn select_child(Self, &IFlowBoxChild) -> Unit = _
  fn set_activate_on_single_click(Self, Bool) -> Unit = _
  fn set_column_spacing(Self, UInt) -> Unit = _
  fn set_hadjustment(Self, &IAdjustment) -> Unit = _
  fn set_homogeneous(Self, Bool) -> Unit = _
  fn set_max_children_per_line(Self, UInt) -> Unit = _
  fn set_min_children_per_line(Self, UInt) -> Unit = _
  fn set_row_spacing(Self, UInt) -> Unit = _
  fn set_selection_mode(Self, SelectionMode) -> Unit = _
  fn set_vadjustment(Self, &IAdjustment) -> Unit = _
  fn unselect_all(Self) -> Unit = _
  fn unselect_child(Self, &IFlowBoxChild) -> Unit = _
  fn connect_activate_cursor_child(Self, (FlowBox) -> Unit) -> UInt64 = _
  fn connect_child_activated(Self, (FlowBox, FlowBoxChild) -> Unit) -> UInt64 = _
  fn connect_move_cursor(Self, (FlowBox, MovementStep, Int, Bool, Bool) -> Bool) -> UInt64 = _
  fn connect_select_all(Self, (FlowBox) -> Unit) -> UInt64 = _
  fn connect_selected_children_changed(Self, (FlowBox) -> Unit) -> UInt64 = _
  fn connect_toggle_cursor_child(Self, (FlowBox) -> Unit) -> UInt64 = _
  fn connect_unselect_all(Self, (FlowBox) -> Unit) -> UInt64 = _
  fn set_filter_func(Self, (FlowBoxChild) -> Bool) -> Unit = _
}

///|
pub impl IFlowBox for FlowBox with fn as_flow_box(self) {
  self
}

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

///|
#borrow(self_, child)
extern "c" fn moonbit_gtk_flow_box_append(self_ : FlowBox, child : Widget) = "moonbit_gtk_flow_box_append"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.append.html).
pub fn FlowBox::append(self : FlowBox, child : &IWidget) -> Unit {
  moonbit_gtk_flow_box_append(self, child.as_widget())
}

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

///|
#borrow(self_)
extern "c" fn moonbit_gtk_flow_box_get_child_at_index(
  self_ : FlowBox,
  idx : Int,
) -> @glib.Nullable[FlowBoxChild] = "moonbit_gtk_flow_box_get_child_at_index"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.get_child_at_index.html).
pub fn FlowBox::get_child_at_index(self : FlowBox, idx : Int) -> FlowBoxChild? {
  let raw_result = moonbit_gtk_flow_box_get_child_at_index(self, idx)
  raw_result.to_option()
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_flow_box_get_child_at_pos(
  self_ : FlowBox,
  x : Int,
  y : Int,
) -> @glib.Nullable[FlowBoxChild] = "moonbit_gtk_flow_box_get_child_at_pos"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.get_child_at_pos.html).
pub fn FlowBox::get_child_at_pos(
  self : FlowBox,
  x : Int,
  y : Int,
) -> FlowBoxChild? {
  let raw_result = moonbit_gtk_flow_box_get_child_at_pos(self, x, y)
  raw_result.to_option()
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.get_column_spacing.html).
#borrow(self)
pub extern "c" fn FlowBox::get_column_spacing(self : FlowBox) -> UInt = "moonbit_gtk_flow_box_get_column_spacing"

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

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.get_max_children_per_line.html).
#borrow(self)
pub extern "c" fn FlowBox::get_max_children_per_line(self : FlowBox) -> UInt = "moonbit_gtk_flow_box_get_max_children_per_line"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.get_min_children_per_line.html).
#borrow(self)
pub extern "c" fn FlowBox::get_min_children_per_line(self : FlowBox) -> UInt = "moonbit_gtk_flow_box_get_min_children_per_line"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.get_row_spacing.html).
#borrow(self)
pub extern "c" fn FlowBox::get_row_spacing(self : FlowBox) -> UInt = "moonbit_gtk_flow_box_get_row_spacing"

///|
#borrow(self_, result)
extern "c" fn moonbit_gtk_flow_box_get_selected_children(
  self_ : FlowBox,
  result : Ref[FixedArray[FlowBoxChild]],
) = "moonbit_gtk_flow_box_get_selected_children"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.get_selected_children.html).
pub fn FlowBox::get_selected_children(self : FlowBox) -> Array[FlowBoxChild] {
  let result_ref : Ref[FixedArray[FlowBoxChild]] = Ref([])
  moonbit_gtk_flow_box_get_selected_children(self, result_ref)
  let values : Array[FlowBoxChild] = Array::new(
    capacity=result_ref.val.length(),
  )
  for value in result_ref.val {
    values.push(value)
  }
  values
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.get_selection_mode.html).
#borrow(self)
pub extern "c" fn FlowBox::get_selection_mode(self : FlowBox) -> SelectionMode = "moonbit_gtk_flow_box_get_selection_mode"

///|
#borrow(self_, widget)
extern "c" fn moonbit_gtk_flow_box_insert(
  self_ : FlowBox,
  widget : Widget,
  position : Int,
) = "moonbit_gtk_flow_box_insert"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.insert.html).
pub fn FlowBox::insert(
  self : FlowBox,
  widget : &IWidget,
  position : Int,
) -> Unit {
  moonbit_gtk_flow_box_insert(self, widget.as_widget(), position)
}

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

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

///|
#borrow(self_, child)
extern "c" fn moonbit_gtk_flow_box_prepend(self_ : FlowBox, child : Widget) = "moonbit_gtk_flow_box_prepend"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.prepend.html).
pub fn FlowBox::prepend(self : FlowBox, child : &IWidget) -> Unit {
  moonbit_gtk_flow_box_prepend(self, child.as_widget())
}

///|
#borrow(self_, widget)
extern "c" fn moonbit_gtk_flow_box_remove(self_ : FlowBox, widget : Widget) = "moonbit_gtk_flow_box_remove"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.remove.html).
pub fn FlowBox::remove(self : FlowBox, widget : &IWidget) -> Unit {
  moonbit_gtk_flow_box_remove(self, widget.as_widget())
}

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

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

///|
#borrow(self_, child)
extern "c" fn moonbit_gtk_flow_box_select_child(
  self_ : FlowBox,
  child : FlowBoxChild,
) = "moonbit_gtk_flow_box_select_child"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.select_child.html).
pub fn FlowBox::select_child(self : FlowBox, child : &IFlowBoxChild) -> Unit {
  moonbit_gtk_flow_box_select_child(self, child.as_flow_box_child())
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.set_activate_on_single_click.html).
#borrow(self)
pub extern "c" fn FlowBox::set_activate_on_single_click(
  self : FlowBox,
  single : Bool,
) = "moonbit_gtk_flow_box_set_activate_on_single_click"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.set_column_spacing.html).
#borrow(self)
pub extern "c" fn FlowBox::set_column_spacing(self : FlowBox, spacing : UInt) = "moonbit_gtk_flow_box_set_column_spacing"

///|
#borrow(self_, adjustment)
extern "c" fn moonbit_gtk_flow_box_set_hadjustment(
  self_ : FlowBox,
  adjustment : Adjustment,
) = "moonbit_gtk_flow_box_set_hadjustment"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.set_hadjustment.html).
pub fn FlowBox::set_hadjustment(
  self : FlowBox,
  adjustment : &IAdjustment,
) -> Unit {
  moonbit_gtk_flow_box_set_hadjustment(self, adjustment.as_adjustment())
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.set_homogeneous.html).
#borrow(self)
pub extern "c" fn FlowBox::set_homogeneous(self : FlowBox, homogeneous : Bool) = "moonbit_gtk_flow_box_set_homogeneous"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.set_max_children_per_line.html).
#borrow(self)
pub extern "c" fn FlowBox::set_max_children_per_line(
  self : FlowBox,
  n_children : UInt,
) = "moonbit_gtk_flow_box_set_max_children_per_line"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.set_min_children_per_line.html).
#borrow(self)
pub extern "c" fn FlowBox::set_min_children_per_line(
  self : FlowBox,
  n_children : UInt,
) = "moonbit_gtk_flow_box_set_min_children_per_line"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.set_row_spacing.html).
#borrow(self)
pub extern "c" fn FlowBox::set_row_spacing(self : FlowBox, spacing : UInt) = "moonbit_gtk_flow_box_set_row_spacing"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.set_selection_mode.html).
#borrow(self)
pub extern "c" fn FlowBox::set_selection_mode(
  self : FlowBox,
  mode : SelectionMode,
) = "moonbit_gtk_flow_box_set_selection_mode"

///|
#borrow(self_, adjustment)
extern "c" fn moonbit_gtk_flow_box_set_vadjustment(
  self_ : FlowBox,
  adjustment : Adjustment,
) = "moonbit_gtk_flow_box_set_vadjustment"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.set_vadjustment.html).
pub fn FlowBox::set_vadjustment(
  self : FlowBox,
  adjustment : &IAdjustment,
) -> Unit {
  moonbit_gtk_flow_box_set_vadjustment(self, adjustment.as_adjustment())
}

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

///|
#borrow(self_, child)
extern "c" fn moonbit_gtk_flow_box_unselect_child(
  self_ : FlowBox,
  child : FlowBoxChild,
) = "moonbit_gtk_flow_box_unselect_child"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.unselect_child.html).
pub fn FlowBox::unselect_child(self : FlowBox, child : &IFlowBoxChild) -> Unit {
  moonbit_gtk_flow_box_unselect_child(self, child.as_flow_box_child())
}

///|
#borrow(instance)
extern "c" fn gtk_flow_box_connect_activate_cursor_child(
  instance : FlowBox,
  function : FuncRef[(FlowBox, (FlowBox) -> Unit) -> Unit],
  closure : (FlowBox) -> Unit,
) -> UInt64 = "moonbit_gtk_flow_box_connect_activate_cursor_child"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/signal.FlowBox.activate-cursor-child.html).
pub fn FlowBox::connect_activate_cursor_child(
  self : FlowBox,
  f : (FlowBox) -> Unit,
) -> UInt64 {
  gtk_flow_box_connect_activate_cursor_child(
    self,
    fn(instance_, f) { f(instance_) },
    f,
  )
}

///|
#borrow(instance)
extern "c" fn gtk_flow_box_connect_child_activated(
  instance : FlowBox,
  function : FuncRef[
    (FlowBox, FlowBoxChild, (FlowBox, FlowBoxChild) -> Unit) -> Unit,
  ],
  closure : (FlowBox, FlowBoxChild) -> Unit,
) -> UInt64 = "moonbit_gtk_flow_box_connect_child_activated"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/signal.FlowBox.child-activated.html).
pub fn FlowBox::connect_child_activated(
  self : FlowBox,
  f : (FlowBox, FlowBoxChild) -> Unit,
) -> UInt64 {
  gtk_flow_box_connect_child_activated(
    self,
    fn(instance_, child, f) { f(instance_, child) },
    f,
  )
}

///|
#borrow(instance)
extern "c" fn gtk_flow_box_connect_move_cursor(
  instance : FlowBox,
  function : FuncRef[
    (
      FlowBox,
      MovementStep,
      Int,
      Bool,
      Bool,
      (FlowBox, MovementStep, Int, Bool, Bool) -> Bool,
    ) -> Bool,
  ],
  closure : (FlowBox, MovementStep, Int, Bool, Bool) -> Bool,
) -> UInt64 = "moonbit_gtk_flow_box_connect_move_cursor"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/signal.FlowBox.move-cursor.html).
pub fn FlowBox::connect_move_cursor(
  self : FlowBox,
  f : (FlowBox, MovementStep, Int, Bool, Bool) -> Bool,
) -> UInt64 {
  gtk_flow_box_connect_move_cursor(
    self,
    fn(instance_, step, count, extend_, modify, f) {
      f(instance_, step, count, extend_, modify)
    },
    f,
  )
}

///|
#borrow(instance)
extern "c" fn gtk_flow_box_connect_select_all(
  instance : FlowBox,
  function : FuncRef[(FlowBox, (FlowBox) -> Unit) -> Unit],
  closure : (FlowBox) -> Unit,
) -> UInt64 = "moonbit_gtk_flow_box_connect_select_all"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/signal.FlowBox.select-all.html).
pub fn FlowBox::connect_select_all(
  self : FlowBox,
  f : (FlowBox) -> Unit,
) -> UInt64 {
  gtk_flow_box_connect_select_all(self, fn(instance_, f) { f(instance_) }, f)
}

///|
#borrow(instance)
extern "c" fn gtk_flow_box_connect_selected_children_changed(
  instance : FlowBox,
  function : FuncRef[(FlowBox, (FlowBox) -> Unit) -> Unit],
  closure : (FlowBox) -> Unit,
) -> UInt64 = "moonbit_gtk_flow_box_connect_selected_children_changed"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/signal.FlowBox.selected-children-changed.html).
pub fn FlowBox::connect_selected_children_changed(
  self : FlowBox,
  f : (FlowBox) -> Unit,
) -> UInt64 {
  gtk_flow_box_connect_selected_children_changed(
    self,
    fn(instance_, f) { f(instance_) },
    f,
  )
}

///|
#borrow(instance)
extern "c" fn gtk_flow_box_connect_toggle_cursor_child(
  instance : FlowBox,
  function : FuncRef[(FlowBox, (FlowBox) -> Unit) -> Unit],
  closure : (FlowBox) -> Unit,
) -> UInt64 = "moonbit_gtk_flow_box_connect_toggle_cursor_child"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/signal.FlowBox.toggle-cursor-child.html).
pub fn FlowBox::connect_toggle_cursor_child(
  self : FlowBox,
  f : (FlowBox) -> Unit,
) -> UInt64 {
  gtk_flow_box_connect_toggle_cursor_child(
    self,
    fn(instance_, f) { f(instance_) },
    f,
  )
}

///|
#borrow(instance)
extern "c" fn gtk_flow_box_connect_unselect_all(
  instance : FlowBox,
  function : FuncRef[(FlowBox, (FlowBox) -> Unit) -> Unit],
  closure : (FlowBox) -> Unit,
) -> UInt64 = "moonbit_gtk_flow_box_connect_unselect_all"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/signal.FlowBox.unselect-all.html).
pub fn FlowBox::connect_unselect_all(
  self : FlowBox,
  f : (FlowBox) -> Unit,
) -> UInt64 {
  gtk_flow_box_connect_unselect_all(self, fn(instance_, f) { f(instance_) }, f)
}

///|
#borrow(instance)
extern "c" fn gtk_flow_box_set_filter_func(
  instance : FlowBox,
  function : FuncRef[(FlowBoxChild, (FlowBoxChild) -> Bool) -> Bool],
  closure : (FlowBoxChild) -> Bool,
) -> Unit = "moonbit_gtk_flow_box_set_filter_func"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.FlowBox.set_filter_func.html).
pub fn FlowBox::set_filter_func(
  self : FlowBox,
  callback : (FlowBoxChild) -> Bool,
) -> Unit {
  gtk_flow_box_set_filter_func(self, fn(child, f) { f(child) }, callback)
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_flow_box_get_accept_unpaired_release(
  self_ : FlowBox,
) -> Int = "moonbit_gtk_flow_box_get_accept_unpaired_release"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.FlowBox.accept-unpaired-release.html).
pub fn FlowBox::get_accept_unpaired_release(self : FlowBox) -> Bool {
  moonbit_gtk_flow_box_get_accept_unpaired_release(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_flow_box_set_accept_unpaired_release(
  self_ : FlowBox,
  value : Int,
) = "moonbit_gtk_flow_box_set_accept_unpaired_release"

///|
pub fn FlowBox::set_accept_unpaired_release(
  self : FlowBox,
  value : Bool,
) -> Unit {
  moonbit_gtk_flow_box_set_accept_unpaired_release(
    self,
    if value {
      1
    } else {
      0
    },
  )
}

///|
impl IFlowBox with fn append(self, child) -> Unit {
  self.as_flow_box().append(child)
}

///|
impl IFlowBox with fn get_activate_on_single_click(self) -> Bool {
  self.as_flow_box().get_activate_on_single_click()
}

///|
impl IFlowBox with fn get_child_at_index(self, idx) -> FlowBoxChild? {
  self.as_flow_box().get_child_at_index(idx)
}

///|
impl IFlowBox with fn get_child_at_pos(self, x, y) -> FlowBoxChild? {
  self.as_flow_box().get_child_at_pos(x, y)
}

///|
impl IFlowBox with fn get_column_spacing(self) -> UInt {
  self.as_flow_box().get_column_spacing()
}

///|
impl IFlowBox with fn get_homogeneous(self) -> Bool {
  self.as_flow_box().get_homogeneous()
}

///|
impl IFlowBox with fn get_max_children_per_line(self) -> UInt {
  self.as_flow_box().get_max_children_per_line()
}

///|
impl IFlowBox with fn get_min_children_per_line(self) -> UInt {
  self.as_flow_box().get_min_children_per_line()
}

///|
impl IFlowBox with fn get_row_spacing(self) -> UInt {
  self.as_flow_box().get_row_spacing()
}

///|
impl IFlowBox with fn get_selected_children(self) -> Array[FlowBoxChild] {
  self.as_flow_box().get_selected_children()
}

///|
impl IFlowBox with fn get_selection_mode(self) -> SelectionMode {
  self.as_flow_box().get_selection_mode()
}

///|
impl IFlowBox with fn insert(self, widget, position) -> Unit {
  self.as_flow_box().insert(widget, position)
}

///|
impl IFlowBox with fn invalidate_filter(self) -> Unit {
  self.as_flow_box().invalidate_filter()
}

///|
impl IFlowBox with fn invalidate_sort(self) -> Unit {
  self.as_flow_box().invalidate_sort()
}

///|
impl IFlowBox with fn prepend(self, child) -> Unit {
  self.as_flow_box().prepend(child)
}

///|
impl IFlowBox with fn remove(self, widget) -> Unit {
  self.as_flow_box().remove(widget)
}

///|
impl IFlowBox with fn remove_all(self) -> Unit {
  self.as_flow_box().remove_all()
}

///|
impl IFlowBox with fn select_all(self) -> Unit {
  self.as_flow_box().select_all()
}

///|
impl IFlowBox with fn select_child(self, child) -> Unit {
  self.as_flow_box().select_child(child)
}

///|
impl IFlowBox with fn set_activate_on_single_click(self, single) -> Unit {
  self.as_flow_box().set_activate_on_single_click(single)
}

///|
impl IFlowBox with fn set_column_spacing(self, spacing) -> Unit {
  self.as_flow_box().set_column_spacing(spacing)
}

///|
impl IFlowBox with fn set_hadjustment(self, adjustment) -> Unit {
  self.as_flow_box().set_hadjustment(adjustment)
}

///|
impl IFlowBox with fn set_homogeneous(self, homogeneous) -> Unit {
  self.as_flow_box().set_homogeneous(homogeneous)
}

///|
impl IFlowBox with fn set_max_children_per_line(self, n_children) -> Unit {
  self.as_flow_box().set_max_children_per_line(n_children)
}

///|
impl IFlowBox with fn set_min_children_per_line(self, n_children) -> Unit {
  self.as_flow_box().set_min_children_per_line(n_children)
}

///|
impl IFlowBox with fn set_row_spacing(self, spacing) -> Unit {
  self.as_flow_box().set_row_spacing(spacing)
}

///|
impl IFlowBox with fn set_selection_mode(self, mode) -> Unit {
  self.as_flow_box().set_selection_mode(mode)
}

///|
impl IFlowBox with fn set_vadjustment(self, adjustment) -> Unit {
  self.as_flow_box().set_vadjustment(adjustment)
}

///|
impl IFlowBox with fn unselect_all(self) -> Unit {
  self.as_flow_box().unselect_all()
}

///|
impl IFlowBox with fn unselect_child(self, child) -> Unit {
  self.as_flow_box().unselect_child(child)
}

///|
impl IFlowBox with fn connect_activate_cursor_child(self, f) -> UInt64 {
  self.as_flow_box().connect_activate_cursor_child(f)
}

///|
impl IFlowBox with fn connect_child_activated(self, f) -> UInt64 {
  self.as_flow_box().connect_child_activated(f)
}

///|
impl IFlowBox with fn connect_move_cursor(self, f) -> UInt64 {
  self.as_flow_box().connect_move_cursor(f)
}

///|
impl IFlowBox with fn connect_select_all(self, f) -> UInt64 {
  self.as_flow_box().connect_select_all(f)
}

///|
impl IFlowBox with fn connect_selected_children_changed(self, f) -> UInt64 {
  self.as_flow_box().connect_selected_children_changed(f)
}

///|
impl IFlowBox with fn connect_toggle_cursor_child(self, f) -> UInt64 {
  self.as_flow_box().connect_toggle_cursor_child(f)
}

///|
impl IFlowBox with fn connect_unselect_all(self, f) -> UInt64 {
  self.as_flow_box().connect_unselect_all(f)
}

///|
impl IFlowBox with fn set_filter_func(self, callback) -> Unit {
  self.as_flow_box().set_filter_func(callback)
}

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

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

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

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

///|
pub fn FlowBox::as_orientable(self : FlowBox) -> Orientable = "%identity"

///|
pub impl IOrientable for FlowBox with fn as_orientable(self) {
  self.as_orientable()
}