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


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- A bar with contextual information.
-- 
-- \<picture>
--   \<source srcset=\"banner-dark.png\" media=\"(prefers-color-scheme: dark)\">
--   \<img src=\"banner.png\" alt=\"banner\">
-- \<\/picture>
-- 
-- Banners are hidden by default, use [property/@banner@/:revealed] to show them.
-- 
-- Banners have a title, set with [property/@banner@/:title]. Titles can be marked
-- up with Pango markup, use [property/@banner@/:use-markup] to enable it.
-- 
-- Title can be shown centered or left-aligned depending on available space.
-- 
-- Banners can optionally have a button with text on it, set through
-- [property/@banner@/:button-label]. The button can be used with a @GAction@,
-- or with the [signal/@banner@/[buttonClicked](#g:signal:buttonClicked)] signal.
-- 
-- == CSS nodes
-- 
-- @AdwBanner@ has a main CSS node with the name @banner@.
-- 
-- /Since: 1.3/

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

module GI.Adw.Objects.Banner
    ( 

-- * Exported types
    Banner(..)                              ,
    IsBanner                                ,
    toBanner                                ,


 -- * 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"), [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [childFocus]("GI.Gtk.Objects.Widget#g:method:childFocus"), [computeBounds]("GI.Gtk.Objects.Widget#g:method:computeBounds"), [computeExpand]("GI.Gtk.Objects.Widget#g:method:computeExpand"), [computePoint]("GI.Gtk.Objects.Widget#g:method:computePoint"), [computeTransform]("GI.Gtk.Objects.Widget#g:method:computeTransform"), [contains]("GI.Gtk.Objects.Widget#g:method:contains"), [createPangoContext]("GI.Gtk.Objects.Widget#g:method:createPangoContext"), [createPangoLayout]("GI.Gtk.Objects.Widget#g:method:createPangoLayout"), [disposeTemplate]("GI.Gtk.Objects.Widget#g:method:disposeTemplate"), [dragCheckThreshold]("GI.Gtk.Objects.Widget#g:method:dragCheckThreshold"), [errorBell]("GI.Gtk.Objects.Widget#g:method:errorBell"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [grabFocus]("GI.Gtk.Objects.Widget#g:method:grabFocus"), [hasCssClass]("GI.Gtk.Objects.Widget#g:method:hasCssClass"), [hasDefault]("GI.Gtk.Objects.Widget#g:method:hasDefault"), [hasFocus]("GI.Gtk.Objects.Widget#g:method:hasFocus"), [hasVisibleFocus]("GI.Gtk.Objects.Widget#g:method:hasVisibleFocus"), [hide]("GI.Gtk.Objects.Widget#g:method:hide"), [inDestruction]("GI.Gtk.Objects.Widget#g:method:inDestruction"), [initTemplate]("GI.Gtk.Objects.Widget#g:method:initTemplate"), [insertActionGroup]("GI.Gtk.Objects.Widget#g:method:insertActionGroup"), [insertAfter]("GI.Gtk.Objects.Widget#g:method:insertAfter"), [insertBefore]("GI.Gtk.Objects.Widget#g:method:insertBefore"), [isAncestor]("GI.Gtk.Objects.Widget#g:method:isAncestor"), [isDrawable]("GI.Gtk.Objects.Widget#g:method:isDrawable"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [isFocus]("GI.Gtk.Objects.Widget#g:method:isFocus"), [isSensitive]("GI.Gtk.Objects.Widget#g:method:isSensitive"), [isVisible]("GI.Gtk.Objects.Widget#g:method:isVisible"), [keynavFailed]("GI.Gtk.Objects.Widget#g:method:keynavFailed"), [listMnemonicLabels]("GI.Gtk.Objects.Widget#g:method:listMnemonicLabels"), [map]("GI.Gtk.Objects.Widget#g:method:map"), [measure]("GI.Gtk.Objects.Widget#g:method:measure"), [mnemonicActivate]("GI.Gtk.Objects.Widget#g:method:mnemonicActivate"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [observeChildren]("GI.Gtk.Objects.Widget#g:method:observeChildren"), [observeControllers]("GI.Gtk.Objects.Widget#g:method:observeControllers"), [pick]("GI.Gtk.Objects.Widget#g:method:pick"), [queueAllocate]("GI.Gtk.Objects.Widget#g:method:queueAllocate"), [queueDraw]("GI.Gtk.Objects.Widget#g:method:queueDraw"), [queueResize]("GI.Gtk.Objects.Widget#g:method:queueResize"), [realize]("GI.Gtk.Objects.Widget#g:method:realize"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [removeController]("GI.Gtk.Objects.Widget#g:method:removeController"), [removeCssClass]("GI.Gtk.Objects.Widget#g:method:removeCssClass"), [removeMnemonicLabel]("GI.Gtk.Objects.Widget#g:method:removeMnemonicLabel"), [removeTickCallback]("GI.Gtk.Objects.Widget#g:method:removeTickCallback"), [resetProperty]("GI.Gtk.Interfaces.Accessible#g:method:resetProperty"), [resetRelation]("GI.Gtk.Interfaces.Accessible#g:method:resetRelation"), [resetState]("GI.Gtk.Interfaces.Accessible#g:method:resetState"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [shouldLayout]("GI.Gtk.Objects.Widget#g:method:shouldLayout"), [show]("GI.Gtk.Objects.Widget#g:method:show"), [sizeAllocate]("GI.Gtk.Objects.Widget#g:method:sizeAllocate"), [snapshotChild]("GI.Gtk.Objects.Widget#g:method:snapshotChild"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [translateCoordinates]("GI.Gtk.Objects.Widget#g:method:translateCoordinates"), [triggerTooltipQuery]("GI.Gtk.Objects.Widget#g:method:triggerTooltipQuery"), [unmap]("GI.Gtk.Objects.Widget#g:method:unmap"), [unparent]("GI.Gtk.Objects.Widget#g:method:unparent"), [unrealize]("GI.Gtk.Objects.Widget#g:method:unrealize"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [unsetStateFlags]("GI.Gtk.Objects.Widget#g:method:unsetStateFlags"), [updateNextAccessibleSibling]("GI.Gtk.Interfaces.Accessible#g:method:updateNextAccessibleSibling"), [updateProperty]("GI.Gtk.Interfaces.Accessible#g:method:updateProperty"), [updateRelation]("GI.Gtk.Interfaces.Accessible#g:method:updateRelation"), [updateState]("GI.Gtk.Interfaces.Accessible#g:method:updateState"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getAccessibleParent]("GI.Gtk.Interfaces.Accessible#g:method:getAccessibleParent"), [getAccessibleRole]("GI.Gtk.Interfaces.Accessible#g:method:getAccessibleRole"), [getActionName]("GI.Gtk.Interfaces.Actionable#g:method:getActionName"), [getActionTargetValue]("GI.Gtk.Interfaces.Actionable#g:method:getActionTargetValue"), [getAllocatedBaseline]("GI.Gtk.Objects.Widget#g:method:getAllocatedBaseline"), [getAllocatedHeight]("GI.Gtk.Objects.Widget#g:method:getAllocatedHeight"), [getAllocatedWidth]("GI.Gtk.Objects.Widget#g:method:getAllocatedWidth"), [getAllocation]("GI.Gtk.Objects.Widget#g:method:getAllocation"), [getAncestor]("GI.Gtk.Objects.Widget#g:method:getAncestor"), [getAtContext]("GI.Gtk.Interfaces.Accessible#g:method:getAtContext"), [getBounds]("GI.Gtk.Interfaces.Accessible#g:method:getBounds"), [getBuildableId]("GI.Gtk.Interfaces.Buildable#g:method:getBuildableId"), [getButtonLabel]("GI.Adw.Objects.Banner#g:method:getButtonLabel"), [getCanFocus]("GI.Gtk.Objects.Widget#g:method:getCanFocus"), [getCanTarget]("GI.Gtk.Objects.Widget#g:method:getCanTarget"), [getChildVisible]("GI.Gtk.Objects.Widget#g:method:getChildVisible"), [getClipboard]("GI.Gtk.Objects.Widget#g:method:getClipboard"), [getColor]("GI.Gtk.Objects.Widget#g:method:getColor"), [getCssClasses]("GI.Gtk.Objects.Widget#g:method:getCssClasses"), [getCssName]("GI.Gtk.Objects.Widget#g:method:getCssName"), [getCursor]("GI.Gtk.Objects.Widget#g:method:getCursor"), [getData]("GI.GObject.Objects.Object#g:method:getData"), [getDirection]("GI.Gtk.Objects.Widget#g:method:getDirection"), [getDisplay]("GI.Gtk.Objects.Widget#g:method:getDisplay"), [getFirstAccessibleChild]("GI.Gtk.Interfaces.Accessible#g:method:getFirstAccessibleChild"), [getFirstChild]("GI.Gtk.Objects.Widget#g:method:getFirstChild"), [getFocusChild]("GI.Gtk.Objects.Widget#g:method:getFocusChild"), [getFocusOnClick]("GI.Gtk.Objects.Widget#g:method:getFocusOnClick"), [getFocusable]("GI.Gtk.Objects.Widget#g:method:getFocusable"), [getFontMap]("GI.Gtk.Objects.Widget#g:method:getFontMap"), [getFontOptions]("GI.Gtk.Objects.Widget#g:method:getFontOptions"), [getFrameClock]("GI.Gtk.Objects.Widget#g:method:getFrameClock"), [getHalign]("GI.Gtk.Objects.Widget#g:method:getHalign"), [getHasTooltip]("GI.Gtk.Objects.Widget#g:method:getHasTooltip"), [getHeight]("GI.Gtk.Objects.Widget#g:method:getHeight"), [getHexpand]("GI.Gtk.Objects.Widget#g:method:getHexpand"), [getHexpandSet]("GI.Gtk.Objects.Widget#g:method:getHexpandSet"), [getLastChild]("GI.Gtk.Objects.Widget#g:method:getLastChild"), [getLayoutManager]("GI.Gtk.Objects.Widget#g:method:getLayoutManager"), [getMapped]("GI.Gtk.Objects.Widget#g:method:getMapped"), [getMarginBottom]("GI.Gtk.Objects.Widget#g:method:getMarginBottom"), [getMarginEnd]("GI.Gtk.Objects.Widget#g:method:getMarginEnd"), [getMarginStart]("GI.Gtk.Objects.Widget#g:method:getMarginStart"), [getMarginTop]("GI.Gtk.Objects.Widget#g:method:getMarginTop"), [getName]("GI.Gtk.Objects.Widget#g:method:getName"), [getNative]("GI.Gtk.Objects.Widget#g:method:getNative"), [getNextAccessibleSibling]("GI.Gtk.Interfaces.Accessible#g:method:getNextAccessibleSibling"), [getNextSibling]("GI.Gtk.Objects.Widget#g:method:getNextSibling"), [getOpacity]("GI.Gtk.Objects.Widget#g:method:getOpacity"), [getOverflow]("GI.Gtk.Objects.Widget#g:method:getOverflow"), [getPangoContext]("GI.Gtk.Objects.Widget#g:method:getPangoContext"), [getParent]("GI.Gtk.Objects.Widget#g:method:getParent"), [getPlatformState]("GI.Gtk.Interfaces.Accessible#g:method:getPlatformState"), [getPreferredSize]("GI.Gtk.Objects.Widget#g:method:getPreferredSize"), [getPrevSibling]("GI.Gtk.Objects.Widget#g:method:getPrevSibling"), [getPrimaryClipboard]("GI.Gtk.Objects.Widget#g:method:getPrimaryClipboard"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getRealized]("GI.Gtk.Objects.Widget#g:method:getRealized"), [getReceivesDefault]("GI.Gtk.Objects.Widget#g:method:getReceivesDefault"), [getRequestMode]("GI.Gtk.Objects.Widget#g:method:getRequestMode"), [getRevealed]("GI.Adw.Objects.Banner#g:method:getRevealed"), [getRoot]("GI.Gtk.Objects.Widget#g:method:getRoot"), [getScaleFactor]("GI.Gtk.Objects.Widget#g:method:getScaleFactor"), [getSensitive]("GI.Gtk.Objects.Widget#g:method:getSensitive"), [getSettings]("GI.Gtk.Objects.Widget#g:method:getSettings"), [getSize]("GI.Gtk.Objects.Widget#g:method:getSize"), [getSizeRequest]("GI.Gtk.Objects.Widget#g:method:getSizeRequest"), [getStateFlags]("GI.Gtk.Objects.Widget#g:method:getStateFlags"), [getStyleContext]("GI.Gtk.Objects.Widget#g:method:getStyleContext"), [getTemplateChild]("GI.Gtk.Objects.Widget#g:method:getTemplateChild"), [getTitle]("GI.Adw.Objects.Banner#g:method:getTitle"), [getTooltipMarkup]("GI.Gtk.Objects.Widget#g:method:getTooltipMarkup"), [getTooltipText]("GI.Gtk.Objects.Widget#g:method:getTooltipText"), [getUseMarkup]("GI.Adw.Objects.Banner#g:method:getUseMarkup"), [getValign]("GI.Gtk.Objects.Widget#g:method:getValign"), [getVexpand]("GI.Gtk.Objects.Widget#g:method:getVexpand"), [getVexpandSet]("GI.Gtk.Objects.Widget#g:method:getVexpandSet"), [getVisible]("GI.Gtk.Objects.Widget#g:method:getVisible"), [getWidth]("GI.Gtk.Objects.Widget#g:method:getWidth").
-- 
-- ==== Setters
-- [setAccessibleParent]("GI.Gtk.Interfaces.Accessible#g:method:setAccessibleParent"), [setActionName]("GI.Gtk.Interfaces.Actionable#g:method:setActionName"), [setActionTargetValue]("GI.Gtk.Interfaces.Actionable#g:method:setActionTargetValue"), [setButtonLabel]("GI.Adw.Objects.Banner#g:method:setButtonLabel"), [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"), [setDetailedActionName]("GI.Gtk.Interfaces.Actionable#g:method:setDetailedActionName"), [setDirection]("GI.Gtk.Objects.Widget#g:method:setDirection"), [setFocusChild]("GI.Gtk.Objects.Widget#g:method:setFocusChild"), [setFocusOnClick]("GI.Gtk.Objects.Widget#g:method:setFocusOnClick"), [setFocusable]("GI.Gtk.Objects.Widget#g:method:setFocusable"), [setFontMap]("GI.Gtk.Objects.Widget#g:method:setFontMap"), [setFontOptions]("GI.Gtk.Objects.Widget#g:method:setFontOptions"), [setHalign]("GI.Gtk.Objects.Widget#g:method:setHalign"), [setHasTooltip]("GI.Gtk.Objects.Widget#g:method:setHasTooltip"), [setHexpand]("GI.Gtk.Objects.Widget#g:method:setHexpand"), [setHexpandSet]("GI.Gtk.Objects.Widget#g:method:setHexpandSet"), [setLayoutManager]("GI.Gtk.Objects.Widget#g:method:setLayoutManager"), [setMarginBottom]("GI.Gtk.Objects.Widget#g:method:setMarginBottom"), [setMarginEnd]("GI.Gtk.Objects.Widget#g:method:setMarginEnd"), [setMarginStart]("GI.Gtk.Objects.Widget#g:method:setMarginStart"), [setMarginTop]("GI.Gtk.Objects.Widget#g:method:setMarginTop"), [setName]("GI.Gtk.Objects.Widget#g:method:setName"), [setOpacity]("GI.Gtk.Objects.Widget#g:method:setOpacity"), [setOverflow]("GI.Gtk.Objects.Widget#g:method:setOverflow"), [setParent]("GI.Gtk.Objects.Widget#g:method:setParent"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty"), [setReceivesDefault]("GI.Gtk.Objects.Widget#g:method:setReceivesDefault"), [setRevealed]("GI.Adw.Objects.Banner#g:method:setRevealed"), [setSensitive]("GI.Gtk.Objects.Widget#g:method:setSensitive"), [setSizeRequest]("GI.Gtk.Objects.Widget#g:method:setSizeRequest"), [setStateFlags]("GI.Gtk.Objects.Widget#g:method:setStateFlags"), [setTitle]("GI.Adw.Objects.Banner#g:method:setTitle"), [setTooltipMarkup]("GI.Gtk.Objects.Widget#g:method:setTooltipMarkup"), [setTooltipText]("GI.Gtk.Objects.Widget#g:method:setTooltipText"), [setUseMarkup]("GI.Adw.Objects.Banner#g:method:setUseMarkup"), [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)
    ResolveBannerMethod                     ,
#endif

-- ** getButtonLabel #method:getButtonLabel#

#if defined(ENABLE_OVERLOADING)
    BannerGetButtonLabelMethodInfo          ,
#endif
    bannerGetButtonLabel                    ,


-- ** getRevealed #method:getRevealed#

#if defined(ENABLE_OVERLOADING)
    BannerGetRevealedMethodInfo             ,
#endif
    bannerGetRevealed                       ,


-- ** getTitle #method:getTitle#

#if defined(ENABLE_OVERLOADING)
    BannerGetTitleMethodInfo                ,
#endif
    bannerGetTitle                          ,


-- ** getUseMarkup #method:getUseMarkup#

#if defined(ENABLE_OVERLOADING)
    BannerGetUseMarkupMethodInfo            ,
#endif
    bannerGetUseMarkup                      ,


-- ** new #method:new#

    bannerNew                               ,


-- ** setButtonLabel #method:setButtonLabel#

#if defined(ENABLE_OVERLOADING)
    BannerSetButtonLabelMethodInfo          ,
#endif
    bannerSetButtonLabel                    ,


-- ** setRevealed #method:setRevealed#

#if defined(ENABLE_OVERLOADING)
    BannerSetRevealedMethodInfo             ,
#endif
    bannerSetRevealed                       ,


-- ** setTitle #method:setTitle#

#if defined(ENABLE_OVERLOADING)
    BannerSetTitleMethodInfo                ,
#endif
    bannerSetTitle                          ,


-- ** setUseMarkup #method:setUseMarkup#

#if defined(ENABLE_OVERLOADING)
    BannerSetUseMarkupMethodInfo            ,
#endif
    bannerSetUseMarkup                      ,




 -- * Properties


-- ** buttonLabel #attr:buttonLabel#
-- | The label to show on the button.
-- 
-- If set to @\"\"@ or @NULL@, the button won\'t be shown.
-- 
-- The button can be used with a @GAction@, or with the
-- [signal/@banner@/[buttonClicked](#g:signal:buttonClicked)] signal.
-- 
-- /Since: 1.3/

#if defined(ENABLE_OVERLOADING)
    BannerButtonLabelPropertyInfo           ,
#endif
#if defined(ENABLE_OVERLOADING)
    bannerButtonLabel                       ,
#endif
    clearBannerButtonLabel                  ,
    constructBannerButtonLabel              ,
    getBannerButtonLabel                    ,
    setBannerButtonLabel                    ,


-- ** revealed #attr:revealed#
-- | Whether the banner is currently revealed.
-- 
-- /Since: 1.3/

#if defined(ENABLE_OVERLOADING)
    BannerRevealedPropertyInfo              ,
#endif
#if defined(ENABLE_OVERLOADING)
    bannerRevealed                          ,
#endif
    constructBannerRevealed                 ,
    getBannerRevealed                       ,
    setBannerRevealed                       ,


-- ** title #attr:title#
-- | The title for this banner.
-- 
-- See also: [property/@banner@/:use-markup].
-- 
-- /Since: 1.3/

#if defined(ENABLE_OVERLOADING)
    BannerTitlePropertyInfo                 ,
#endif
#if defined(ENABLE_OVERLOADING)
    bannerTitle                             ,
#endif
    constructBannerTitle                    ,
    getBannerTitle                          ,
    setBannerTitle                          ,


-- ** useMarkup #attr:useMarkup#
-- | Whether to use Pango markup for the banner title.
-- 
-- See also 'GI.Pango.Functions.parseMarkup'.
-- 
-- /Since: 1.3/

#if defined(ENABLE_OVERLOADING)
    BannerUseMarkupPropertyInfo             ,
#endif
#if defined(ENABLE_OVERLOADING)
    bannerUseMarkup                         ,
#endif
    constructBannerUseMarkup                ,
    getBannerUseMarkup                      ,
    setBannerUseMarkup                      ,




 -- * Signals


-- ** buttonClicked #signal:buttonClicked#

    BannerButtonClickedCallback             ,
#if defined(ENABLE_OVERLOADING)
    BannerButtonClickedSignalInfo           ,
#endif
    afterBannerButtonClicked                ,
    onBannerButtonClicked                   ,




    ) where

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

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

import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gtk.Interfaces.Accessible as Gtk.Accessible
import qualified GI.Gtk.Interfaces.Actionable as Gtk.Actionable
import qualified GI.Gtk.Interfaces.Buildable as Gtk.Buildable
import qualified GI.Gtk.Interfaces.ConstraintTarget as Gtk.ConstraintTarget
import qualified GI.Gtk.Objects.Widget as Gtk.Widget

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

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

foreign import ccall "adw_banner_get_type"
    c_adw_banner_get_type :: IO B.Types.GType

instance B.Types.TypedObject Banner where
    glibType :: IO GType
glibType = IO GType
c_adw_banner_get_type

instance B.Types.GObject Banner

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

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

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

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

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

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

#endif

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

#endif

-- signal Banner::button-clicked
-- | This signal is emitted after the action button has been clicked.
-- 
-- It can be used as an alternative to setting an action.
-- 
-- /Since: 1.3/
type BannerButtonClickedCallback =
    IO ()

type C_BannerButtonClickedCallback =
    Ptr Banner ->                           -- object
    Ptr () ->                               -- user_data
    IO ()

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

wrap_BannerButtonClickedCallback :: 
    GObject a => (a -> BannerButtonClickedCallback) ->
    C_BannerButtonClickedCallback
wrap_BannerButtonClickedCallback :: forall a.
GObject a =>
(a -> IO ()) -> C_BannerButtonClickedCallback
wrap_BannerButtonClickedCallback a -> IO ()
gi'cb Ptr Banner
gi'selfPtr Ptr ()
_ = do
    Ptr Banner -> (Banner -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr Banner
gi'selfPtr ((Banner -> IO ()) -> IO ()) -> (Banner -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Banner
gi'self -> a -> IO ()
gi'cb (Banner -> a
forall a b. Coercible a b => a -> b
Coerce.coerce Banner
gi'self) 


-- | Connect a signal handler for the [buttonClicked](#signal:buttonClicked) 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' banner #buttonClicked callback
-- @
-- 
-- 
onBannerButtonClicked :: (IsBanner a, MonadIO m) => a -> ((?self :: a) => BannerButtonClickedCallback) -> m SignalHandlerId
onBannerButtonClicked :: forall a (m :: * -> *).
(IsBanner a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
onBannerButtonClicked a
obj (?self::a) => IO ()
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 -> IO ()
wrapped a
self = let ?self = a
?self::a
self in IO ()
(?self::a) => IO ()
cb
    let wrapped' :: C_BannerButtonClickedCallback
wrapped' = (a -> IO ()) -> C_BannerButtonClickedCallback
forall a.
GObject a =>
(a -> IO ()) -> C_BannerButtonClickedCallback
wrap_BannerButtonClickedCallback a -> IO ()
wrapped
    FunPtr C_BannerButtonClickedCallback
wrapped'' <- C_BannerButtonClickedCallback
-> IO (FunPtr C_BannerButtonClickedCallback)
mk_BannerButtonClickedCallback C_BannerButtonClickedCallback
wrapped'
    a
-> Text
-> FunPtr C_BannerButtonClickedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"button-clicked" FunPtr C_BannerButtonClickedCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [buttonClicked](#signal:buttonClicked) 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' banner #buttonClicked 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.
-- 
afterBannerButtonClicked :: (IsBanner a, MonadIO m) => a -> ((?self :: a) => BannerButtonClickedCallback) -> m SignalHandlerId
afterBannerButtonClicked :: forall a (m :: * -> *).
(IsBanner a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
afterBannerButtonClicked a
obj (?self::a) => IO ()
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 -> IO ()
wrapped a
self = let ?self = a
?self::a
self in IO ()
(?self::a) => IO ()
cb
    let wrapped' :: C_BannerButtonClickedCallback
wrapped' = (a -> IO ()) -> C_BannerButtonClickedCallback
forall a.
GObject a =>
(a -> IO ()) -> C_BannerButtonClickedCallback
wrap_BannerButtonClickedCallback a -> IO ()
wrapped
    FunPtr C_BannerButtonClickedCallback
wrapped'' <- C_BannerButtonClickedCallback
-> IO (FunPtr C_BannerButtonClickedCallback)
mk_BannerButtonClickedCallback C_BannerButtonClickedCallback
wrapped'
    a
-> Text
-> FunPtr C_BannerButtonClickedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"button-clicked" FunPtr C_BannerButtonClickedCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data BannerButtonClickedSignalInfo
instance SignalInfo BannerButtonClickedSignalInfo where
    type HaskellCallbackType BannerButtonClickedSignalInfo = BannerButtonClickedCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_BannerButtonClickedCallback cb
        cb'' <- mk_BannerButtonClickedCallback cb'
        connectSignalFunPtr obj "button-clicked" cb'' connectMode detail
    dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.Banner::button-clicked"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.5/docs/GI-Adw-Objects-Banner.html#g:signal:buttonClicked"})

#endif

-- VVV Prop "button-label"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just True,Just True)

-- | Get the value of the “@button-label@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' banner #buttonLabel
-- @
getBannerButtonLabel :: (MonadIO m, IsBanner o) => o -> m (Maybe T.Text)
getBannerButtonLabel :: forall (m :: * -> *) o.
(MonadIO m, IsBanner o) =>
o -> m (Maybe Text)
getBannerButtonLabel o
obj = IO (Maybe Text) -> m (Maybe Text)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"button-label"

-- | Set the value of the “@button-label@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' banner [ #buttonLabel 'Data.GI.Base.Attributes.:=' value ]
-- @
setBannerButtonLabel :: (MonadIO m, IsBanner o) => o -> T.Text -> m ()
setBannerButtonLabel :: forall (m :: * -> *) o.
(MonadIO m, IsBanner o) =>
o -> Text -> m ()
setBannerButtonLabel o
obj Text
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 Text -> IO ()
forall a. GObject a => a -> String -> Maybe Text -> IO ()
B.Properties.setObjectPropertyString o
obj String
"button-label" (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
val)

-- | Construct a `GValueConstruct` with valid value for the “@button-label@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructBannerButtonLabel :: (IsBanner o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructBannerButtonLabel :: forall o (m :: * -> *).
(IsBanner o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructBannerButtonLabel Text
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 Text -> IO (GValueConstruct o)
forall o. String -> Maybe Text -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyString String
"button-label" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)

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

#if defined(ENABLE_OVERLOADING)
data BannerButtonLabelPropertyInfo
instance AttrInfo BannerButtonLabelPropertyInfo where
    type AttrAllowedOps BannerButtonLabelPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint BannerButtonLabelPropertyInfo = IsBanner
    type AttrSetTypeConstraint BannerButtonLabelPropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint BannerButtonLabelPropertyInfo = (~) T.Text
    type AttrTransferType BannerButtonLabelPropertyInfo = T.Text
    type AttrGetType BannerButtonLabelPropertyInfo = (Maybe T.Text)
    type AttrLabel BannerButtonLabelPropertyInfo = "button-label"
    type AttrOrigin BannerButtonLabelPropertyInfo = Banner
    attrGet = getBannerButtonLabel
    attrSet = setBannerButtonLabel
    attrTransfer _ v = do
        return v
    attrConstruct = constructBannerButtonLabel
    attrClear = clearBannerButtonLabel
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.Banner.buttonLabel"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.5/docs/GI-Adw-Objects-Banner.html#g:attr:buttonLabel"
        })
#endif

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

-- | Get the value of the “@revealed@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' banner #revealed
-- @
getBannerRevealed :: (MonadIO m, IsBanner o) => o -> m Bool
getBannerRevealed :: forall (m :: * -> *) o. (MonadIO m, IsBanner o) => o -> m Bool
getBannerRevealed 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
"revealed"

-- | Set the value of the “@revealed@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' banner [ #revealed 'Data.GI.Base.Attributes.:=' value ]
-- @
setBannerRevealed :: (MonadIO m, IsBanner o) => o -> Bool -> m ()
setBannerRevealed :: forall (m :: * -> *) o.
(MonadIO m, IsBanner o) =>
o -> Bool -> m ()
setBannerRevealed 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
"revealed" Bool
val

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

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

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

-- | Get the value of the “@title@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' banner #title
-- @
getBannerTitle :: (MonadIO m, IsBanner o) => o -> m T.Text
getBannerTitle :: forall (m :: * -> *) o. (MonadIO m, IsBanner o) => o -> m Text
getBannerTitle o
obj = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe Text) -> IO Text
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getBannerTitle" (IO (Maybe Text) -> IO Text) -> IO (Maybe Text) -> IO Text
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"title"

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

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

#if defined(ENABLE_OVERLOADING)
data BannerTitlePropertyInfo
instance AttrInfo BannerTitlePropertyInfo where
    type AttrAllowedOps BannerTitlePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint BannerTitlePropertyInfo = IsBanner
    type AttrSetTypeConstraint BannerTitlePropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint BannerTitlePropertyInfo = (~) T.Text
    type AttrTransferType BannerTitlePropertyInfo = T.Text
    type AttrGetType BannerTitlePropertyInfo = T.Text
    type AttrLabel BannerTitlePropertyInfo = "title"
    type AttrOrigin BannerTitlePropertyInfo = Banner
    attrGet = getBannerTitle
    attrSet = setBannerTitle
    attrTransfer _ v = do
        return v
    attrConstruct = constructBannerTitle
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.Banner.title"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.5/docs/GI-Adw-Objects-Banner.html#g:attr:title"
        })
#endif

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

-- | Get the value of the “@use-markup@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' banner #useMarkup
-- @
getBannerUseMarkup :: (MonadIO m, IsBanner o) => o -> m Bool
getBannerUseMarkup :: forall (m :: * -> *) o. (MonadIO m, IsBanner o) => o -> m Bool
getBannerUseMarkup 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
"use-markup"

-- | Set the value of the “@use-markup@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' banner [ #useMarkup 'Data.GI.Base.Attributes.:=' value ]
-- @
setBannerUseMarkup :: (MonadIO m, IsBanner o) => o -> Bool -> m ()
setBannerUseMarkup :: forall (m :: * -> *) o.
(MonadIO m, IsBanner o) =>
o -> Bool -> m ()
setBannerUseMarkup 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
"use-markup" Bool
val

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

#if defined(ENABLE_OVERLOADING)
data BannerUseMarkupPropertyInfo
instance AttrInfo BannerUseMarkupPropertyInfo where
    type AttrAllowedOps BannerUseMarkupPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint BannerUseMarkupPropertyInfo = IsBanner
    type AttrSetTypeConstraint BannerUseMarkupPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint BannerUseMarkupPropertyInfo = (~) Bool
    type AttrTransferType BannerUseMarkupPropertyInfo = Bool
    type AttrGetType BannerUseMarkupPropertyInfo = Bool
    type AttrLabel BannerUseMarkupPropertyInfo = "use-markup"
    type AttrOrigin BannerUseMarkupPropertyInfo = Banner
    attrGet = getBannerUseMarkup
    attrSet = setBannerUseMarkup
    attrTransfer _ v = do
        return v
    attrConstruct = constructBannerUseMarkup
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.Banner.useMarkup"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.5/docs/GI-Adw-Objects-Banner.html#g:attr:useMarkup"
        })
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList Banner
type instance O.AttributeList Banner = BannerAttributeList
type BannerAttributeList = ('[ '("accessibleRole", Gtk.Accessible.AccessibleAccessibleRolePropertyInfo), '("actionName", Gtk.Actionable.ActionableActionNamePropertyInfo), '("actionTarget", Gtk.Actionable.ActionableActionTargetPropertyInfo), '("buttonLabel", BannerButtonLabelPropertyInfo), '("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), '("layoutManager", Gtk.Widget.WidgetLayoutManagerPropertyInfo), '("marginBottom", Gtk.Widget.WidgetMarginBottomPropertyInfo), '("marginEnd", Gtk.Widget.WidgetMarginEndPropertyInfo), '("marginStart", Gtk.Widget.WidgetMarginStartPropertyInfo), '("marginTop", Gtk.Widget.WidgetMarginTopPropertyInfo), '("name", Gtk.Widget.WidgetNamePropertyInfo), '("opacity", Gtk.Widget.WidgetOpacityPropertyInfo), '("overflow", Gtk.Widget.WidgetOverflowPropertyInfo), '("parent", Gtk.Widget.WidgetParentPropertyInfo), '("receivesDefault", Gtk.Widget.WidgetReceivesDefaultPropertyInfo), '("revealed", BannerRevealedPropertyInfo), '("root", Gtk.Widget.WidgetRootPropertyInfo), '("scaleFactor", Gtk.Widget.WidgetScaleFactorPropertyInfo), '("sensitive", Gtk.Widget.WidgetSensitivePropertyInfo), '("title", BannerTitlePropertyInfo), '("tooltipMarkup", Gtk.Widget.WidgetTooltipMarkupPropertyInfo), '("tooltipText", Gtk.Widget.WidgetTooltipTextPropertyInfo), '("useMarkup", BannerUseMarkupPropertyInfo), '("valign", Gtk.Widget.WidgetValignPropertyInfo), '("vexpand", Gtk.Widget.WidgetVexpandPropertyInfo), '("vexpandSet", Gtk.Widget.WidgetVexpandSetPropertyInfo), '("visible", Gtk.Widget.WidgetVisiblePropertyInfo), '("widthRequest", Gtk.Widget.WidgetWidthRequestPropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
bannerButtonLabel :: AttrLabelProxy "buttonLabel"
bannerButtonLabel = AttrLabelProxy

bannerRevealed :: AttrLabelProxy "revealed"
bannerRevealed = AttrLabelProxy

bannerTitle :: AttrLabelProxy "title"
bannerTitle = AttrLabelProxy

bannerUseMarkup :: AttrLabelProxy "useMarkup"
bannerUseMarkup = AttrLabelProxy

#endif

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

#endif

-- method Banner::new
-- method type : Constructor
-- Args: [ Arg
--           { argCName = "title"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the banner title" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "Adw" , name = "Banner" })
-- throws : False
-- Skip return : False

foreign import ccall "adw_banner_new" adw_banner_new :: 
    CString ->                              -- title : TBasicType TUTF8
    IO (Ptr Banner)

-- | Creates a new @AdwBanner@.
-- 
-- /Since: 1.3/
bannerNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    T.Text
    -- ^ /@title@/: the banner title
    -> m Banner
    -- ^ __Returns:__ the newly created @AdwBanner@
bannerNew :: forall (m :: * -> *). (HasCallStack, MonadIO m) => Text -> m Banner
bannerNew Text
title = IO Banner -> m Banner
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Banner -> m Banner) -> IO Banner -> m Banner
forall a b. (a -> b) -> a -> b
$ do
    CString
title' <- Text -> IO CString
textToCString Text
title
    Ptr Banner
result <- CString -> IO (Ptr Banner)
adw_banner_new CString
title'
    Text -> Ptr Banner -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"bannerNew" Ptr Banner
result
    Banner
result' <- ((ManagedPtr Banner -> Banner) -> Ptr Banner -> IO Banner
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Banner -> Banner
Banner) Ptr Banner
result
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
title'
    Banner -> IO Banner
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Banner
result'

#if defined(ENABLE_OVERLOADING)
#endif

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

foreign import ccall "adw_banner_get_button_label" adw_banner_get_button_label :: 
    Ptr Banner ->                           -- self : TInterface (Name {namespace = "Adw", name = "Banner"})
    IO CString

-- | Gets the button label for /@self@/.
-- 
-- /Since: 1.3/
bannerGetButtonLabel ::
    (B.CallStack.HasCallStack, MonadIO m, IsBanner a) =>
    a
    -- ^ /@self@/: a banner
    -> m (Maybe T.Text)
    -- ^ __Returns:__ the button label for /@self@/
bannerGetButtonLabel :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBanner a) =>
a -> m (Maybe Text)
bannerGetButtonLabel a
self = IO (Maybe Text) -> m (Maybe Text)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ do
    Ptr Banner
self' <- a -> IO (Ptr Banner)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
result <- Ptr Banner -> IO CString
adw_banner_get_button_label Ptr Banner
self'
    Maybe Text
maybeResult <- CString -> (CString -> IO Text) -> IO (Maybe Text)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull CString
result ((CString -> IO Text) -> IO (Maybe Text))
-> (CString -> IO Text) -> IO (Maybe Text)
forall a b. (a -> b) -> a -> b
$ \CString
result' -> do
        Text
result'' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result'
        Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result''
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Maybe Text -> IO (Maybe Text)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Text
maybeResult

#if defined(ENABLE_OVERLOADING)
data BannerGetButtonLabelMethodInfo
instance (signature ~ (m (Maybe T.Text)), MonadIO m, IsBanner a) => O.OverloadedMethod BannerGetButtonLabelMethodInfo a signature where
    overloadedMethod = bannerGetButtonLabel

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


#endif

-- method Banner::get_revealed
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType = TInterface Name { namespace = "Adw" , name = "Banner" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a banner" , 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_banner_get_revealed" adw_banner_get_revealed :: 
    Ptr Banner ->                           -- self : TInterface (Name {namespace = "Adw", name = "Banner"})
    IO CInt

-- | Gets if a banner is revealed
-- 
-- /Since: 1.3/
bannerGetRevealed ::
    (B.CallStack.HasCallStack, MonadIO m, IsBanner a) =>
    a
    -- ^ /@self@/: a banner
    -> m Bool
    -- ^ __Returns:__ Whether a banner is revealed
bannerGetRevealed :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBanner a) =>
a -> m Bool
bannerGetRevealed 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 Banner
self' <- a -> IO (Ptr Banner)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CInt
result <- Ptr Banner -> IO CInt
adw_banner_get_revealed Ptr Banner
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 BannerGetRevealedMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsBanner a) => O.OverloadedMethod BannerGetRevealedMethodInfo a signature where
    overloadedMethod = bannerGetRevealed

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


#endif

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

foreign import ccall "adw_banner_get_title" adw_banner_get_title :: 
    Ptr Banner ->                           -- self : TInterface (Name {namespace = "Adw", name = "Banner"})
    IO CString

-- | Gets the title for /@self@/.
-- 
-- /Since: 1.3/
bannerGetTitle ::
    (B.CallStack.HasCallStack, MonadIO m, IsBanner a) =>
    a
    -- ^ /@self@/: a banner
    -> m T.Text
    -- ^ __Returns:__ the title for /@self@/
bannerGetTitle :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBanner a) =>
a -> m Text
bannerGetTitle a
self = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr Banner
self' <- a -> IO (Ptr Banner)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
result <- Ptr Banner -> IO CString
adw_banner_get_title Ptr Banner
self'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"bannerGetTitle" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data BannerGetTitleMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsBanner a) => O.OverloadedMethod BannerGetTitleMethodInfo a signature where
    overloadedMethod = bannerGetTitle

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


