{-# LANGUAGE ImplicitParams, RankNTypes, TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- A paginated scrolling widget.
-- 
-- \<picture>
--   \<source srcset=\"carousel-dark.png\" media=\"(prefers-color-scheme: dark)\">
--   \<img src=\"carousel.png\" alt=\"carousel\">
-- \<\/picture>
-- 
-- The @AdwCarousel@ widget can be used to display a set of pages with
-- swipe-based navigation between them.
-- 
-- [class/@carouselIndicatorDots@/] and [class/@carouselIndicatorLines@/] can be used
-- to provide page indicators for @AdwCarousel@.
-- 
-- == CSS nodes
-- 
-- @AdwCarousel@ has a single CSS node with name @carousel@.
-- 
-- /Since: 1.0/

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

module GI.Adw.Objects.Carousel
    ( 

-- * Exported types
    Carousel(..)                            ,
    IsCarousel                              ,
    toCarousel                              ,


 -- * 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"), [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"), [append]("GI.Adw.Objects.Carousel#g:method:append"), [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"), [insert]("GI.Adw.Objects.Carousel#g:method:insert"), [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"), [prepend]("GI.Adw.Objects.Carousel#g:method:prepend"), [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"), [remove]("GI.Adw.Objects.Carousel#g:method:remove"), [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"), [reorder]("GI.Adw.Objects.Carousel#g:method:reorder"), [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"), [scrollTo]("GI.Adw.Objects.Carousel#g:method:scrollTo"), [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"), [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
-- [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"), [getAllowLongSwipes]("GI.Adw.Objects.Carousel#g:method:getAllowLongSwipes"), [getAllowMouseDrag]("GI.Adw.Objects.Carousel#g:method:getAllowMouseDrag"), [getAllowScrollWheel]("GI.Adw.Objects.Carousel#g:method:getAllowScrollWheel"), [getAncestor]("GI.Gtk.Objects.Widget#g:method:getAncestor"), [getBuildableId]("GI.Gtk.Interfaces.Buildable#g:method:getBuildableId"), [getCanFocus]("GI.Gtk.Objects.Widget#g:method:getCanFocus"), [getCanTarget]("GI.Gtk.Objects.Widget#g:method:getCanTarget"), [getCancelProgress]("GI.Adw.Interfaces.Swipeable#g:method:getCancelProgress"), [getChildVisible]("GI.Gtk.Objects.Widget#g:method:getChildVisible"), [getClipboard]("GI.Gtk.Objects.Widget#g:method:getClipboard"), [getCssClasses]("GI.Gtk.Objects.Widget#g:method:getCssClasses"), [getCssName]("GI.Gtk.Objects.Widget#g:method:getCssName"), [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"), [getDistance]("GI.Adw.Interfaces.Swipeable#g:method:getDistance"), [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"), [getInteractive]("GI.Adw.Objects.Carousel#g:method:getInteractive"), [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"), [getNPages]("GI.Adw.Objects.Carousel#g:method:getNPages"), [getName]("GI.Gtk.Objects.Widget#g:method:getName"), [getNative]("GI.Gtk.Objects.Widget#g:method:getNative"), [getNextSibling]("GI.Gtk.Objects.Widget#g:method:getNextSibling"), [getNthPage]("GI.Adw.Objects.Carousel#g:method:getNthPage"), [getOpacity]("GI.Gtk.Objects.Widget#g:method:getOpacity"), [getOrientation]("GI.Gtk.Interfaces.Orientable#g:method:getOrientation"), [getOverflow]("GI.Gtk.Objects.Widget#g:method:getOverflow"), [getPangoContext]("GI.Gtk.Objects.Widget#g:method:getPangoContext"), [getParent]("GI.Gtk.Objects.Widget#g:method:getParent"), [getPosition]("GI.Adw.Objects.Carousel#g:method:getPosition"), [getPreferredSize]("GI.Gtk.Objects.Widget#g:method:getPreferredSize"), [getPrevSibling]("GI.Gtk.Objects.Widget#g:method:getPrevSibling"), [getPrimaryClipboard]("GI.Gtk.Objects.Widget#g:method:getPrimaryClipboard"), [getProgress]("GI.Adw.Interfaces.Swipeable#g:method:getProgress"), [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"), [getRevealDuration]("GI.Adw.Objects.Carousel#g:method:getRevealDuration"), [getRoot]("GI.Gtk.Objects.Widget#g:method:getRoot"), [getScaleFactor]("GI.Gtk.Objects.Widget#g:method:getScaleFactor"), [getScrollParams]("GI.Adw.Objects.Carousel#g:method:getScrollParams"), [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"), [getSnapPoints]("GI.Adw.Interfaces.Swipeable#g:method:getSnapPoints"), [getSpacing]("GI.Adw.Objects.Carousel#g:method:getSpacing"), [getStateFlags]("GI.Gtk.Objects.Widget#g:method:getStateFlags"), [getStyleContext]("GI.Gtk.Objects.Widget#g:method:getStyleContext"), [getSwipeArea]("GI.Adw.Interfaces.Swipeable#g:method:getSwipeArea"), [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
-- [setAllowLongSwipes]("GI.Adw.Objects.Carousel#g:method:setAllowLongSwipes"), [setAllowMouseDrag]("GI.Adw.Objects.Carousel#g:method:setAllowMouseDrag"), [setAllowScrollWheel]("GI.Adw.Objects.Carousel#g:method:setAllowScrollWheel"), [setCanFocus]("GI.Gtk.Objects.Widget#g:method:setCanFocus"), [setCanTarget]("GI.Gtk.Objects.Widget#g:method:setCanTarget"), [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"), [setInteractive]("GI.Adw.Objects.Carousel#g:method:setInteractive"), [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"), [setOrientation]("GI.Gtk.Interfaces.Orientable#g:method:setOrientation"), [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"), [setRevealDuration]("GI.Adw.Objects.Carousel#g:method:setRevealDuration"), [setScrollParams]("GI.Adw.Objects.Carousel#g:method:setScrollParams"), [setSensitive]("GI.Gtk.Objects.Widget#g:method:setSensitive"), [setSizeRequest]("GI.Gtk.Objects.Widget#g:method:setSizeRequest"), [setSpacing]("GI.Adw.Objects.Carousel#g:method:setSpacing"), [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)
    ResolveCarouselMethod                   ,
#endif

-- ** append #method:append#

#if defined(ENABLE_OVERLOADING)
    CarouselAppendMethodInfo                ,
#endif
    carouselAppend                          ,


-- ** getAllowLongSwipes #method:getAllowLongSwipes#

#if defined(ENABLE_OVERLOADING)
    CarouselGetAllowLongSwipesMethodInfo    ,
#endif
    carouselGetAllowLongSwipes              ,


-- ** getAllowMouseDrag #method:getAllowMouseDrag#

#if defined(ENABLE_OVERLOADING)
    CarouselGetAllowMouseDragMethodInfo     ,
#endif
    carouselGetAllowMouseDrag               ,


-- ** getAllowScrollWheel #method:getAllowScrollWheel#

#if defined(ENABLE_OVERLOADING)
    CarouselGetAllowScrollWheelMethodInfo   ,
#endif
    carouselGetAllowScrollWheel             ,


-- ** getInteractive #method:getInteractive#

#if defined(ENABLE_OVERLOADING)
    CarouselGetInteractiveMethodInfo        ,
#endif
    carouselGetInteractive                  ,


-- ** getNPages #method:getNPages#

#if defined(ENABLE_OVERLOADING)
    CarouselGetNPagesMethodInfo             ,
#endif
    carouselGetNPages                       ,


-- ** getNthPage #method:getNthPage#

#if defined(ENABLE_OVERLOADING)
    CarouselGetNthPageMethodInfo            ,
#endif
    carouselGetNthPage                      ,


-- ** getPosition #method:getPosition#

#if defined(ENABLE_OVERLOADING)
    CarouselGetPositionMethodInfo           ,
#endif
    carouselGetPosition                     ,


-- ** getRevealDuration #method:getRevealDuration#

#if defined(ENABLE_OVERLOADING)
    CarouselGetRevealDurationMethodInfo     ,
#endif
    carouselGetRevealDuration               ,


-- ** getScrollParams #method:getScrollParams#

#if defined(ENABLE_OVERLOADING)
    CarouselGetScrollParamsMethodInfo       ,
#endif
    carouselGetScrollParams                 ,


-- ** getSpacing #method:getSpacing#

#if defined(ENABLE_OVERLOADING)
    CarouselGetSpacingMethodInfo            ,
#endif
    carouselGetSpacing                      ,


-- ** insert #method:insert#

#if defined(ENABLE_OVERLOADING)
    CarouselInsertMethodInfo                ,
#endif
    carouselInsert                          ,


-- ** new #method:new#

    carouselNew                             ,


-- ** prepend #method:prepend#

#if defined(ENABLE_OVERLOADING)
    CarouselPrependMethodInfo               ,
#endif
    carouselPrepend                         ,


-- ** remove #method:remove#

#if defined(ENABLE_OVERLOADING)
    CarouselRemoveMethodInfo                ,
#endif
    carouselRemove                          ,


-- ** reorder #method:reorder#

#if defined(ENABLE_OVERLOADING)
    CarouselReorderMethodInfo               ,
#endif
    carouselReorder                         ,


-- ** scrollTo #method:scrollTo#

#if defined(ENABLE_OVERLOADING)
    CarouselScrollToMethodInfo              ,
#endif
    carouselScrollTo                        ,


-- ** setAllowLongSwipes #method:setAllowLongSwipes#

#if defined(ENABLE_OVERLOADING)
    CarouselSetAllowLongSwipesMethodInfo    ,
#endif
    carouselSetAllowLongSwipes              ,


-- ** setAllowMouseDrag #method:setAllowMouseDrag#

#if defined(ENABLE_OVERLOADING)
    CarouselSetAllowMouseDragMethodInfo     ,
#endif
    carouselSetAllowMouseDrag               ,


-- ** setAllowScrollWheel #method:setAllowScrollWheel#

#if defined(ENABLE_OVERLOADING)
    CarouselSetAllowScrollWheelMethodInfo   ,
#endif
    carouselSetAllowScrollWheel             ,


-- ** setInteractive #method:setInteractive#

#if defined(ENABLE_OVERLOADING)
    CarouselSetInteractiveMethodInfo        ,
#endif
    carouselSetInteractive                  ,


-- ** setRevealDuration #method:setRevealDuration#

#if defined(ENABLE_OVERLOADING)
    CarouselSetRevealDurationMethodInfo     ,
#endif
    carouselSetRevealDuration               ,


-- ** setScrollParams #method:setScrollParams#

#if defined(ENABLE_OVERLOADING)
    CarouselSetScrollParamsMethodInfo       ,
#endif
    carouselSetScrollParams                 ,


-- ** setSpacing #method:setSpacing#

#if defined(ENABLE_OVERLOADING)
    CarouselSetSpacingMethodInfo            ,
#endif
    carouselSetSpacing                      ,




 -- * Properties


-- ** allowLongSwipes #attr:allowLongSwipes#
-- | Whether to allow swiping for more than one page at a time.
-- 
-- If the value is @FALSE@, each swipe can only move to the adjacent pages.
-- 
-- /Since: 1.0/

#if defined(ENABLE_OVERLOADING)
    CarouselAllowLongSwipesPropertyInfo     ,
#endif
#if defined(ENABLE_OVERLOADING)
    carouselAllowLongSwipes                 ,
#endif
    constructCarouselAllowLongSwipes        ,
    getCarouselAllowLongSwipes              ,
    setCarouselAllowLongSwipes              ,


-- ** allowMouseDrag #attr:allowMouseDrag#
-- | Sets whether the @AdwCarousel@ can be dragged with mouse pointer.
-- 
-- If the value is @FALSE@, dragging is only available on touch.
-- 
-- /Since: 1.0/

#if defined(ENABLE_OVERLOADING)
    CarouselAllowMouseDragPropertyInfo      ,
#endif
#if defined(ENABLE_OVERLOADING)
    carouselAllowMouseDrag                  ,
#endif
    constructCarouselAllowMouseDrag         ,
    getCarouselAllowMouseDrag               ,
    setCarouselAllowMouseDrag               ,


-- ** allowScrollWheel #attr:allowScrollWheel#
-- | Whether the widget will respond to scroll wheel events.
-- 
-- If the value is @FALSE@, wheel events will be ignored.
-- 
-- /Since: 1.0/

#if defined(ENABLE_OVERLOADING)
    CarouselAllowScrollWheelPropertyInfo    ,
#endif
#if defined(ENABLE_OVERLOADING)
    carouselAllowScrollWheel                ,
#endif
    constructCarouselAllowScrollWheel       ,
    getCarouselAllowScrollWheel             ,
    setCarouselAllowScrollWheel             ,


-- ** interactive #attr:interactive#
-- | Whether the carousel can be navigated.
-- 
-- This can be used to temporarily disable the carousel to only allow
-- navigating it in a certain state.
-- 
-- /Since: 1.0/

#if defined(ENABLE_OVERLOADING)
    CarouselInteractivePropertyInfo         ,
#endif
#if defined(ENABLE_OVERLOADING)
    carouselInteractive                     ,
#endif
    constructCarouselInteractive            ,
    getCarouselInteractive                  ,
    setCarouselInteractive                  ,


-- ** nPages #attr:nPages#
-- | The number of pages in a @AdwCarousel@.
-- 
-- /Since: 1.0/

#if defined(ENABLE_OVERLOADING)
    CarouselNPagesPropertyInfo              ,
#endif
#if defined(ENABLE_OVERLOADING)
    carouselNPages                          ,
#endif
    getCarouselNPages                       ,


-- ** position #attr:position#
-- | Current scrolling position, unitless.
-- 
-- 1 matches 1 page. Use [method/@carousel@/.scroll_to] for changing it.
-- 
-- /Since: 1.0/

#if defined(ENABLE_OVERLOADING)
    CarouselPositionPropertyInfo            ,
#endif
#if defined(ENABLE_OVERLOADING)
    carouselPosition                        ,
#endif
    getCarouselPosition                     ,


-- ** revealDuration #attr:revealDuration#
-- | Page reveal duration, in milliseconds.
-- 
-- Reveal duration is used when animating adding or removing pages.
-- 
-- /Since: 1.0/

#if defined(ENABLE_OVERLOADING)
    CarouselRevealDurationPropertyInfo      ,
#endif
#if defined(ENABLE_OVERLOADING)
    carouselRevealDuration                  ,
#endif
    constructCarouselRevealDuration         ,
    getCarouselRevealDuration               ,
    setCarouselRevealDuration               ,


-- ** scrollParams #attr:scrollParams#
-- | Scroll animation spring parameters.
-- 
-- The default value is equivalent to:
-- 
-- 
-- === /c code/
-- >adw_spring_params_new (1, 0.5, 500)
-- 
-- 
-- /Since: 1.0/

#if defined(ENABLE_OVERLOADING)
    CarouselScrollParamsPropertyInfo        ,
#endif
#if defined(ENABLE_OVERLOADING)
    carouselScrollParams                    ,
#endif
    constructCarouselScrollParams           ,
    getCarouselScrollParams                 ,
    setCarouselScrollParams                 ,


-- ** spacing #attr:spacing#
-- | Spacing between pages in pixels.
-- 
-- /Since: 1.0/

#if defined(ENABLE_OVERLOADING)
    CarouselSpacingPropertyInfo             ,
#endif
#if defined(ENABLE_OVERLOADING)
    carouselSpacing                         ,
#endif
    constructCarouselSpacing                ,
    getCarouselSpacing                      ,
    setCarouselSpacing                      ,




 -- * Signals


-- ** pageChanged #signal:pageChanged#

    CarouselPageChangedCallback             ,
#if defined(ENABLE_OVERLOADING)
    CarouselPageChangedSignalInfo           ,
#endif
    afterCarouselPageChanged                ,
    onCarouselPageChanged                   ,




    ) 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.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 {-# SOURCE #-} qualified GI.Adw.Interfaces.Swipeable as Adw.Swipeable
import {-# SOURCE #-} qualified GI.Adw.Structs.SpringParams as Adw.SpringParams
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.Interfaces.Orientable as Gtk.Orientable
import qualified GI.Gtk.Objects.Widget as Gtk.Widget

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

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

foreign import ccall "adw_carousel_get_type"
    c_adw_carousel_get_type :: IO B.Types.GType

instance B.Types.TypedObject Carousel where
    glibType :: IO GType
glibType = IO GType
c_adw_carousel_get_type

instance B.Types.GObject Carousel

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

instance O.HasParentTypes Carousel
type instance O.ParentTypes Carousel = '[Gtk.Widget.Widget, GObject.Object.Object, Adw.Swipeable.Swipeable, Gtk.Accessible.Accessible, Gtk.Buildable.Buildable, Gtk.ConstraintTarget.ConstraintTarget, Gtk.Orientable.Orientable]

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

-- | Convert 'Carousel' 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 Carousel) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_adw_carousel_get_type
    gvalueSet_ :: Ptr GValue -> Maybe Carousel -> IO ()
gvalueSet_ Ptr GValue
gv Maybe Carousel
P.Nothing = Ptr GValue -> Ptr Carousel -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr Carousel
forall a. Ptr a
FP.nullPtr :: FP.Ptr Carousel)
    gvalueSet_ Ptr GValue
gv (P.Just Carousel
obj) = Carousel -> (Ptr Carousel -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr Carousel
obj (Ptr GValue -> Ptr Carousel -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe Carousel)
gvalueGet_ Ptr GValue
gv = do
        Ptr Carousel
ptr <- Ptr GValue -> IO (Ptr Carousel)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr Carousel)
        if Ptr Carousel
ptr Ptr Carousel -> Ptr Carousel -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr Carousel
forall a. Ptr a
FP.nullPtr
        then Carousel -> Maybe Carousel
forall a. a -> Maybe a
P.Just (Carousel -> Maybe Carousel) -> IO Carousel -> IO (Maybe Carousel)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr Carousel -> Carousel) -> Ptr Carousel -> IO Carousel
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr Carousel -> Carousel
Carousel Ptr Carousel
ptr
        else Maybe Carousel -> IO (Maybe Carousel)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Carousel
forall a. Maybe a
P.Nothing
        
    

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

instance (info ~ ResolveCarouselMethod t Carousel, O.OverloadedMethod info Carousel p) => OL.IsLabel t (Carousel -> 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 ~ ResolveCarouselMethod t Carousel, O.OverloadedMethod info Carousel p, R.HasField t Carousel p) => R.HasField t Carousel p where
    getField = O.overloadedMethod @info

#endif

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

#endif

-- signal Carousel::page-changed
-- | This signal is emitted after a page has been changed.
-- 
-- It can be used to implement \"infinite scrolling\" by amending the pages
-- after every scroll.
-- 
-- /Since: 1.0/
type CarouselPageChangedCallback =
    Word32
    -- ^ /@index@/: current page
    -> IO ()

type C_CarouselPageChangedCallback =
    Ptr Carousel ->                         -- object
    Word32 ->
    Ptr () ->                               -- user_data
    IO ()

-- | Generate a function pointer callable from C code, from a `C_CarouselPageChangedCallback`.
foreign import ccall "wrapper"
    mk_CarouselPageChangedCallback :: C_CarouselPageChangedCallback -> IO (FunPtr C_CarouselPageChangedCallback)

wrap_CarouselPageChangedCallback :: 
    GObject a => (a -> CarouselPageChangedCallback) ->
    C_CarouselPageChangedCallback
wrap_CarouselPageChangedCallback :: forall a.
GObject a =>
(a -> CarouselPageChangedCallback) -> C_CarouselPageChangedCallback
wrap_CarouselPageChangedCallback a -> CarouselPageChangedCallback
gi'cb Ptr Carousel
gi'selfPtr Word32
index Ptr ()
_ = do
    Ptr Carousel -> (Carousel -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr Carousel
gi'selfPtr ((Carousel -> IO ()) -> IO ()) -> (Carousel -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Carousel
gi'self -> a -> CarouselPageChangedCallback
gi'cb (Carousel -> a
forall a b. Coercible a b => a -> b
Coerce.coerce Carousel
gi'self)  Word32
index


-- | Connect a signal handler for the [pageChanged](#signal:pageChanged) signal, to be run before the default handler.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Signals.on' carousel #pageChanged callback
-- @
-- 
-- 
onCarouselPageChanged :: (IsCarousel a, MonadIO m) => a -> ((?self :: a) => CarouselPageChangedCallback) -> m SignalHandlerId
onCarouselPageChanged :: forall a (m :: * -> *).
(IsCarousel a, MonadIO m) =>
a
-> ((?self::a) => CarouselPageChangedCallback) -> m SignalHandlerId
onCarouselPageChanged a
obj (?self::a) => CarouselPageChangedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> CarouselPageChangedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => CarouselPageChangedCallback
CarouselPageChangedCallback
cb
    let wrapped' :: C_CarouselPageChangedCallback
wrapped' = (a -> CarouselPageChangedCallback) -> C_CarouselPageChangedCallback
forall a.
GObject a =>
(a -> CarouselPageChangedCallback) -> C_CarouselPageChangedCallback
wrap_CarouselPageChangedCallback a -> CarouselPageChangedCallback
wrapped
    FunPtr C_CarouselPageChangedCallback
wrapped'' <- C_CarouselPageChangedCallback
-> IO (FunPtr C_CarouselPageChangedCallback)
mk_CarouselPageChangedCallback C_CarouselPageChangedCallback
wrapped'
    a
-> Text
-> FunPtr C_CarouselPageChangedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"page-changed" FunPtr C_CarouselPageChangedCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [pageChanged](#signal:pageChanged) signal, to be run after the default handler.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Signals.after' carousel #pageChanged callback
-- @
-- 
-- 
-- 
-- By default the object invoking the signal is not passed to the callback.
-- If you need to access it, you can use the implit @?self@ parameter.
-- Note that this requires activating the @ImplicitParams@ GHC extension.
-- 
afterCarouselPageChanged :: (IsCarousel a, MonadIO m) => a -> ((?self :: a) => CarouselPageChangedCallback) -> m SignalHandlerId
afterCarouselPageChanged :: forall a (m :: * -> *).
(IsCarousel a, MonadIO m) =>
a
-> ((?self::a) => CarouselPageChangedCallback) -> m SignalHandlerId
afterCarouselPageChanged a
obj (?self::a) => CarouselPageChangedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> CarouselPageChangedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => CarouselPageChangedCallback
CarouselPageChangedCallback
cb
    let wrapped' :: C_CarouselPageChangedCallback
wrapped' = (a -> CarouselPageChangedCallback) -> C_CarouselPageChangedCallback
forall a.
GObject a =>
(a -> CarouselPageChangedCallback) -> C_CarouselPageChangedCallback
wrap_CarouselPageChangedCallback a -> CarouselPageChangedCallback
wrapped
    FunPtr C_CarouselPageChangedCallback
wrapped'' <- C_CarouselPageChangedCallback
-> IO (FunPtr C_CarouselPageChangedCallback)
mk_CarouselPageChangedCallback C_CarouselPageChangedCallback
wrapped'
    a
-> Text
-> FunPtr C_CarouselPageChangedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"page-changed" FunPtr C_CarouselPageChangedCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data CarouselPageChangedSignalInfo
instance SignalInfo CarouselPageChangedSignalInfo where
    type HaskellCallbackType CarouselPageChangedSignalInfo = CarouselPageChangedCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_CarouselPageChangedCallback cb
        cb'' <- mk_CarouselPageChangedCallback cb'
        connectSignalFunPtr obj "page-changed" cb'' connectMode detail
    dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.Carousel::page-changed"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.3/docs/GI-Adw-Objects-Carousel.html#g:signal:pageChanged"})

#endif

-- VVV Prop "allow-long-swipes"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

-- | Get the value of the “@allow-long-swipes@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' carousel #allowLongSwipes
-- @
getCarouselAllowLongSwipes :: (MonadIO m, IsCarousel o) => o -> m Bool
getCarouselAllowLongSwipes :: forall (m :: * -> *) o. (MonadIO m, IsCarousel o) => o -> m Bool
getCarouselAllowLongSwipes o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"allow-long-swipes"

-- | Set the value of the “@allow-long-swipes@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' carousel [ #allowLongSwipes 'Data.GI.Base.Attributes.:=' value ]
-- @
setCarouselAllowLongSwipes :: (MonadIO m, IsCarousel o) => o -> Bool -> m ()
setCarouselAllowLongSwipes :: forall (m :: * -> *) o.
(MonadIO m, IsCarousel o) =>
o -> Bool -> m ()
setCarouselAllowLongSwipes o
obj Bool
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 -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"allow-long-swipes" Bool
val

-- | Construct a `GValueConstruct` with valid value for the “@allow-long-swipes@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructCarouselAllowLongSwipes :: (IsCarousel o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructCarouselAllowLongSwipes :: forall o (m :: * -> *).
(IsCarousel o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructCarouselAllowLongSwipes Bool
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 -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"allow-long-swipes" Bool
val

#if defined(ENABLE_OVERLOADING)
data CarouselAllowLongSwipesPropertyInfo
instance AttrInfo CarouselAllowLongSwipesPropertyInfo where
    type AttrAllowedOps CarouselAllowLongSwipesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint CarouselAllowLongSwipesPropertyInfo = IsCarousel
    type AttrSetTypeConstraint CarouselAllowLongSwipesPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint CarouselAllowLongSwipesPropertyInfo = (~) Bool
    type AttrTransferType CarouselAllowLongSwipesPropertyInfo = Bool
    type AttrGetType CarouselAllowLongSwipesPropertyInfo = Bool
    type AttrLabel CarouselAllowLongSwipesPropertyInfo = "allow-long-swipes"
    type AttrOrigin CarouselAllowLongSwipesPropertyInfo = Carousel
    attrGet = getCarouselAllowLongSwipes
    attrSet = setCarouselAllowLongSwipes
    attrTransfer _ v = do
        return v
    attrConstruct = constructCarouselAllowLongSwipes
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.Carousel.allowLongSwipes"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.3/docs/GI-Adw-Objects-Carousel.html#g:attr:allowLongSwipes"
        })
#endif

-- VVV Prop "allow-mouse-drag"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

-- | Get the value of the “@allow-mouse-drag@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' carousel #allowMouseDrag
-- @
getCarouselAllowMouseDrag :: (MonadIO m, IsCarousel o) => o -> m Bool
getCarouselAllowMouseDrag :: forall (m :: * -> *) o. (MonadIO m, IsCarousel o) => o -> m Bool
getCarouselAllowMouseDrag o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"allow-mouse-drag"

-- | Set the value of the “@allow-mouse-drag@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' carousel [ #allowMouseDrag 'Data.GI.Base.Attributes.:=' value ]
-- @
setCarouselAllowMouseDrag :: (MonadIO m, IsCarousel o) => o -> Bool -> m ()
setCarouselAllowMouseDrag :: forall (m :: * -> *) o.
(MonadIO m, IsCarousel o) =>
o -> Bool -> m ()
setCarouselAllowMouseDrag o
obj Bool
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 -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"allow-mouse-drag" Bool
val

-- | Construct a `GValueConstruct` with valid value for the “@allow-mouse-drag@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructCarouselAllowMouseDrag :: (IsCarousel o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructCarouselAllowMouseDrag :: forall o (m :: * -> *).
(IsCarousel o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructCarouselAllowMouseDrag Bool
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 -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"allow-mouse-drag" Bool
val

#if defined(ENABLE_OVERLOADING)
data CarouselAllowMouseDragPropertyInfo
instance AttrInfo CarouselAllowMouseDragPropertyInfo where
    type AttrAllowedOps CarouselAllowMouseDragPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint CarouselAllowMouseDragPropertyInfo = IsCarousel
    type AttrSetTypeConstraint CarouselAllowMouseDragPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint CarouselAllowMouseDragPropertyInfo = (~) Bool
    type AttrTransferType CarouselAllowMouseDragPropertyInfo = Bool
    type AttrGetType CarouselAllowMouseDragPropertyInfo = Bool
    type AttrLabel CarouselAllowMouseDragPropertyInfo = "allow-mouse-drag"
    type AttrOrigin CarouselAllowMouseDragPropertyInfo = Carousel
    attrGet = getCarouselAllowMouseDrag
    attrSet = setCarouselAllowMouseDrag
    attrTransfer _ v = do
        return v
    attrConstruct = constructCarouselAllowMouseDrag
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.Carousel.allowMouseDrag"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.3/docs/GI-Adw-Objects-Carousel.html#g:attr:allowMouseDrag"
        })
#endif

-- VVV Prop "allow-scroll-wheel"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

-- | Get the value of the “@allow-scroll-wheel@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' carousel #allowScrollWheel
-- @
getCarouselAllowScrollWheel :: (MonadIO m, IsCarousel o) => o -> m Bool
getCarouselAllowScrollWheel :: forall (m :: * -> *) o. (MonadIO m, IsCarousel o) => o -> m Bool
getCarouselAllowScrollWheel o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"allow-scroll-wheel"

-- | Set the value of the “@allow-scroll-wheel@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' carousel [ #allowScrollWheel 'Data.GI.Base.Attributes.:=' value ]
-- @
setCarouselAllowScrollWheel :: (MonadIO m, IsCarousel o) => o -> Bool -> m ()
setCarouselAllowScrollWheel :: forall (m :: * -> *) o.
(MonadIO m, IsCarousel o) =>
o -> Bool -> m ()
setCarouselAllowScrollWheel o
obj Bool
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 -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"allow-scroll-wheel" Bool
val

-- | Construct a `GValueConstruct` with valid value for the “@allow-scroll-wheel@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructCarouselAllowScrollWheel :: (IsCarousel o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructCarouselAllowScrollWheel :: forall o (m :: * -> *).
(IsCarousel o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructCarouselAllowScrollWheel Bool
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 -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"allow-scroll-wheel" Bool
val

#if defined(ENABLE_OVERLOADING)
data CarouselAllowScrollWheelPropertyInfo
instance AttrInfo CarouselAllowScrollWheelPropertyInfo where
    type AttrAllowedOps CarouselAllowScrollWheelPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint CarouselAllowScrollWheelPropertyInfo = IsCarousel
    type AttrSetTypeConstraint CarouselAllowScrollWheelPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint CarouselAllowScrollWheelPropertyInfo = (~) Bool
    type AttrTransferType CarouselAllowScrollWheelPropertyInfo = Bool
    type AttrGetType CarouselAllowScrollWheelPropertyInfo = Bool
    type AttrLabel CarouselAllowScrollWheelPropertyInfo = "allow-scroll-wheel"
    type AttrOrigin CarouselAllowScrollWheelPropertyInfo = Carousel
    attrGet = getCarouselAllowScrollWheel
    attrSet = setCarouselAllowScrollWheel
    attrTransfer _ v = do
        return v
    attrConstruct = constructCarouselAllowScrollWheel
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.Carousel.allowScrollWheel"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.3/docs/GI-Adw-Objects-Carousel.html#g:attr:allowScrollWheel"
        })
#endif

-- VVV Prop "interactive"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

-- | Get the value of the “@interactive@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' carousel #interactive
-- @
getCarouselInteractive :: (MonadIO m, IsCarousel o) => o -> m Bool
getCarouselInteractive :: forall (m :: * -> *) o. (MonadIO m, IsCarousel o) => o -> m Bool
getCarouselInteractive o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"interactive"

-- | Set the value of the “@interactive@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' carousel [ #interactive 'Data.GI.Base.Attributes.:=' value ]
-- @
setCarouselInteractive :: (MonadIO m, IsCarousel o) => o -> Bool -> m ()
setCarouselInteractive :: forall (m :: * -> *) o.
(MonadIO m, IsCarousel o) =>
o -> Bool -> m ()
setCarouselInteractive o
obj Bool
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 -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"interactive" Bool
val

-- | Construct a `GValueConstruct` with valid value for the “@interactive@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructCarouselInteractive :: (IsCarousel o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructCarouselInteractive :: forall o (m :: * -> *).
(IsCarousel o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructCarouselInteractive Bool
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 -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"interactive" Bool
val

#if defined(ENABLE_OVERLOADING)
data CarouselInteractivePropertyInfo
instance AttrInfo CarouselInteractivePropertyInfo where
    type AttrAllowedOps CarouselInteractivePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint CarouselInteractivePropertyInfo = IsCarousel
    type AttrSetTypeConstraint CarouselInteractivePropertyInfo = (~) Bool
    type AttrTransferTypeConstraint CarouselInteractivePropertyInfo = (~) Bool
    type AttrTransferType CarouselInteractivePropertyInfo = Bool
    type AttrGetType CarouselInteractivePropertyInfo = Bool
    type AttrLabel CarouselInteractivePropertyInfo = "interactive"
    type AttrOrigin CarouselInteractivePropertyInfo = Carousel
    attrGet = getCarouselInteractive
    attrSet = setCarouselInteractive
    attrTransfer _ v = do
        return v
    attrConstruct = constructCarouselInteractive
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.Carousel.interactive"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.3/docs/GI-Adw-Objects-Carousel.html#g:attr:interactive"
        })
#endif

-- VVV Prop "n-pages"
   -- Type: TBasicType TUInt
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

-- | Get the value of the “@n-pages@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' carousel #nPages
-- @
getCarouselNPages :: (MonadIO m, IsCarousel o) => o -> m Word32
getCarouselNPages :: forall (m :: * -> *) o. (MonadIO m, IsCarousel o) => o -> m Word32
getCarouselNPages o
obj = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Word32
forall a. GObject a => a -> String -> IO Word32
B.Properties.getObjectPropertyUInt32 o
obj String
"n-pages"

#if defined(ENABLE_OVERLOADING)
data CarouselNPagesPropertyInfo
instance AttrInfo CarouselNPagesPropertyInfo where
    type AttrAllowedOps CarouselNPagesPropertyInfo = '[ 'AttrGet]
    type AttrBaseTypeConstraint CarouselNPagesPropertyInfo = IsCarousel
    type AttrSetTypeConstraint CarouselNPagesPropertyInfo = (~) ()
    type AttrTransferTypeConstraint CarouselNPagesPropertyInfo = (~) ()
    type AttrTransferType CarouselNPagesPropertyInfo = ()
    type AttrGetType CarouselNPagesPropertyInfo = Word32
    type AttrLabel CarouselNPagesPropertyInfo = "n-pages"
    type AttrOrigin CarouselNPagesPropertyInfo = Carousel
    attrGet = getCarouselNPages
    attrSet = undefined
    attrTransfer _ = undefined
    attrConstruct = undefined
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.Carousel.nPages"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.3/docs/GI-Adw-Objects-Carousel.html#g:attr:nPages"
        })
