{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- A widget that changes layout based on available size.
-- 
-- \<picture>
--   \<source srcset=\"breakpoint-bin-dark.png\" media=\"(prefers-color-scheme: dark)\">
--   \<img src=\"breakpoint-bin.png\" alt=\"breakpoint-bin\">
-- \<\/picture>
-- 
-- @AdwBreakpointBin@ provides a way to use breakpoints without [class/@window@/],
-- [class/@applicationWindow@/] or [class/@dialog@/]. It can be useful for limiting
-- breakpoints to a single page and similar purposes. Most applications
-- shouldn\'t need it.
-- 
-- @AdwBreakpointBin@ is similar to [class/@bin@/]. It has one child, set via the
-- [property/@breakpointBin@/:child] property.
-- 
-- When @AdwBreakpointBin@ is resized, its child widget can rearrange its layout
-- at specific thresholds.
-- 
-- The thresholds and layout changes are defined via [class/@breakpoint@/] objects.
-- They can be added using [method/@breakpointBin@/.add_breakpoint].
-- 
-- Each breakpoint has a condition, specifying the bin\'s size and\/or aspect
-- ratio, and setters that automatically set object properties when that
-- happens. The [signal/@breakpoint@/[apply](#g:signal:apply)] and [signal/@breakpoint@/[unapply](#g:signal:unapply)] can
-- be used instead for more complex scenarios.
-- 
-- Breakpoints are only allowed to modify widgets inside the @AdwBreakpointBin@,
-- but not on the @AdwBreakpointBin@ itself or any other widgets.
-- 
-- If multiple breakpoints can be used for the current size, the last one is
-- always picked. The current breakpoint can be tracked using the
-- [property/@breakpointBin@/:current-breakpoint] property.
-- 
-- If none of the breakpoints can be used, that property will be set to @NULL@,
-- and the original property values will be used instead.
-- 
-- == Minimum Size
-- 
-- Adding a breakpoint to @AdwBreakpointBin@ will result in it having no minimum
-- size. The [Widget:widthRequest]("GI.Gtk.Objects.Widget#g:attr:widthRequest") and
-- [Widget:heightRequest]("GI.Gtk.Objects.Widget#g:attr:heightRequest") properties must always be set when using
-- breakpoints, indicating the smallest size you want to support.
-- 
-- The minimum size and breakpoint conditions must be carefully selected so that
-- the child widget completely fits. If it doesn\'t, it will overflow and a
-- warning message will be printed.
-- 
-- When choosing minimum size, consider translations and text scale factor
-- changes. Make sure to leave enough space for text labels, and enable
-- ellipsizing or wrapping if they might not fit.
-- 
-- For t'GI.Gtk.Objects.Label.Label' this can be done via [Label:ellipsize]("GI.Gtk.Objects.Label#g:attr:ellipsize"), or
-- via [Label:wrap]("GI.Gtk.Objects.Label#g:attr:wrap") together with [Label:wrapMode]("GI.Gtk.Objects.Label#g:attr:wrapMode").
-- 
-- For buttons, use [Button:canShrink]("GI.Gtk.Objects.Button#g:attr:canShrink"),
-- [MenuButton:canShrink]("GI.Gtk.Objects.MenuButton#g:attr:canShrink"), [SplitButton:canShrink]("GI.Adw.Objects.SplitButton#g:attr:canShrink"),
-- or [ButtonContent:canShrink]("GI.Adw.Objects.ButtonContent#g:attr:canShrink").
-- 
-- == Example
-- 
-- 
-- === /c code/
-- >GtkWidget *bin, *child;
-- >AdwBreakpoint *breakpoint;
-- >
-- >bin = adw_breakpoint_bin_new ();
-- >gtk_widget_set_size_request (bin, 150, 150);
-- >
-- >child = gtk_label_new ("Wide");
-- >gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END);
-- >gtk_widget_add_css_class (child, "title-1");
-- >adw_breakpoint_bin_set_child (ADW_BREAKPOINT_BIN (bin), child);
-- >
-- >breakpoint = adw_breakpoint_new (adw_breakpoint_condition_parse ("max-width: 200px"));
-- >adw_breakpoint_add_setters (breakpoint,
-- >                            G_OBJECT (child), "label", "Narrow",
-- >                            NULL);
-- >adw_breakpoint_bin_add_breakpoint (ADW_BREAKPOINT_BIN (bin), breakpoint);
-- 
-- 
-- The bin has a single label inside it, displaying \"Wide\". When the bin\'s width
-- is smaller than or equal to 200px, it changes to \"Narrow\".
-- 
-- == @AdwBreakpointBin@ as @GtkBuildable@
-- 
-- @AdwBreakpointBin@ allows adding @AdwBreakpoint@ objects as children.
-- 
-- Example of an @AdwBreakpointBin@ UI definition:
-- 
-- 
-- === /xml code/
-- ><object class="AdwBreakpointBin">
-- >  <property name="width-request">150</property>
-- >  <property name="height-request">150</property>
-- >  <property name="child">
-- >    <object class="GtkLabel" id="child">
-- >      <property name="label">Wide</property>
-- >      <property name="ellipsize">end</property>
-- >      <style>
-- >        <class name="title-1"/>
-- >      </style>
-- >    </object>
-- >  </property>
-- >  <child>
-- >    <object class="AdwBreakpoint">
-- >      <condition>max-width: 200px</condition>
-- >      <setter object="child" property="label">Narrow</setter>
-- >    </object>
-- >  </child>
-- ></object>
-- 
-- 
-- See [class/@breakpoint@/] documentation for details.
-- 
-- /Since: 1.4/

#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif

module GI.Adw.Objects.BreakpointBin
    ( 

-- * Exported types
    BreakpointBin(..)                       ,
    IsBreakpointBin                         ,
    toBreakpointBin                         ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [actionSetEnabled]("GI.Gtk.Objects.Widget#g:method:actionSetEnabled"), [activate]("GI.Gtk.Objects.Widget#g:method:activate"), [activateAction]("GI.Gtk.Objects.Widget#g:method:activateAction"), [activateDefault]("GI.Gtk.Objects.Widget#g:method:activateDefault"), [addBreakpoint]("GI.Adw.Objects.BreakpointBin#g:method:addBreakpoint"), [addController]("GI.Gtk.Objects.Widget#g:method:addController"), [addCssClass]("GI.Gtk.Objects.Widget#g:method:addCssClass"), [addMnemonicLabel]("GI.Gtk.Objects.Widget#g:method:addMnemonicLabel"), [addTickCallback]("GI.Gtk.Objects.Widget#g:method:addTickCallback"), [allocate]("GI.Gtk.Objects.Widget#g:method:allocate"), [announce]("GI.Gtk.Interfaces.Accessible#g:method:announce"), [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [childFocus]("GI.Gtk.Objects.Widget#g:method:childFocus"), [computeBounds]("GI.Gtk.Objects.Widget#g:method:computeBounds"), [computeExpand]("GI.Gtk.Objects.Widget#g:method:computeExpand"), [computePoint]("GI.Gtk.Objects.Widget#g:method:computePoint"), [computeTransform]("GI.Gtk.Objects.Widget#g:method:computeTransform"), [contains]("GI.Gtk.Objects.Widget#g:method:contains"), [createPangoContext]("GI.Gtk.Objects.Widget#g:method:createPangoContext"), [createPangoLayout]("GI.Gtk.Objects.Widget#g:method:createPangoLayout"), [disposeTemplate]("GI.Gtk.Objects.Widget#g:method:disposeTemplate"), [dragCheckThreshold]("GI.Gtk.Objects.Widget#g:method:dragCheckThreshold"), [errorBell]("GI.Gtk.Objects.Widget#g:method:errorBell"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [grabFocus]("GI.Gtk.Objects.Widget#g:method:grabFocus"), [hasCssClass]("GI.Gtk.Objects.Widget#g:method:hasCssClass"), [hasDefault]("GI.Gtk.Objects.Widget#g:method:hasDefault"), [hasFocus]("GI.Gtk.Objects.Widget#g:method:hasFocus"), [hasVisibleFocus]("GI.Gtk.Objects.Widget#g:method:hasVisibleFocus"), [hide]("GI.Gtk.Objects.Widget#g:method:hide"), [inDestruction]("GI.Gtk.Objects.Widget#g:method:inDestruction"), [initTemplate]("GI.Gtk.Objects.Widget#g:method:initTemplate"), [insertActionGroup]("GI.Gtk.Objects.Widget#g:method:insertActionGroup"), [insertAfter]("GI.Gtk.Objects.Widget#g:method:insertAfter"), [insertBefore]("GI.Gtk.Objects.Widget#g:method:insertBefore"), [isAncestor]("GI.Gtk.Objects.Widget#g:method:isAncestor"), [isDrawable]("GI.Gtk.Objects.Widget#g:method:isDrawable"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [isFocus]("GI.Gtk.Objects.Widget#g:method:isFocus"), [isSensitive]("GI.Gtk.Objects.Widget#g:method:isSensitive"), [isVisible]("GI.Gtk.Objects.Widget#g:method:isVisible"), [keynavFailed]("GI.Gtk.Objects.Widget#g:method:keynavFailed"), [listMnemonicLabels]("GI.Gtk.Objects.Widget#g:method:listMnemonicLabels"), [map]("GI.Gtk.Objects.Widget#g:method:map"), [measure]("GI.Gtk.Objects.Widget#g:method:measure"), [mnemonicActivate]("GI.Gtk.Objects.Widget#g:method:mnemonicActivate"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [observeChildren]("GI.Gtk.Objects.Widget#g:method:observeChildren"), [observeControllers]("GI.Gtk.Objects.Widget#g:method:observeControllers"), [pick]("GI.Gtk.Objects.Widget#g:method:pick"), [queueAllocate]("GI.Gtk.Objects.Widget#g:method:queueAllocate"), [queueDraw]("GI.Gtk.Objects.Widget#g:method:queueDraw"), [queueResize]("GI.Gtk.Objects.Widget#g:method:queueResize"), [realize]("GI.Gtk.Objects.Widget#g:method:realize"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [removeBreakpoint]("GI.Adw.Objects.BreakpointBin#g:method:removeBreakpoint"), [removeController]("GI.Gtk.Objects.Widget#g:method:removeController"), [removeCssClass]("GI.Gtk.Objects.Widget#g:method:removeCssClass"), [removeMnemonicLabel]("GI.Gtk.Objects.Widget#g:method:removeMnemonicLabel"), [removeTickCallback]("GI.Gtk.Objects.Widget#g:method:removeTickCallback"), [resetProperty]("GI.Gtk.Interfaces.Accessible#g:method:resetProperty"), [resetRelation]("GI.Gtk.Interfaces.Accessible#g:method:resetRelation"), [resetState]("GI.Gtk.Interfaces.Accessible#g:method:resetState"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [shouldLayout]("GI.Gtk.Objects.Widget#g:method:shouldLayout"), [show]("GI.Gtk.Objects.Widget#g:method:show"), [sizeAllocate]("GI.Gtk.Objects.Widget#g:method:sizeAllocate"), [snapshotChild]("GI.Gtk.Objects.Widget#g:method:snapshotChild"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [translateCoordinates]("GI.Gtk.Objects.Widget#g:method:translateCoordinates"), [triggerTooltipQuery]("GI.Gtk.Objects.Widget#g:method:triggerTooltipQuery"), [unmap]("GI.Gtk.Objects.Widget#g:method:unmap"), [unparent]("GI.Gtk.Objects.Widget#g:method:unparent"), [unrealize]("GI.Gtk.Objects.Widget#g:method:unrealize"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [unsetStateFlags]("GI.Gtk.Objects.Widget#g:method:unsetStateFlags"), [updateNextAccessibleSibling]("GI.Gtk.Interfaces.Accessible#g:method:updateNextAccessibleSibling"), [updateProperty]("GI.Gtk.Interfaces.Accessible#g:method:updateProperty"), [updateRelation]("GI.Gtk.Interfaces.Accessible#g:method:updateRelation"), [updateState]("GI.Gtk.Interfaces.Accessible#g:method:updateState"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getAccessibleParent]("GI.Gtk.Interfaces.Accessible#g:method:getAccessibleParent"), [getAccessibleRole]("GI.Gtk.Interfaces.Accessible#g:method:getAccessibleRole"), [getAllocatedBaseline]("GI.Gtk.Objects.Widget#g:method:getAllocatedBaseline"), [getAllocatedHeight]("GI.Gtk.Objects.Widget#g:method:getAllocatedHeight"), [getAllocatedWidth]("GI.Gtk.Objects.Widget#g:method:getAllocatedWidth"), [getAllocation]("GI.Gtk.Objects.Widget#g:method:getAllocation"), [getAncestor]("GI.Gtk.Objects.Widget#g:method:getAncestor"), [getAtContext]("GI.Gtk.Interfaces.Accessible#g:method:getAtContext"), [getBaseline]("GI.Gtk.Objects.Widget#g:method:getBaseline"), [getBounds]("GI.Gtk.Interfaces.Accessible#g:method:getBounds"), [getBuildableId]("GI.Gtk.Interfaces.Buildable#g:method:getBuildableId"), [getCanFocus]("GI.Gtk.Objects.Widget#g:method:getCanFocus"), [getCanTarget]("GI.Gtk.Objects.Widget#g:method:getCanTarget"), [getChild]("GI.Adw.Objects.BreakpointBin#g:method:getChild"), [getChildVisible]("GI.Gtk.Objects.Widget#g:method:getChildVisible"), [getClipboard]("GI.Gtk.Objects.Widget#g:method:getClipboard"), [getColor]("GI.Gtk.Objects.Widget#g:method:getColor"), [getCssClasses]("GI.Gtk.Objects.Widget#g:method:getCssClasses"), [getCssName]("GI.Gtk.Objects.Widget#g:method:getCssName"), [getCurrentBreakpoint]("GI.Adw.Objects.BreakpointBin#g:method:getCurrentBreakpoint"), [getCursor]("GI.Gtk.Objects.Widget#g:method:getCursor"), [getData]("GI.GObject.Objects.Object#g:method:getData"), [getDirection]("GI.Gtk.Objects.Widget#g:method:getDirection"), [getDisplay]("GI.Gtk.Objects.Widget#g:method:getDisplay"), [getFirstAccessibleChild]("GI.Gtk.Interfaces.Accessible#g:method:getFirstAccessibleChild"), [getFirstChild]("GI.Gtk.Objects.Widget#g:method:getFirstChild"), [getFocusChild]("GI.Gtk.Objects.Widget#g:method:getFocusChild"), [getFocusOnClick]("GI.Gtk.Objects.Widget#g:method:getFocusOnClick"), [getFocusable]("GI.Gtk.Objects.Widget#g:method:getFocusable"), [getFontMap]("GI.Gtk.Objects.Widget#g:method:getFontMap"), [getFontOptions]("GI.Gtk.Objects.Widget#g:method:getFontOptions"), [getFrameClock]("GI.Gtk.Objects.Widget#g:method:getFrameClock"), [getHalign]("GI.Gtk.Objects.Widget#g:method:getHalign"), [getHasTooltip]("GI.Gtk.Objects.Widget#g:method:getHasTooltip"), [getHeight]("GI.Gtk.Objects.Widget#g:method:getHeight"), [getHexpand]("GI.Gtk.Objects.Widget#g:method:getHexpand"), [getHexpandSet]("GI.Gtk.Objects.Widget#g:method:getHexpandSet"), [getLastChild]("GI.Gtk.Objects.Widget#g:method:getLastChild"), [getLayoutManager]("GI.Gtk.Objects.Widget#g:method:getLayoutManager"), [getMapped]("GI.Gtk.Objects.Widget#g:method:getMapped"), [getMarginBottom]("GI.Gtk.Objects.Widget#g:method:getMarginBottom"), [getMarginEnd]("GI.Gtk.Objects.Widget#g:method:getMarginEnd"), [getMarginStart]("GI.Gtk.Objects.Widget#g:method:getMarginStart"), [getMarginTop]("GI.Gtk.Objects.Widget#g:method:getMarginTop"), [getName]("GI.Gtk.Objects.Widget#g:method:getName"), [getNative]("GI.Gtk.Objects.Widget#g:method:getNative"), [getNextAccessibleSibling]("GI.Gtk.Interfaces.Accessible#g:method:getNextAccessibleSibling"), [getNextSibling]("GI.Gtk.Objects.Widget#g:method:getNextSibling"), [getOpacity]("GI.Gtk.Objects.Widget#g:method:getOpacity"), [getOverflow]("GI.Gtk.Objects.Widget#g:method:getOverflow"), [getPangoContext]("GI.Gtk.Objects.Widget#g:method:getPangoContext"), [getParent]("GI.Gtk.Objects.Widget#g:method:getParent"), [getPlatformState]("GI.Gtk.Interfaces.Accessible#g:method:getPlatformState"), [getPreferredSize]("GI.Gtk.Objects.Widget#g:method:getPreferredSize"), [getPrevSibling]("GI.Gtk.Objects.Widget#g:method:getPrevSibling"), [getPrimaryClipboard]("GI.Gtk.Objects.Widget#g:method:getPrimaryClipboard"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getRealized]("GI.Gtk.Objects.Widget#g:method:getRealized"), [getReceivesDefault]("GI.Gtk.Objects.Widget#g:method:getReceivesDefault"), [getRequestMode]("GI.Gtk.Objects.Widget#g:method:getRequestMode"), [getRoot]("GI.Gtk.Objects.Widget#g:method:getRoot"), [getScaleFactor]("GI.Gtk.Objects.Widget#g:method:getScaleFactor"), [getSensitive]("GI.Gtk.Objects.Widget#g:method:getSensitive"), [getSettings]("GI.Gtk.Objects.Widget#g:method:getSettings"), [getSize]("GI.Gtk.Objects.Widget#g:method:getSize"), [getSizeRequest]("GI.Gtk.Objects.Widget#g:method:getSizeRequest"), [getStateFlags]("GI.Gtk.Objects.Widget#g:method:getStateFlags"), [getStyleContext]("GI.Gtk.Objects.Widget#g:method:getStyleContext"), [getTemplateChild]("GI.Gtk.Objects.Widget#g:method:getTemplateChild"), [getTooltipMarkup]("GI.Gtk.Objects.Widget#g:method:getTooltipMarkup"), [getTooltipText]("GI.Gtk.Objects.Widget#g:method:getTooltipText"), [getValign]("GI.Gtk.Objects.Widget#g:method:getValign"), [getVexpand]("GI.Gtk.Objects.Widget#g:method:getVexpand"), [getVexpandSet]("GI.Gtk.Objects.Widget#g:method:getVexpandSet"), [getVisible]("GI.Gtk.Objects.Widget#g:method:getVisible"), [getWidth]("GI.Gtk.Objects.Widget#g:method:getWidth").
-- 
-- ==== Setters
-- [setAccessibleParent]("GI.Gtk.Interfaces.Accessible#g:method:setAccessibleParent"), [setCanFocus]("GI.Gtk.Objects.Widget#g:method:setCanFocus"), [setCanTarget]("GI.Gtk.Objects.Widget#g:method:setCanTarget"), [setChild]("GI.Adw.Objects.BreakpointBin#g:method:setChild"), [setChildVisible]("GI.Gtk.Objects.Widget#g:method:setChildVisible"), [setCssClasses]("GI.Gtk.Objects.Widget#g:method:setCssClasses"), [setCursor]("GI.Gtk.Objects.Widget#g:method:setCursor"), [setCursorFromName]("GI.Gtk.Objects.Widget#g:method:setCursorFromName"), [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setDirection]("GI.Gtk.Objects.Widget#g:method:setDirection"), [setFocusChild]("GI.Gtk.Objects.Widget#g:method:setFocusChild"), [setFocusOnClick]("GI.Gtk.Objects.Widget#g:method:setFocusOnClick"), [setFocusable]("GI.Gtk.Objects.Widget#g:method:setFocusable"), [setFontMap]("GI.Gtk.Objects.Widget#g:method:setFontMap"), [setFontOptions]("GI.Gtk.Objects.Widget#g:method:setFontOptions"), [setHalign]("GI.Gtk.Objects.Widget#g:method:setHalign"), [setHasTooltip]("GI.Gtk.Objects.Widget#g:method:setHasTooltip"), [setHexpand]("GI.Gtk.Objects.Widget#g:method:setHexpand"), [setHexpandSet]("GI.Gtk.Objects.Widget#g:method:setHexpandSet"), [setLayoutManager]("GI.Gtk.Objects.Widget#g:method:setLayoutManager"), [setMarginBottom]("GI.Gtk.Objects.Widget#g:method:setMarginBottom"), [setMarginEnd]("GI.Gtk.Objects.Widget#g:method:setMarginEnd"), [setMarginStart]("GI.Gtk.Objects.Widget#g:method:setMarginStart"), [setMarginTop]("GI.Gtk.Objects.Widget#g:method:setMarginTop"), [setName]("GI.Gtk.Objects.Widget#g:method:setName"), [setOpacity]("GI.Gtk.Objects.Widget#g:method:setOpacity"), [setOverflow]("GI.Gtk.Objects.Widget#g:method:setOverflow"), [setParent]("GI.Gtk.Objects.Widget#g:method:setParent"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty"), [setReceivesDefault]("GI.Gtk.Objects.Widget#g:method:setReceivesDefault"), [setSensitive]("GI.Gtk.Objects.Widget#g:method:setSensitive"), [setSizeRequest]("GI.Gtk.Objects.Widget#g:method:setSizeRequest"), [setStateFlags]("GI.Gtk.Objects.Widget#g:method:setStateFlags"), [setTooltipMarkup]("GI.Gtk.Objects.Widget#g:method:setTooltipMarkup"), [setTooltipText]("GI.Gtk.Objects.Widget#g:method:setTooltipText"), [setValign]("GI.Gtk.Objects.Widget#g:method:setValign"), [setVexpand]("GI.Gtk.Objects.Widget#g:method:setVexpand"), [setVexpandSet]("GI.Gtk.Objects.Widget#g:method:setVexpandSet"), [setVisible]("GI.Gtk.Objects.Widget#g:method:setVisible").

#if defined(ENABLE_OVERLOADING)
    ResolveBreakpointBinMethod              ,
#endif

-- ** addBreakpoint #method:addBreakpoint#

#if defined(ENABLE_OVERLOADING)
    BreakpointBinAddBreakpointMethodInfo    ,
#endif
    breakpointBinAddBreakpoint              ,


-- ** getChild #method:getChild#

#if defined(ENABLE_OVERLOADING)
    BreakpointBinGetChildMethodInfo         ,
#endif
    breakpointBinGetChild                   ,


-- ** getCurrentBreakpoint #method:getCurrentBreakpoint#

#if defined(ENABLE_OVERLOADING)
    BreakpointBinGetCurrentBreakpointMethodInfo,
#endif
    breakpointBinGetCurrentBreakpoint       ,


-- ** new #method:new#

    breakpointBinNew                        ,


-- ** removeBreakpoint #method:removeBreakpoint#

#if defined(ENABLE_OVERLOADING)
    BreakpointBinRemoveBreakpointMethodInfo ,
#endif
    breakpointBinRemoveBreakpoint           ,


-- ** setChild #method:setChild#

#if defined(ENABLE_OVERLOADING)
    BreakpointBinSetChildMethodInfo         ,
#endif
    breakpointBinSetChild                   ,




 -- * Properties


-- ** child #attr:child#
-- | The child widget.
-- 
-- /Since: 1.4/

#if defined(ENABLE_OVERLOADING)
    BreakpointBinChildPropertyInfo          ,
#endif
#if defined(ENABLE_OVERLOADING)
    breakpointBinChild                      ,
#endif
    clearBreakpointBinChild                 ,
    constructBreakpointBinChild             ,
    getBreakpointBinChild                   ,
    setBreakpointBinChild                   ,


-- ** currentBreakpoint #attr:currentBreakpoint#
-- | The current breakpoint.
-- 
-- /Since: 1.4/

#if defined(ENABLE_OVERLOADING)
    BreakpointBinCurrentBreakpointPropertyInfo,
#endif
#if defined(ENABLE_OVERLOADING)
    breakpointBinCurrentBreakpoint          ,
#endif
    getBreakpointBinCurrentBreakpoint       ,




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R
import qualified Data.Word as DW
import qualified Data.Int as DI
import qualified System.Posix.Types as SPT
import qualified Foreign.C.Types as FCT

-- Workaround for https://gitlab.haskell.org/ghc/ghc/-/issues/23392
#if MIN_VERSION_base(4,18,0)
import {-# SOURCE #-} qualified GI.Adw.Enums as Adw.Enums
import {-# SOURCE #-} qualified GI.Adw.Objects.Breakpoint as Adw.Breakpoint
import {-# SOURCE #-} qualified GI.Adw.Structs.BreakpointCondition as Adw.BreakpointCondition
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gtk.Interfaces.Accessible as Gtk.Accessible
import qualified GI.Gtk.Interfaces.Buildable as Gtk.Buildable
import qualified GI.Gtk.Interfaces.ConstraintTarget as Gtk.ConstraintTarget
import qualified GI.Gtk.Objects.Widget as Gtk.Widget

#else
import {-# SOURCE #-} qualified GI.Adw.Objects.Breakpoint as Adw.Breakpoint
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gtk.Interfaces.Accessible as Gtk.Accessible
import qualified GI.Gtk.Interfaces.Buildable as Gtk.Buildable
import qualified GI.Gtk.Interfaces.ConstraintTarget as Gtk.ConstraintTarget
import qualified GI.Gtk.Objects.Widget as Gtk.Widget

#endif

-- | Memory-managed wrapper type.
newtype BreakpointBin = BreakpointBin (SP.ManagedPtr BreakpointBin)
    deriving (BreakpointBin -> BreakpointBin -> Bool
(BreakpointBin -> BreakpointBin -> Bool)
-> (BreakpointBin -> BreakpointBin -> Bool) -> Eq BreakpointBin
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BreakpointBin -> BreakpointBin -> Bool
== :: BreakpointBin -> BreakpointBin -> Bool
$c/= :: BreakpointBin -> BreakpointBin -> Bool
/= :: BreakpointBin -> BreakpointBin -> Bool
Eq)

instance SP.ManagedPtrNewtype BreakpointBin where
    toManagedPtr :: BreakpointBin -> ManagedPtr BreakpointBin
toManagedPtr (BreakpointBin ManagedPtr BreakpointBin
p) = ManagedPtr BreakpointBin
p

foreign import ccall "adw_breakpoint_bin_get_type"
    c_adw_breakpoint_bin_get_type :: IO B.Types.GType

instance B.Types.TypedObject BreakpointBin where
    glibType :: IO GType
glibType = IO GType
c_adw_breakpoint_bin_get_type

instance B.Types.GObject BreakpointBin

-- | Type class for types which can be safely cast to `BreakpointBin`, for instance with `toBreakpointBin`.
class (SP.GObject o, O.IsDescendantOf BreakpointBin o) => IsBreakpointBin o
instance (SP.GObject o, O.IsDescendantOf BreakpointBin o) => IsBreakpointBin o

instance O.HasParentTypes BreakpointBin
type instance O.ParentTypes BreakpointBin = '[Gtk.Widget.Widget, GObject.Object.Object, Gtk.Accessible.Accessible, Gtk.Buildable.Buildable, Gtk.ConstraintTarget.ConstraintTarget]

-- | Cast to `BreakpointBin`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toBreakpointBin :: (MIO.MonadIO m, IsBreakpointBin o) => o -> m BreakpointBin
toBreakpointBin :: forall (m :: * -> *) o.
(MonadIO m, IsBreakpointBin o) =>
o -> m BreakpointBin
toBreakpointBin = IO BreakpointBin -> m BreakpointBin
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO BreakpointBin -> m BreakpointBin)
-> (o -> IO BreakpointBin) -> o -> m BreakpointBin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr BreakpointBin -> BreakpointBin)
-> o -> IO BreakpointBin
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr BreakpointBin -> BreakpointBin
BreakpointBin

-- | Convert 'BreakpointBin' to and from 'Data.GI.Base.GValue.GValue'. See 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue (Maybe BreakpointBin) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_adw_breakpoint_bin_get_type
    gvalueSet_ :: Ptr GValue -> Maybe BreakpointBin -> IO ()
gvalueSet_ Ptr GValue
gv Maybe BreakpointBin
P.Nothing = Ptr GValue -> Ptr BreakpointBin -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr BreakpointBin
forall a. Ptr a
FP.nullPtr :: FP.Ptr BreakpointBin)
    gvalueSet_ Ptr GValue
gv (P.Just BreakpointBin
obj) = BreakpointBin -> (Ptr BreakpointBin -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr BreakpointBin
obj (Ptr GValue -> Ptr BreakpointBin -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe BreakpointBin)
gvalueGet_ Ptr GValue
gv = do
        Ptr BreakpointBin
ptr <- Ptr GValue -> IO (Ptr BreakpointBin)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr BreakpointBin)
        if Ptr BreakpointBin
ptr Ptr BreakpointBin -> Ptr BreakpointBin -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr BreakpointBin
forall a. Ptr a
FP.nullPtr
        then BreakpointBin -> Maybe BreakpointBin
forall a. a -> Maybe a
P.Just (BreakpointBin -> Maybe BreakpointBin)
-> IO BreakpointBin -> IO (Maybe BreakpointBin)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr BreakpointBin -> BreakpointBin)
-> Ptr BreakpointBin -> IO BreakpointBin
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr BreakpointBin -> BreakpointBin
BreakpointBin Ptr BreakpointBin
ptr
        else Maybe BreakpointBin -> IO (Maybe BreakpointBin)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe BreakpointBin
forall a. Maybe a
P.Nothing
        
    

#if defined(ENABLE_OVERLOADING)
type family ResolveBreakpointBinMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveBreakpointBinMethod "actionSetEnabled" o = Gtk.Widget.WidgetActionSetEnabledMethodInfo
    ResolveBreakpointBinMethod "activate" o = Gtk.Widget.WidgetActivateMethodInfo
    ResolveBreakpointBinMethod "activateAction" o = Gtk.Widget.WidgetActivateActionMethodInfo
    ResolveBreakpointBinMethod "activateDefault" o = Gtk.Widget.WidgetActivateDefaultMethodInfo
    ResolveBreakpointBinMethod "addBreakpoint" o = BreakpointBinAddBreakpointMethodInfo
    ResolveBreakpointBinMethod "addController" o = Gtk.Widget.WidgetAddControllerMethodInfo
    ResolveBreakpointBinMethod "addCssClass" o = Gtk.Widget.WidgetAddCssClassMethodInfo
    ResolveBreakpointBinMethod "addMnemonicLabel" o = Gtk.Widget.WidgetAddMnemonicLabelMethodInfo
    ResolveBreakpointBinMethod "addTickCallback" o = Gtk.Widget.WidgetAddTickCallbackMethodInfo
    ResolveBreakpointBinMethod "allocate" o = Gtk.Widget.WidgetAllocateMethodInfo
    ResolveBreakpointBinMethod "announce" o = Gtk.Accessible.AccessibleAnnounceMethodInfo
    ResolveBreakpointBinMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveBreakpointBinMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveBreakpointBinMethod "childFocus" o = Gtk.Widget.WidgetChildFocusMethodInfo
    ResolveBreakpointBinMethod "computeBounds" o = Gtk.Widget.WidgetComputeBoundsMethodInfo
    ResolveBreakpointBinMethod "computeExpand" o = Gtk.Widget.WidgetComputeExpandMethodInfo
    ResolveBreakpointBinMethod "computePoint" o = Gtk.Widget.WidgetComputePointMethodInfo
    ResolveBreakpointBinMethod "computeTransform" o = Gtk.Widget.WidgetComputeTransformMethodInfo
    ResolveBreakpointBinMethod "contains" o = Gtk.Widget.WidgetContainsMethodInfo
    ResolveBreakpointBinMethod "createPangoContext" o = Gtk.Widget.WidgetCreatePangoContextMethodInfo
    ResolveBreakpointBinMethod "createPangoLayout" o = Gtk.Widget.WidgetCreatePangoLayoutMethodInfo
    ResolveBreakpointBinMethod "disposeTemplate" o = Gtk.Widget.WidgetDisposeTemplateMethodInfo
    ResolveBreakpointBinMethod "dragCheckThreshold" o = Gtk.Widget.WidgetDragCheckThresholdMethodInfo
    ResolveBreakpointBinMethod "errorBell" o = Gtk.Widget.WidgetErrorBellMethodInfo
    ResolveBreakpointBinMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveBreakpointBinMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveBreakpointBinMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveBreakpointBinMethod "grabFocus" o = Gtk.Widget.WidgetGrabFocusMethodInfo
    ResolveBreakpointBinMethod "hasCssClass" o = Gtk.Widget.WidgetHasCssClassMethodInfo
    ResolveBreakpointBinMethod "hasDefault" o = Gtk.Widget.WidgetHasDefaultMethodInfo
    ResolveBreakpointBinMethod "hasFocus" o = Gtk.Widget.WidgetHasFocusMethodInfo
    ResolveBreakpointBinMethod "hasVisibleFocus" o = Gtk.Widget.WidgetHasVisibleFocusMethodInfo
    ResolveBreakpointBinMethod "hide" o = Gtk.Widget.WidgetHideMethodInfo
    ResolveBreakpointBinMethod "inDestruction" o = Gtk.Widget.WidgetInDestructionMethodInfo
    ResolveBreakpointBinMethod "initTemplate" o = Gtk.Widget.WidgetInitTemplateMethodInfo
    ResolveBreakpointBinMethod "insertActionGroup" o = Gtk.Widget.WidgetInsertActionGroupMethodInfo
    ResolveBreakpointBinMethod "insertAfter" o = Gtk.Widget.WidgetInsertAfterMethodInfo
    ResolveBreakpointBinMethod "insertBefore" o = Gtk.Widget.WidgetInsertBeforeMethodInfo
    ResolveBreakpointBinMethod "isAncestor" o = Gtk.Widget.WidgetIsAncestorMethodInfo
    ResolveBreakpointBinMethod "isDrawable" o = Gtk.Widget.WidgetIsDrawableMethodInfo
    ResolveBreakpointBinMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveBreakpointBinMethod "isFocus" o = Gtk.Widget.WidgetIsFocusMethodInfo
    ResolveBreakpointBinMethod "isSensitive" o = Gtk.Widget.WidgetIsSensitiveMethodInfo
    ResolveBreakpointBinMethod "isVisible" o = Gtk.Widget.WidgetIsVisibleMethodInfo
    ResolveBreakpointBinMethod "keynavFailed" o = Gtk.Widget.WidgetKeynavFailedMethodInfo
    ResolveBreakpointBinMethod "listMnemonicLabels" o = Gtk.Widget.WidgetListMnemonicLabelsMethodInfo
    ResolveBreakpointBinMethod "map" o = Gtk.Widget.WidgetMapMethodInfo
    ResolveBreakpointBinMethod "measure" o = Gtk.Widget.WidgetMeasureMethodInfo
    ResolveBreakpointBinMethod "mnemonicActivate" o = Gtk.Widget.WidgetMnemonicActivateMethodInfo
    ResolveBreakpointBinMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveBreakpointBinMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveBreakpointBinMethod "observeChildren" o = Gtk.Widget.WidgetObserveChildrenMethodInfo
    ResolveBreakpointBinMethod "observeControllers" o = Gtk.Widget.WidgetObserveControllersMethodInfo
    ResolveBreakpointBinMethod "pick" o = Gtk.Widget.WidgetPickMethodInfo
    ResolveBreakpointBinMethod "queueAllocate" o = Gtk.Widget.WidgetQueueAllocateMethodInfo
    ResolveBreakpointBinMethod "queueDraw" o = Gtk.Widget.WidgetQueueDrawMethodInfo
    ResolveBreakpointBinMethod "queueResize" o = Gtk.Widget.WidgetQueueResizeMethodInfo
    ResolveBreakpointBinMethod "realize" o = Gtk.Widget.WidgetRealizeMethodInfo
    ResolveBreakpointBinMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveBreakpointBinMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveBreakpointBinMethod "removeBreakpoint" o = BreakpointBinRemoveBreakpointMethodInfo
    ResolveBreakpointBinMethod "removeController" o = Gtk.Widget.WidgetRemoveControllerMethodInfo
    ResolveBreakpointBinMethod "removeCssClass" o = Gtk.Widget.WidgetRemoveCssClassMethodInfo
    ResolveBreakpointBinMethod "removeMnemonicLabel" o = Gtk.Widget.WidgetRemoveMnemonicLabelMethodInfo
    ResolveBreakpointBinMethod "removeTickCallback" o = Gtk.Widget.WidgetRemoveTickCallbackMethodInfo
    ResolveBreakpointBinMethod "resetProperty" o = Gtk.Accessible.AccessibleResetPropertyMethodInfo
    ResolveBreakpointBinMethod "resetRelation" o = Gtk.Accessible.AccessibleResetRelationMethodInfo
    ResolveBreakpointBinMethod "resetState" o = Gtk.Accessible.AccessibleResetStateMethodInfo
    ResolveBreakpointBinMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveBreakpointBinMethod "shouldLayout" o = Gtk.Widget.WidgetShouldLayoutMethodInfo
    ResolveBreakpointBinMethod "show" o = Gtk.Widget.WidgetShowMethodInfo
    ResolveBreakpointBinMethod "sizeAllocate" o = Gtk.Widget.WidgetSizeAllocateMethodInfo
    ResolveBreakpointBinMethod "snapshotChild" o = Gtk.Widget.WidgetSnapshotChildMethodInfo
    ResolveBreakpointBinMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveBreakpointBinMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveBreakpointBinMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveBreakpointBinMethod "translateCoordinates" o = Gtk.Widget.WidgetTranslateCoordinatesMethodInfo
    ResolveBreakpointBinMethod "triggerTooltipQuery" o = Gtk.Widget.WidgetTriggerTooltipQueryMethodInfo
    ResolveBreakpointBinMethod "unmap" o = Gtk.Widget.WidgetUnmapMethodInfo
    ResolveBreakpointBinMethod "unparent" o = Gtk.Widget.WidgetUnparentMethodInfo
    ResolveBreakpointBinMethod "unrealize" o = Gtk.Widget.WidgetUnrealizeMethodInfo
    ResolveBreakpointBinMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveBreakpointBinMethod "unsetStateFlags" o = Gtk.Widget.WidgetUnsetStateFlagsMethodInfo
    ResolveBreakpointBinMethod "updateNextAccessibleSibling" o = Gtk.Accessible.AccessibleUpdateNextAccessibleSiblingMethodInfo
    ResolveBreakpointBinMethod "updateProperty" o = Gtk.Accessible.AccessibleUpdatePropertyMethodInfo
    ResolveBreakpointBinMethod "updateRelation" o = Gtk.Accessible.AccessibleUpdateRelationMethodInfo
    ResolveBreakpointBinMethod "updateState" o = Gtk.Accessible.AccessibleUpdateStateMethodInfo
    ResolveBreakpointBinMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveBreakpointBinMethod "getAccessibleParent" o = Gtk.Accessible.AccessibleGetAccessibleParentMethodInfo
    ResolveBreakpointBinMethod "getAccessibleRole" o = Gtk.Accessible.AccessibleGetAccessibleRoleMethodInfo
    ResolveBreakpointBinMethod "getAllocatedBaseline" o = Gtk.Widget.WidgetGetAllocatedBaselineMethodInfo
    ResolveBreakpointBinMethod "getAllocatedHeight" o = Gtk.Widget.WidgetGetAllocatedHeightMethodInfo
    ResolveBreakpointBinMethod "getAllocatedWidth" o = Gtk.Widget.WidgetGetAllocatedWidthMethodInfo
    ResolveBreakpointBinMethod "getAllocation" o = Gtk.Widget.WidgetGetAllocationMethodInfo
    ResolveBreakpointBinMethod "getAncestor" o = Gtk.Widget.WidgetGetAncestorMethodInfo
    ResolveBreakpointBinMethod "getAtContext" o = Gtk.Accessible.AccessibleGetAtContextMethodInfo
    ResolveBreakpointBinMethod "getBaseline" o = Gtk.Widget.WidgetGetBaselineMethodInfo
    ResolveBreakpointBinMethod "getBounds" o = Gtk.Accessible.AccessibleGetBoundsMethodInfo
    ResolveBreakpointBinMethod "getBuildableId" o = Gtk.Buildable.BuildableGetBuildableIdMethodInfo
    ResolveBreakpointBinMethod "getCanFocus" o = Gtk.Widget.WidgetGetCanFocusMethodInfo
    ResolveBreakpointBinMethod "getCanTarget" o = Gtk.Widget.WidgetGetCanTargetMethodInfo
    ResolveBreakpointBinMethod "getChild" o = BreakpointBinGetChildMethodInfo
    ResolveBreakpointBinMethod "getChildVisible" o = Gtk.Widget.WidgetGetChildVisibleMethodInfo
    ResolveBreakpointBinMethod "getClipboard" o = Gtk.Widget.WidgetGetClipboardMethodInfo
    ResolveBreakpointBinMethod "getColor" o = Gtk.Widget.WidgetGetColorMethodInfo
    ResolveBreakpointBinMethod "getCssClasses" o = Gtk.Widget.WidgetGetCssClassesMethodInfo
    ResolveBreakpointBinMethod "getCssName" o = Gtk.Widget.WidgetGetCssNameMethodInfo
    ResolveBreakpointBinMethod "getCurrentBreakpoint" o = BreakpointBinGetCurrentBreakpointMethodInfo
    ResolveBreakpointBinMethod "getCursor" o = Gtk.Widget.WidgetGetCursorMethodInfo
    ResolveBreakpointBinMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveBreakpointBinMethod "getDirection" o = Gtk.Widget.WidgetGetDirectionMethodInfo
    ResolveBreakpointBinMethod "getDisplay" o = Gtk.Widget.WidgetGetDisplayMethodInfo
    ResolveBreakpointBinMethod "getFirstAccessibleChild" o = Gtk.Accessible.AccessibleGetFirstAccessibleChildMethodInfo
    ResolveBreakpointBinMethod "getFirstChild" o = Gtk.Widget.WidgetGetFirstChildMethodInfo
    ResolveBreakpointBinMethod "getFocusChild" o = Gtk.Widget.WidgetGetFocusChildMethodInfo
    ResolveBreakpointBinMethod "getFocusOnClick" o = Gtk.Widget.WidgetGetFocusOnClickMethodInfo
    ResolveBreakpointBinMethod "getFocusable" o = Gtk.Widget.WidgetGetFocusableMethodInfo
    ResolveBreakpointBinMethod "getFontMap" o = Gtk.Widget.WidgetGetFontMapMethodInfo
    ResolveBreakpointBinMethod "getFontOptions" o = Gtk.Widget.WidgetGetFontOptionsMethodInfo
    ResolveBreakpointBinMethod "getFrameClock" o = Gtk.Widget.WidgetGetFrameClockMethodInfo
    ResolveBreakpointBinMethod "getHalign" o = Gtk.Widget.WidgetGetHalignMethodInfo
    ResolveBreakpointBinMethod "getHasTooltip" o = Gtk.Widget.WidgetGetHasTooltipMethodInfo
    ResolveBreakpointBinMethod "getHeight" o = Gtk.Widget.WidgetGetHeightMethodInfo
    ResolveBreakpointBinMethod "getHexpand" o = Gtk.Widget.WidgetGetHexpandMethodInfo
    ResolveBreakpointBinMethod "getHexpandSet" o = Gtk.Widget.WidgetGetHexpandSetMethodInfo
    ResolveBreakpointBinMethod "getLastChild" o = Gtk.Widget.WidgetGetLastChildMethodInfo
    ResolveBreakpointBinMethod "getLayoutManager" o = Gtk.Widget.WidgetGetLayoutManagerMethodInfo
    ResolveBreakpointBinMethod "getMapped" o = Gtk.Widget.WidgetGetMappedMethodInfo
    ResolveBreakpointBinMethod "getMarginBottom" o = Gtk.Widget.WidgetGetMarginBottomMethodInfo
    ResolveBreakpointBinMethod "getMarginEnd" o = Gtk.Widget.WidgetGetMarginEndMethodInfo
    ResolveBreakpointBinMethod "getMarginStart" o = Gtk.Widget.WidgetGetMarginStartMethodInfo
    ResolveBreakpointBinMethod "getMarginTop" o = Gtk.Widget.WidgetGetMarginTopMethodInfo
    ResolveBreakpointBinMethod "getName" o = Gtk.Widget.WidgetGetNameMethodInfo
    ResolveBreakpointBinMethod "getNative" o = Gtk.Widget.WidgetGetNativeMethodInfo
    ResolveBreakpointBinMethod "getNextAccessibleSibling" o = Gtk.Accessible.AccessibleGetNextAccessibleSiblingMethodInfo
    ResolveBreakpointBinMethod "getNextSibling" o = Gtk.Widget.WidgetGetNextSiblingMethodInfo
    ResolveBreakpointBinMethod "getOpacity" o = Gtk.Widget.WidgetGetOpacityMethodInfo
    ResolveBreakpointBinMethod "getOverflow" o = Gtk.Widget.WidgetGetOverflowMethodInfo
    ResolveBreakpointBinMethod "getPangoContext" o = Gtk.Widget.WidgetGetPangoContextMethodInfo
    ResolveBreakpointBinMethod "getParent" o = Gtk.Widget.WidgetGetParentMethodInfo
    ResolveBreakpointBinMethod "getPlatformState" o = Gtk.Accessible.AccessibleGetPlatformStateMethodInfo
    ResolveBreakpointBinMethod "getPreferredSize" o = Gtk.Widget.WidgetGetPreferredSizeMethodInfo
    ResolveBreakpointBinMethod "getPrevSibling" o = Gtk.Widget.WidgetGetPrevSiblingMethodInfo
    ResolveBreakpointBinMethod "getPrimaryClipboard" o = Gtk.Widget.WidgetGetPrimaryClipboardMethodInfo
    ResolveBreakpointBinMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveBreakpointBinMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveBreakpointBinMethod "getRealized" o = Gtk.Widget.WidgetGetRealizedMethodInfo
    ResolveBreakpointBinMethod "getReceivesDefault" o = Gtk.Widget.WidgetGetReceivesDefaultMethodInfo
    ResolveBreakpointBinMethod "getRequestMode" o = Gtk.Widget.WidgetGetRequestModeMethodInfo
    ResolveBreakpointBinMethod "getRoot" o = Gtk.Widget.WidgetGetRootMethodInfo
    ResolveBreakpointBinMethod "getScaleFactor" o = Gtk.Widget.WidgetGetScaleFactorMethodInfo
    ResolveBreakpointBinMethod "getSensitive" o = Gtk.Widget.WidgetGetSensitiveMethodInfo
    ResolveBreakpointBinMethod "getSettings" o = Gtk.Widget.WidgetGetSettingsMethodInfo
    ResolveBreakpointBinMethod "getSize" o = Gtk.Widget.WidgetGetSizeMethodInfo
    ResolveBreakpointBinMethod "getSizeRequest" o = Gtk.Widget.WidgetGetSizeRequestMethodInfo
    ResolveBreakpointBinMethod "getStateFlags" o = Gtk.Widget.WidgetGetStateFlagsMethodInfo
    ResolveBreakpointBinMethod "getStyleContext" o = Gtk.Widget.WidgetGetStyleContextMethodInfo
    ResolveBreakpointBinMethod "getTemplateChild" o = Gtk.Widget.WidgetGetTemplateChildMethodInfo
    ResolveBreakpointBinMethod "getTooltipMarkup" o = Gtk.Widget.WidgetGetTooltipMarkupMethodInfo
    ResolveBreakpointBinMethod "getTooltipText" o = Gtk.Widget.WidgetGetTooltipTextMethodInfo
    ResolveBreakpointBinMethod "getValign" o = Gtk.Widget.WidgetGetValignMethodInfo
    ResolveBreakpointBinMethod "getVexpand" o = Gtk.Widget.WidgetGetVexpandMethodInfo
    ResolveBreakpointBinMethod "getVexpandSet" o = Gtk.Widget.WidgetGetVexpandSetMethodInfo
    ResolveBreakpointBinMethod "getVisible" o = Gtk.Widget.WidgetGetVisibleMethodInfo
    ResolveBreakpointBinMethod "getWidth" o = Gtk.Widget.WidgetGetWidthMethodInfo
    ResolveBreakpointBinMethod "setAccessibleParent" o = Gtk.Accessible.AccessibleSetAccessibleParentMethodInfo
    ResolveBreakpointBinMethod "setCanFocus" o = Gtk.Widget.WidgetSetCanFocusMethodInfo
    ResolveBreakpointBinMethod "setCanTarget" o = Gtk.Widget.WidgetSetCanTargetMethodInfo
    ResolveBreakpointBinMethod "setChild" o = BreakpointBinSetChildMethodInfo
    ResolveBreakpointBinMethod "setChildVisible" o = Gtk.Widget.WidgetSetChildVisibleMethodInfo
    ResolveBreakpointBinMethod "setCssClasses" o = Gtk.Widget.WidgetSetCssClassesMethodInfo
    ResolveBreakpointBinMethod "setCursor" o = Gtk.Widget.WidgetSetCursorMethodInfo
    ResolveBreakpointBinMethod "setCursorFromName" o = Gtk.Widget.WidgetSetCursorFromNameMethodInfo
    ResolveBreakpointBinMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveBreakpointBinMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveBreakpointBinMethod "setDirection" o = Gtk.Widget.WidgetSetDirectionMethodInfo
    ResolveBreakpointBinMethod "setFocusChild" o = Gtk.Widget.WidgetSetFocusChildMethodInfo
    ResolveBreakpointBinMethod "setFocusOnClick" o = Gtk.Widget.WidgetSetFocusOnClickMethodInfo
    ResolveBreakpointBinMethod "setFocusable" o = Gtk.Widget.WidgetSetFocusableMethodInfo
    ResolveBreakpointBinMethod "setFontMap" o = Gtk.Widget.WidgetSetFontMapMethodInfo
    ResolveBreakpointBinMethod "setFontOptions" o = Gtk.Widget.WidgetSetFontOptionsMethodInfo
    ResolveBreakpointBinMethod "setHalign" o = Gtk.Widget.WidgetSetHalignMethodInfo
    ResolveBreakpointBinMethod "setHasTooltip" o = Gtk.Widget.WidgetSetHasTooltipMethodInfo
    ResolveBreakpointBinMethod "setHexpand" o = Gtk.Widget.WidgetSetHexpandMethodInfo
    ResolveBreakpointBinMethod "setHexpandSet" o = Gtk.Widget.WidgetSetHexpandSetMethodInfo
    ResolveBreakpointBinMethod "setLayoutManager" o = Gtk.Widget.WidgetSetLayoutManagerMethodInfo
    ResolveBreakpointBinMethod "setMarginBottom" o = Gtk.Widget.WidgetSetMarginBottomMethodInfo
    ResolveBreakpointBinMethod "setMarginEnd" o = Gtk.Widget.WidgetSetMarginEndMethodInfo
    ResolveBreakpointBinMethod "setMarginStart" o = Gtk.Widget.WidgetSetMarginStartMethodInfo
    ResolveBreakpointBinMethod "setMarginTop" o = Gtk.Widget.WidgetSetMarginTopMethodInfo
    ResolveBreakpointBinMethod "setName" o = Gtk.Widget.WidgetSetNameMethodInfo
    ResolveBreakpointBinMethod "setOpacity" o = Gtk.Widget.WidgetSetOpacityMethodInfo
    ResolveBreakpointBinMethod "setOverflow" o = Gtk.Widget.WidgetSetOverflowMethodInfo
    ResolveBreakpointBinMethod "setParent" o = Gtk.Widget.WidgetSetParentMethodInfo
    ResolveBreakpointBinMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveBreakpointBinMethod "setReceivesDefault" o = Gtk.Widget.WidgetSetReceivesDefaultMethodInfo
    ResolveBreakpointBinMethod "setSensitive" o = Gtk.Widget.WidgetSetSensitiveMethodInfo
    ResolveBreakpointBinMethod "setSizeRequest" o = Gtk.Widget.WidgetSetSizeRequestMethodInfo
    ResolveBreakpointBinMethod "setStateFlags" o = Gtk.Widget.WidgetSetStateFlagsMethodInfo
    ResolveBreakpointBinMethod "setTooltipMarkup" o = Gtk.Widget.WidgetSetTooltipMarkupMethodInfo
    ResolveBreakpointBinMethod "setTooltipText" o = Gtk.Widget.WidgetSetTooltipTextMethodInfo
    ResolveBreakpointBinMethod "setValign" o = Gtk.Widget.WidgetSetValignMethodInfo
    ResolveBreakpointBinMethod "setVexpand" o = Gtk.Widget.WidgetSetVexpandMethodInfo
    ResolveBreakpointBinMethod "setVexpandSet" o = Gtk.Widget.WidgetSetVexpandSetMethodInfo
    ResolveBreakpointBinMethod "setVisible" o = Gtk.Widget.WidgetSetVisibleMethodInfo
    ResolveBreakpointBinMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveBreakpointBinMethod t BreakpointBin, O.OverloadedMethod info BreakpointBin p) => OL.IsLabel t (BreakpointBin -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveBreakpointBinMethod t BreakpointBin, O.OverloadedMethod info BreakpointBin p, R.HasField t BreakpointBin p) => R.HasField t BreakpointBin p where
    getField = O.overloadedMethod @info

#endif

instance (info ~ ResolveBreakpointBinMethod t BreakpointBin, O.OverloadedMethodInfo info BreakpointBin) => OL.IsLabel t (O.MethodProxy info BreakpointBin) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.MethodProxy
#else
    fromLabel _ = O.MethodProxy
#endif

#endif

-- VVV Prop "child"
   -- Type: TInterface (Name {namespace = "Gtk", name = "Widget"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just True,Just True)

-- | Get the value of the “@child@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' breakpointBin #child
-- @
getBreakpointBinChild :: (MonadIO m, IsBreakpointBin o) => o -> m (Maybe Gtk.Widget.Widget)
getBreakpointBinChild :: forall (m :: * -> *) o.
(MonadIO m, IsBreakpointBin o) =>
o -> m (Maybe Widget)
getBreakpointBinChild o
obj = IO (Maybe Widget) -> m (Maybe Widget)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe Widget) -> m (Maybe Widget))
-> IO (Maybe Widget) -> m (Maybe Widget)
forall a b. (a -> b) -> a -> b
$ o -> String -> (ManagedPtr Widget -> Widget) -> IO (Maybe Widget)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyObject o
obj String
"child" ManagedPtr Widget -> Widget
Gtk.Widget.Widget

-- | Set the value of the “@child@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' breakpointBin [ #child 'Data.GI.Base.Attributes.:=' value ]
-- @
setBreakpointBinChild :: (MonadIO m, IsBreakpointBin o, Gtk.Widget.IsWidget a) => o -> a -> m ()
setBreakpointBinChild :: forall (m :: * -> *) o a.
(MonadIO m, IsBreakpointBin o, IsWidget a) =>
o -> a -> m ()
setBreakpointBinChild o
obj a
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Maybe a -> IO ()
forall a b.
(GObject a, GObject b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyObject o
obj String
"child" (a -> Maybe a
forall a. a -> Maybe a
Just a
val)

-- | Construct a `GValueConstruct` with valid value for the “@child@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructBreakpointBinChild :: (IsBreakpointBin o, MIO.MonadIO m, Gtk.Widget.IsWidget a) => a -> m (GValueConstruct o)
constructBreakpointBinChild :: forall o (m :: * -> *) a.
(IsBreakpointBin o, MonadIO m, IsWidget a) =>
a -> m (GValueConstruct o)
constructBreakpointBinChild a
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe a -> IO (GValueConstruct o)
forall a o.
GObject a =>
String -> Maybe a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyObject String
"child" (a -> Maybe a
forall a. a -> Maybe a
P.Just a
val)

-- | Set the value of the “@child@” property to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #child
-- @
clearBreakpointBinChild :: (MonadIO m, IsBreakpointBin o) => o -> m ()
clearBreakpointBinChild :: forall (m :: * -> *) o. (MonadIO m, IsBreakpointBin o) => o -> m ()
clearBreakpointBinChild o
obj = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ o -> String -> Maybe Widget -> IO ()
forall a b.
(GObject a, GObject b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyObject o
obj String
"child" (Maybe Widget
forall a. Maybe a
Nothing :: Maybe Gtk.Widget.Widget)

#if defined(ENABLE_OVERLOADING)
data BreakpointBinChildPropertyInfo
instance AttrInfo BreakpointBinChildPropertyInfo where
    type AttrAllowedOps BreakpointBinChildPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint BreakpointBinChildPropertyInfo = IsBreakpointBin
    type AttrSetTypeConstraint BreakpointBinChildPropertyInfo = Gtk.Widget.IsWidget
    type AttrTransferTypeConstraint BreakpointBinChildPropertyInfo = Gtk.Widget.IsWidget
    type AttrTransferType BreakpointBinChildPropertyInfo = Gtk.Widget.Widget
    type AttrGetType BreakpointBinChildPropertyInfo = (Maybe Gtk.Widget.Widget)
    type AttrLabel BreakpointBinChildPropertyInfo = "child"
    type AttrOrigin BreakpointBinChildPropertyInfo = BreakpointBin
    attrGet = getBreakpointBinChild
    attrSet = setBreakpointBinChild
    attrTransfer _ v = do
        unsafeCastTo Gtk.Widget.Widget v
    attrConstruct = constructBreakpointBinChild
    attrClear = clearBreakpointBinChild
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.BreakpointBin.child"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.7/docs/GI-Adw-Objects-BreakpointBin.html#g:attr:child"
        })
#endif

-- VVV Prop "current-breakpoint"
   -- Type: TInterface (Name {namespace = "Adw", name = "Breakpoint"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Just True,Nothing)

-- | Get the value of the “@current-breakpoint@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' breakpointBin #currentBreakpoint
-- @
getBreakpointBinCurrentBreakpoint :: (MonadIO m, IsBreakpointBin o) => o -> m (Maybe Adw.Breakpoint.Breakpoint)
getBreakpointBinCurrentBreakpoint :: forall (m :: * -> *) o.
(MonadIO m, IsBreakpointBin o) =>
o -> m (Maybe Breakpoint)
getBreakpointBinCurrentBreakpoint o
obj = IO (Maybe Breakpoint) -> m (Maybe Breakpoint)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe Breakpoint) -> m (Maybe Breakpoint))
-> IO (Maybe Breakpoint) -> m (Maybe Breakpoint)
forall a b. (a -> b) -> a -> b
$ o
-> String
-> (ManagedPtr Breakpoint -> Breakpoint)
-> IO (Maybe Breakpoint)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyObject o
obj String
"current-breakpoint" ManagedPtr Breakpoint -> Breakpoint
Adw.Breakpoint.Breakpoint

#if defined(ENABLE_OVERLOADING)
data BreakpointBinCurrentBreakpointPropertyInfo
instance AttrInfo BreakpointBinCurrentBreakpointPropertyInfo where
    type AttrAllowedOps BreakpointBinCurrentBreakpointPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint BreakpointBinCurrentBreakpointPropertyInfo = IsBreakpointBin
    type AttrSetTypeConstraint BreakpointBinCurrentBreakpointPropertyInfo = (~) ()
    type AttrTransferTypeConstraint BreakpointBinCurrentBreakpointPropertyInfo = (~) ()
    type AttrTransferType BreakpointBinCurrentBreakpointPropertyInfo = ()
    type AttrGetType BreakpointBinCurrentBreakpointPropertyInfo = (Maybe Adw.Breakpoint.Breakpoint)
    type AttrLabel BreakpointBinCurrentBreakpointPropertyInfo = "current-breakpoint"
    type AttrOrigin BreakpointBinCurrentBreakpointPropertyInfo = BreakpointBin
    attrGet = getBreakpointBinCurrentBreakpoint
    attrSet = undefined
    attrTransfer _ = undefined
    attrConstruct = undefined
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.BreakpointBin.currentBreakpoint"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.7/docs/GI-Adw-Objects-BreakpointBin.html#g:attr:currentBreakpoint"
        })
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList BreakpointBin
type instance O.AttributeList BreakpointBin = BreakpointBinAttributeList
type BreakpointBinAttributeList = ('[ '("accessibleRole", Gtk.Accessible.AccessibleAccessibleRolePropertyInfo), '("canFocus", Gtk.Widget.WidgetCanFocusPropertyInfo), '("canTarget", Gtk.Widget.WidgetCanTargetPropertyInfo), '("child", BreakpointBinChildPropertyInfo), '("cssClasses", Gtk.Widget.WidgetCssClassesPropertyInfo), '("cssName", Gtk.Widget.WidgetCssNamePropertyInfo), '("currentBreakpoint", BreakpointBinCurrentBreakpointPropertyInfo), '("cursor", Gtk.Widget.WidgetCursorPropertyInfo), '("focusOnClick", Gtk.Widget.WidgetFocusOnClickPropertyInfo), '("focusable", Gtk.Widget.WidgetFocusablePropertyInfo), '("halign", Gtk.Widget.WidgetHalignPropertyInfo), '("hasDefault", Gtk.Widget.WidgetHasDefaultPropertyInfo), '("hasFocus", Gtk.Widget.WidgetHasFocusPropertyInfo), '("hasTooltip", Gtk.Widget.WidgetHasTooltipPropertyInfo), '("heightRequest", Gtk.Widget.WidgetHeightRequestPropertyInfo), '("hexpand", Gtk.Widget.WidgetHexpandPropertyInfo), '("hexpandSet", Gtk.Widget.WidgetHexpandSetPropertyInfo), '("layoutManager", Gtk.Widget.WidgetLayoutManagerPropertyInfo), '("marginBottom", Gtk.Widget.WidgetMarginBottomPropertyInfo), '("marginEnd", Gtk.Widget.WidgetMarginEndPropertyInfo), '("marginStart", Gtk.Widget.WidgetMarginStartPropertyInfo), '("marginTop", Gtk.Widget.WidgetMarginTopPropertyInfo), '("name", Gtk.Widget.WidgetNamePropertyInfo), '("opacity", Gtk.Widget.WidgetOpacityPropertyInfo), '("overflow", Gtk.Widget.WidgetOverflowPropertyInfo), '("parent", Gtk.Widget.WidgetParentPropertyInfo), '("receivesDefault", Gtk.Widget.WidgetReceivesDefaultPropertyInfo), '("root", Gtk.Widget.WidgetRootPropertyInfo), '("scaleFactor", Gtk.Widget.WidgetScaleFactorPropertyInfo), '("sensitive", Gtk.Widget.WidgetSensitivePropertyInfo), '("tooltipMarkup", Gtk.Widget.WidgetTooltipMarkupPropertyInfo), '("tooltipText", Gtk.Widget.WidgetTooltipTextPropertyInfo), '("valign", Gtk.Widget.WidgetValignPropertyInfo), '("vexpand", Gtk.Widget.WidgetVexpandPropertyInfo), '("vexpandSet", Gtk.Widget.WidgetVexpandSetPropertyInfo), '("visible", Gtk.Widget.WidgetVisiblePropertyInfo), '("widthRequest", Gtk.Widget.WidgetWidthRequestPropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
breakpointBinChild :: AttrLabelProxy "child"
breakpointBinChild = AttrLabelProxy

breakpointBinCurrentBreakpoint :: AttrLabelProxy "currentBreakpoint"
breakpointBinCurrentBreakpoint = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList BreakpointBin = BreakpointBinSignalList
type BreakpointBinSignalList = ('[ '("destroy", Gtk.Widget.WidgetDestroySignalInfo), '("directionChanged", Gtk.Widget.WidgetDirectionChangedSignalInfo), '("hide", Gtk.Widget.WidgetHideSignalInfo), '("keynavFailed", Gtk.Widget.WidgetKeynavFailedSignalInfo), '("map", Gtk.Widget.WidgetMapSignalInfo), '("mnemonicActivate", Gtk.Widget.WidgetMnemonicActivateSignalInfo), '("moveFocus", Gtk.Widget.WidgetMoveFocusSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("queryTooltip", Gtk.Widget.WidgetQueryTooltipSignalInfo), '("realize", Gtk.Widget.WidgetRealizeSignalInfo), '("show", Gtk.Widget.WidgetShowSignalInfo), '("stateFlagsChanged", Gtk.Widget.WidgetStateFlagsChangedSignalInfo), '("unmap", Gtk.Widget.WidgetUnmapSignalInfo), '("unrealize", Gtk.Widget.WidgetUnrealizeSignalInfo)] :: [(Symbol, DK.Type)])

#endif

-- method BreakpointBin::new
-- method type : Constructor
-- Args: []
-- Lengths: []
-- returnType: Just
--               (TInterface Name { namespace = "Adw" , name = "BreakpointBin" })
-- throws : False
-- Skip return : False

foreign import ccall "adw_breakpoint_bin_new" adw_breakpoint_bin_new :: 
    IO (Ptr BreakpointBin)

-- | Creates a new @AdwBreakpointBin@.
-- 
-- /Since: 1.4/
breakpointBinNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m BreakpointBin
    -- ^ __Returns:__ the newly created @AdwBreakpointBin@
breakpointBinNew :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m BreakpointBin
breakpointBinNew  = IO BreakpointBin -> m BreakpointBin
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO BreakpointBin -> m BreakpointBin)
-> IO BreakpointBin -> m BreakpointBin
forall a b. (a -> b) -> a -> b
$ do
    Ptr BreakpointBin
result <- IO (Ptr BreakpointBin)
adw_breakpoint_bin_new
    Text -> Ptr BreakpointBin -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"breakpointBinNew" Ptr BreakpointBin
result
    BreakpointBin
result' <- ((ManagedPtr BreakpointBin -> BreakpointBin)
-> Ptr BreakpointBin -> IO BreakpointBin
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr BreakpointBin -> BreakpointBin
BreakpointBin) Ptr BreakpointBin
result
    BreakpointBin -> IO BreakpointBin
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return BreakpointBin
result'

#if defined(ENABLE_OVERLOADING)
#endif

-- method BreakpointBin::add_breakpoint
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "BreakpointBin" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a breakpoint bin" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "breakpoint"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "Breakpoint" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the breakpoint to add"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferEverything
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "adw_breakpoint_bin_add_breakpoint" adw_breakpoint_bin_add_breakpoint :: 
    Ptr BreakpointBin ->                    -- self : TInterface (Name {namespace = "Adw", name = "BreakpointBin"})
    Ptr Adw.Breakpoint.Breakpoint ->        -- breakpoint : TInterface (Name {namespace = "Adw", name = "Breakpoint"})
    IO ()

-- | Adds /@breakpoint@/ to /@self@/.
-- 
-- /Since: 1.4/
breakpointBinAddBreakpoint ::
    (B.CallStack.HasCallStack, MonadIO m, IsBreakpointBin a, Adw.Breakpoint.IsBreakpoint b) =>
    a
    -- ^ /@self@/: a breakpoint bin
    -> b
    -- ^ /@breakpoint@/: the breakpoint to add
    -> m ()
breakpointBinAddBreakpoint :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsBreakpointBin a, IsBreakpoint b) =>
a -> b -> m ()
breakpointBinAddBreakpoint a
self b
breakpoint = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr BreakpointBin
self' <- a -> IO (Ptr BreakpointBin)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Breakpoint
breakpoint' <- b -> IO (Ptr Breakpoint)
forall a b. (HasCallStack, GObject a) => a -> IO (Ptr b)
B.ManagedPtr.disownObject b
breakpoint
    Ptr BreakpointBin -> Ptr Breakpoint -> IO ()
adw_breakpoint_bin_add_breakpoint Ptr BreakpointBin
self' Ptr Breakpoint
breakpoint'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
breakpoint
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data BreakpointBinAddBreakpointMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsBreakpointBin a, Adw.Breakpoint.IsBreakpoint b) => O.OverloadedMethod BreakpointBinAddBreakpointMethodInfo a signature where
    overloadedMethod = breakpointBinAddBreakpoint

instance O.OverloadedMethodInfo BreakpointBinAddBreakpointMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.BreakpointBin.breakpointBinAddBreakpoint",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.7/docs/GI-Adw-Objects-BreakpointBin.html#v:breakpointBinAddBreakpoint"
        })


#endif

-- method BreakpointBin::get_child
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "BreakpointBin" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a breakpoint bin" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "Gtk" , name = "Widget" })
-- throws : False
-- Skip return : False

foreign import ccall "adw_breakpoint_bin_get_child" adw_breakpoint_bin_get_child :: 
    Ptr BreakpointBin ->                    -- self : TInterface (Name {namespace = "Adw", name = "BreakpointBin"})
    IO (Ptr Gtk.Widget.Widget)

-- | Gets the child widget of /@self@/.
-- 
-- /Since: 1.4/
breakpointBinGetChild ::
    (B.CallStack.HasCallStack, MonadIO m, IsBreakpointBin a) =>
    a
    -- ^ /@self@/: a breakpoint bin
    -> m (Maybe Gtk.Widget.Widget)
    -- ^ __Returns:__ the child widget of /@self@/
breakpointBinGetChild :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBreakpointBin a) =>
a -> m (Maybe Widget)
breakpointBinGetChild a
self = IO (Maybe Widget) -> m (Maybe Widget)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Widget) -> m (Maybe Widget))
-> IO (Maybe Widget) -> m (Maybe Widget)
forall a b. (a -> b) -> a -> b
$ do
    Ptr BreakpointBin
self' <- a -> IO (Ptr BreakpointBin)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Widget
result <- Ptr BreakpointBin -> IO (Ptr Widget)
adw_breakpoint_bin_get_child Ptr BreakpointBin
self'
    Maybe Widget
maybeResult <- Ptr Widget -> (Ptr Widget -> IO Widget) -> IO (Maybe Widget)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Widget
result ((Ptr Widget -> IO Widget) -> IO (Maybe Widget))
-> (Ptr Widget -> IO Widget) -> IO (Maybe Widget)
forall a b. (a -> b) -> a -> b
$ \Ptr Widget
result' -> do
        Widget
result'' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
result'
        Widget -> IO Widget
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Widget
result''
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Maybe Widget -> IO (Maybe Widget)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Widget
maybeResult

#if defined(ENABLE_OVERLOADING)
data BreakpointBinGetChildMethodInfo
instance (signature ~ (m (Maybe Gtk.Widget.Widget)), MonadIO m, IsBreakpointBin a) => O.OverloadedMethod BreakpointBinGetChildMethodInfo a signature where
    overloadedMethod = breakpointBinGetChild

instance O.OverloadedMethodInfo BreakpointBinGetChildMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.BreakpointBin.breakpointBinGetChild",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.7/docs/GI-Adw-Objects-BreakpointBin.html#v:breakpointBinGetChild"
        })