#endif

-- method Banner::get_use_markup
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType = TInterface Name { namespace = "Adw" , name = "Banner" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a banner" , 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_banner_get_use_markup" adw_banner_get_use_markup :: 
    Ptr Banner ->                           -- self : TInterface (Name {namespace = "Adw", name = "Banner"})
    IO CInt

-- | Gets whether to use Pango markup for the banner title.
-- 
-- /Since: 1.3/
bannerGetUseMarkup ::
    (B.CallStack.HasCallStack, MonadIO m, IsBanner a) =>
    a
    -- ^ /@self@/: a banner
    -> m Bool
    -- ^ __Returns:__ whether to use markup
bannerGetUseMarkup :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBanner a) =>
a -> m Bool
bannerGetUseMarkup 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 Banner
self' <- a -> IO (Ptr Banner)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CInt
result <- Ptr Banner -> IO CInt
adw_banner_get_use_markup Ptr Banner
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 BannerGetUseMarkupMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsBanner a) => O.OverloadedMethod BannerGetUseMarkupMethodInfo a signature where
    overloadedMethod = bannerGetUseMarkup

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


#endif

-- method Banner::set_button_label
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType = TInterface Name { namespace = "Adw" , name = "Banner" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a banner" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "label"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the label" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "adw_banner_set_button_label" adw_banner_set_button_label :: 
    Ptr Banner ->                           -- self : TInterface (Name {namespace = "Adw", name = "Banner"})
    CString ->                              -- label : TBasicType TUTF8
    IO ()

-- | Sets the button label for /@self@/.
-- 
-- If set to @\"\"@ or @NULL@, the button won\'t be shown.
-- 
-- The button can be used with a @GAction@, or with the
-- [signal/@banner@/[buttonClicked](#g:signal:buttonClicked)] signal.
-- 
-- /Since: 1.3/
bannerSetButtonLabel ::
    (B.CallStack.HasCallStack, MonadIO m, IsBanner a) =>
    a
    -- ^ /@self@/: a banner
    -> Maybe (T.Text)
    -- ^ /@label@/: the label
    -> m ()
bannerSetButtonLabel :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBanner a) =>
a -> Maybe Text -> m ()
bannerSetButtonLabel a
self Maybe Text
label = 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 Banner
self' <- a -> IO (Ptr Banner)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
maybeLabel <- case Maybe Text
label of
        Maybe Text
Nothing -> CString -> IO CString
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return CString
forall a. Ptr a
nullPtr
        Just Text
jLabel -> do
            CString
jLabel' <- Text -> IO CString
textToCString Text
jLabel
            CString -> IO CString
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return CString
jLabel'
    Ptr Banner -> CString -> IO ()
adw_banner_set_button_label Ptr Banner
self' CString
maybeLabel
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
maybeLabel
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data BannerSetButtonLabelMethodInfo
instance (signature ~ (Maybe (T.Text) -> m ()), MonadIO m, IsBanner a) => O.OverloadedMethod BannerSetButtonLabelMethodInfo a signature where
    overloadedMethod = bannerSetButtonLabel

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


#endif

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

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

-- | Sets whether a banner should be revealed
-- 
-- /Since: 1.3/
bannerSetRevealed ::
    (B.CallStack.HasCallStack, MonadIO m, IsBanner a) =>
    a
    -- ^ /@self@/: a banner
    -> Bool
    -- ^ /@revealed@/: whether a banner should be revealed
    -> m ()
bannerSetRevealed :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBanner a) =>
a -> Bool -> m ()
bannerSetRevealed a
self Bool
revealed = 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 Banner
self' <- a -> IO (Ptr Banner)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    let revealed' :: CInt
revealed' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
P.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
P.fromEnum) Bool
revealed
    Ptr Banner -> CInt -> IO ()