#endif

-- VVV Prop "position"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

-- | Get the value of the “@position@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' carousel #position
-- @
getCarouselPosition :: (MonadIO m, IsCarousel o) => o -> m Double
getCarouselPosition :: forall (m :: * -> *) o. (MonadIO m, IsCarousel o) => o -> m Double
getCarouselPosition o
obj = IO Double -> m Double
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Double -> m Double) -> IO Double -> m Double
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Double
forall a. GObject a => a -> String -> IO Double
B.Properties.getObjectPropertyDouble o
obj String
"position"

#if defined(ENABLE_OVERLOADING)
data CarouselPositionPropertyInfo
instance AttrInfo CarouselPositionPropertyInfo where
    type AttrAllowedOps CarouselPositionPropertyInfo = '[ 'AttrGet]
    type AttrBaseTypeConstraint CarouselPositionPropertyInfo = IsCarousel
    type AttrSetTypeConstraint CarouselPositionPropertyInfo = (~) ()
    type AttrTransferTypeConstraint CarouselPositionPropertyInfo = (~) ()
    type AttrTransferType CarouselPositionPropertyInfo = ()
    type AttrGetType CarouselPositionPropertyInfo = Double
    type AttrLabel CarouselPositionPropertyInfo = "position"
    type AttrOrigin CarouselPositionPropertyInfo = Carousel
    attrGet = getCarouselPosition
    attrSet = undefined
    attrTransfer _ = undefined
    attrConstruct = undefined
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.Carousel.position"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.3/docs/GI-Adw-Objects-Carousel.html#g:attr:position"
        })