#endif

-- method BreakpointBin::get_current_breakpoint
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "BreakpointBin" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a breakpoint bin" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "Adw" , name = "Breakpoint" })
-- throws : False
-- Skip return : False

foreign import ccall "adw_breakpoint_bin_get_current_breakpoint" adw_breakpoint_bin_get_current_breakpoint :: 
    Ptr BreakpointBin ->                    -- self : TInterface (Name {namespace = "Adw", name = "BreakpointBin"})
    IO (Ptr Adw.Breakpoint.Breakpoint)

-- | Gets the current breakpoint.
-- 
-- /Since: 1.4/
breakpointBinGetCurrentBreakpoint ::
    (B.CallStack.HasCallStack, MonadIO m, IsBreakpointBin a) =>
    a
    -- ^ /@self@/: a breakpoint bin
    -> m (Maybe Adw.Breakpoint.Breakpoint)
    -- ^ __Returns:__ the current breakpoint
breakpointBinGetCurrentBreakpoint :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBreakpointBin a) =>
a -> m (Maybe Breakpoint)
breakpointBinGetCurrentBreakpoint a
self = IO (Maybe Breakpoint) -> m (Maybe Breakpoint)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Breakpoint) -> m (Maybe Breakpoint))
-> IO (Maybe Breakpoint) -> m (Maybe Breakpoint)
forall a b. (a -> b) -> a -> b
$ do
    Ptr BreakpointBin
