{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- The interface vtable for t'GI.Gtk.Interfaces.Actionable.Actionable'.

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

module GI.Gtk.Structs.ActionableInterface
    ( 

-- * Exported types
    ActionableInterface(..)                 ,
    newZeroActionableInterface              ,


 -- * Methods

#if defined(ENABLE_OVERLOADING)
    ResolveActionableInterfaceMethod        ,
#endif



 -- * Properties


-- ** getActionName #attr:getActionName#
-- | virtual function for 'GI.Gtk.Interfaces.Actionable.actionableGetActionName'

#if defined(ENABLE_OVERLOADING)
    actionableInterface_getActionName       ,
#endif
    clearActionableInterfaceGetActionName   ,
    getActionableInterfaceGetActionName     ,
    setActionableInterfaceGetActionName     ,


-- ** getActionTargetValue #attr:getActionTargetValue#
-- | virtual function for 'GI.Gtk.Interfaces.Actionable.actionableGetActionTargetValue'

#if defined(ENABLE_OVERLOADING)
    actionableInterface_getActionTargetValue,
#endif
    clearActionableInterfaceGetActionTargetValue,
    getActionableInterfaceGetActionTargetValue,
    setActionableInterfaceGetActionTargetValue,


-- ** setActionName #attr:setActionName#
-- | virtual function for 'GI.Gtk.Interfaces.Actionable.actionableSetActionName'

#if defined(ENABLE_OVERLOADING)
    actionableInterface_setActionName       ,
#endif
    clearActionableInterfaceSetActionName   ,
    getActionableInterfaceSetActionName     ,
    setActionableInterfaceSetActionName     ,


-- ** setActionTargetValue #attr:setActionTargetValue#
-- | virtual function for 'GI.Gtk.Interfaces.Actionable.actionableSetActionTargetValue'

#if defined(ENABLE_OVERLOADING)
    actionableInterface_setActionTargetValue,
#endif
    clearActionableInterfaceSetActionTargetValue,
    getActionableInterfaceSetActionTargetValue,
    setActionableInterfaceSetActionTargetValue,




    ) 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.Gtk.Callbacks as Gtk.Callbacks

#else
import qualified GI.Gtk.Callbacks as Gtk.Callbacks

#endif

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

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

instance BoxedPtr ActionableInterface where
    boxedPtrCopy :: ActionableInterface -> IO ActionableInterface
boxedPtrCopy = \ActionableInterface
p -> ActionableInterface
-> (Ptr ActionableInterface -> IO ActionableInterface)
-> IO ActionableInterface
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr ActionableInterface
p (Int -> Ptr ActionableInterface -> IO (Ptr ActionableInterface)
forall a. (HasCallStack, CallocPtr a) => Int -> Ptr a -> IO (Ptr a)
copyBytes Int
48 (Ptr ActionableInterface -> IO (Ptr ActionableInterface))
-> (Ptr ActionableInterface -> IO ActionableInterface)
-> Ptr ActionableInterface
-> IO ActionableInterface
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> (ManagedPtr ActionableInterface -> ActionableInterface)
-> Ptr ActionableInterface -> IO ActionableInterface
forall a.
(HasCallStack, BoxedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.wrapPtr ManagedPtr ActionableInterface -> ActionableInterface
ActionableInterface)
    boxedPtrFree :: ActionableInterface -> IO ()
boxedPtrFree = \ActionableInterface
x -> ActionableInterface -> (Ptr ActionableInterface -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
SP.withManagedPtr ActionableInterface
x Ptr ActionableInterface -> IO ()
forall a. Ptr a -> IO ()
SP.freeMem
instance CallocPtr ActionableInterface where
    boxedPtrCalloc :: IO (Ptr ActionableInterface)
boxedPtrCalloc = Int -> IO (Ptr ActionableInterface)
forall a. Int -> IO (Ptr a)
callocBytes Int
48


-- | Construct a `ActionableInterface` struct initialized to zero.
newZeroActionableInterface :: MonadIO m => m ActionableInterface
newZeroActionableInterface :: forall (m :: * -> *). MonadIO m => m ActionableInterface
newZeroActionableInterface = IO ActionableInterface -> m ActionableInterface
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ActionableInterface -> m ActionableInterface)
-> IO ActionableInterface -> m ActionableInterface
forall a b. (a -> b) -> a -> b
$ IO (Ptr ActionableInterface)
forall a. CallocPtr a => IO (Ptr a)
boxedPtrCalloc IO (Ptr ActionableInterface)
-> (Ptr ActionableInterface -> IO ActionableInterface)
-> IO ActionableInterface
forall a b. IO a -> (a -> IO b) -> IO b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (ManagedPtr ActionableInterface -> ActionableInterface)
-> Ptr ActionableInterface -> IO ActionableInterface
forall a.
(HasCallStack, BoxedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapPtr ManagedPtr ActionableInterface -> ActionableInterface
ActionableInterface

instance tag ~ 'AttrSet => Constructible ActionableInterface tag where
    new :: forall (m :: * -> *).
MonadIO m =>
(ManagedPtr ActionableInterface -> ActionableInterface)
-> [AttrOp ActionableInterface tag] -> m ActionableInterface
new ManagedPtr ActionableInterface -> ActionableInterface
_ [AttrOp ActionableInterface tag]
attrs = do
        ActionableInterface
o <- m ActionableInterface
forall (m :: * -> *). MonadIO m => m ActionableInterface
newZeroActionableInterface
        ActionableInterface
-> [AttrOp ActionableInterface 'AttrSet] -> m ()
forall o (m :: * -> *).
MonadIO m =>
o -> [AttrOp o 'AttrSet] -> m ()
GI.Attributes.set ActionableInterface
o [AttrOp ActionableInterface tag]
[AttrOp ActionableInterface 'AttrSet]
attrs
        ActionableInterface -> m ActionableInterface
forall a. a -> m a
forall (m :: * -> *) a. Monad m => a -> m a
return ActionableInterface
o


-- | Get the value of the “@get_action_name@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' actionableInterface #getActionName
-- @
getActionableInterfaceGetActionName :: MonadIO m => ActionableInterface -> m (Maybe Gtk.Callbacks.ActionableInterfaceGetActionNameFieldCallback)
getActionableInterfaceGetActionName :: forall (m :: * -> *).
MonadIO m =>
ActionableInterface
-> m (Maybe ActionableInterfaceGetActionNameFieldCallback)
getActionableInterfaceGetActionName ActionableInterface
s = IO (Maybe ActionableInterfaceGetActionNameFieldCallback)
-> m (Maybe ActionableInterfaceGetActionNameFieldCallback)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe ActionableInterfaceGetActionNameFieldCallback)
 -> m (Maybe ActionableInterfaceGetActionNameFieldCallback))
-> IO (Maybe ActionableInterfaceGetActionNameFieldCallback)
-> m (Maybe ActionableInterfaceGetActionNameFieldCallback)
forall a b. (a -> b) -> a -> b
$ ActionableInterface
-> (Ptr ActionableInterface
    -> IO (Maybe ActionableInterfaceGetActionNameFieldCallback))
-> IO (Maybe ActionableInterfaceGetActionNameFieldCallback)
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr ActionableInterface
s ((Ptr ActionableInterface
  -> IO (Maybe ActionableInterfaceGetActionNameFieldCallback))
 -> IO (Maybe ActionableInterfaceGetActionNameFieldCallback))
-> (Ptr ActionableInterface
    -> IO (Maybe ActionableInterfaceGetActionNameFieldCallback))
-> IO (Maybe ActionableInterfaceGetActionNameFieldCallback)
forall a b. (a -> b) -> a -> b
$ \Ptr ActionableInterface
ptr -> do
    FunPtr C_ActionableInterfaceGetActionNameFieldCallback
val <- Ptr (FunPtr C_ActionableInterfaceGetActionNameFieldCallback)
-> IO (FunPtr C_ActionableInterfaceGetActionNameFieldCallback)
forall a. Storable a => Ptr a -> IO a
peek (Ptr ActionableInterface
ptr Ptr ActionableInterface
-> Int
-> Ptr (FunPtr C_ActionableInterfaceGetActionNameFieldCallback)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16) :: IO (FunPtr Gtk.Callbacks.C_ActionableInterfaceGetActionNameFieldCallback)
    Maybe ActionableInterfaceGetActionNameFieldCallback
result <- FunPtr C_ActionableInterfaceGetActionNameFieldCallback
-> (FunPtr C_ActionableInterfaceGetActionNameFieldCallback
    -> IO ActionableInterfaceGetActionNameFieldCallback)
-> IO (Maybe ActionableInterfaceGetActionNameFieldCallback)
forall a b. FunPtr a -> (FunPtr a -> IO b) -> IO (Maybe b)
SP.convertFunPtrIfNonNull FunPtr C_ActionableInterfaceGetActionNameFieldCallback
val ((FunPtr C_ActionableInterfaceGetActionNameFieldCallback
  -> IO ActionableInterfaceGetActionNameFieldCallback)
 -> IO (Maybe ActionableInterfaceGetActionNameFieldCallback))
-> (FunPtr C_ActionableInterfaceGetActionNameFieldCallback
    -> IO ActionableInterfaceGetActionNameFieldCallback)
-> IO (Maybe ActionableInterfaceGetActionNameFieldCallback)
forall a b. (a -> b) -> a -> b
$ \FunPtr C_ActionableInterfaceGetActionNameFieldCallback
val' -> do
        let val'' :: ActionableInterfaceGetActionNameFieldCallback
val'' = FunPtr C_ActionableInterfaceGetActionNameFieldCallback
-> ActionableInterfaceGetActionNameFieldCallback
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsActionable a) =>
FunPtr C_ActionableInterfaceGetActionNameFieldCallback
-> a -> m (Maybe Text)
Gtk.Callbacks.dynamic_ActionableInterfaceGetActionNameFieldCallback FunPtr C_ActionableInterfaceGetActionNameFieldCallback
val'
        ActionableInterfaceGetActionNameFieldCallback
-> IO ActionableInterfaceGetActionNameFieldCallback
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ActionableInterfaceGetActionNameFieldCallback
val''
    Maybe ActionableInterfaceGetActionNameFieldCallback
-> IO (Maybe ActionableInterfaceGetActionNameFieldCallback)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe ActionableInterfaceGetActionNameFieldCallback
result

-- | Set the value of the “@get_action_name@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' actionableInterface [ #getActionName 'Data.GI.Base.Attributes.:=' value ]
-- @
setActionableInterfaceGetActionName :: MonadIO m => ActionableInterface -> FunPtr Gtk.Callbacks.C_ActionableInterfaceGetActionNameFieldCallback -> m ()
setActionableInterfaceGetActionName :: forall (m :: * -> *).
MonadIO m =>
ActionableInterface
-> FunPtr C_ActionableInterfaceGetActionNameFieldCallback -> m ()
setActionableInterfaceGetActionName ActionableInterface
s FunPtr C_ActionableInterfaceGetActionNameFieldCallback
val = 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
$ ActionableInterface -> (Ptr ActionableInterface -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr ActionableInterface
s ((Ptr ActionableInterface -> IO ()) -> IO ())
-> (Ptr ActionableInterface -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr ActionableInterface
ptr -> do
    Ptr (FunPtr C_ActionableInterfaceGetActionNameFieldCallback)
-> FunPtr C_ActionableInterfaceGetActionNameFieldCallback -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr ActionableInterface
ptr Ptr ActionableInterface
-> Int
-> Ptr (FunPtr C_ActionableInterfaceGetActionNameFieldCallback)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16) (FunPtr C_ActionableInterfaceGetActionNameFieldCallback
val :: FunPtr Gtk.Callbacks.C_ActionableInterfaceGetActionNameFieldCallback)

-- | Set the value of the “@get_action_name@” field to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #getActionName
-- @
clearActionableInterfaceGetActionName :: MonadIO m => ActionableInterface -> m ()
clearActionableInterfaceGetActionName :: forall (m :: * -> *). MonadIO m => ActionableInterface -> m ()
clearActionableInterfaceGetActionName ActionableInterface
s = 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
$ ActionableInterface -> (Ptr ActionableInterface -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr ActionableInterface
s ((Ptr ActionableInterface -> IO ()) -> IO ())
-> (Ptr ActionableInterface -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr ActionableInterface
ptr -> do
    Ptr (FunPtr C_ActionableInterfaceGetActionNameFieldCallback)
-> FunPtr C_ActionableInterfaceGetActionNameFieldCallback -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr ActionableInterface
ptr Ptr ActionableInterface
-> Int
-> Ptr (FunPtr C_ActionableInterfaceGetActionNameFieldCallback)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16) (FunPtr C_ActionableInterfaceGetActionNameFieldCallback
forall a. FunPtr a
FP.nullFunPtr :: FunPtr Gtk.Callbacks.C_ActionableInterfaceGetActionNameFieldCallback)

#if defined(ENABLE_OVERLOADING)
data ActionableInterfaceGetActionNameFieldInfo
instance AttrInfo ActionableInterfaceGetActionNameFieldInfo where
    type AttrBaseTypeConstraint ActionableInterfaceGetActionNameFieldInfo = (~) ActionableInterface
    type AttrAllowedOps ActionableInterfaceGetActionNameFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint ActionableInterfaceGetActionNameFieldInfo = (~) (FunPtr Gtk.Callbacks.C_ActionableInterfaceGetActionNameFieldCallback)
    type AttrTransferTypeConstraint ActionableInterfaceGetActionNameFieldInfo = (~)Gtk.Callbacks.ActionableInterfaceGetActionNameFieldCallback
    type AttrTransferType ActionableInterfaceGetActionNameFieldInfo = (FunPtr Gtk.Callbacks.C_ActionableInterfaceGetActionNameFieldCallback)
    type AttrGetType ActionableInterfaceGetActionNameFieldInfo = Maybe Gtk.Callbacks.ActionableInterfaceGetActionNameFieldCallback
    type AttrLabel ActionableInterfaceGetActionNameFieldInfo = "get_action_name"
    type AttrOrigin ActionableInterfaceGetActionNameFieldInfo = ActionableInterface
    attrGet = getActionableInterfaceGetActionName
    attrSet = setActionableInterfaceGetActionName
    attrConstruct = undefined
    attrClear = clearActionableInterfaceGetActionName
    attrTransfer _ v = do
        Gtk.Callbacks.mk_ActionableInterfaceGetActionNameFieldCallback (Gtk.Callbacks.wrap_ActionableInterfaceGetActionNameFieldCallback Nothing v)
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Structs.ActionableInterface.getActionName"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-3.0.43/docs/GI-Gtk-Structs-ActionableInterface.html#g:attr:getActionName"
        })

actionableInterface_getActionName :: AttrLabelProxy "getActionName"
actionableInterface_getActionName = AttrLabelProxy

#endif


-- | Get the value of the “@set_action_name@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' actionableInterface #setActionName
-- @
getActionableInterfaceSetActionName :: MonadIO m => ActionableInterface -> m (Maybe Gtk.Callbacks.ActionableInterfaceSetActionNameFieldCallback)
getActionableInterfaceSetActionName :: forall (m :: * -> *).
MonadIO m =>
ActionableInterface
-> m (Maybe ActionableInterfaceSetActionNameFieldCallback)
getActionableInterfaceSetActionName ActionableInterface
s = IO (Maybe ActionableInterfaceSetActionNameFieldCallback)
-> m (Maybe ActionableInterfaceSetActionNameFieldCallback)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe ActionableInterfaceSetActionNameFieldCallback)
 -> m (Maybe ActionableInterfaceSetActionNameFieldCallback))
-> IO (Maybe ActionableInterfaceSetActionNameFieldCallback)
-> m (Maybe ActionableInterfaceSetActionNameFieldCallback)
forall a b. (a -> b) -> a -> b
$ ActionableInterface
-> (Ptr ActionableInterface
    -> IO (Maybe ActionableInterfaceSetActionNameFieldCallback))
-> IO (Maybe ActionableInterfaceSetActionNameFieldCallback)
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr ActionableInterface
s ((Ptr ActionableInterface
  -> IO (Maybe ActionableInterfaceSetActionNameFieldCallback))
 -> IO (Maybe ActionableInterfaceSetActionNameFieldCallback))
-> (Ptr ActionableInterface
    -> IO (Maybe ActionableInterfaceSetActionNameFieldCallback))
-> IO (Maybe ActionableInterfaceSetActionNameFieldCallback)
forall a b. (a -> b) -> a -> b
$ \Ptr ActionableInterface
ptr -> do
    FunPtr C_ActionableInterfaceSetActionNameFieldCallback
val <- Ptr (FunPtr C_ActionableInterfaceSetActionNameFieldCallback)
-> IO (FunPtr C_ActionableInterfaceSetActionNameFieldCallback)
forall a. Storable a => Ptr a -> IO a
peek (Ptr ActionableInterface
ptr Ptr ActionableInterface
-> Int
-> Ptr (FunPtr C_ActionableInterfaceSetActionNameFieldCallback)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24) :: IO (FunPtr Gtk.Callbacks.C_ActionableInterfaceSetActionNameFieldCallback)
    Maybe ActionableInterfaceSetActionNameFieldCallback
result <- FunPtr C_ActionableInterfaceSetActionNameFieldCallback
-> (FunPtr C_ActionableInterfaceSetActionNameFieldCallback
    -> IO ActionableInterfaceSetActionNameFieldCallback)
-> IO (Maybe ActionableInterfaceSetActionNameFieldCallback)
forall a b. FunPtr a -> (FunPtr a -> IO b) -> IO (Maybe b)
SP.convertFunPtrIfNonNull FunPtr C_ActionableInterfaceSetActionNameFieldCallback
val ((FunPtr C_ActionableInterfaceSetActionNameFieldCallback
  -> IO ActionableInterfaceSetActionNameFieldCallback)
 -> IO (Maybe ActionableInterfaceSetActionNameFieldCallback))
-> (FunPtr C_ActionableInterfaceSetActionNameFieldCallback
    -> IO ActionableInterfaceSetActionNameFieldCallback)
-> IO (Maybe ActionableInterfaceSetActionNameFieldCallback)
forall a b. (a -> b) -> a -> b
$ \FunPtr C_ActionableInterfaceSetActionNameFieldCallback
val' -> do
        let val'' :: ActionableInterfaceSetActionNameFieldCallback
val'' = FunPtr C_ActionableInterfaceSetActionNameFieldCallback
-> ActionableInterfaceSetActionNameFieldCallback
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsActionable a) =>
FunPtr C_ActionableInterfaceSetActionNameFieldCallback
-> a -> Maybe Text -> m ()
Gtk.Callbacks.dynamic_ActionableInterfaceSetActionNameFieldCallback FunPtr C_ActionableInterfaceSetActionNameFieldCallback
val'
        ActionableInterfaceSetActionNameFieldCallback