#endif

-- VVV Prop "reveal-duration"
   -- Type: TBasicType TUInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

-- | Get the value of the “@reveal-duration@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' carousel #revealDuration
-- @
getCarouselRevealDuration :: (MonadIO m, IsCarousel o) => o -> m Word32
getCarouselRevealDuration :: forall (m :: * -> *) o. (MonadIO m, IsCarousel o) => o -> m Word32
getCarouselRevealDuration o
obj = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Word32
forall a. GObject a => a -> String -> IO Word32
B.Properties.getObjectPropertyUInt32 o
obj String
"reveal-duration"

-- | Set the value of the “@reveal-duration@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' carousel [ #revealDuration 'Data.GI.Base.Attributes.:=' value ]
-- @
setCarouselRevealDuration :: (MonadIO m, IsCarousel o) => o -> Word32 -> m ()
setCarouselRevealDuration :: forall (m :: * -> *) o.
(MonadIO m, IsCarousel o) =>
o -> Word32 -> m ()
setCarouselRevealDuration o
obj Word32
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 -> CarouselPageChangedCallback
forall a. GObject a => a -> String -> CarouselPageChangedCallback
B.Properties.setObjectPropertyUInt32 o
obj String
"reveal-duration" Word32
val

-- | Construct a `GValueConstruct` with valid value for the “@reveal-duration@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructCarouselRevealDuration :: (IsCarousel o, MIO.MonadIO m) => Word32 -> m (GValueConstruct o)
constructCarouselRevealDuration :: forall o (m :: * -> *).
(IsCarousel o, MonadIO m) =>
Word32 -> m (GValueConstruct o)
constructCarouselRevealDuration Word32
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 -> Word32 -> IO (GValueConstruct o)
forall o. String -> Word32 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyUInt32 String
"reveal-duration" Word32
val