self' <- a -> IO (Ptr BreakpointBin)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Breakpoint
result <- Ptr BreakpointBin -> IO (Ptr Breakpoint)
adw_breakpoint_bin_get_current_breakpoint Ptr BreakpointBin
self'
    Maybe Breakpoint
maybeResult <- Ptr Breakpoint
-> (Ptr Breakpoint -> IO Breakpoint) -> IO (Maybe Breakpoint)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Breakpoint
result ((Ptr Breakpoint -> IO Breakpoint) -> IO (Maybe Breakpoint))
-> (Ptr Breakpoint -> IO Breakpoint) -> IO (Maybe Breakpoint)
forall a b. (a -> b) -> a -> b
$ \Ptr Breakpoint
result' -> do
        Breakpoint
result'' <- ((ManagedPtr Breakpoint -> Breakpoint)
-> Ptr Breakpoint -> IO Breakpoint
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Breakpoint -> Breakpoint
Adw.Breakpoint.Breakpoint) Ptr Breakpoint
result'
        Breakpoint -> IO Breakpoint
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Breakpoint
result''
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Maybe Breakpoint -> IO (Maybe Breakpoint)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Breakpoint
maybeResult

#if defined(ENABLE_OVERLOADING)
data BreakpointBinGetCurrentBreakpointMethodInfo
instance (signature ~ (m (Maybe Adw.Breakpoint.Breakpoint)), MonadIO m, IsBreakpointBin a) => O.OverloadedMethod BreakpointBinGetCurrentBreakpointMethodInfo a signature where
    overloadedMethod = breakpointBinGetCurrentBreakpoint