-> IO ActionableInterfaceSetActionNameFieldCallback
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ActionableInterfaceSetActionNameFieldCallback
val''
    Maybe ActionableInterfaceSetActionNameFieldCallback
-> IO (Maybe ActionableInterfaceSetActionNameFieldCallback)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe ActionableInterfaceSetActionNameFieldCallback
result

-- | Set the value of the “@set_action_name@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' actionableInterface [ #setActionName 'Data.GI.Base.Attributes.:=' value ]
-- @
setActionableInterfaceSetActionName :: MonadIO m => ActionableInterface -> FunPtr Gtk.Callbacks.C_ActionableInterfaceSetActionNameFieldCallback -> m ()
setActionableInterfaceSetActionName :: forall (m :: * -> *).
MonadIO m =>
ActionableInterface
-> FunPtr C_ActionableInterfaceSetActionNameFieldCallback -> m ()
setActionableInterfaceSetActionName ActionableInterface
s FunPtr C_ActionableInterfaceSetActionNameFieldCallback
val = 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
$ ActionableInterface -> (Ptr ActionableInterface -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr ActionableInterface
s ((Ptr ActionableInterface -> IO ()) -> IO ())
-> (Ptr ActionableInterface -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr ActionableInterface
ptr -> do
    Ptr (FunPtr C_ActionableInterfaceSetActionNameFieldCallback)
-> FunPtr C_ActionableInterfaceSetActionNameFieldCallback -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr ActionableInterface
ptr Ptr ActionableInterface
-> Int
-> Ptr (FunPtr C_ActionableInterfaceSetActionNameFieldCallback)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24) (FunPtr C_ActionableInterfaceSetActionNameFieldCallback
val :: FunPtr Gtk.Callbacks.C_ActionableInterfaceSetActionNameFieldCallback)

-- | Set the value of the “@set_action_name@” field to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #setActionName
-- @
clearActionableInterfaceSetActionName :: MonadIO m => ActionableInterface -> m ()
clearActionableInterfaceSetActionName :: forall (m :: * -> *). MonadIO m => ActionableInterface -> m ()
clearActionableInterfaceSetActionName ActionableInterface
s = 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
$ ActionableInterface -> (Ptr ActionableInterface -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr ActionableInterface
s ((Ptr ActionableInterface -> IO ()) -> IO ())
-> (Ptr ActionableInterface -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr ActionableInterface
ptr -> do
    Ptr (FunPtr C_ActionableInterfaceSetActionNameFieldCallback)
-> FunPtr C_ActionableInterfaceSetActionNameFieldCallback -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr ActionableInterface
ptr Ptr ActionableInterface
-> Int
-> Ptr (FunPtr C_ActionableInterfaceSetActionNameFieldCallback)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24) (FunPtr C_ActionableInterfaceSetActionNameFieldCallback
forall a. FunPtr a
FP.nullFunPtr :: FunPtr Gtk.Callbacks.C_ActionableInterfaceSetActionNameFieldCallback)

#if defined(ENABLE_OVERLOADING)
data ActionableInterfaceSetActionNameFieldInfo
instance AttrInfo ActionableInterfaceSetActionNameFieldInfo where
    type AttrBaseTypeConstraint ActionableInterfaceSetActionNameFieldInfo = (~) ActionableInterface
    type AttrAllowedOps ActionableInterfaceSetActionNameFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint ActionableInterfaceSetActionNameFieldInfo = (~) (FunPtr Gtk.Callbacks.C_ActionableInterfaceSetActionNameFieldCallback)
    type AttrTransferTypeConstraint ActionableInterfaceSetActionNameFieldInfo = (~)Gtk.Callbacks.ActionableInterfaceSetActionNameFieldCallback
    type AttrTransferType ActionableInterfaceSetActionNameFieldInfo = (FunPtr Gtk.Callbacks.C_ActionableInterfaceSetActionNameFieldCallback)
    type AttrGetType ActionableInterfaceSetActionNameFieldInfo = Maybe Gtk.Callbacks.ActionableInterfaceSetActionNameFieldCallback
    type AttrLabel ActionableInterfaceSetActionNameFieldInfo = "set_action_name"
    type AttrOrigin ActionableInterfaceSetActionNameFieldInfo = ActionableInterface
    attrGet = getActionableInterfaceSetActionName
    attrSet = setActionableInterfaceSetActionName
    attrConstruct = undefined
    attrClear = clearActionableInterfaceSetActionName
    attrTransfer _ v = do
        Gtk.Callbacks.mk_ActionableInterfaceSetActionNameFieldCallback (Gtk.Callbacks.wrap_ActionableInterfaceSetActionNameFieldCallback Nothing v)
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Structs.ActionableInterface.setActionName"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-3.0.43/docs/GI-Gtk-Structs-ActionableInterface.html#g:attr:setActionName"
        })