#if defined(ENABLE_OVERLOADING)
data CarouselRevealDurationPropertyInfo
instance AttrInfo CarouselRevealDurationPropertyInfo where
    type AttrAllowedOps CarouselRevealDurationPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint CarouselRevealDurationPropertyInfo = IsCarousel
    type AttrSetTypeConstraint CarouselRevealDurationPropertyInfo = (~) Word32
    type AttrTransferTypeConstraint CarouselRevealDurationPropertyInfo = (~) Word32
    type AttrTransferType CarouselRevealDurationPropertyInfo = Word32
    type AttrGetType CarouselRevealDurationPropertyInfo = Word32
    type AttrLabel CarouselRevealDurationPropertyInfo = "reveal-duration"
    type AttrOrigin CarouselRevealDurationPropertyInfo = Carousel
    attrGet = getCarouselRevealDuration
    attrSet = setCarouselRevealDuration
    attrTransfer _ v = do
        return v
    attrConstruct = constructCarouselRevealDuration
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.Carousel.revealDuration"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.3/docs/GI-Adw-Objects-Carousel.html#g:attr:revealDuration"
        })
#endif

-- VVV Prop "scroll-params"
   -- Type: TInterface (Name {namespace = "Adw", name = "SpringParams"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Just False)

-- | Get the value of the “@scroll-params@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' carousel #scrollParams
-- @
getCarouselScrollParams :: (MonadIO m, IsCarousel o) => o -> m (Maybe Adw.SpringParams.SpringParams)
getCarouselScrollParams :: forall (m :: * -> *) o.
(MonadIO m, IsCarousel o) =>
o -> m (Maybe SpringParams)
getCarouselScrollParams o
obj = IO (Maybe SpringParams) -> m (Maybe SpringParams)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe SpringParams) -> m (Maybe SpringParams))
-> IO (Maybe SpringParams) -> m (Maybe SpringParams)
forall a b. (a -> b) -> a -> b
$ o
-> String
-> (ManagedPtr SpringParams -> SpringParams)
-> IO (Maybe SpringParams)
forall a b.
(GObject a, GBoxed b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyBoxed o
obj String
"scroll-params" ManagedPtr SpringParams -> SpringParams
Adw.SpringParams.SpringParams

-- | Set the value of the “@scroll-params@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' carousel [ #scrollParams 'Data.GI.Base.Attributes.:=' value ]
-- @
setCarouselScrollParams :: (MonadIO m, IsCarousel o) => o -> Adw.SpringParams.SpringParams -> m ()
setCarouselScrollParams :: forall (m :: * -> *) o.
(MonadIO m, IsCarousel o) =>
o -> SpringParams -> m ()
setCarouselScrollParams o
obj SpringParams
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 SpringParams -> IO ()
forall a b.
(GObject a, GBoxed b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyBoxed o
obj String
"scroll-params" (SpringParams -> Maybe SpringParams
forall a. a -> Maybe a
Just SpringParams
val)

-- | Construct a `GValueConstruct` with valid value for the “@scroll-params@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructCarouselScrollParams :: (IsCarousel o, MIO.MonadIO m) => Adw.SpringParams.SpringParams -> m (GValueConstruct o)
constructCarouselScrollParams :: forall o (m :: * -> *).
(IsCarousel o, MonadIO m) =>
SpringParams -> m (GValueConstruct o)
constructCarouselScrollParams SpringParams
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 SpringParams -> IO (GValueConstruct o)
forall a o. GBoxed a => String -> Maybe a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBoxed String
"scroll-params" (SpringParams -> Maybe SpringParams
forall a. a -> Maybe a
P.Just SpringParams
val)

#if defined(ENABLE_OVERLOADING)
data CarouselScrollParamsPropertyInfo
instance AttrInfo CarouselScrollParamsPropertyInfo where
    type AttrAllowedOps CarouselScrollParamsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint CarouselScrollParamsPropertyInfo = IsCarousel
    type AttrSetTypeConstraint CarouselScrollParamsPropertyInfo = (~) Adw.SpringParams.SpringParams
    type AttrTransferTypeConstraint CarouselScrollParamsPropertyInfo = (~) Adw.SpringParams.SpringParams
    type AttrTransferType CarouselScrollParamsPropertyInfo = Adw.SpringParams.SpringParams
    type AttrGetType CarouselScrollParamsPropertyInfo = (Maybe Adw.SpringParams.SpringParams)
    type AttrLabel CarouselScrollParamsPropertyInfo = "scroll-params"
    type AttrOrigin CarouselScrollParamsPropertyInfo = Carousel
    attrGet = getCarouselScrollParams
    attrSet = setCarouselScrollParams
    attrTransfer _ v = do
        return v
    attrConstruct = constructCarouselScrollParams
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.Carousel.scrollParams"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.3/docs/GI-Adw-Objects-Carousel.html#g:attr:scrollParams"
        })