instance O.OverloadedMethodInfo BreakpointBinGetCurrentBreakpointMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.BreakpointBin.breakpointBinGetCurrentBreakpoint",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.7/docs/GI-Adw-Objects-BreakpointBin.html#v:breakpointBinGetCurrentBreakpoint"
        })


#endif

-- method BreakpointBin::remove_breakpoint
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "BreakpointBin" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a breakpoint bin" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "breakpoint"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "Breakpoint" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a breakpoint to remove"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "adw_breakpoint_bin_remove_breakpoint" adw_breakpoint_bin_remove_breakpoint :: 
    Ptr BreakpointBin ->                    -- self : TInterface (Name {namespace = "Adw", name = "BreakpointBin"})
    Ptr Adw.Breakpoint.Breakpoint ->        -- breakpoint : TInterface (Name {namespace = "Adw", name = "Breakpoint"})
    IO ()

-- | Removes /@breakpoint@/ from /@self@/.
-- 
-- /Since: 1.5/
breakpointBinRemoveBreakpoint ::
    (B.CallStack.HasCallStack, MonadIO m, IsBreakpointBin a, Adw.Breakpoint.IsBreakpoint b) =>
    a
    -- ^ /@self@/: a breakpoint bin
    -> b
    -- ^ /@breakpoint@/: a breakpoint to remove
    -> m ()