actionableInterface_setActionName :: AttrLabelProxy "setActionName"
actionableInterface_setActionName = AttrLabelProxy

#endif


-- | Get the value of the “@get_action_target_value@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' actionableInterface #getActionTargetValue
-- @
getActionableInterfaceGetActionTargetValue :: MonadIO m => ActionableInterface -> m (Maybe Gtk.Callbacks.ActionableInterfaceGetActionTargetValueFieldCallback)
getActionableInterfaceGetActionTargetValue :: forall (m :: * -> *).
MonadIO m =>
ActionableInterface
-> m (Maybe ActionableInterfaceGetActionTargetValueFieldCallback)
getActionableInterfaceGetActionTargetValue ActionableInterface
s = IO (Maybe ActionableInterfaceGetActionTargetValueFieldCallback)
-> m (Maybe ActionableInterfaceGetActionTargetValueFieldCallback)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe ActionableInterfaceGetActionTargetValueFieldCallback)
 -> m (Maybe ActionableInterfaceGetActionTargetValueFieldCallback))
-> IO (Maybe ActionableInterfaceGetActionTargetValueFieldCallback)
-> m (Maybe ActionableInterfaceGetActionTargetValueFieldCallback)
forall a b. (a -> b) -> a -> b
$ ActionableInterface
-> (Ptr ActionableInterface
    -> IO (Maybe ActionableInterfaceGetActionTargetValueFieldCallback))