#endif

-- VVV Prop "spacing"
   -- Type: TBasicType TUInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

-- | Get the value of the “@spacing@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' carousel #spacing
-- @
getCarouselSpacing :: (MonadIO m, IsCarousel o) => o -> m Word32
getCarouselSpacing :: forall (m :: * -> *) o. (MonadIO m, IsCarousel o) => o -> m Word32
getCarouselSpacing o
obj = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Word32
forall a. GObject a => a -> String -> IO Word32
B.Properties.getObjectPropertyUInt32 o
obj String
"spacing"

-- | Set the value of the “@spacing@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' carousel [ #spacing 'Data.GI.Base.Attributes.:=' value ]
-- @
setCarouselSpacing :: (MonadIO m, IsCarousel o) => o -> Word32 -> m ()
setCarouselSpacing :: forall (m :: * -> *) o.
(MonadIO m, IsCarousel o) =>
o -> Word32 -> m ()
setCarouselSpacing o
obj Word32
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 -> CarouselPageChangedCallback
forall a. GObject a => a -> String -> CarouselPageChangedCallback
B.Properties.setObjectPropertyUInt32 o
obj String
"spacing" Word32
val

-- | Construct a `GValueConstruct` with valid value for the “@spacing@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructCarouselSpacing :: (IsCarousel o, MIO.MonadIO m) => Word32 -> m (GValueConstruct o)
constructCarouselSpacing :: forall o (m :: * -> *).
(IsCarousel o, MonadIO m) =>
Word32 -> m (GValueConstruct o)
constructCarouselSpacing Word32
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 -> Word32 -> IO (GValueConstruct o)
forall o. String -> Word32 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyUInt32 String
"spacing" Word32
val

#if defined(ENABLE_OVERLOADING)
data CarouselSpacingPropertyInfo
instance AttrInfo CarouselSpacingPropertyInfo where
    type AttrAllowedOps CarouselSpacingPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint CarouselSpacingPropertyInfo = IsCarousel
    type AttrSetTypeConstraint CarouselSpacingPropertyInfo = (~) Word32
    type AttrTransferTypeConstraint CarouselSpacingPropertyInfo = (~) Word32
    type AttrTransferType CarouselSpacingPropertyInfo = Word32
    type AttrGetType CarouselSpacingPropertyInfo = Word32
    type AttrLabel CarouselSpacingPropertyInfo = "spacing"
    type AttrOrigin CarouselSpacingPropertyInfo = Carousel
    attrGet = getCarouselSpacing
    attrSet = setCarouselSpacing
    attrTransfer _ v = do
        return v
    attrConstruct = constructCarouselSpacing
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.Carousel.spacing"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.3/docs/GI-Adw-Objects-Carousel.html#g:attr:spacing"
        })
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList Carousel
type instance O.AttributeList Carousel = CarouselAttributeList
type CarouselAttributeList = ('[ '("accessibleRole", Gtk.Accessible.AccessibleAccessibleRolePropertyInfo), '("allowLongSwipes", CarouselAllowLongSwipesPropertyInfo), '("allowMouseDrag", CarouselAllowMouseDragPropertyInfo), '("allowScrollWheel", CarouselAllowScrollWheelPropertyInfo), '("canFocus", Gtk.Widget.WidgetCanFocusPropertyInfo), '("canTarget", Gtk.Widget.WidgetCanTargetPropertyInfo), '("cssClasses", Gtk.Widget.WidgetCssClassesPropertyInfo), '("cssName", Gtk.Widget.WidgetCssNamePropertyInfo), '("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), '("interactive", CarouselInteractivePropertyInfo), '("layoutManager", Gtk.Widget.WidgetLayoutManagerPropertyInfo), '("marginBottom", Gtk.Widget.WidgetMarginBottomPropertyInfo), '("marginEnd", Gtk.Widget.WidgetMarginEndPropertyInfo), '("marginStart", Gtk.Widget.WidgetMarginStartPropertyInfo), '("marginTop", Gtk.Widget.WidgetMarginTopPropertyInfo), '("nPages", CarouselNPagesPropertyInfo), '("name", Gtk.Widget.WidgetNamePropertyInfo), '("opacity", Gtk.Widget.WidgetOpacityPropertyInfo), '("orientation", Gtk.Orientable.OrientableOrientationPropertyInfo), '("overflow", Gtk.Widget.WidgetOverflowPropertyInfo), '("parent", Gtk.Widget.WidgetParentPropertyInfo), '("position", CarouselPositionPropertyInfo), '("receivesDefault", Gtk.Widget.WidgetReceivesDefaultPropertyInfo), '("revealDuration", CarouselRevealDurationPropertyInfo), '("root", Gtk.Widget.WidgetRootPropertyInfo), '("scaleFactor", Gtk.Widget.WidgetScaleFactorPropertyInfo), '("scrollParams", CarouselScrollParamsPropertyInfo), '("sensitive", Gtk.Widget.WidgetSensitivePropertyInfo), '("spacing", CarouselSpacingPropertyInfo), '("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, *)])
#endif

