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


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- A page within [class/@navigationView@/] or [class/@navigationSplitView@/].
-- 
-- Each page has a child widget, a title and optionally a tag.
-- 
-- The [signal/@navigationPage@/[showing](#g:signal:showing)], [signal/@navigationPage@/[shown](#g:signal:shown)],
-- [signal/@navigationPage@/[hiding](#g:signal:hiding)] and [signal/@navigationPage@/[hidden](#g:signal:hidden)] signals
-- can be used to track the page\'s visibility within its @AdwNavigationView@.
-- 
-- == Header Bar Integration
-- 
-- When placed inside @AdwNavigationPage@, [class/@headerBar@/] will display the
-- page title instead of window title.
-- 
-- When used together with [class/@navigationView@/], it will also display a back
-- button that can be used to go back to the previous page. Set
-- [property/@headerBar@/:show-back-button] to @FALSE@ to disable that behavior if
-- it\'s unwanted.
-- 
-- == CSS Nodes
-- 
-- @AdwNavigationPage@ has a single CSS node with name
-- @navigation-view-page@.
-- 
-- == Accessibility
-- 
-- @AdwNavigationPage@ uses the @GTK_ACCESSIBLE_ROLE_GROUP@ role.
-- 
-- /Since: 1.4/

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

module GI.Adw.Objects.NavigationPage
    ( 

-- * Exported types
    NavigationPage(..)                      ,
    IsNavigationPage                        ,
    toNavigationPage                        ,


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

#if defined(ENABLE_OVERLOADING)
    ResolveNavigationPageMethod             ,
#endif

-- ** getCanPop #method:getCanPop#

#if defined(ENABLE_OVERLOADING)
    NavigationPageGetCanPopMethodInfo       ,
#endif
    navigationPageGetCanPop                 ,


-- ** getChild #method:getChild#

#if defined(ENABLE_OVERLOADING)
    NavigationPageGetChildMethodInfo        ,
#endif
    navigationPageGetChild                  ,


-- ** getTag #method:getTag#

#if defined(ENABLE_OVERLOADING)
    NavigationPageGetTagMethodInfo          ,
#endif
    navigationPageGetTag                    ,


-- ** getTitle #method:getTitle#

#if defined(ENABLE_OVERLOADING)
    NavigationPageGetTitleMethodInfo        ,
#endif
    navigationPageGetTitle                  ,


-- ** new #method:new#

    navigationPageNew                       ,


-- ** newWithTag #method:newWithTag#

    navigationPageNewWithTag                ,


-- ** setCanPop #method:setCanPop#

#if defined(ENABLE_OVERLOADING)
    NavigationPageSetCanPopMethodInfo       ,
#endif
    navigationPageSetCanPop                 ,


-- ** setChild #method:setChild#

#if defined(ENABLE_OVERLOADING)
    NavigationPageSetChildMethodInfo        ,
#endif
    navigationPageSetChild                  ,


-- ** setTag #method:setTag#

#if defined(ENABLE_OVERLOADING)
    NavigationPageSetTagMethodInfo          ,
#endif
    navigationPageSetTag                    ,


-- ** setTitle #method:setTitle#

#if defined(ENABLE_OVERLOADING)
    NavigationPageSetTitleMethodInfo        ,
#endif
    navigationPageSetTitle                  ,




 -- * Properties


-- ** canPop #attr:canPop#
-- | Whether the page can be popped from navigation stack.
-- 
-- Set it to @FALSE@ to disable shortcuts and gestures, as well as remove the
-- back button from [class/@headerBar@/].
-- 
-- Manually calling [method/@navigationView@/.pop] or using the @navigation.pop@
-- action will still work.
-- 
-- See [property/@headerBar@/:show-back-button] for removing only the back
-- button, but not shortcuts.
-- 
-- /Since: 1.4/

#if defined(ENABLE_OVERLOADING)
    NavigationPageCanPopPropertyInfo        ,
#endif
    constructNavigationPageCanPop           ,
    getNavigationPageCanPop                 ,
#if defined(ENABLE_OVERLOADING)
    navigationPageCanPop                    ,
#endif
    setNavigationPageCanPop                 ,


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

#if defined(ENABLE_OVERLOADING)
    NavigationPageChildPropertyInfo         ,
#endif
    clearNavigationPageChild                ,
    constructNavigationPageChild            ,
    getNavigationPageChild                  ,
#if defined(ENABLE_OVERLOADING)
    navigationPageChild                     ,
#endif
    setNavigationPageChild                  ,


-- ** tag #attr:tag#
-- | The page tag.
-- 
-- The tag can be used to retrieve the page with
-- [method/@navigationView@/.find_page], as well as with
-- [method/@navigationView@/.push_by_tag], [method/@navigationView@/.pop_to_tag] or
-- [method/@navigationView@/.replace_with_tags].
-- 
-- Tags must be unique within each [class/@navigationView@/].
-- 
-- The tag also must be set to use the @navigation.push@ action.
-- 
-- /Since: 1.4/

#if defined(ENABLE_OVERLOADING)
    NavigationPageTagPropertyInfo           ,
#endif
    clearNavigationPageTag                  ,
    constructNavigationPageTag              ,
    getNavigationPageTag                    ,
#if defined(ENABLE_OVERLOADING)
    navigationPageTag                       ,
#endif
    setNavigationPageTag                    ,


-- ** title #attr:title#
-- | The page title.
-- 
-- It\'s displayed in [class/@headerBar@/] instead of the window title, and used
-- as the tooltip on the next page\'s back button, as well as by screen reader.
-- 
-- /Since: 1.4/

#if defined(ENABLE_OVERLOADING)
    NavigationPageTitlePropertyInfo         ,
#endif
    constructNavigationPageTitle            ,
    getNavigationPageTitle                  ,
#if defined(ENABLE_OVERLOADING)
    navigationPageTitle                     ,
#endif
    setNavigationPageTitle                  ,




 -- * Signals


-- ** hidden #signal:hidden#

    NavigationPageHiddenCallback            ,
#if defined(ENABLE_OVERLOADING)
    NavigationPageHiddenSignalInfo          ,
#endif
    afterNavigationPageHidden               ,
    onNavigationPageHidden                  ,


-- ** hiding #signal:hiding#

    NavigationPageHidingCallback            ,
#if defined(ENABLE_OVERLOADING)
    NavigationPageHidingSignalInfo          ,
#endif
    afterNavigationPageHiding               ,
    onNavigationPageHiding                  ,


-- ** showing #signal:showing#

    NavigationPageShowingCallback           ,
#if defined(ENABLE_OVERLOADING)
    NavigationPageShowingSignalInfo         ,
#endif
    afterNavigationPageShowing              ,
    onNavigationPageShowing                 ,


-- ** shown #signal:shown#

    NavigationPageShownCallback             ,
#if defined(ENABLE_OVERLOADING)
    NavigationPageShownSignalInfo           ,
#endif
    afterNavigationPageShown                ,
    onNavigationPageShown                   ,




    ) where

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

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

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

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

#endif

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

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

foreign import ccall "adw_navigation_page_get_type"
    c_adw_navigation_page_get_type :: IO B.Types.GType

instance B.Types.TypedObject NavigationPage where
    glibType :: IO GType
glibType = IO GType
c_adw_navigation_page_get_type

instance B.Types.GObject NavigationPage

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

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

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

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

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

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

#endif

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

#endif

-- signal NavigationPage::hidden
-- | Emitted when the navigation view transition has been completed and the page
-- is fully hidden.
-- 
-- It will always be preceded by [signal/@navigationPage@/[hiding](#g:signal:hiding)] or
-- [signal/@navigationPage@/[showing](#g:signal:showing)].
-- 
-- /Since: 1.4/
type NavigationPageHiddenCallback =
    IO ()

type C_NavigationPageHiddenCallback =
    Ptr NavigationPage ->                   -- object
    Ptr () ->                               -- user_data
    IO ()

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

wrap_NavigationPageHiddenCallback :: 
    GObject a => (a -> NavigationPageHiddenCallback) ->
    C_NavigationPageHiddenCallback
wrap_NavigationPageHiddenCallback :: forall a.
GObject a =>
(a -> IO ()) -> C_NavigationPageHiddenCallback
wrap_NavigationPageHiddenCallback a -> IO ()
gi'cb Ptr NavigationPage
gi'selfPtr Ptr ()
_ = do
    Ptr NavigationPage -> (NavigationPage -> IO ()) -> IO ()
forall o b.
(HasCallStack, GObject o) =>
Ptr o -> (o -> IO b) -> IO b
B.ManagedPtr.withNewObject Ptr NavigationPage
gi'selfPtr ((NavigationPage -> IO ()) -> IO ())
-> (NavigationPage -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \NavigationPage
gi'self -> a -> IO ()
gi'cb (NavigationPage -> a
forall a b. Coercible a b => a -> b
Coerce.coerce NavigationPage
gi'self) 


-- | Connect a signal handler for the [hidden](#signal:hidden) 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' navigationPage #hidden callback
-- @
-- 
-- 
onNavigationPageHidden :: (IsNavigationPage a, MonadIO m) => a -> ((?self :: a) => NavigationPageHiddenCallback) -> m SignalHandlerId
onNavigationPageHidden :: forall a (m :: * -> *).
(IsNavigationPage a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
onNavigationPageHidden 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_NavigationPageHiddenCallback
wrapped' = (a -> IO ()) -> C_NavigationPageHiddenCallback
forall a.
GObject a =>
(a -> IO ()) -> C_NavigationPageHiddenCallback
wrap_NavigationPageHiddenCallback a -> IO ()
wrapped
    FunPtr C_NavigationPageHiddenCallback
wrapped'' <- C_NavigationPageHiddenCallback
-> IO (FunPtr C_NavigationPageHiddenCallback)
mk_NavigationPageHiddenCallback C_NavigationPageHiddenCallback
wrapped'
    a
-> Text
-> FunPtr C_NavigationPageHiddenCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"hidden" FunPtr C_NavigationPageHiddenCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [hidden](#signal:hidden) 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' navigationPage #hidden 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.
-- 
afterNavigationPageHidden :: (IsNavigationPage a, MonadIO m) => a -> ((?self :: a) => NavigationPageHiddenCallback) -> m SignalHandlerId
afterNavigationPageHidden :: forall a (m :: * -> *).
(IsNavigationPage a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
afterNavigationPageHidden 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_NavigationPageHiddenCallback
wrapped' = (a -> IO ()) -> C_NavigationPageHiddenCallback
forall a.
GObject a =>
(a -> IO ()) -> C_NavigationPageHiddenCallback
wrap_NavigationPageHiddenCallback a -> IO ()
wrapped
    FunPtr C_NavigationPageHiddenCallback
wrapped'' <- C_NavigationPageHiddenCallback
-> IO (FunPtr C_NavigationPageHiddenCallback)
mk_NavigationPageHiddenCallback C_NavigationPageHiddenCallback
wrapped'
    a
-> Text
-> FunPtr C_NavigationPageHiddenCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"hidden" FunPtr C_NavigationPageHiddenCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data NavigationPageHiddenSignalInfo
instance SignalInfo NavigationPageHiddenSignalInfo where
    type HaskellCallbackType NavigationPageHiddenSignalInfo = NavigationPageHiddenCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_NavigationPageHiddenCallback cb
        cb'' <- mk_NavigationPageHiddenCallback cb'
        connectSignalFunPtr obj "hidden" cb'' connectMode detail
    dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.NavigationPage::hidden"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.7/docs/GI-Adw-Objects-NavigationPage.html#g:signal:hidden"})

#endif

-- signal NavigationPage::hiding
-- | Emitted when the page starts hiding at the beginning of the navigation view
-- transition.
-- 
-- It will always be followed by [signal/@navigationPage@/[hidden](#g:signal:hidden)] or
-- [signal/@navigationPage@/[shown](#g:signal:shown)].
-- 
-- /Since: 1.4/
type NavigationPageHidingCallback =
    IO ()

type C_NavigationPageHidingCallback =
    Ptr NavigationPage ->                   -- object
    Ptr () ->                               -- user_data
    IO ()

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

wrap_NavigationPageHidingCallback :: 
    GObject a => (a -> NavigationPageHidingCallback) ->
    C_NavigationPageHidingCallback
wrap_NavigationPageHidingCallback :: forall a.
GObject a =>
(a -> IO ()) -> C_NavigationPageHiddenCallback
wrap_NavigationPageHidingCallback a -> IO ()
gi'cb Ptr NavigationPage
gi'selfPtr Ptr ()
_ = do
    Ptr NavigationPage -> (NavigationPage -> IO ()) -> IO ()
forall o b.
(HasCallStack, GObject o) =>
Ptr o -> (o -> IO b) -> IO b
B.ManagedPtr.withNewObject Ptr NavigationPage
gi'selfPtr ((NavigationPage -> IO ()) -> IO ())
-> (NavigationPage -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \NavigationPage
gi'self -> a -> IO ()
gi'cb (NavigationPage -> a
forall a b. Coercible a b => a -> b
Coerce.coerce NavigationPage
gi'self) 


-- | Connect a signal handler for the [hiding](#signal:hiding) 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' navigationPage #hiding callback
-- @
-- 
-- 
onNavigationPageHiding :: (IsNavigationPage a, MonadIO m) => a -> ((?self :: a) => NavigationPageHidingCallback) -> m SignalHandlerId
onNavigationPageHiding :: forall a (m :: * -> *).
(IsNavigationPage a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
onNavigationPageHiding 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_NavigationPageHiddenCallback
wrapped' = (a -> IO ()) -> C_NavigationPageHiddenCallback
forall a.
GObject a =>
(a -> IO ()) -> C_NavigationPageHiddenCallback
wrap_NavigationPageHidingCallback a -> IO ()
wrapped
    FunPtr C_NavigationPageHiddenCallback
wrapped'' <- C_NavigationPageHiddenCallback
-> IO (FunPtr C_NavigationPageHiddenCallback)
mk_NavigationPageHidingCallback C_NavigationPageHiddenCallback
wrapped'
    a
-> Text
-> FunPtr C_NavigationPageHiddenCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"hiding" FunPtr C_NavigationPageHiddenCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [hiding](#signal:hiding) 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' navigationPage #hiding 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.
-- 
afterNavigationPageHiding :: (IsNavigationPage a, MonadIO m) => a -> ((?self :: a) => NavigationPageHidingCallback) -> m SignalHandlerId
afterNavigationPageHiding :: forall a (m :: * -> *).
(IsNavigationPage a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
afterNavigationPageHiding 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_NavigationPageHiddenCallback
wrapped' = (a -> IO ()) -> C_NavigationPageHiddenCallback
forall a.
GObject a =>
(a -> IO ()) -> C_NavigationPageHiddenCallback
wrap_NavigationPageHidingCallback a -> IO ()
wrapped
    FunPtr C_NavigationPageHiddenCallback
wrapped'' <- C_NavigationPageHiddenCallback
-> IO (FunPtr C_NavigationPageHiddenCallback)
mk_NavigationPageHidingCallback C_NavigationPageHiddenCallback
wrapped'
    a
-> Text
-> FunPtr C_NavigationPageHiddenCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"hiding" FunPtr C_NavigationPageHiddenCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data NavigationPageHidingSignalInfo
instance SignalInfo NavigationPageHidingSignalInfo where
    type HaskellCallbackType NavigationPageHidingSignalInfo = NavigationPageHidingCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_NavigationPageHidingCallback cb
        cb'' <- mk_NavigationPageHidingCallback cb'
        connectSignalFunPtr obj "hiding" cb'' connectMode detail
    dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.NavigationPage::hiding"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.7/docs/GI-Adw-Objects-NavigationPage.html#g:signal:hiding"})

#endif

-- signal NavigationPage::showing
-- | Emitted when the page shows at the beginning of the navigation view
-- transition.
-- 
-- It will always be followed by [signal/@navigationPage@/[shown](#g:signal:shown)] or
-- [signal/@navigationPage@/[hidden](#g:signal:hidden)].
-- 
-- /Since: 1.4/
type NavigationPageShowingCallback =
    IO ()

type C_NavigationPageShowingCallback =
    Ptr NavigationPage ->                   -- object
    Ptr () ->                               -- user_data
    IO ()

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

wrap_NavigationPageShowingCallback :: 
    GObject a => (a -> NavigationPageShowingCallback) ->
    C_NavigationPageShowingCallback
wrap_NavigationPageShowingCallback :: forall a.
GObject a =>
(a -> IO ()) -> C_NavigationPageHiddenCallback
wrap_NavigationPageShowingCallback a -> IO ()
gi'cb Ptr NavigationPage
gi'selfPtr Ptr ()
_ = do
    Ptr NavigationPage -> (NavigationPage -> IO ()) -> IO ()
forall o b.
(HasCallStack, GObject o) =>
Ptr o -> (o -> IO b) -> IO b
B.ManagedPtr.withNewObject Ptr NavigationPage
gi'selfPtr ((NavigationPage -> IO ()) -> IO ())
-> (NavigationPage -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \NavigationPage
gi'self -> a -> IO ()
gi'cb (NavigationPage -> a
forall a b. Coercible a b => a -> b
Coerce.coerce NavigationPage
gi'self) 


-- | Connect a signal handler for the [showing](#signal:showing) 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' navigationPage #showing callback
-- @
-- 
-- 
onNavigationPageShowing :: (IsNavigationPage a, MonadIO m) => a -> ((?self :: a) => NavigationPageShowingCallback) -> m SignalHandlerId
onNavigationPageShowing :: forall a (m :: * -> *).
(IsNavigationPage a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
onNavigationPageShowing 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_NavigationPageHiddenCallback
wrapped' = (a -> IO ()) -> C_NavigationPageHiddenCallback
forall a.
GObject a =>
(a -> IO ()) -> C_NavigationPageHiddenCallback
wrap_NavigationPageShowingCallback a -> IO ()
wrapped
    FunPtr C_NavigationPageHiddenCallback
wrapped'' <- C_NavigationPageHiddenCallback
-> IO (FunPtr C_NavigationPageHiddenCallback)
mk_NavigationPageShowingCallback C_NavigationPageHiddenCallback
wrapped'
    a
-> Text
-> FunPtr C_NavigationPageHiddenCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"showing" FunPtr C_NavigationPageHiddenCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [showing](#signal:showing) 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' navigationPage #showing 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.
-- 
afterNavigationPageShowing :: (IsNavigationPage a, MonadIO m) => a -> ((?self :: a) => NavigationPageShowingCallback) -> m SignalHandlerId
afterNavigationPageShowing :: forall a (m :: * -> *).
(IsNavigationPage a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
afterNavigationPageShowing 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_NavigationPageHiddenCallback
wrapped' = (a -> IO ()) -> C_NavigationPageHiddenCallback
forall a.
GObject a =>
(a -> IO ()) -> C_NavigationPageHiddenCallback
wrap_NavigationPageShowingCallback a -> IO ()
wrapped
    FunPtr C_NavigationPageHiddenCallback
wrapped'' <- C_NavigationPageHiddenCallback
-> IO (FunPtr C_NavigationPageHiddenCallback)
mk_NavigationPageShowingCallback C_NavigationPageHiddenCallback
wrapped'
    a
-> Text
-> FunPtr C_NavigationPageHiddenCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"showing" FunPtr C_NavigationPageHiddenCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data NavigationPageShowingSignalInfo
instance SignalInfo NavigationPageShowingSignalInfo where
    type HaskellCallbackType NavigationPageShowingSignalInfo = NavigationPageShowingCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_NavigationPageShowingCallback cb
        cb'' <- mk_NavigationPageShowingCallback cb'
        connectSignalFunPtr obj "showing" cb'' connectMode detail
    dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.NavigationPage::showing"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.7/docs/GI-Adw-Objects-NavigationPage.html#g:signal:showing"})

#endif

-- signal NavigationPage::shown
-- | Emitted when the navigation view transition has been completed and the page
-- is fully shown.
-- 
-- It will always be preceded by [signal/@navigationPage@/[showing](#g:signal:showing)] or
-- [signal/@navigationPage@/[hiding](#g:signal:hiding)].
-- 
-- /Since: 1.4/
type NavigationPageShownCallback =
    IO ()

type C_NavigationPageShownCallback =
    Ptr NavigationPage ->                   -- object
    Ptr () ->                               -- user_data
    IO ()

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

wrap_NavigationPageShownCallback :: 
    GObject a => (a -> NavigationPageShownCallback) ->
    C_NavigationPageShownCallback
wrap_NavigationPageShownCallback :: forall a.
GObject a =>
(a -> IO ()) -> C_NavigationPageHiddenCallback
wrap_NavigationPageShownCallback a -> IO ()
gi'cb Ptr NavigationPage
gi'selfPtr Ptr ()
_ = do
    Ptr NavigationPage -> (NavigationPage -> IO ()) -> IO ()
forall o b.
(HasCallStack, GObject o) =>
Ptr o -> (o -> IO b) -> IO b
B.ManagedPtr.withNewObject Ptr NavigationPage
gi'selfPtr ((NavigationPage -> IO ()) -> IO ())
-> (NavigationPage -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \NavigationPage
gi'self -> a -> IO ()
gi'cb (NavigationPage -> a
forall a b. Coercible a b => a -> b
Coerce.coerce NavigationPage
gi'self) 


-- | Connect a signal handler for the [shown](#signal:shown) 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' navigationPage #shown callback
-- @
-- 
-- 
onNavigationPageShown :: (IsNavigationPage a, MonadIO m) => a -> ((?self :: a) => NavigationPageShownCallback) -> m SignalHandlerId
onNavigationPageShown :: forall a (m :: * -> *).
(IsNavigationPage a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
onNavigationPageShown 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_NavigationPageHiddenCallback
wrapped' = (a -> IO ()) -> C_NavigationPageHiddenCallback
forall a.
GObject a =>
(a -> IO ()) -> C_NavigationPageHiddenCallback
wrap_NavigationPageShownCallback a -> IO ()
wrapped
    FunPtr C_NavigationPageHiddenCallback
wrapped'' <- C_NavigationPageHiddenCallback
-> IO (FunPtr C_NavigationPageHiddenCallback)
mk_NavigationPageShownCallback C_NavigationPageHiddenCallback
wrapped'
    a
-> Text
-> FunPtr C_NavigationPageHiddenCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"shown" FunPtr C_NavigationPageHiddenCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [shown](#signal:shown) 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' navigationPage #shown 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.
-- 
afterNavigationPageShown :: (IsNavigationPage a, MonadIO m) => a -> ((?self :: a) => NavigationPageShownCallback) -> m SignalHandlerId
afterNavigationPageShown :: forall a (m :: * -> *).
(IsNavigationPage a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
afterNavigationPageShown 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_NavigationPageHiddenCallback
wrapped' = (a -> IO ()) -> C_NavigationPageHiddenCallback
forall a.
GObject a =>
(a -> IO ()) -> C_NavigationPageHiddenCallback
wrap_NavigationPageShownCallback a -> IO ()
wrapped
    FunPtr C_NavigationPageHiddenCallback
wrapped'' <- C_NavigationPageHiddenCallback
-> IO (FunPtr C_NavigationPageHiddenCallback)
mk_NavigationPageShownCallback C_NavigationPageHiddenCallback
wrapped'
    a
-> Text
-> FunPtr C_NavigationPageHiddenCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"shown" FunPtr C_NavigationPageHiddenCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data NavigationPageShownSignalInfo
instance SignalInfo NavigationPageShownSignalInfo where
    type HaskellCallbackType NavigationPageShownSignalInfo = NavigationPageShownCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_NavigationPageShownCallback cb
        cb'' <- mk_NavigationPageShownCallback cb'
        connectSignalFunPtr obj "shown" cb'' connectMode detail
    dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.NavigationPage::shown"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.7/docs/GI-Adw-Objects-NavigationPage.html#g:signal:shown"})

#endif

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

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

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

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

#if defined(ENABLE_OVERLOADING)
data NavigationPageCanPopPropertyInfo
instance AttrInfo NavigationPageCanPopPropertyInfo where
    type AttrAllowedOps NavigationPageCanPopPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint NavigationPageCanPopPropertyInfo = IsNavigationPage
    type AttrSetTypeConstraint NavigationPageCanPopPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint NavigationPageCanPopPropertyInfo = (~) Bool
    type AttrTransferType NavigationPageCanPopPropertyInfo = Bool
    type AttrGetType NavigationPageCanPopPropertyInfo = Bool
    type AttrLabel NavigationPageCanPopPropertyInfo = "can-pop"
    type AttrOrigin NavigationPageCanPopPropertyInfo = NavigationPage
    attrGet = getNavigationPageCanPop
    attrSet = setNavigationPageCanPop
    attrTransfer _ v = do
        return v
    attrConstruct = constructNavigationPageCanPop
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.NavigationPage.canPop"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.7/docs/GI-Adw-Objects-NavigationPage.html#g:attr:canPop"
        })
#endif

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

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

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

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

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

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

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

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

-- | Set the value of the “@tag@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' navigationPage [ #tag 'Data.GI.Base.Attributes.:=' value ]
-- @
setNavigationPageTag :: (MonadIO m, IsNavigationPage o) => o -> T.Text -> m ()
setNavigationPageTag :: forall (m :: * -> *) o.
(MonadIO m, IsNavigationPage o) =>
o -> Text -> m ()
setNavigationPageTag 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
"tag" (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
val)

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

-- | Set the value of the “@tag@” 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' #tag
-- @
clearNavigationPageTag :: (MonadIO m, IsNavigationPage o) => o -> m ()
clearNavigationPageTag :: forall (m :: * -> *) o.
(MonadIO m, IsNavigationPage o) =>
o -> m ()
clearNavigationPageTag 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
"tag" (Maybe Text
forall a. Maybe a
Nothing :: Maybe T.Text)

#if defined(ENABLE_OVERLOADING)
data NavigationPageTagPropertyInfo
instance AttrInfo NavigationPageTagPropertyInfo where
    type AttrAllowedOps NavigationPageTagPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint NavigationPageTagPropertyInfo = IsNavigationPage
    type AttrSetTypeConstraint NavigationPageTagPropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint NavigationPageTagPropertyInfo = (~) T.Text
    type AttrTransferType NavigationPageTagPropertyInfo = T.Text
    type AttrGetType NavigationPageTagPropertyInfo = (Maybe T.Text)
    type AttrLabel NavigationPageTagPropertyInfo = "tag"
    type AttrOrigin NavigationPageTagPropertyInfo = NavigationPage
    attrGet = getNavigationPageTag
    attrSet = setNavigationPageTag
    attrTransfer _ v = do
        return v
    attrConstruct = constructNavigationPageTag
    attrClear = clearNavigationPageTag
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.NavigationPage.tag"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.7/docs/GI-Adw-Objects-NavigationPage.html#g:attr:tag"
        })
#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' navigationPage #title
-- @
getNavigationPageTitle :: (MonadIO m, IsNavigationPage o) => o -> m T.Text
getNavigationPageTitle :: forall (m :: * -> *) o.
(MonadIO m, IsNavigationPage o) =>
o -> m Text
getNavigationPageTitle 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
"getNavigationPageTitle" (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' navigationPage [ #title 'Data.GI.Base.Attributes.:=' value ]
-- @
setNavigationPageTitle :: (MonadIO m, IsNavigationPage o) => o -> T.Text -> m ()
setNavigationPageTitle :: forall (m :: * -> *) o.
(MonadIO m, IsNavigationPage o) =>
o -> Text -> m ()
setNavigationPageTitle 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`.
constructNavigationPageTitle :: (IsNavigationPage o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructNavigationPageTitle :: forall o (m :: * -> *).
(IsNavigationPage o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructNavigationPageTitle 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 NavigationPageTitlePropertyInfo
instance AttrInfo NavigationPageTitlePropertyInfo where
    type AttrAllowedOps NavigationPageTitlePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint NavigationPageTitlePropertyInfo = IsNavigationPage
    type AttrSetTypeConstraint NavigationPageTitlePropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint NavigationPageTitlePropertyInfo = (~) T.Text
    type AttrTransferType NavigationPageTitlePropertyInfo = T.Text
    type AttrGetType NavigationPageTitlePropertyInfo = T.Text
    type AttrLabel NavigationPageTitlePropertyInfo = "title"
    type AttrOrigin NavigationPageTitlePropertyInfo = NavigationPage
    attrGet = getNavigationPageTitle
    attrSet = setNavigationPageTitle
    attrTransfer _ v = do
        return v
    attrConstruct = constructNavigationPageTitle
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Adw.Objects.NavigationPage.title"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-adwaita-1.0.7/docs/GI-Adw-Objects-NavigationPage.html#g:attr:title"
        })
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList NavigationPage
type instance O.AttributeList NavigationPage = NavigationPageAttributeList
type NavigationPageAttributeList = ('[ '("accessibleRole", Gtk.Accessible.AccessibleAccessibleRolePropertyInfo), '("canFocus", Gtk.Widget.WidgetCanFocusPropertyInfo), '("canPop", NavigationPageCanPopPropertyInfo), '("canTarget", Gtk.Widget.WidgetCanTargetPropertyInfo), '("child", NavigationPageChildPropertyInfo), '("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), '("root", Gtk.Widget.WidgetRootPropertyInfo), '("scaleFactor", Gtk.Widget.WidgetScaleFactorPropertyInfo), '("sensitive", Gtk.Widget.WidgetSensitivePropertyInfo), '("tag", NavigationPageTagPropertyInfo), '("title", NavigationPageTitlePropertyInfo), '("tooltipMarkup", Gtk.Widget.WidgetTooltipMarkupPropertyInfo), '("tooltipText", Gtk.Widget.WidgetTooltipTextPropertyInfo), '("valign", Gtk.Widget.WidgetValignPropertyInfo), '("vexpand", Gtk.Widget.WidgetVexpandPropertyInfo), '("vexpandSet", Gtk.Widget.WidgetVexpandSetPropertyInfo), '("visible", Gtk.Widget.WidgetVisiblePropertyInfo), '("widthRequest", Gtk.Widget.WidgetWidthRequestPropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
navigationPageCanPop :: AttrLabelProxy "canPop"
navigationPageCanPop = AttrLabelProxy

navigationPageChild :: AttrLabelProxy "child"
navigationPageChild = AttrLabelProxy

navigationPageTag :: AttrLabelProxy "tag"
navigationPageTag = AttrLabelProxy

navigationPageTitle :: AttrLabelProxy "title"
navigationPageTitle = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList NavigationPage = NavigationPageSignalList
type NavigationPageSignalList = ('[ '("destroy", Gtk.Widget.WidgetDestroySignalInfo), '("directionChanged", Gtk.Widget.WidgetDirectionChangedSignalInfo), '("hidden", NavigationPageHiddenSignalInfo), '("hide", Gtk.Widget.WidgetHideSignalInfo), '("hiding", NavigationPageHidingSignalInfo), '("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), '("showing", NavigationPageShowingSignalInfo), '("shown", NavigationPageShownSignalInfo), '("stateFlagsChanged", Gtk.Widget.WidgetStateFlagsChangedSignalInfo), '("unmap", Gtk.Widget.WidgetUnmapSignalInfo), '("unrealize", Gtk.Widget.WidgetUnrealizeSignalInfo)] :: [(Symbol, DK.Type)])

#endif

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

foreign import ccall "adw_navigation_page_new" adw_navigation_page_new :: 
    Ptr Gtk.Widget.Widget ->                -- child : TInterface (Name {namespace = "Gtk", name = "Widget"})
    CString ->                              -- title : TBasicType TUTF8
    IO (Ptr NavigationPage)

-- | Creates a new @AdwNavigationPage@.
-- 
-- /Since: 1.4/
navigationPageNew ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    a
    -- ^ /@child@/: the child widget
    -> T.Text
    -- ^ /@title@/: the page title
    -> m NavigationPage
    -- ^ __Returns:__ the new created @AdwNavigationPage@
navigationPageNew :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsWidget a) =>
a -> Text -> m NavigationPage
navigationPageNew a
child Text
title = IO NavigationPage -> m NavigationPage
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO NavigationPage -> m NavigationPage)
-> IO NavigationPage -> m NavigationPage
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
child' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
child
    CString
title' <- Text -> IO CString
textToCString Text
title
    Ptr NavigationPage
result <- Ptr Widget -> CString -> IO (Ptr NavigationPage)
adw_navigation_page_new Ptr Widget
child' CString
title'
    Text -> Ptr NavigationPage -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"navigationPageNew" Ptr NavigationPage
result
    NavigationPage
result' <- ((ManagedPtr NavigationPage -> NavigationPage)
-> Ptr NavigationPage -> IO NavigationPage
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr NavigationPage -> NavigationPage
NavigationPage) Ptr NavigationPage
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
child
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
title'
    NavigationPage -> IO NavigationPage
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return NavigationPage
result'

#if defined(ENABLE_OVERLOADING)
#endif

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

foreign import ccall "adw_navigation_page_new_with_tag" adw_navigation_page_new_with_tag :: 
    Ptr Gtk.Widget.Widget ->                -- child : TInterface (Name {namespace = "Gtk", name = "Widget"})
    CString ->                              -- title : TBasicType TUTF8
    CString ->                              -- tag : TBasicType TUTF8
    IO (Ptr NavigationPage)

-- | Creates a new @AdwNavigationPage@ with provided tag.
-- 
-- /Since: 1.4/
navigationPageNewWithTag ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    a
    -- ^ /@child@/: the child widget
    -> T.Text
    -- ^ /@title@/: the page title
    -> T.Text
    -- ^ /@tag@/: the page tag
    -> m NavigationPage
    -- ^ __Returns:__ the new created @AdwNavigationPage@
navigationPageNewWithTag :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsWidget a) =>
a -> Text -> Text -> m NavigationPage
navigationPageNewWithTag a
child Text
title Text
tag = IO NavigationPage -> m NavigationPage
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO NavigationPage -> m NavigationPage)
-> IO NavigationPage -> m NavigationPage
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
child' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
child
    CString
title' <- Text -> IO CString
textToCString Text
title
    CString
tag' <- Text -> IO CString
textToCString Text
tag
    Ptr NavigationPage
result <- Ptr Widget -> CString -> CString -> IO (Ptr NavigationPage)
adw_navigation_page_new_with_tag Ptr Widget
child' CString
title' CString
tag'
    Text -> Ptr NavigationPage -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"navigationPageNewWithTag" Ptr NavigationPage
result
    NavigationPage
result' <- ((ManagedPtr NavigationPage -> NavigationPage)
-> Ptr NavigationPage -> IO NavigationPage
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr NavigationPage -> NavigationPage
NavigationPage) Ptr NavigationPage
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
child
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
title'
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
tag'
    NavigationPage -> IO NavigationPage
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return NavigationPage
result'

#if defined(ENABLE_OVERLOADING)
#endif

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

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

-- | Gets whether /@self@/ can be popped from navigation stack.
-- 
-- /Since: 1.4/
navigationPageGetCanPop ::
    (B.CallStack.HasCallStack, MonadIO m, IsNavigationPage a) =>
    a
    -- ^ /@self@/: a navigation page
    -> m Bool
    -- ^ __Returns:__ whether the page can be popped from navigation stack
navigationPageGetCanPop :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsNavigationPage a) =>
a -> m Bool
navigationPageGetCanPop 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 NavigationPage
self' <- a -> IO (Ptr NavigationPage)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CInt
result <- Ptr NavigationPage -> IO CInt
adw_navigation_page_get_can_pop Ptr NavigationPage
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 NavigationPageGetCanPopMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsNavigationPage a) => O.OverloadedMethod NavigationPageGetCanPopMethodInfo a signature where
    overloadedMethod = navigationPageGetCanPop

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


#endif

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

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

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

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

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


#endif

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

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

-- | Gets the tag of /@self@/.
-- 
-- /Since: 1.4/
navigationPageGetTag ::
    (B.CallStack.HasCallStack, MonadIO m, IsNavigationPage a) =>
    a
    -- ^ /@self@/: a navigation page
    -> m (Maybe T.Text)
    -- ^ __Returns:__ the page tag
navigationPageGetTag :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsNavigationPage a) =>
a -> m (Maybe Text)
navigationPageGetTag 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 NavigationPage
self' <- a -> IO (Ptr NavigationPage)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
result <- Ptr NavigationPage -> IO CString
adw_navigation_page_get_tag Ptr NavigationPage
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 NavigationPageGetTagMethodInfo
instance (signature ~ (m (Maybe T.Text)), MonadIO m, IsNavigationPage a) => O.OverloadedMethod NavigationPageGetTagMethodInfo a signature where
    overloadedMethod = navigationPageGetTag

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


#endif

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

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

-- | Gets the title of /@self@/.
-- 
-- /Since: 1.4/
navigationPageGetTitle ::
    (B.CallStack.HasCallStack, MonadIO m, IsNavigationPage a) =>
    a
    -- ^ /@self@/: a navigation page
    -> m T.Text
    -- ^ __Returns:__ the title of /@self@/
navigationPageGetTitle :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsNavigationPage a) =>
a -> m Text
navigationPageGetTitle 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 NavigationPage
self' <- a -> IO (Ptr NavigationPage)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
result <- Ptr NavigationPage -> IO CString
adw_navigation_page_get_title Ptr NavigationPage
self'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"navigationPageGetTitle" 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 NavigationPageGetTitleMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsNavigationPage a) => O.OverloadedMethod NavigationPageGetTitleMethodInfo a signature where
    overloadedMethod = navigationPageGetTitle

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


#endif

-- method NavigationPage::set_can_pop
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "NavigationPage" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a navigation page" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "can_pop"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "whether the page can be popped from navigation stack"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

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

-- | Sets whether /@self@/ can be popped from navigation stack.
-- 
-- Set it to @FALSE@ to disable shortcuts and gestures, as well as remove the
-- back button from [class/@headerBar@/].
-- 
-- Manually calling [method/@navigationView@/.pop] or using the @navigation.pop@
-- action will still work.
-- 
-- See [property/@headerBar@/:show-back-button] for removing only the back button,
-- but not shortcuts.
-- 
-- /Since: 1.4/
navigationPageSetCanPop ::
    (B.CallStack.HasCallStack, MonadIO m, IsNavigationPage a) =>
    a
    -- ^ /@self@/: a navigation page
    -> Bool
    -- ^ /@canPop@/: whether the page can be popped from navigation stack
    -> m ()
navigationPageSetCanPop :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsNavigationPage a) =>
a -> Bool -> m ()
navigationPageSetCanPop a
self Bool
canPop = 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 NavigationPage
self' <- a -> IO (Ptr NavigationPage)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    let canPop' :: CInt
canPop' = (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
canPop
    Ptr NavigationPage -> CInt -> IO ()
adw_navigation_page_set_can_pop Ptr NavigationPage
self' CInt
canPop'
    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 NavigationPageSetCanPopMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsNavigationPage a) => O.OverloadedMethod NavigationPageSetCanPopMethodInfo a signature where
    overloadedMethod = navigationPageSetCanPop

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


#endif

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

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

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

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

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


#endif

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

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

-- | Sets the tag for /@self@/.
-- 
-- The tag can be used to retrieve the page with
-- [method/@navigationView@/.find_page], as well as with
-- [method/@navigationView@/.push_by_tag], [method/@navigationView@/.pop_to_tag] or
-- [method/@navigationView@/.replace_with_tags].
-- 
-- Tags must be unique within each [class/@navigationView@/].
-- 
-- The tag also must be set to use the @navigation.push@ action.
-- 
-- /Since: 1.4/
navigationPageSetTag ::
    (B.CallStack.HasCallStack, MonadIO m, IsNavigationPage a) =>
    a
    -- ^ /@self@/: a navigation page
    -> Maybe (T.Text)
    -- ^ /@tag@/: the page tag
    -> m ()
navigationPageSetTag :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsNavigationPage a) =>
a -> Maybe Text -> m ()
navigationPageSetTag a
self Maybe Text
tag = 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 NavigationPage
self' <- a -> IO (Ptr NavigationPage)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
maybeTag <- case Maybe Text
tag 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
jTag -> do
            CString
jTag' <- Text -> IO CString
textToCString Text
jTag
            CString -> IO CString
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return CString
jTag'
    Ptr NavigationPage -> CString -> IO ()
adw_navigation_page_set_tag Ptr NavigationPage
self' CString
maybeTag
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
maybeTag
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

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

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


#endif

-- method NavigationPage::set_title
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Adw" , name = "NavigationPage" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a navigation page" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = 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
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

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

-- | Sets the title of /@self@/.
-- 
-- It\'s displayed in [class/@headerBar@/] instead of the window title, and used as
-- the tooltip on the next page\'s back button, as well as by screen reader.
-- 
-- /Since: 1.4/
navigationPageSetTitle ::
    (B.CallStack.HasCallStack, MonadIO m, IsNavigationPage a) =>
    a
    -- ^ /@self@/: a navigation page
    -> T.Text
    -- ^ /@title@/: the title
    -> m ()
navigationPageSetTitle :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsNavigationPage a) =>
a -> Text -> m ()
navigationPageSetTitle 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 NavigationPage
self' <- a -> IO (Ptr NavigationPage)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
title' <- Text -> IO CString
textToCString Text
title
    Ptr NavigationPage -> CString -> IO ()
adw_navigation_page_set_title Ptr NavigationPage
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 NavigationPageSetTitleMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsNavigationPage a) => O.OverloadedMethod NavigationPageSetTitleMethodInfo a signature where
    overloadedMethod = navigationPageSetTitle

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


#endif