-> IO (Maybe ActionableInterfaceGetActionTargetValueFieldCallback)
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr ActionableInterface
s ((Ptr ActionableInterface
  -> IO (Maybe ActionableInterfaceGetActionTargetValueFieldCallback))
 -> IO (Maybe ActionableInterfaceGetActionTargetValueFieldCallback))
-> (Ptr ActionableInterface
    -> IO (Maybe ActionableInterfaceGetActionTargetValueFieldCallback))
-> IO (Maybe ActionableInterfaceGetActionTargetValueFieldCallback)
forall a b. (a -> b) -> a -> b
$ \Ptr ActionableInterface
ptr -> do
    FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback
val <- Ptr (FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback)
-> IO
     (FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback)
forall a. Storable a => Ptr a -> IO a
peek (Ptr ActionableInterface
ptr Ptr ActionableInterface
-> Int
-> Ptr
     (FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32) :: IO (FunPtr Gtk.Callbacks.C_ActionableInterfaceGetActionTargetValueFieldCallback)
    Maybe ActionableInterfaceGetActionTargetValueFieldCallback
result <- FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback
-> (FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback
    -> IO ActionableInterfaceGetActionTargetValueFieldCallback)
-> IO (Maybe ActionableInterfaceGetActionTargetValueFieldCallback)
forall a b. FunPtr a -> (FunPtr a -> IO b) -> IO (Maybe b)
SP.convertFunPtrIfNonNull FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback
val ((FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback
  -> IO ActionableInterfaceGetActionTargetValueFieldCallback)
 -> IO (Maybe ActionableInterfaceGetActionTargetValueFieldCallback))
-> (FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback
    -> IO ActionableInterfaceGetActionTargetValueFieldCallback)
-> IO (Maybe ActionableInterfaceGetActionTargetValueFieldCallback)
forall a b. (a -> b) -> a -> b
$ \FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback
val' -> do
        let val'' :: ActionableInterfaceGetActionTargetValueFieldCallback
val'' = FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback
-> ActionableInterfaceGetActionTargetValueFieldCallback
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsActionable a) =>
FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback
-> a -> m GVariant
Gtk.Callbacks.dynamic_ActionableInterfaceGetActionTargetValueFieldCallback FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback
val'
        ActionableInterfaceGetActionTargetValueFieldCallback