#if defined(ENABLE_OVERLOADING)
carouselAllowLongSwipes :: AttrLabelProxy "allowLongSwipes"
carouselAllowLongSwipes = AttrLabelProxy

carouselAllowMouseDrag :: AttrLabelProxy "allowMouseDrag"
carouselAllowMouseDrag = AttrLabelProxy

carouselAllowScrollWheel :: AttrLabelProxy "allowScrollWheel"
carouselAllowScrollWheel = AttrLabelProxy

carouselInteractive :: AttrLabelProxy "interactive"
carouselInteractive = AttrLabelProxy

carouselNPages :: AttrLabelProxy "nPages"
carouselNPages = AttrLabelProxy

carouselPosition :: AttrLabelProxy "position"
carouselPosition = AttrLabelProxy

carouselRevealDuration :: AttrLabelProxy "revealDuration"
carouselRevealDuration = AttrLabelProxy

carouselScrollParams :: AttrLabelProxy "scrollParams"
carouselScrollParams = AttrLabelProxy

carouselSpacing :: AttrLabelProxy "spacing"
carouselSpacing = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList Carousel = CarouselSignalList
type CarouselSignalList = ('[ '("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), '("pageChanged", CarouselPageChangedSignalInfo), '("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, *)])

#endif

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

foreign import ccall "adw_carousel_new" adw_carousel_new :: 
    IO (Ptr Carousel)

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

#if defined(ENABLE_OVERLOADING)
#endif

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

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

-- | Appends /@child@/ to /@self@/.
-- 
-- /Since: 1.0/
carouselAppend ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a, Gtk.Widget.IsWidget b) =>
    a
    -- ^ /@self@/: a carousel
    -> b
    -- ^ /@child@/: a widget to add
    -> m ()
carouselAppend :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsCarousel a, IsWidget b) =>
a -> b -> m ()
carouselAppend a
self 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 Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Widget
child' <- b -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
child
    Ptr Carousel -> Ptr Widget -> IO ()
adw_carousel_append Ptr Carousel
self' Ptr Widget
child'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
child
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CarouselAppendMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsCarousel a, Gtk.Widget.IsWidget b) => O.OverloadedMethod CarouselAppendMethodInfo a signature where
    overloadedMethod = carouselAppend

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


#endif

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

foreign import ccall "adw_carousel_get_allow_long_swipes" adw_carousel_get_allow_long_swipes :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    IO CInt

-- | Gets whether to allow swiping for more than one page at a time.
-- 
-- /Since: 1.0/
carouselGetAllowLongSwipes ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a) =>
    a
    -- ^ /@self@/: a carousel
    -> m Bool
    -- ^ __Returns:__ @TRUE@ if long swipes are allowed
carouselGetAllowLongSwipes :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCarousel a) =>
a -> m Bool
carouselGetAllowLongSwipes a
self = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CInt
result <- Ptr Carousel -> IO CInt
adw_carousel_get_allow_long_swipes Ptr Carousel
self'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data CarouselGetAllowLongSwipesMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsCarousel a) => O.OverloadedMethod CarouselGetAllowLongSwipesMethodInfo a signature where
    overloadedMethod = carouselGetAllowLongSwipes

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


#endif

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

foreign import ccall "adw_carousel_get_allow_mouse_drag" adw_carousel_get_allow_mouse_drag :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    IO CInt

-- | Sets whether /@self@/ can be dragged with mouse pointer.
-- 
-- /Since: 1.0/
carouselGetAllowMouseDrag ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a) =>
    a
    -- ^ /@self@/: a carousel
    -> m Bool
    -- ^ __Returns:__ whether /@self@/ can be dragged with mouse pointer
carouselGetAllowMouseDrag :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCarousel a) =>
a -> m Bool
carouselGetAllowMouseDrag a
self = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CInt
result <- Ptr Carousel -> IO CInt
adw_carousel_get_allow_mouse_drag Ptr Carousel
self'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data CarouselGetAllowMouseDragMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsCarousel a) => O.OverloadedMethod CarouselGetAllowMouseDragMethodInfo a signature where
    overloadedMethod = carouselGetAllowMouseDrag

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


#endif

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

foreign import ccall "adw_carousel_get_allow_scroll_wheel" adw_carousel_get_allow_scroll_wheel :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    IO CInt

-- | Gets whether /@self@/ will respond to scroll wheel events.
-- 
-- /Since: 1.0/
carouselGetAllowScrollWheel ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a) =>
    a
    -- ^ /@self@/: a carousel
    -> m Bool
    -- ^ __Returns:__ @TRUE@ if /@self@/ will respond to scroll wheel events
carouselGetAllowScrollWheel :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCarousel a) =>
a -> m Bool
carouselGetAllowScrollWheel a
self = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CInt
result <- Ptr Carousel -> IO CInt
adw_carousel_get_allow_scroll_wheel Ptr Carousel
self'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data CarouselGetAllowScrollWheelMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsCarousel a) => O.OverloadedMethod CarouselGetAllowScrollWheelMethodInfo a signature where
    overloadedMethod = carouselGetAllowScrollWheel

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


#endif

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

foreign import ccall "adw_carousel_get_interactive" adw_carousel_get_interactive :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    IO CInt

-- | Gets whether /@self@/ can be navigated.
-- 
-- /Since: 1.0/
carouselGetInteractive ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a) =>
    a
    -- ^ /@self@/: a carousel
    -> m Bool
    -- ^ __Returns:__ whether /@self@/ can be navigated
carouselGetInteractive :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCarousel a) =>
a -> m Bool
carouselGetInteractive a
self = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CInt
result <- Ptr Carousel -> IO CInt
adw_carousel_get_interactive Ptr Carousel
self'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data CarouselGetInteractiveMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsCarousel a) => O.OverloadedMethod CarouselGetInteractiveMethodInfo a signature where
    overloadedMethod = carouselGetInteractive

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


#endif

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

foreign import ccall "adw_carousel_get_n_pages" adw_carousel_get_n_pages :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    IO Word32

-- | Gets the number of pages in /@self@/.
-- 
-- /Since: 1.0/
carouselGetNPages ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a) =>
    a
    -- ^ /@self@/: a carousel
    -> m Word32
    -- ^ __Returns:__ the number of pages in /@self@/
carouselGetNPages :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCarousel a) =>
a -> m Word32
carouselGetNPages a
self = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
    Ptr Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Word32
result <- Ptr Carousel -> IO Word32
adw_carousel_get_n_pages Ptr Carousel
self'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Word32 -> IO Word32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data CarouselGetNPagesMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsCarousel a) => O.OverloadedMethod CarouselGetNPagesMethodInfo a signature where
    overloadedMethod = carouselGetNPages

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


#endif

-- method Carousel::get_nth_page
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "Carousel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a carousel" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "n"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "index of the page" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "Gtk" , name = "Widget" })
-- throws : False
-- Skip return : False

foreign import ccall "adw_carousel_get_nth_page" adw_carousel_get_nth_page :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    Word32 ->                               -- n : TBasicType TUInt
    IO (Ptr Gtk.Widget.Widget)

-- | Gets the page at position /@n@/.
-- 
-- /Since: 1.0/
carouselGetNthPage ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a) =>
    a
    -- ^ /@self@/: a carousel
    -> Word32
    -- ^ /@n@/: index of the page
    -> m Gtk.Widget.Widget
    -- ^ __Returns:__ the page
carouselGetNthPage :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCarousel a) =>
a -> Word32 -> m Widget
carouselGetNthPage a
self Word32
n = IO Widget -> m Widget
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Widget -> m Widget) -> IO Widget -> m Widget
forall a b. (a -> b) -> a -> b
$ do
    Ptr Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Widget
result <- Ptr Carousel -> Word32 -> IO (Ptr Widget)
adw_carousel_get_nth_page Ptr Carousel
self' Word32
n
    Text -> Ptr Widget -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"carouselGetNthPage" Ptr Widget
result
    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
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Widget -> IO Widget
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Widget
result'

#if defined(ENABLE_OVERLOADING)
data CarouselGetNthPageMethodInfo
instance (signature ~ (Word32 -> m Gtk.Widget.Widget), MonadIO m, IsCarousel a) => O.OverloadedMethod CarouselGetNthPageMethodInfo a signature where
    overloadedMethod = carouselGetNthPage

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


#endif

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

foreign import ccall "adw_carousel_get_position" adw_carousel_get_position :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    IO CDouble

-- | Gets current scroll position in /@self@/, unitless.
-- 
-- 1 matches 1 page. Use [method/@carousel@/.scroll_to] for changing it.
-- 
-- /Since: 1.0/
carouselGetPosition ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a) =>
    a
    -- ^ /@self@/: a carousel
    -> m Double
    -- ^ __Returns:__ the scroll position
carouselGetPosition :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCarousel a) =>
a -> m Double
carouselGetPosition a
self = IO Double -> m Double
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Double -> m Double) -> IO Double -> m Double
forall a b. (a -> b) -> a -> b
$ do
    Ptr Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CDouble
result <- Ptr Carousel -> IO CDouble
adw_carousel_get_position Ptr Carousel
self'
    let result' :: Double
result' = CDouble -> Double
forall a b. (Real a, Fractional b) => a -> b
realToFrac CDouble
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Double -> IO Double
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Double
result'