breakpointBinRemoveBreakpoint :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsBreakpointBin a, IsBreakpoint b) =>
a -> b -> m ()
breakpointBinRemoveBreakpoint a
self b
breakpoint = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr BreakpointBin
self' <- a -> IO (Ptr BreakpointBin)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Breakpoint
breakpoint' <- b -> IO (Ptr Breakpoint)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
breakpoint
    Ptr BreakpointBin -> Ptr Breakpoint -> IO ()
adw_breakpoint_bin_remove_breakpoint Ptr BreakpointBin
self' Ptr Breakpoint
breakpoint'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
breakpoint
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data BreakpointBinRemoveBreakpointMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsBreakpointBin a, Adw.Breakpoint.IsBreakpoint b) => O.OverloadedMethod BreakpointBinRemoveBreakpointMethodInfo a signature where
    overloadedMethod = breakpointBinRemoveBreakpoint

instance O.OverloadedMethodInfo BreakpointBinRemoveBreakpointMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.BreakpointBin.breakpointBinRemoveBreakpoint",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.7/docs/GI-Adw-Objects-BreakpointBin.html#v:breakpointBinRemoveBreakpoint"
        })


#endif

-- method BreakpointBin::set_child
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "BreakpointBin" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a breakpoint bin" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "child"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the child widget" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "adw_breakpoint_bin_set_child" adw_breakpoint_bin_set_child :: 
    Ptr BreakpointBin ->                    -- self : TInterface (Name {namespace = "Adw", name = "BreakpointBin"})
    Ptr Gtk.Widget.Widget ->                -- child : TInterface (Name {namespace = "Gtk", name = "Widget"})
    IO ()