-> IO ActionableInterfaceGetActionTargetValueFieldCallback
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ActionableInterfaceGetActionTargetValueFieldCallback
val''
    Maybe ActionableInterfaceGetActionTargetValueFieldCallback
-> IO (Maybe ActionableInterfaceGetActionTargetValueFieldCallback)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe ActionableInterfaceGetActionTargetValueFieldCallback
result

-- | Set the value of the “@get_action_target_value@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' actionableInterface [ #getActionTargetValue 'Data.GI.Base.Attributes.:=' value ]
-- @
setActionableInterfaceGetActionTargetValue :: MonadIO m => ActionableInterface -> FunPtr Gtk.Callbacks.C_ActionableInterfaceGetActionTargetValueFieldCallback -> m ()
setActionableInterfaceGetActionTargetValue :: forall (m :: * -> *).
MonadIO m =>
ActionableInterface
-> FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback
-> m ()
setActionableInterfaceGetActionTargetValue ActionableInterface
s FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback
val = 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
$ ActionableInterface -> (Ptr ActionableInterface -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr ActionableInterface
s ((Ptr ActionableInterface -> IO ()) -> IO ())
-> (Ptr ActionableInterface -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr ActionableInterface
ptr -> do
    Ptr (FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback)
-> FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback
-> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr ActionableInterface
ptr Ptr ActionableInterface
-> Int
-> Ptr
     (FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32) (FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback
val :: FunPtr Gtk.Callbacks.C_ActionableInterfaceGetActionTargetValueFieldCallback)

-- | Set the value of the “@get_action_target_value@” field to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #getActionTargetValue
-- @
clearActionableInterfaceGetActionTargetValue :: MonadIO m => ActionableInterface -> m ()
clearActionableInterfaceGetActionTargetValue :: forall (m :: * -> *). MonadIO m => ActionableInterface -> m ()
clearActionableInterfaceGetActionTargetValue ActionableInterface
s = 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
$ ActionableInterface -> (Ptr ActionableInterface -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr ActionableInterface
s ((Ptr ActionableInterface -> IO ()) -> IO ())
-> (Ptr ActionableInterface -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr ActionableInterface
ptr -> do
    Ptr (FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback)
-> FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback
-> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr ActionableInterface
ptr Ptr ActionableInterface
-> Int
-> Ptr
     (FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32) (FunPtr C_ActionableInterfaceGetActionTargetValueFieldCallback
forall a. FunPtr a
FP.nullFunPtr :: FunPtr Gtk.Callbacks.C_ActionableInterfaceGetActionTargetValueFieldCallback)

#if defined(ENABLE_OVERLOADING)
data ActionableInterfaceGetActionTargetValueFieldInfo
instance AttrInfo ActionableInterfaceGetActionTargetValueFieldInfo where
    type AttrBaseTypeConstraint ActionableInterfaceGetActionTargetValueFieldInfo = (~) ActionableInterface
    type AttrAllowedOps ActionableInterfaceGetActionTargetValueFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint ActionableInterfaceGetActionTargetValueFieldInfo = (~) (FunPtr Gtk.Callbacks.C_ActionableInterfaceGetActionTargetValueFieldCallback)
    type AttrTransferTypeConstraint ActionableInterfaceGetActionTargetValueFieldInfo = (~)Gtk.Callbacks.ActionableInterfaceGetActionTargetValueFieldCallback
    type AttrTransferType ActionableInterfaceGetActionTargetValueFieldInfo = (FunPtr Gtk.Callbacks.C_ActionableInterfaceGetActionTargetValueFieldCallback)
    type AttrGetType ActionableInterfaceGetActionTargetValueFieldInfo = Maybe Gtk.Callbacks.ActionableInterfaceGetActionTargetValueFieldCallback
    type AttrLabel ActionableInterfaceGetActionTargetValueFieldInfo = "get_action_target_value"
    type AttrOrigin ActionableInterfaceGetActionTargetValueFieldInfo = ActionableInterface
    attrGet = getActionableInterfaceGetActionTargetValue
    attrSet = setActionableInterfaceGetActionTargetValue
    attrConstruct = undefined
    attrClear = clearActionableInterfaceGetActionTargetValue
    attrTransfer _ v = do
        Gtk.Callbacks.mk_ActionableInterfaceGetActionTargetValueFieldCallback (Gtk.Callbacks.wrap_ActionableInterfaceGetActionTargetValueFieldCallback Nothing v)
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Structs.ActionableInterface.getActionTargetValue"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-3.0.43/docs/GI-Gtk-Structs-ActionableInterface.html#g:attr:getActionTargetValue"
        })

actionableInterface_getActionTargetValue :: AttrLabelProxy "getActionTargetValue"
actionableInterface_getActionTargetValue = AttrLabelProxy

#endif


-- | Get the value of the “@set_action_target_value@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' actionableInterface #setActionTargetValue
-- @
getActionableInterfaceSetActionTargetValue :: MonadIO m => ActionableInterface -> m (Maybe Gtk.Callbacks.ActionableInterfaceSetActionTargetValueFieldCallback)
getActionableInterfaceSetActionTargetValue :: forall (m :: * -> *).
MonadIO m =>
ActionableInterface
-> m (Maybe ActionableInterfaceSetActionTargetValueFieldCallback)
getActionableInterfaceSetActionTargetValue ActionableInterface
s = IO (Maybe ActionableInterfaceSetActionTargetValueFieldCallback)
-> m (Maybe ActionableInterfaceSetActionTargetValueFieldCallback)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe ActionableInterfaceSetActionTargetValueFieldCallback)
 -> m (Maybe ActionableInterfaceSetActionTargetValueFieldCallback))