#if defined(ENABLE_OVERLOADING)
data CarouselGetPositionMethodInfo
instance (signature ~ (m Double), MonadIO m, IsCarousel a) => O.OverloadedMethod CarouselGetPositionMethodInfo a signature where
    overloadedMethod = carouselGetPosition

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


#endif

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

foreign import ccall "adw_carousel_get_reveal_duration" adw_carousel_get_reveal_duration :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    IO Word32

-- | Gets the page reveal duration, in milliseconds.
-- 
-- /Since: 1.0/
carouselGetRevealDuration ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a) =>
    a
    -- ^ /@self@/: a carousel
    -> m Word32
    -- ^ __Returns:__ the duration
carouselGetRevealDuration :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCarousel a) =>
a -> m Word32
carouselGetRevealDuration a
self = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
    Ptr Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Word32
result <- Ptr Carousel -> IO Word32
adw_carousel_get_reveal_duration Ptr Carousel
self'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Word32 -> IO Word32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data CarouselGetRevealDurationMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsCarousel a) => O.OverloadedMethod CarouselGetRevealDurationMethodInfo a signature where
    overloadedMethod = carouselGetRevealDuration

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


#endif

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

foreign import ccall "adw_carousel_get_scroll_params" adw_carousel_get_scroll_params :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    IO (Ptr Adw.SpringParams.SpringParams)

-- | Gets the scroll animation spring parameters for /@self@/.
-- 
-- /Since: 1.0/
carouselGetScrollParams ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a) =>
    a
    -- ^ /@self@/: a carousel
    -> m Adw.SpringParams.SpringParams
    -- ^ __Returns:__ the animation parameters
carouselGetScrollParams :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCarousel a) =>
a -> m SpringParams
carouselGetScrollParams a
self = IO SpringParams -> m SpringParams
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SpringParams -> m SpringParams)
-> IO SpringParams -> m SpringParams
forall a b. (a -> b) -> a -> b
$ do
    Ptr Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr SpringParams
result <- Ptr Carousel -> IO (Ptr SpringParams)
adw_carousel_get_scroll_params Ptr Carousel
self'
    Text -> Ptr SpringParams -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"carouselGetScrollParams" Ptr SpringParams
result
    SpringParams
result' <- ((ManagedPtr SpringParams -> SpringParams)
-> Ptr SpringParams -> IO SpringParams
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr SpringParams -> SpringParams
Adw.SpringParams.SpringParams) Ptr SpringParams
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    SpringParams -> IO SpringParams
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return SpringParams
result'

#if defined(ENABLE_OVERLOADING)
data CarouselGetScrollParamsMethodInfo
instance (signature ~ (m Adw.SpringParams.SpringParams), MonadIO m, IsCarousel a) => O.OverloadedMethod CarouselGetScrollParamsMethodInfo a signature where
    overloadedMethod = carouselGetScrollParams

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


#endif

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

foreign import ccall "adw_carousel_get_spacing" adw_carousel_get_spacing :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    IO Word32

-- | Gets spacing between pages in pixels.
-- 
-- /Since: 1.0/
carouselGetSpacing ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a) =>
    a
    -- ^ /@self@/: a carousel
    -> m Word32
    -- ^ __Returns:__ spacing between pages
carouselGetSpacing :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCarousel a) =>
a -> m Word32
carouselGetSpacing a
self = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
    Ptr Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Word32
result <- Ptr Carousel -> IO Word32
adw_carousel_get_spacing Ptr Carousel
self'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Word32 -> IO Word32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data CarouselGetSpacingMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsCarousel a) => O.OverloadedMethod CarouselGetSpacingMethodInfo a signature where
    overloadedMethod = carouselGetSpacing

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


#endif

-- method Carousel::insert
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "Carousel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a carousel" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "child"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a widget to add" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "position"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the position to insert @child at"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "adw_carousel_insert" adw_carousel_insert :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    Ptr Gtk.Widget.Widget ->                -- child : TInterface (Name {namespace = "Gtk", name = "Widget"})
    Int32 ->                                -- position : TBasicType TInt
    IO ()

-- | Inserts /@child@/ into /@self@/ at position /@position@/.
-- 
-- If position is -1, or larger than the number of pages,
-- /@child@/ will be appended to the end.
-- 
-- /Since: 1.0/
carouselInsert ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a, Gtk.Widget.IsWidget b) =>
    a
    -- ^ /@self@/: a carousel
    -> b
    -- ^ /@child@/: a widget to add
    -> Int32
    -- ^ /@position@/: the position to insert /@child@/ at
    -> m ()
carouselInsert :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsCarousel a, IsWidget b) =>
a -> b -> Int32 -> m ()
carouselInsert a
self b
child Int32
position = 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 Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Widget
child' <- b -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
child
    Ptr Carousel -> Ptr Widget -> Int32 -> IO ()
adw_carousel_insert Ptr Carousel
self' Ptr Widget
child' Int32
position
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
child
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CarouselInsertMethodInfo
instance (signature ~ (b -> Int32 -> m ()), MonadIO m, IsCarousel a, Gtk.Widget.IsWidget b) => O.OverloadedMethod CarouselInsertMethodInfo a signature where
    overloadedMethod = carouselInsert

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


#endif

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

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

-- | Prepends /@child@/ to /@self@/.
-- 
-- /Since: 1.0/
carouselPrepend ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a, Gtk.Widget.IsWidget b) =>
    a
    -- ^ /@self@/: a carousel
    -> b
    -- ^ /@child@/: a widget to add
    -> m ()
carouselPrepend :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsCarousel a, IsWidget b) =>
a -> b -> m ()
carouselPrepend a
self 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 Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Widget
child' <- b -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
child
    Ptr Carousel -> Ptr Widget -> IO ()
adw_carousel_prepend Ptr Carousel
self' Ptr Widget
child'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
child
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CarouselPrependMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsCarousel a, Gtk.Widget.IsWidget b) => O.OverloadedMethod CarouselPrependMethodInfo a signature where
    overloadedMethod = carouselPrepend

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


#endif

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

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

-- | Removes /@child@/ from /@self@/.
-- 
-- /Since: 1.0/
carouselRemove ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a, Gtk.Widget.IsWidget b) =>
    a
    -- ^ /@self@/: a carousel
    -> b
    -- ^ /@child@/: a widget to remove
    -> m ()
carouselRemove :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsCarousel a, IsWidget b) =>
a -> b -> m ()
carouselRemove a
self 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 Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Widget
child' <- b -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
child
    Ptr Carousel -> Ptr Widget -> IO ()
adw_carousel_remove Ptr Carousel
self' Ptr Widget
child'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
child
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CarouselRemoveMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsCarousel a, Gtk.Widget.IsWidget b) => O.OverloadedMethod CarouselRemoveMethodInfo a signature where
    overloadedMethod = carouselRemove

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


#endif

-- method Carousel::reorder
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "Carousel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a carousel" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "child"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a widget to add" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "position"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the position to move @child to"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "adw_carousel_reorder" adw_carousel_reorder :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    Ptr Gtk.Widget.Widget ->                -- child : TInterface (Name {namespace = "Gtk", name = "Widget"})
    Int32 ->                                -- position : TBasicType TInt
    IO ()

-- | Moves /@child@/ into position /@position@/.
-- 
-- If position is -1, or larger than the number of pages, /@child@/ will be moved
-- at the end.
-- 
-- /Since: 1.0/
carouselReorder ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a, Gtk.Widget.IsWidget b) =>
    a
    -- ^ /@self@/: a carousel
    -> b
    -- ^ /@child@/: a widget to add
    -> Int32
    -- ^ /@position@/: the position to move /@child@/ to
    -> m ()
carouselReorder :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsCarousel a, IsWidget b) =>
a -> b -> Int32 -> m ()
carouselReorder a
self b
child Int32
position = 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 Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Widget
child' <- b -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
child
    Ptr Carousel -> Ptr Widget -> Int32 -> IO ()
adw_carousel_reorder Ptr Carousel
self' Ptr Widget
child' Int32
position
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
child
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CarouselReorderMethodInfo
instance (signature ~ (b -> Int32 -> m ()), MonadIO m, IsCarousel a, Gtk.Widget.IsWidget b) => O.OverloadedMethod CarouselReorderMethodInfo a signature where
    overloadedMethod = carouselReorder

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


#endif

-- method Carousel::scroll_to
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "Carousel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a carousel" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a child of @self" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "animate"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "whether to animate the transition"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "adw_carousel_scroll_to" adw_carousel_scroll_to :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    Ptr Gtk.Widget.Widget ->                -- widget : TInterface (Name {namespace = "Gtk", name = "Widget"})
    CInt ->                                 -- animate : TBasicType TBoolean
    IO ()

-- | Scrolls to /@widget@/.
-- 
-- If /@animate@/ is @TRUE@, the transition will be animated.
-- 
-- /Since: 1.0/
carouselScrollTo ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a, Gtk.Widget.IsWidget b) =>
    a
    -- ^ /@self@/: a carousel
    -> b
    -- ^ /@widget@/: a child of /@self@/
    -> Bool
    -- ^ /@animate@/: whether to animate the transition
    -> m ()
carouselScrollTo :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsCarousel a, IsWidget b) =>
a -> b -> Bool -> m ()
carouselScrollTo a
self b
widget Bool
animate = 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 Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Widget
widget' <- b -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
widget
    let animate' :: CInt
animate' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
animate
    Ptr Carousel -> Ptr Widget -> CInt -> IO ()
adw_carousel_scroll_to Ptr Carousel
self' Ptr Widget
widget' CInt
animate'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
widget
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CarouselScrollToMethodInfo
instance (signature ~ (b -> Bool -> m ()), MonadIO m, IsCarousel a, Gtk.Widget.IsWidget b) => O.OverloadedMethod CarouselScrollToMethodInfo a signature where
    overloadedMethod = carouselScrollTo

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