-- | Sets the child widget of /@self@/.
-- 
-- /Since: 1.4/
breakpointBinSetChild ::
    (B.CallStack.HasCallStack, MonadIO m, IsBreakpointBin a, Gtk.Widget.IsWidget b) =>
    a
    -- ^ /@self@/: a breakpoint bin
    -> Maybe (b)
    -- ^ /@child@/: the child widget
    -> m ()
breakpointBinSetChild :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsBreakpointBin a, IsWidget b) =>
a -> Maybe b -> m ()
breakpointBinSetChild a
self Maybe b
child = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr BreakpointBin
self' <- a -> IO (Ptr BreakpointBin)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Widget
maybeChild <- case Maybe b
child of
        Maybe b
Nothing -> Ptr Widget -> IO (Ptr Widget)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Widget
forall a. Ptr a
nullPtr
        Just b
jChild -> do
            Ptr Widget
jChild' <- b -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jChild
            Ptr Widget -> IO (Ptr Widget)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Widget
jChild'
    Ptr BreakpointBin -> Ptr Widget -> IO ()
adw_breakpoint_bin_set_child Ptr BreakpointBin
self' Ptr Widget
maybeChild
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
child b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data BreakpointBinSetChildMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsBreakpointBin a, Gtk.Widget.IsWidget b) => O.OverloadedMethod BreakpointBinSetChildMethodInfo a signature where
    overloadedMethod = breakpointBinSetChild

instance O.OverloadedMethodInfo BreakpointBinSetChildMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.BreakpointBin.breakpointBinSetChild",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.7/docs/GI-Adw-Objects-BreakpointBin.html#v:breakpointBinSetChild"
        })


#endif