-> IO (Maybe ActionableInterfaceSetActionTargetValueFieldCallback)
-> m (Maybe ActionableInterfaceSetActionTargetValueFieldCallback)
forall a b. (a -> b) -> a -> b
$ ActionableInterface
-> (Ptr ActionableInterface
    -> IO (Maybe ActionableInterfaceSetActionTargetValueFieldCallback))
-> IO (Maybe ActionableInterfaceSetActionTargetValueFieldCallback)
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr ActionableInterface
s ((Ptr ActionableInterface
  -> IO (Maybe ActionableInterfaceSetActionTargetValueFieldCallback))
 -> IO (Maybe ActionableInterfaceSetActionTargetValueFieldCallback))
-> (Ptr ActionableInterface
    -> IO (Maybe ActionableInterfaceSetActionTargetValueFieldCallback))
-> IO (Maybe ActionableInterfaceSetActionTargetValueFieldCallback)
forall a b. (a -> b) -> a -> b
$ \Ptr ActionableInterface
ptr -> do
    FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback
val <- Ptr (FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback)
-> IO
     (FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback)
forall a. Storable a => Ptr a -> IO a
peek (Ptr ActionableInterface
ptr Ptr ActionableInterface
-> Int
-> Ptr
     (FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40) :: IO (FunPtr Gtk.Callbacks.C_ActionableInterfaceSetActionTargetValueFieldCallback)
    Maybe ActionableInterfaceSetActionTargetValueFieldCallback
result <- FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback
-> (FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback
    -> IO ActionableInterfaceSetActionTargetValueFieldCallback)
-> IO (Maybe ActionableInterfaceSetActionTargetValueFieldCallback)
forall a b. FunPtr a -> (FunPtr a -> IO b) -> IO (Maybe b)
SP.convertFunPtrIfNonNull FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback
val ((FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback
  -> IO ActionableInterfaceSetActionTargetValueFieldCallback)
 -> IO (Maybe ActionableInterfaceSetActionTargetValueFieldCallback))
-> (FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback
    -> IO ActionableInterfaceSetActionTargetValueFieldCallback)
-> IO (Maybe ActionableInterfaceSetActionTargetValueFieldCallback)
forall a b. (a -> b) -> a -> b
$ \FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback
val' -> do
        let val'' :: ActionableInterfaceSetActionTargetValueFieldCallback
val'' = FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback
-> ActionableInterfaceSetActionTargetValueFieldCallback
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsActionable a) =>
FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback
-> a -> Maybe GVariant -> m ()
Gtk.Callbacks.dynamic_ActionableInterfaceSetActionTargetValueFieldCallback FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback
val'
        ActionableInterfaceSetActionTargetValueFieldCallback