adw_banner_set_revealed Ptr Banner
self' CInt
revealed'
    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 BannerSetRevealedMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsBanner a) => O.OverloadedMethod BannerSetRevealedMethodInfo a signature where
    overloadedMethod = bannerSetRevealed

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


#endif

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

foreign import ccall "adw_banner_set_title" adw_banner_set_title :: 
    Ptr Banner ->                           -- self : TInterface (Name {namespace = "Adw", name = "Banner"})
    CString ->                              -- title : TBasicType TUTF8
    IO ()

-- | Sets the title for this banner.
-- 
-- See also: [property/@banner@/:use-markup].
-- 
-- /Since: 1.3/
bannerSetTitle ::
    (B.CallStack.HasCallStack, MonadIO m, IsBanner a) =>
    a
    -- ^ /@self@/: a banner
    -> T.Text
    -- ^ /@title@/: the title
    -> m ()
bannerSetTitle :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBanner a) =>
a -> Text -> m ()
bannerSetTitle a
self Text
title = 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 Banner
self' <- a -> IO (Ptr Banner)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
title' <- Text -> IO CString
textToCString Text
title
    Ptr Banner -> CString -> IO ()
adw_banner_set_title Ptr Banner
self' CString
title'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
title'
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data BannerSetTitleMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsBanner a) => O.OverloadedMethod BannerSetTitleMethodInfo a signature where
    overloadedMethod = bannerSetTitle

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


#endif

-- method Banner::set_use_markup
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType = TInterface Name { namespace = "Adw" , name = "Banner" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a banner" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "use_markup"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "whether to use markup"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

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

-- | Sets whether to use Pango markup for the banner title.
-- 
-- See also 'GI.Pango.Functions.parseMarkup'.
-- 
-- /Since: 1.3/
bannerSetUseMarkup ::
    (B.CallStack.HasCallStack, MonadIO m, IsBanner a) =>
    a
    -- ^ /@self@/: a banner
    -> Bool
    -- ^ /@useMarkup@/: whether to use markup
    -> m ()
bannerSetUseMarkup :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsBanner a) =>
a -> Bool -> m ()
bannerSetUseMarkup a
self Bool
useMarkup = 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 Banner
self' <- a -> IO (Ptr Banner)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    let useMarkup' :: CInt
useMarkup' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
P.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
P.fromEnum) Bool
useMarkup
    Ptr Banner -> CInt -> IO ()
adw_banner_set_use_markup Ptr Banner
self' CInt
useMarkup'
    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 BannerSetUseMarkupMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsBanner a) => O.OverloadedMethod BannerSetUseMarkupMethodInfo a signature where
    overloadedMethod = bannerSetUseMarkup

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


#endif