#endif

-- method Carousel::set_allow_long_swipes
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "Carousel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a carousel" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "allow_long_swipes"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "whether to allow long swipes"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "adw_carousel_set_allow_long_swipes" adw_carousel_set_allow_long_swipes :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    CInt ->                                 -- allow_long_swipes : TBasicType TBoolean
    IO ()

-- | Sets whether to allow swiping for more than one page at a time.
-- 
-- If /@allowLongSwipes@/ is @FALSE@, each swipe can only move to the adjacent
-- pages.
-- 
-- /Since: 1.0/
carouselSetAllowLongSwipes ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a) =>
    a
    -- ^ /@self@/: a carousel
    -> Bool
    -- ^ /@allowLongSwipes@/: whether to allow long swipes
    -> m ()
carouselSetAllowLongSwipes :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCarousel a) =>
a -> Bool -> m ()
carouselSetAllowLongSwipes a
self Bool
allowLongSwipes = 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 Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    let allowLongSwipes' :: CInt
allowLongSwipes' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
allowLongSwipes
    Ptr Carousel -> CInt -> IO ()
adw_carousel_set_allow_long_swipes Ptr Carousel
self' CInt
allowLongSwipes'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CarouselSetAllowLongSwipesMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsCarousel a) => O.OverloadedMethod CarouselSetAllowLongSwipesMethodInfo a signature where
    overloadedMethod = carouselSetAllowLongSwipes

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


#endif

-- method Carousel::set_allow_mouse_drag
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "Carousel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a carousel" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "allow_mouse_drag"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "whether @self can be dragged with mouse pointer"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "adw_carousel_set_allow_mouse_drag" adw_carousel_set_allow_mouse_drag :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    CInt ->                                 -- allow_mouse_drag : TBasicType TBoolean
    IO ()

-- | Sets whether /@self@/ can be dragged with mouse pointer.
-- 
-- If /@allowMouseDrag@/ is @FALSE@, dragging is only available on touch.
-- 
-- /Since: 1.0/
carouselSetAllowMouseDrag ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a) =>
    a
    -- ^ /@self@/: a carousel
    -> Bool
    -- ^ /@allowMouseDrag@/: whether /@self@/ can be dragged with mouse pointer
    -> m ()
carouselSetAllowMouseDrag :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCarousel a) =>
a -> Bool -> m ()
carouselSetAllowMouseDrag a
self Bool
allowMouseDrag = 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 Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    let allowMouseDrag' :: CInt
allowMouseDrag' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
allowMouseDrag
    Ptr Carousel -> CInt -> IO ()
adw_carousel_set_allow_mouse_drag Ptr Carousel
self' CInt
allowMouseDrag'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CarouselSetAllowMouseDragMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsCarousel a) => O.OverloadedMethod CarouselSetAllowMouseDragMethodInfo a signature where
    overloadedMethod = carouselSetAllowMouseDrag

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


#endif

-- method Carousel::set_allow_scroll_wheel
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "Carousel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a carousel" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "allow_scroll_wheel"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "whether @self will respond to scroll wheel events"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "adw_carousel_set_allow_scroll_wheel" adw_carousel_set_allow_scroll_wheel :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    CInt ->                                 -- allow_scroll_wheel : TBasicType TBoolean
    IO ()

-- | Sets whether /@self@/ will respond to scroll wheel events.
-- 
-- If /@allowScrollWheel@/ is @FALSE@, wheel events will be ignored.
-- 
-- /Since: 1.0/
carouselSetAllowScrollWheel ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a) =>
    a
    -- ^ /@self@/: a carousel
    -> Bool
    -- ^ /@allowScrollWheel@/: whether /@self@/ will respond to scroll wheel events
    -> m ()
carouselSetAllowScrollWheel :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCarousel a) =>
a -> Bool -> m ()
carouselSetAllowScrollWheel a
self Bool
allowScrollWheel = 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 Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    let allowScrollWheel' :: CInt
allowScrollWheel' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
allowScrollWheel
    Ptr Carousel -> CInt -> IO ()
adw_carousel_set_allow_scroll_wheel Ptr Carousel
self' CInt
allowScrollWheel'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CarouselSetAllowScrollWheelMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsCarousel a) => O.OverloadedMethod CarouselSetAllowScrollWheelMethodInfo a signature where
    overloadedMethod = carouselSetAllowScrollWheel

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


#endif

-- method Carousel::set_interactive
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "Carousel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a carousel" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "interactive"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "whether @self can be navigated"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "adw_carousel_set_interactive" adw_carousel_set_interactive :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    CInt ->                                 -- interactive : TBasicType TBoolean
    IO ()

-- | Sets whether /@self@/ can be navigated.
-- 
-- This can be used to temporarily disable the carousel to only allow navigating
-- it in a certain state.
-- 
-- /Since: 1.0/
carouselSetInteractive ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a) =>
    a
    -- ^ /@self@/: a carousel
    -> Bool
    -- ^ /@interactive@/: whether /@self@/ can be navigated
    -> m ()
carouselSetInteractive :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCarousel a) =>
a -> Bool -> m ()
carouselSetInteractive a
self Bool
interactive = 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 Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    let interactive' :: CInt
interactive' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
interactive
    Ptr Carousel -> CInt -> IO ()
adw_carousel_set_interactive Ptr Carousel
self' CInt
interactive'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CarouselSetInteractiveMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsCarousel a) => O.OverloadedMethod CarouselSetInteractiveMethodInfo a signature where
    overloadedMethod = carouselSetInteractive

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


#endif

-- method Carousel::set_reveal_duration
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "Carousel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a carousel" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "reveal_duration"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the new reveal duration value"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "adw_carousel_set_reveal_duration" adw_carousel_set_reveal_duration :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    Word32 ->                               -- reveal_duration : TBasicType TUInt
    IO ()

-- | Sets the page reveal duration, in milliseconds.
-- 
-- Reveal duration is used when animating adding or removing pages.
-- 
-- /Since: 1.0/
carouselSetRevealDuration ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a) =>
    a
    -- ^ /@self@/: a carousel
    -> Word32
    -- ^ /@revealDuration@/: the new reveal duration value
    -> m ()
carouselSetRevealDuration :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCarousel a) =>
a -> Word32 -> m ()
carouselSetRevealDuration a
self Word32
revealDuration = 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 Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Carousel -> CarouselPageChangedCallback
adw_carousel_set_reveal_duration Ptr Carousel
self' Word32
revealDuration
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CarouselSetRevealDurationMethodInfo
instance (signature ~ (Word32 -> m ()), MonadIO m, IsCarousel a) => O.OverloadedMethod CarouselSetRevealDurationMethodInfo a signature where
    overloadedMethod = carouselSetRevealDuration

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


#endif

-- method Carousel::set_scroll_params
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "Carousel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a carousel" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "params"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "SpringParams" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the new parameters" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "adw_carousel_set_scroll_params" adw_carousel_set_scroll_params :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    Ptr Adw.SpringParams.SpringParams ->    -- params : TInterface (Name {namespace = "Adw", name = "SpringParams"})
    IO ()

-- | Sets the scroll animation spring parameters for /@self@/.
-- 
-- The default value is equivalent to:
-- 
-- 
-- === /c code/
-- >adw_spring_params_new (1, 0.5, 500)
-- 
-- 
-- /Since: 1.0/
carouselSetScrollParams ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a) =>
    a
    -- ^ /@self@/: a carousel
    -> Adw.SpringParams.SpringParams
    -- ^ /@params@/: the new parameters
    -> m ()
carouselSetScrollParams :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCarousel a) =>
a -> SpringParams -> m ()
carouselSetScrollParams a
self SpringParams
params = 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 Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr SpringParams
params' <- SpringParams -> IO (Ptr SpringParams)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr SpringParams
params
    Ptr Carousel -> Ptr SpringParams -> IO ()
adw_carousel_set_scroll_params Ptr Carousel
self' Ptr SpringParams
params'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    SpringParams -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr SpringParams
params
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CarouselSetScrollParamsMethodInfo
instance (signature ~ (Adw.SpringParams.SpringParams -> m ()), MonadIO m, IsCarousel a) => O.OverloadedMethod CarouselSetScrollParamsMethodInfo a signature where
    overloadedMethod = carouselSetScrollParams

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


#endif

-- method Carousel::set_spacing
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "Carousel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a carousel" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "spacing"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the new spacing value"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "adw_carousel_set_spacing" adw_carousel_set_spacing :: 
    Ptr Carousel ->                         -- self : TInterface (Name {namespace = "Adw", name = "Carousel"})
    Word32 ->                               -- spacing : TBasicType TUInt
    IO ()

-- | Sets spacing between pages in pixels.
-- 
-- /Since: 1.0/
carouselSetSpacing ::
    (B.CallStack.HasCallStack, MonadIO m, IsCarousel a) =>
    a
    -- ^ /@self@/: a carousel
    -> Word32
    -- ^ /@spacing@/: the new spacing value
    -> m ()
carouselSetSpacing :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCarousel a) =>
a -> Word32 -> m ()
carouselSetSpacing a
self Word32
spacing = 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 Carousel
self' <- a -> IO (Ptr Carousel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Carousel -> CarouselPageChangedCallback
adw_carousel_set_spacing Ptr Carousel
self' Word32
spacing
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CarouselSetSpacingMethodInfo
instance (signature ~ (Word32 -> m ()), MonadIO m, IsCarousel a) => O.OverloadedMethod CarouselSetSpacingMethodInfo a signature where
    overloadedMethod = carouselSetSpacing

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


#endif