-> IO ActionableInterfaceSetActionTargetValueFieldCallback
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ActionableInterfaceSetActionTargetValueFieldCallback
val''
    Maybe ActionableInterfaceSetActionTargetValueFieldCallback
-> IO (Maybe ActionableInterfaceSetActionTargetValueFieldCallback)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe ActionableInterfaceSetActionTargetValueFieldCallback
result

-- | Set the value of the “@set_action_target_value@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' actionableInterface [ #setActionTargetValue 'Data.GI.Base.Attributes.:=' value ]
-- @
setActionableInterfaceSetActionTargetValue :: MonadIO m => ActionableInterface -> FunPtr Gtk.Callbacks.C_ActionableInterfaceSetActionTargetValueFieldCallback -> m ()
setActionableInterfaceSetActionTargetValue :: forall (m :: * -> *).
MonadIO m =>
ActionableInterface
-> FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback
-> m ()
setActionableInterfaceSetActionTargetValue ActionableInterface
s FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback
val = 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
$ ActionableInterface -> (Ptr ActionableInterface -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr ActionableInterface
s ((Ptr ActionableInterface -> IO ()) -> IO ())
-> (Ptr ActionableInterface -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr ActionableInterface
ptr -> do
    Ptr (FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback)
-> FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback
-> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr ActionableInterface
ptr Ptr ActionableInterface
-> Int
-> Ptr
     (FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40) (FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback
val :: FunPtr Gtk.Callbacks.C_ActionableInterfaceSetActionTargetValueFieldCallback)

-- | Set the value of the “@set_action_target_value@” field to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #setActionTargetValue
-- @
clearActionableInterfaceSetActionTargetValue :: MonadIO m => ActionableInterface -> m ()
clearActionableInterfaceSetActionTargetValue :: forall (m :: * -> *). MonadIO m => ActionableInterface -> m ()
clearActionableInterfaceSetActionTargetValue ActionableInterface
s = 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
$ ActionableInterface -> (Ptr ActionableInterface -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr ActionableInterface
s ((Ptr ActionableInterface -> IO ()) -> IO ())
-> (Ptr ActionableInterface -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr ActionableInterface
ptr -> do
    Ptr (FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback)
-> FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback
-> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr ActionableInterface
ptr Ptr ActionableInterface
-> Int
-> Ptr
     (FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40) (FunPtr C_ActionableInterfaceSetActionTargetValueFieldCallback
forall a. FunPtr a
FP.nullFunPtr :: FunPtr Gtk.Callbacks.C_ActionableInterfaceSetActionTargetValueFieldCallback)

#if defined(ENABLE_OVERLOADING)
data ActionableInterfaceSetActionTargetValueFieldInfo
instance AttrInfo ActionableInterfaceSetActionTargetValueFieldInfo where
    type AttrBaseTypeConstraint ActionableInterfaceSetActionTargetValueFieldInfo = (~) ActionableInterface
    type AttrAllowedOps ActionableInterfaceSetActionTargetValueFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint ActionableInterfaceSetActionTargetValueFieldInfo = (~) (FunPtr Gtk.Callbacks.C_ActionableInterfaceSetActionTargetValueFieldCallback)
    type AttrTransferTypeConstraint ActionableInterfaceSetActionTargetValueFieldInfo = (~)Gtk.Callbacks.ActionableInterfaceSetActionTargetValueFieldCallback
    type AttrTransferType ActionableInterfaceSetActionTargetValueFieldInfo = (FunPtr Gtk.Callbacks.C_ActionableInterfaceSetActionTargetValueFieldCallback)
    type AttrGetType ActionableInterfaceSetActionTargetValueFieldInfo = Maybe Gtk.Callbacks.ActionableInterfaceSetActionTargetValueFieldCallback
    type AttrLabel ActionableInterfaceSetActionTargetValueFieldInfo = "set_action_target_value"
    type AttrOrigin ActionableInterfaceSetActionTargetValueFieldInfo = ActionableInterface
    attrGet = getActionableInterfaceSetActionTargetValue
    attrSet = setActionableInterfaceSetActionTargetValue
    attrConstruct = undefined
    attrClear = clearActionableInterfaceSetActionTargetValue
    attrTransfer _ v = do
        Gtk.Callbacks.mk_ActionableInterfaceSetActionTargetValueFieldCallback (Gtk.Callbacks.wrap_ActionableInterfaceSetActionTargetValueFieldCallback Nothing v)
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Structs.ActionableInterface.setActionTargetValue"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-3.0.43/docs/GI-Gtk-Structs-ActionableInterface.html#g:attr:setActionTargetValue"
        })

actionableInterface_setActionTargetValue :: AttrLabelProxy "setActionTargetValue"
actionableInterface_setActionTargetValue = AttrLabelProxy

#endif



#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList ActionableInterface
type instance O.AttributeList ActionableInterface = ActionableInterfaceAttributeList
type ActionableInterfaceAttributeList = ('[ '("getActionName", ActionableInterfaceGetActionNameFieldInfo), '("setActionName", ActionableInterfaceSetActionNameFieldInfo), '("getActionTargetValue", ActionableInterfaceGetActionTargetValueFieldInfo), '("setActionTargetValue", ActionableInterfaceSetActionTargetValueFieldInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
type family ResolveActionableInterfaceMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveActionableInterfaceMethod l o = O.MethodResolutionFailed l o

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

#endif

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

#endif