{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- /No description available in the introspection data./

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

module GI.GES.Objects.VideoTransition
    ( 

-- * Exported types
    VideoTransition(..)                     ,
    IsVideoTransition                       ,
    toVideoTransition                       ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [addChildProperty]("GI.GES.Objects.TimelineElement#g:method:addChildProperty"), [addChildrenProps]("GI.GES.Objects.TrackElement#g:method:addChildrenProps"), [addMetasFromString]("GI.GES.Interfaces.MetaContainer#g:method:addMetasFromString"), [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [checkMetaRegistered]("GI.GES.Interfaces.MetaContainer#g:method:checkMetaRegistered"), [clampControlSource]("GI.GES.Objects.TrackElement#g:method:clampControlSource"), [copy]("GI.GES.Objects.TimelineElement#g:method:copy"), [edit]("GI.GES.Objects.TrackElement#g:method:edit"), [editFull]("GI.GES.Objects.TimelineElement#g:method:editFull"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [foreach]("GI.GES.Interfaces.MetaContainer#g:method:foreach"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [hasInternalSource]("GI.GES.Objects.TrackElement#g:method:hasInternalSource"), [isActive]("GI.GES.Objects.TrackElement#g:method:isActive"), [isCore]("GI.GES.Objects.TrackElement#g:method:isCore"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [isInverted]("GI.GES.Objects.VideoTransition#g:method:isInverted"), [listChildrenProperties]("GI.GES.Objects.TrackElement#g:method:listChildrenProperties"), [lookupChild]("GI.GES.Objects.TrackElement#g:method:lookupChild"), [metasToString]("GI.GES.Interfaces.MetaContainer#g:method:metasToString"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [paste]("GI.GES.Objects.TimelineElement#g:method:paste"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [registerMeta]("GI.GES.Interfaces.MetaContainer#g:method:registerMeta"), [registerMetaBoolean]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaBoolean"), [registerMetaDate]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaDate"), [registerMetaDateTime]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaDateTime"), [registerMetaDouble]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaDouble"), [registerMetaFloat]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaFloat"), [registerMetaInt]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaInt"), [registerMetaInt64]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaInt64"), [registerMetaString]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaString"), [registerMetaUint]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaUint"), [registerMetaUint64]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaUint64"), [registerStaticMeta]("GI.GES.Interfaces.MetaContainer#g:method:registerStaticMeta"), [removeChildProperty]("GI.GES.Objects.TimelineElement#g:method:removeChildProperty"), [removeControlBinding]("GI.GES.Objects.TrackElement#g:method:removeControlBinding"), [ripple]("GI.GES.Objects.TimelineElement#g:method:ripple"), [rippleEnd]("GI.GES.Objects.TimelineElement#g:method:rippleEnd"), [rollEnd]("GI.GES.Objects.TimelineElement#g:method:rollEnd"), [rollStart]("GI.GES.Objects.TimelineElement#g:method:rollStart"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [trim]("GI.GES.Objects.TimelineElement#g:method:trim"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getAllControlBindings]("GI.GES.Objects.TrackElement#g:method:getAllControlBindings"), [getAsset]("GI.GES.Interfaces.Extractable#g:method:getAsset"), [getAutoClampControlSources]("GI.GES.Objects.TrackElement#g:method:getAutoClampControlSources"), [getBoolean]("GI.GES.Interfaces.MetaContainer#g:method:getBoolean"), [getBorder]("GI.GES.Objects.VideoTransition#g:method:getBorder"), [getChildProperty]("GI.GES.Objects.TimelineElement#g:method:getChildProperty"), [getChildPropertyByPspec]("GI.GES.Objects.TimelineElement#g:method:getChildPropertyByPspec"), [getControlBinding]("GI.GES.Objects.TrackElement#g:method:getControlBinding"), [getData]("GI.GObject.Objects.Object#g:method:getData"), [getDate]("GI.GES.Interfaces.MetaContainer#g:method:getDate"), [getDateTime]("GI.GES.Interfaces.MetaContainer#g:method:getDateTime"), [getDouble]("GI.GES.Interfaces.MetaContainer#g:method:getDouble"), [getDuration]("GI.GES.Objects.TimelineElement#g:method:getDuration"), [getElement]("GI.GES.Objects.TrackElement#g:method:getElement"), [getFloat]("GI.GES.Interfaces.MetaContainer#g:method:getFloat"), [getGnlobject]("GI.GES.Objects.TrackElement#g:method:getGnlobject"), [getId]("GI.GES.Interfaces.Extractable#g:method:getId"), [getInpoint]("GI.GES.Objects.TimelineElement#g:method:getInpoint"), [getInt]("GI.GES.Interfaces.MetaContainer#g:method:getInt"), [getInt64]("GI.GES.Interfaces.MetaContainer#g:method:getInt64"), [getLayerPriority]("GI.GES.Objects.TimelineElement#g:method:getLayerPriority"), [getMarkerList]("GI.GES.Interfaces.MetaContainer#g:method:getMarkerList"), [getMaxDuration]("GI.GES.Objects.TimelineElement#g:method:getMaxDuration"), [getMeta]("GI.GES.Interfaces.MetaContainer#g:method:getMeta"), [getName]("GI.GES.Objects.TimelineElement#g:method:getName"), [getNaturalFramerate]("GI.GES.Objects.TimelineElement#g:method:getNaturalFramerate"), [getNleobject]("GI.GES.Objects.TrackElement#g:method:getNleobject"), [getParent]("GI.GES.Objects.TimelineElement#g:method:getParent"), [getPriority]("GI.GES.Objects.TimelineElement#g:method:getPriority"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getStart]("GI.GES.Objects.TimelineElement#g:method:getStart"), [getString]("GI.GES.Interfaces.MetaContainer#g:method:getString"), [getTimeline]("GI.GES.Objects.TimelineElement#g:method:getTimeline"), [getToplevelParent]("GI.GES.Objects.TimelineElement#g:method:getToplevelParent"), [getTrack]("GI.GES.Objects.TrackElement#g:method:getTrack"), [getTrackType]("GI.GES.Objects.TrackElement#g:method:getTrackType"), [getTrackTypes]("GI.GES.Objects.TimelineElement#g:method:getTrackTypes"), [getTransitionType]("GI.GES.Objects.VideoTransition#g:method:getTransitionType"), [getUint]("GI.GES.Interfaces.MetaContainer#g:method:getUint"), [getUint64]("GI.GES.Interfaces.MetaContainer#g:method:getUint64").
-- 
-- ==== Setters
-- [setActive]("GI.GES.Objects.TrackElement#g:method:setActive"), [setAsset]("GI.GES.Interfaces.Extractable#g:method:setAsset"), [setAutoClampControlSources]("GI.GES.Objects.TrackElement#g:method:setAutoClampControlSources"), [setBoolean]("GI.GES.Interfaces.MetaContainer#g:method:setBoolean"), [setBorder]("GI.GES.Objects.VideoTransition#g:method:setBorder"), [setChildProperty]("GI.GES.Objects.TimelineElement#g:method:setChildProperty"), [setChildPropertyByPspec]("GI.GES.Objects.TimelineElement#g:method:setChildPropertyByPspec"), [setChildPropertyFull]("GI.GES.Objects.TimelineElement#g:method:setChildPropertyFull"), [setControlSource]("GI.GES.Objects.TrackElement#g:method:setControlSource"), [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setDate]("GI.GES.Interfaces.MetaContainer#g:method:setDate"), [setDateTime]("GI.GES.Interfaces.MetaContainer#g:method:setDateTime"), [setDouble]("GI.GES.Interfaces.MetaContainer#g:method:setDouble"), [setDuration]("GI.GES.Objects.TimelineElement#g:method:setDuration"), [setFloat]("GI.GES.Interfaces.MetaContainer#g:method:setFloat"), [setHasInternalSource]("GI.GES.Objects.TrackElement#g:method:setHasInternalSource"), [setInpoint]("GI.GES.Objects.TimelineElement#g:method:setInpoint"), [setInt]("GI.GES.Interfaces.MetaContainer#g:method:setInt"), [setInt64]("GI.GES.Interfaces.MetaContainer#g:method:setInt64"), [setInverted]("GI.GES.Objects.VideoTransition#g:method:setInverted"), [setMarkerList]("GI.GES.Interfaces.MetaContainer#g:method:setMarkerList"), [setMaxDuration]("GI.GES.Objects.TimelineElement#g:method:setMaxDuration"), [setMeta]("GI.GES.Interfaces.MetaContainer#g:method:setMeta"), [setName]("GI.GES.Objects.TimelineElement#g:method:setName"), [setParent]("GI.GES.Objects.TimelineElement#g:method:setParent"), [setPriority]("GI.GES.Objects.TimelineElement#g:method:setPriority"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty"), [setStart]("GI.GES.Objects.TimelineElement#g:method:setStart"), [setString]("GI.GES.Interfaces.MetaContainer#g:method:setString"), [setTimeline]("GI.GES.Objects.TimelineElement#g:method:setTimeline"), [setTrackType]("GI.GES.Objects.TrackElement#g:method:setTrackType"), [setTransitionType]("GI.GES.Objects.VideoTransition#g:method:setTransitionType"), [setUint]("GI.GES.Interfaces.MetaContainer#g:method:setUint"), [setUint64]("GI.GES.Interfaces.MetaContainer#g:method:setUint64").

#if defined(ENABLE_OVERLOADING)
    ResolveVideoTransitionMethod            ,
#endif

-- ** getBorder #method:getBorder#

#if defined(ENABLE_OVERLOADING)
    VideoTransitionGetBorderMethodInfo      ,
#endif
    videoTransitionGetBorder                ,


-- ** getTransitionType #method:getTransitionType#

#if defined(ENABLE_OVERLOADING)
    VideoTransitionGetTransitionTypeMethodInfo,
#endif
    videoTransitionGetTransitionType        ,


-- ** isInverted #method:isInverted#

#if defined(ENABLE_OVERLOADING)
    VideoTransitionIsInvertedMethodInfo     ,
#endif
    videoTransitionIsInverted               ,


-- ** new #method:new#

    videoTransitionNew                      ,


-- ** setBorder #method:setBorder#

#if defined(ENABLE_OVERLOADING)
    VideoTransitionSetBorderMethodInfo      ,
#endif
    videoTransitionSetBorder                ,


-- ** setInverted #method:setInverted#

#if defined(ENABLE_OVERLOADING)
    VideoTransitionSetInvertedMethodInfo    ,
#endif
    videoTransitionSetInverted              ,


-- ** setTransitionType #method:setTransitionType#

#if defined(ENABLE_OVERLOADING)
    VideoTransitionSetTransitionTypeMethodInfo,
#endif
    videoTransitionSetTransitionType        ,




 -- * Properties


-- ** border #attr:border#
-- | This value represents the border width of the transition.

#if defined(ENABLE_OVERLOADING)
    VideoTransitionBorderPropertyInfo       ,
#endif
    constructVideoTransitionBorder          ,
    getVideoTransitionBorder                ,
    setVideoTransitionBorder                ,
#if defined(ENABLE_OVERLOADING)
    videoTransitionBorder                   ,
#endif


-- ** invert #attr:invert#
-- | This value represents the direction of the transition.

#if defined(ENABLE_OVERLOADING)
    VideoTransitionInvertPropertyInfo       ,
#endif
    constructVideoTransitionInvert          ,
    getVideoTransitionInvert                ,
    setVideoTransitionInvert                ,
#if defined(ENABLE_OVERLOADING)
    videoTransitionInvert                   ,
#endif


-- ** transitionType #attr:transitionType#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    VideoTransitionTransitionTypePropertyInfo,
#endif
    constructVideoTransitionTransitionType  ,
    getVideoTransitionTransitionType        ,
    setVideoTransitionTransitionType        ,
#if defined(ENABLE_OVERLOADING)
    videoTransitionTransitionType           ,
#endif




    ) 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 {-# SOURCE #-} qualified GI.GES.Enums as GES.Enums
import {-# SOURCE #-} qualified GI.GES.Interfaces.Extractable as GES.Extractable
import {-# SOURCE #-} qualified GI.GES.Interfaces.MetaContainer as GES.MetaContainer
import {-# SOURCE #-} qualified GI.GES.Objects.Operation as GES.Operation
import {-# SOURCE #-} qualified GI.GES.Objects.TimelineElement as GES.TimelineElement
import {-# SOURCE #-} qualified GI.GES.Objects.TrackElement as GES.TrackElement
import {-# SOURCE #-} qualified GI.GES.Objects.Transition as GES.Transition
import qualified GI.GObject.Objects.Object as GObject.Object

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

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

foreign import ccall "ges_video_transition_get_type"
    c_ges_video_transition_get_type :: IO B.Types.GType

instance B.Types.TypedObject VideoTransition where
    glibType :: IO GType
glibType = IO GType
c_ges_video_transition_get_type

instance B.Types.GObject VideoTransition

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

instance O.HasParentTypes VideoTransition
type instance O.ParentTypes VideoTransition = '[GES.Transition.Transition, GES.Operation.Operation, GES.TrackElement.TrackElement, GES.TimelineElement.TimelineElement, GObject.Object.Object, GES.Extractable.Extractable, GES.MetaContainer.MetaContainer]

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

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

#if defined(ENABLE_OVERLOADING)
type family ResolveVideoTransitionMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveVideoTransitionMethod "addChildProperty" o = GES.TimelineElement.TimelineElementAddChildPropertyMethodInfo
    ResolveVideoTransitionMethod "addChildrenProps" o = GES.TrackElement.TrackElementAddChildrenPropsMethodInfo
    ResolveVideoTransitionMethod "addMetasFromString" o = GES.MetaContainer.MetaContainerAddMetasFromStringMethodInfo
    ResolveVideoTransitionMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveVideoTransitionMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveVideoTransitionMethod "checkMetaRegistered" o = GES.MetaContainer.MetaContainerCheckMetaRegisteredMethodInfo
    ResolveVideoTransitionMethod "clampControlSource" o = GES.TrackElement.TrackElementClampControlSourceMethodInfo
    ResolveVideoTransitionMethod "copy" o = GES.TimelineElement.TimelineElementCopyMethodInfo
    ResolveVideoTransitionMethod "edit" o = GES.TrackElement.TrackElementEditMethodInfo
    ResolveVideoTransitionMethod "editFull" o = GES.TimelineElement.TimelineElementEditFullMethodInfo
    ResolveVideoTransitionMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveVideoTransitionMethod "foreach" o = GES.MetaContainer.MetaContainerForeachMethodInfo
    ResolveVideoTransitionMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveVideoTransitionMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveVideoTransitionMethod "hasInternalSource" o = GES.TrackElement.TrackElementHasInternalSourceMethodInfo
    ResolveVideoTransitionMethod "isActive" o = GES.TrackElement.TrackElementIsActiveMethodInfo
    ResolveVideoTransitionMethod "isCore" o = GES.TrackElement.TrackElementIsCoreMethodInfo
    ResolveVideoTransitionMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveVideoTransitionMethod "isInverted" o = VideoTransitionIsInvertedMethodInfo
    ResolveVideoTransitionMethod "listChildrenProperties" o = GES.TrackElement.TrackElementListChildrenPropertiesMethodInfo
    ResolveVideoTransitionMethod "lookupChild" o = GES.TrackElement.TrackElementLookupChildMethodInfo
    ResolveVideoTransitionMethod "metasToString" o = GES.MetaContainer.MetaContainerMetasToStringMethodInfo
    ResolveVideoTransitionMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveVideoTransitionMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveVideoTransitionMethod "paste" o = GES.TimelineElement.TimelineElementPasteMethodInfo
    ResolveVideoTransitionMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveVideoTransitionMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveVideoTransitionMethod "registerMeta" o = GES.MetaContainer.MetaContainerRegisterMetaMethodInfo
    ResolveVideoTransitionMethod "registerMetaBoolean" o = GES.MetaContainer.MetaContainerRegisterMetaBooleanMethodInfo
    ResolveVideoTransitionMethod "registerMetaDate" o = GES.MetaContainer.MetaContainerRegisterMetaDateMethodInfo
    ResolveVideoTransitionMethod "registerMetaDateTime" o = GES.MetaContainer.MetaContainerRegisterMetaDateTimeMethodInfo
    ResolveVideoTransitionMethod "registerMetaDouble" o = GES.MetaContainer.MetaContainerRegisterMetaDoubleMethodInfo
    ResolveVideoTransitionMethod "registerMetaFloat" o = GES.MetaContainer.MetaContainerRegisterMetaFloatMethodInfo
    ResolveVideoTransitionMethod "registerMetaInt" o = GES.MetaContainer.MetaContainerRegisterMetaIntMethodInfo
    ResolveVideoTransitionMethod "registerMetaInt64" o = GES.MetaContainer.MetaContainerRegisterMetaInt64MethodInfo
    ResolveVideoTransitionMethod "registerMetaString" o = GES.MetaContainer.MetaContainerRegisterMetaStringMethodInfo
    ResolveVideoTransitionMethod "registerMetaUint" o = GES.MetaContainer.MetaContainerRegisterMetaUintMethodInfo
    ResolveVideoTransitionMethod "registerMetaUint64" o = GES.MetaContainer.MetaContainerRegisterMetaUint64MethodInfo
    ResolveVideoTransitionMethod "registerStaticMeta" o = GES.MetaContainer.MetaContainerRegisterStaticMetaMethodInfo
    ResolveVideoTransitionMethod "removeChildProperty" o = GES.TimelineElement.TimelineElementRemoveChildPropertyMethodInfo
    ResolveVideoTransitionMethod "removeControlBinding" o = GES.TrackElement.TrackElementRemoveControlBindingMethodInfo
    ResolveVideoTransitionMethod "ripple" o = GES.TimelineElement.TimelineElementRippleMethodInfo
    ResolveVideoTransitionMethod "rippleEnd" o = GES.TimelineElement.TimelineElementRippleEndMethodInfo
    ResolveVideoTransitionMethod "rollEnd" o = GES.TimelineElement.TimelineElementRollEndMethodInfo
    ResolveVideoTransitionMethod "rollStart" o = GES.TimelineElement.TimelineElementRollStartMethodInfo
    ResolveVideoTransitionMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveVideoTransitionMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveVideoTransitionMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveVideoTransitionMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveVideoTransitionMethod "trim" o = GES.TimelineElement.TimelineElementTrimMethodInfo
    ResolveVideoTransitionMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveVideoTransitionMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveVideoTransitionMethod "getAllControlBindings" o = GES.TrackElement.TrackElementGetAllControlBindingsMethodInfo
    ResolveVideoTransitionMethod "getAsset" o = GES.Extractable.ExtractableGetAssetMethodInfo
    ResolveVideoTransitionMethod "getAutoClampControlSources" o = GES.TrackElement.TrackElementGetAutoClampControlSourcesMethodInfo
    ResolveVideoTransitionMethod "getBoolean" o = GES.MetaContainer.MetaContainerGetBooleanMethodInfo
    ResolveVideoTransitionMethod "getBorder" o = VideoTransitionGetBorderMethodInfo
    ResolveVideoTransitionMethod "getChildProperty" o = GES.TimelineElement.TimelineElementGetChildPropertyMethodInfo
    ResolveVideoTransitionMethod "getChildPropertyByPspec" o = GES.TimelineElement.TimelineElementGetChildPropertyByPspecMethodInfo
    ResolveVideoTransitionMethod "getControlBinding" o = GES.TrackElement.TrackElementGetControlBindingMethodInfo
    ResolveVideoTransitionMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveVideoTransitionMethod "getDate" o = GES.MetaContainer.MetaContainerGetDateMethodInfo
    ResolveVideoTransitionMethod "getDateTime" o = GES.MetaContainer.MetaContainerGetDateTimeMethodInfo
    ResolveVideoTransitionMethod "getDouble" o = GES.MetaContainer.MetaContainerGetDoubleMethodInfo
    ResolveVideoTransitionMethod "getDuration" o = GES.TimelineElement.TimelineElementGetDurationMethodInfo
    ResolveVideoTransitionMethod "getElement" o = GES.TrackElement.TrackElementGetElementMethodInfo
    ResolveVideoTransitionMethod "getFloat" o = GES.MetaContainer.MetaContainerGetFloatMethodInfo
    ResolveVideoTransitionMethod "getGnlobject" o = GES.TrackElement.TrackElementGetGnlobjectMethodInfo
    ResolveVideoTransitionMethod "getId" o = GES.Extractable.ExtractableGetIdMethodInfo
    ResolveVideoTransitionMethod "getInpoint" o = GES.TimelineElement.TimelineElementGetInpointMethodInfo
    ResolveVideoTransitionMethod "getInt" o = GES.MetaContainer.MetaContainerGetIntMethodInfo
    ResolveVideoTransitionMethod "getInt64" o = GES.MetaContainer.MetaContainerGetInt64MethodInfo
    ResolveVideoTransitionMethod "getLayerPriority" o = GES.TimelineElement.TimelineElementGetLayerPriorityMethodInfo
    ResolveVideoTransitionMethod "getMarkerList" o = GES.MetaContainer.MetaContainerGetMarkerListMethodInfo
    ResolveVideoTransitionMethod "getMaxDuration" o = GES.TimelineElement.TimelineElementGetMaxDurationMethodInfo
    ResolveVideoTransitionMethod "getMeta" o = GES.MetaContainer.MetaContainerGetMetaMethodInfo
    ResolveVideoTransitionMethod "getName" o = GES.TimelineElement.TimelineElementGetNameMethodInfo
    ResolveVideoTransitionMethod "getNaturalFramerate" o = GES.TimelineElement.TimelineElementGetNaturalFramerateMethodInfo
    ResolveVideoTransitionMethod "getNleobject" o = GES.TrackElement.TrackElementGetNleobjectMethodInfo
    ResolveVideoTransitionMethod "getParent" o = GES.TimelineElement.TimelineElementGetParentMethodInfo
    ResolveVideoTransitionMethod "getPriority" o = GES.TimelineElement.TimelineElementGetPriorityMethodInfo
    ResolveVideoTransitionMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveVideoTransitionMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveVideoTransitionMethod "getStart" o = GES.TimelineElement.TimelineElementGetStartMethodInfo
    ResolveVideoTransitionMethod "getString" o = GES.MetaContainer.MetaContainerGetStringMethodInfo
    ResolveVideoTransitionMethod "getTimeline" o = GES.TimelineElement.TimelineElementGetTimelineMethodInfo
    ResolveVideoTransitionMethod "getToplevelParent" o = GES.TimelineElement.TimelineElementGetToplevelParentMethodInfo
    ResolveVideoTransitionMethod "getTrack" o = GES.TrackElement.TrackElementGetTrackMethodInfo
    ResolveVideoTransitionMethod "getTrackType" o = GES.TrackElement.TrackElementGetTrackTypeMethodInfo
    ResolveVideoTransitionMethod "getTrackTypes" o = GES.TimelineElement.TimelineElementGetTrackTypesMethodInfo
    ResolveVideoTransitionMethod "getTransitionType" o = VideoTransitionGetTransitionTypeMethodInfo
    ResolveVideoTransitionMethod "getUint" o = GES.MetaContainer.MetaContainerGetUintMethodInfo
    ResolveVideoTransitionMethod "getUint64" o = GES.MetaContainer.MetaContainerGetUint64MethodInfo
    ResolveVideoTransitionMethod "setActive" o = GES.TrackElement.TrackElementSetActiveMethodInfo
    ResolveVideoTransitionMethod "setAsset" o = GES.Extractable.ExtractableSetAssetMethodInfo
    ResolveVideoTransitionMethod "setAutoClampControlSources" o = GES.TrackElement.TrackElementSetAutoClampControlSourcesMethodInfo
    ResolveVideoTransitionMethod "setBoolean" o = GES.MetaContainer.MetaContainerSetBooleanMethodInfo
    ResolveVideoTransitionMethod "setBorder" o = VideoTransitionSetBorderMethodInfo
    ResolveVideoTransitionMethod "setChildProperty" o = GES.TimelineElement.TimelineElementSetChildPropertyMethodInfo
    ResolveVideoTransitionMethod "setChildPropertyByPspec" o = GES.TimelineElement.TimelineElementSetChildPropertyByPspecMethodInfo
    ResolveVideoTransitionMethod "setChildPropertyFull" o = GES.TimelineElement.TimelineElementSetChildPropertyFullMethodInfo
    ResolveVideoTransitionMethod "setControlSource" o = GES.TrackElement.TrackElementSetControlSourceMethodInfo
    ResolveVideoTransitionMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveVideoTransitionMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveVideoTransitionMethod "setDate" o = GES.MetaContainer.MetaContainerSetDateMethodInfo
    ResolveVideoTransitionMethod "setDateTime" o = GES.MetaContainer.MetaContainerSetDateTimeMethodInfo
    ResolveVideoTransitionMethod "setDouble" o = GES.MetaContainer.MetaContainerSetDoubleMethodInfo
    ResolveVideoTransitionMethod "setDuration" o = GES.TimelineElement.TimelineElementSetDurationMethodInfo
    ResolveVideoTransitionMethod "setFloat" o = GES.MetaContainer.MetaContainerSetFloatMethodInfo
    ResolveVideoTransitionMethod "setHasInternalSource" o = GES.TrackElement.TrackElementSetHasInternalSourceMethodInfo
    ResolveVideoTransitionMethod "setInpoint" o = GES.TimelineElement.TimelineElementSetInpointMethodInfo
    ResolveVideoTransitionMethod "setInt" o = GES.MetaContainer.MetaContainerSetIntMethodInfo
    ResolveVideoTransitionMethod "setInt64" o = GES.MetaContainer.MetaContainerSetInt64MethodInfo
    ResolveVideoTransitionMethod "setInverted" o = VideoTransitionSetInvertedMethodInfo
    ResolveVideoTransitionMethod "setMarkerList" o = GES.MetaContainer.MetaContainerSetMarkerListMethodInfo
    ResolveVideoTransitionMethod "setMaxDuration" o = GES.TimelineElement.TimelineElementSetMaxDurationMethodInfo
    ResolveVideoTransitionMethod "setMeta" o = GES.MetaContainer.MetaContainerSetMetaMethodInfo
    ResolveVideoTransitionMethod "setName" o = GES.TimelineElement.TimelineElementSetNameMethodInfo
    ResolveVideoTransitionMethod "setParent" o = GES.TimelineElement.TimelineElementSetParentMethodInfo
    ResolveVideoTransitionMethod "setPriority" o = GES.TimelineElement.TimelineElementSetPriorityMethodInfo
    ResolveVideoTransitionMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveVideoTransitionMethod "setStart" o = GES.TimelineElement.TimelineElementSetStartMethodInfo
    ResolveVideoTransitionMethod "setString" o = GES.MetaContainer.MetaContainerSetStringMethodInfo
    ResolveVideoTransitionMethod "setTimeline" o = GES.TimelineElement.TimelineElementSetTimelineMethodInfo
    ResolveVideoTransitionMethod "setTrackType" o = GES.TrackElement.TrackElementSetTrackTypeMethodInfo
    ResolveVideoTransitionMethod "setTransitionType" o = VideoTransitionSetTransitionTypeMethodInfo
    ResolveVideoTransitionMethod "setUint" o = GES.MetaContainer.MetaContainerSetUintMethodInfo
    ResolveVideoTransitionMethod "setUint64" o = GES.MetaContainer.MetaContainerSetUint64MethodInfo
    ResolveVideoTransitionMethod l o = O.MethodResolutionFailed l o

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

#endif

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

#endif

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

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

-- | Set the value of the “@border@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' videoTransition [ #border 'Data.GI.Base.Attributes.:=' value ]
-- @
setVideoTransitionBorder :: (MonadIO m, IsVideoTransition o) => o -> Word32 -> m ()
setVideoTransitionBorder :: forall (m :: * -> *) o.
(MonadIO m, IsVideoTransition o) =>
o -> Word32 -> m ()
setVideoTransitionBorder o
obj Word32
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Word32 -> IO ()
forall a. GObject a => a -> String -> Word32 -> IO ()
B.Properties.setObjectPropertyUInt32 o
obj String
"border" Word32
val

-- | Construct a `GValueConstruct` with valid value for the “@border@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructVideoTransitionBorder :: (IsVideoTransition o, MIO.MonadIO m) => Word32 -> m (GValueConstruct o)
constructVideoTransitionBorder :: forall o (m :: * -> *).
(IsVideoTransition o, MonadIO m) =>
Word32 -> m (GValueConstruct o)
constructVideoTransitionBorder Word32
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Word32 -> IO (GValueConstruct o)
forall o. String -> Word32 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyUInt32 String
"border" Word32
val

#if defined(ENABLE_OVERLOADING)
data VideoTransitionBorderPropertyInfo
instance AttrInfo VideoTransitionBorderPropertyInfo where
    type AttrAllowedOps VideoTransitionBorderPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint VideoTransitionBorderPropertyInfo = IsVideoTransition
    type AttrSetTypeConstraint VideoTransitionBorderPropertyInfo = (~) Word32
    type AttrTransferTypeConstraint VideoTransitionBorderPropertyInfo = (~) Word32
    type AttrTransferType VideoTransitionBorderPropertyInfo = Word32
    type AttrGetType VideoTransitionBorderPropertyInfo = Word32
    type AttrLabel VideoTransitionBorderPropertyInfo = "border"
    type AttrOrigin VideoTransitionBorderPropertyInfo = VideoTransition
    attrGet = getVideoTransitionBorder
    attrSet = setVideoTransitionBorder
    attrTransfer _ v = do
        return v
    attrConstruct = constructVideoTransitionBorder
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GES.Objects.VideoTransition.border"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ges-1.0.4/docs/GI-GES-Objects-VideoTransition.html#g:attr:border"
        })
#endif

-- VVV Prop "invert"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

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

#if defined(ENABLE_OVERLOADING)
data VideoTransitionInvertPropertyInfo
instance AttrInfo VideoTransitionInvertPropertyInfo where
    type AttrAllowedOps VideoTransitionInvertPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint VideoTransitionInvertPropertyInfo = IsVideoTransition
    type AttrSetTypeConstraint VideoTransitionInvertPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint VideoTransitionInvertPropertyInfo = (~) Bool
    type AttrTransferType VideoTransitionInvertPropertyInfo = Bool
    type AttrGetType VideoTransitionInvertPropertyInfo = Bool
    type AttrLabel VideoTransitionInvertPropertyInfo = "invert"
    type AttrOrigin VideoTransitionInvertPropertyInfo = VideoTransition
    attrGet = getVideoTransitionInvert
    attrSet = setVideoTransitionInvert
    attrTransfer _ v = do
        return v
    attrConstruct = constructVideoTransitionInvert
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GES.Objects.VideoTransition.invert"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ges-1.0.4/docs/GI-GES-Objects-VideoTransition.html#g:attr:invert"
        })
#endif

-- VVV Prop "transition-type"
   -- Type: TInterface (Name {namespace = "GES", name = "VideoStandardTransitionType"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

-- | Get the value of the “@transition-type@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' videoTransition #transitionType
-- @
getVideoTransitionTransitionType :: (MonadIO m, IsVideoTransition o) => o -> m GES.Enums.VideoStandardTransitionType
getVideoTransitionTransitionType :: forall (m :: * -> *) o.
(MonadIO m, IsVideoTransition o) =>
o -> m VideoStandardTransitionType
getVideoTransitionTransitionType o
obj = IO VideoStandardTransitionType -> m VideoStandardTransitionType
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO VideoStandardTransitionType -> m VideoStandardTransitionType)
-> IO VideoStandardTransitionType -> m VideoStandardTransitionType
forall a b. (a -> b) -> a -> b
$ o -> String -> IO VideoStandardTransitionType
forall a b. (GObject a, Enum b, BoxedEnum b) => a -> String -> IO b
B.Properties.getObjectPropertyEnum o
obj String
"transition-type"

-- | Set the value of the “@transition-type@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' videoTransition [ #transitionType 'Data.GI.Base.Attributes.:=' value ]
-- @
setVideoTransitionTransitionType :: (MonadIO m, IsVideoTransition o) => o -> GES.Enums.VideoStandardTransitionType -> m ()
setVideoTransitionTransitionType :: forall (m :: * -> *) o.
(MonadIO m, IsVideoTransition o) =>
o -> VideoStandardTransitionType -> m ()
setVideoTransitionTransitionType o
obj VideoStandardTransitionType
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 -> VideoStandardTransitionType -> IO ()
forall a b.
(GObject a, Enum b, BoxedEnum b) =>
a -> String -> b -> IO ()
B.Properties.setObjectPropertyEnum o
obj String
"transition-type" VideoStandardTransitionType
val

-- | Construct a `GValueConstruct` with valid value for the “@transition-type@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructVideoTransitionTransitionType :: (IsVideoTransition o, MIO.MonadIO m) => GES.Enums.VideoStandardTransitionType -> m (GValueConstruct o)
constructVideoTransitionTransitionType :: forall o (m :: * -> *).
(IsVideoTransition o, MonadIO m) =>
VideoStandardTransitionType -> m (GValueConstruct o)
constructVideoTransitionTransitionType VideoStandardTransitionType
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 -> VideoStandardTransitionType -> IO (GValueConstruct o)
forall a o.
(Enum a, BoxedEnum a) =>
String -> a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyEnum String
"transition-type" VideoStandardTransitionType
val

#if defined(ENABLE_OVERLOADING)
data VideoTransitionTransitionTypePropertyInfo
instance AttrInfo VideoTransitionTransitionTypePropertyInfo where
    type AttrAllowedOps VideoTransitionTransitionTypePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint VideoTransitionTransitionTypePropertyInfo = IsVideoTransition
    type AttrSetTypeConstraint VideoTransitionTransitionTypePropertyInfo = (~) GES.Enums.VideoStandardTransitionType
    type AttrTransferTypeConstraint VideoTransitionTransitionTypePropertyInfo = (~) GES.Enums.VideoStandardTransitionType
    type AttrTransferType VideoTransitionTransitionTypePropertyInfo = GES.Enums.VideoStandardTransitionType
    type AttrGetType VideoTransitionTransitionTypePropertyInfo = GES.Enums.VideoStandardTransitionType
    type AttrLabel VideoTransitionTransitionTypePropertyInfo = "transition-type"
    type AttrOrigin VideoTransitionTransitionTypePropertyInfo = VideoTransition
    attrGet = getVideoTransitionTransitionType
    attrSet = setVideoTransitionTransitionType
    attrTransfer _ v = do
        return v
    attrConstruct = constructVideoTransitionTransitionType
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GES.Objects.VideoTransition.transitionType"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ges-1.0.4/docs/GI-GES-Objects-VideoTransition.html#g:attr:transitionType"
        })
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList VideoTransition
type instance O.AttributeList VideoTransition = VideoTransitionAttributeList
type VideoTransitionAttributeList = ('[ '("active", GES.TrackElement.TrackElementActivePropertyInfo), '("autoClampControlSources", GES.TrackElement.TrackElementAutoClampControlSourcesPropertyInfo), '("border", VideoTransitionBorderPropertyInfo), '("duration", GES.TimelineElement.TimelineElementDurationPropertyInfo), '("hasInternalSource", GES.TrackElement.TrackElementHasInternalSourcePropertyInfo), '("inPoint", GES.TimelineElement.TimelineElementInPointPropertyInfo), '("invert", VideoTransitionInvertPropertyInfo), '("maxDuration", GES.TimelineElement.TimelineElementMaxDurationPropertyInfo), '("name", GES.TimelineElement.TimelineElementNamePropertyInfo), '("parent", GES.TimelineElement.TimelineElementParentPropertyInfo), '("priority", GES.TimelineElement.TimelineElementPriorityPropertyInfo), '("serialize", GES.TimelineElement.TimelineElementSerializePropertyInfo), '("start", GES.TimelineElement.TimelineElementStartPropertyInfo), '("timeline", GES.TimelineElement.TimelineElementTimelinePropertyInfo), '("track", GES.TrackElement.TrackElementTrackPropertyInfo), '("trackType", GES.TrackElement.TrackElementTrackTypePropertyInfo), '("transitionType", VideoTransitionTransitionTypePropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
videoTransitionBorder :: AttrLabelProxy "border"
videoTransitionBorder = AttrLabelProxy

videoTransitionInvert :: AttrLabelProxy "invert"
videoTransitionInvert = AttrLabelProxy

videoTransitionTransitionType :: AttrLabelProxy "transitionType"
videoTransitionTransitionType = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList VideoTransition = VideoTransitionSignalList
type VideoTransitionSignalList = ('[ '("childPropertyAdded", GES.TimelineElement.TimelineElementChildPropertyAddedSignalInfo), '("childPropertyRemoved", GES.TimelineElement.TimelineElementChildPropertyRemovedSignalInfo), '("controlBindingAdded", GES.TrackElement.TrackElementControlBindingAddedSignalInfo), '("controlBindingRemoved", GES.TrackElement.TrackElementControlBindingRemovedSignalInfo), '("deepNotify", GES.TimelineElement.TimelineElementDeepNotifySignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("notifyMeta", GES.MetaContainer.MetaContainerNotifyMetaSignalInfo)] :: [(Symbol, DK.Type)])

#endif

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

foreign import ccall "ges_video_transition_new" ges_video_transition_new :: 
    IO (Ptr VideoTransition)

-- | /No description available in the introspection data./
videoTransitionNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m VideoTransition
videoTransitionNew :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
m VideoTransition
videoTransitionNew  = IO VideoTransition -> m VideoTransition
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO VideoTransition -> m VideoTransition)
-> IO VideoTransition -> m VideoTransition
forall a b. (a -> b) -> a -> b
$ do
    Ptr VideoTransition
result <- IO (Ptr VideoTransition)
ges_video_transition_new
    Text -> Ptr VideoTransition -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"videoTransitionNew" Ptr VideoTransition
result
    VideoTransition
result' <- ((ManagedPtr VideoTransition -> VideoTransition)
-> Ptr VideoTransition -> IO VideoTransition
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr VideoTransition -> VideoTransition
VideoTransition) Ptr VideoTransition
result
    VideoTransition -> IO VideoTransition
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return VideoTransition
result'

#if defined(ENABLE_OVERLOADING)
#endif

-- method VideoTransition::get_border
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "GES" , name = "VideoTransition" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "The #GESVideoTransition to get the border from"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TInt)
-- throws : False
-- Skip return : False

foreign import ccall "ges_video_transition_get_border" ges_video_transition_get_border :: 
    Ptr VideoTransition ->                  -- self : TInterface (Name {namespace = "GES", name = "VideoTransition"})
    IO Int32

{-# DEPRECATED videoTransitionGetBorder ["(Since version 1.20)","Use ges_timeline_element_get_child_property instead."] #-}
-- | Get the border property of /@self@/, this value represents
-- the border width of the transition.
videoTransitionGetBorder ::
    (B.CallStack.HasCallStack, MonadIO m, IsVideoTransition a) =>
    a
    -- ^ /@self@/: The t'GI.GES.Objects.VideoTransition.VideoTransition' to get the border from
    -> m Int32
    -- ^ __Returns:__ The border values of /@self@/ or -1 if not meaningful
    -- (this will happen when not using a smpte transition).
videoTransitionGetBorder :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsVideoTransition a) =>
a -> m Int32
videoTransitionGetBorder a
self = IO Int32 -> m Int32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
    Ptr VideoTransition
self' <- a -> IO (Ptr VideoTransition)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Int32
result <- Ptr VideoTransition -> IO Int32
ges_video_transition_get_border Ptr VideoTransition
self'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Int32 -> IO Int32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result

#if defined(ENABLE_OVERLOADING)
data VideoTransitionGetBorderMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsVideoTransition a) => O.OverloadedMethod VideoTransitionGetBorderMethodInfo a signature where
    overloadedMethod = videoTransitionGetBorder

instance O.OverloadedMethodInfo VideoTransitionGetBorderMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GES.Objects.VideoTransition.videoTransitionGetBorder",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ges-1.0.4/docs/GI-GES-Objects-VideoTransition.html#v:videoTransitionGetBorder"
        })


#endif

-- method VideoTransition::get_transition_type
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "trans"
--           , argType =
--               TInterface Name { namespace = "GES" , name = "VideoTransition" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GESVideoTransition"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface
--                  Name { namespace = "GES" , name = "VideoStandardTransitionType" })
-- throws : False
-- Skip return : False

foreign import ccall "ges_video_transition_get_transition_type" ges_video_transition_get_transition_type :: 
    Ptr VideoTransition ->                  -- trans : TInterface (Name {namespace = "GES", name = "VideoTransition"})
    IO CUInt

-- | Get the transition type used by /@trans@/.
videoTransitionGetTransitionType ::
    (B.CallStack.HasCallStack, MonadIO m, IsVideoTransition a) =>
    a
    -- ^ /@trans@/: a t'GI.GES.Objects.VideoTransition.VideoTransition'
    -> m GES.Enums.VideoStandardTransitionType
    -- ^ __Returns:__ The transition type used by /@trans@/.
videoTransitionGetTransitionType :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsVideoTransition a) =>
a -> m VideoStandardTransitionType
videoTransitionGetTransitionType a
trans = IO VideoStandardTransitionType -> m VideoStandardTransitionType
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO VideoStandardTransitionType -> m VideoStandardTransitionType)
-> IO VideoStandardTransitionType -> m VideoStandardTransitionType
forall a b. (a -> b) -> a -> b
$ do
    Ptr VideoTransition
trans' <- a -> IO (Ptr VideoTransition)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
trans
    CUInt
result <- Ptr VideoTransition -> IO CUInt
ges_video_transition_get_transition_type Ptr VideoTransition
trans'
    let result' :: VideoStandardTransitionType
result' = (Int -> VideoStandardTransitionType
forall a. Enum a => Int -> a
toEnum (Int -> VideoStandardTransitionType)
-> (CUInt -> Int) -> CUInt -> VideoStandardTransitionType
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
trans
    VideoStandardTransitionType -> IO VideoStandardTransitionType
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return VideoStandardTransitionType
result'

#if defined(ENABLE_OVERLOADING)
data VideoTransitionGetTransitionTypeMethodInfo
instance (signature ~ (m GES.Enums.VideoStandardTransitionType), MonadIO m, IsVideoTransition a) => O.OverloadedMethod VideoTransitionGetTransitionTypeMethodInfo a signature where
    overloadedMethod = videoTransitionGetTransitionType

instance O.OverloadedMethodInfo VideoTransitionGetTransitionTypeMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GES.Objects.VideoTransition.videoTransitionGetTransitionType",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ges-1.0.4/docs/GI-GES-Objects-VideoTransition.html#v:videoTransitionGetTransitionType"
        })


#endif

-- method VideoTransition::is_inverted
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "GES" , name = "VideoTransition" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "The #GESVideoTransition to get the inversion from"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "ges_video_transition_is_inverted" ges_video_transition_is_inverted :: 
    Ptr VideoTransition ->                  -- self : TInterface (Name {namespace = "GES", name = "VideoTransition"})
    IO CInt

{-# DEPRECATED videoTransitionIsInverted ["(Since version 1.20)","Use ges_timeline_element_get_child_property instead."] #-}
-- | Get the invert property of /@self@/, this value represents
-- the direction of the transition.
videoTransitionIsInverted ::
    (B.CallStack.HasCallStack, MonadIO m, IsVideoTransition a) =>
    a
    -- ^ /@self@/: The t'GI.GES.Objects.VideoTransition.VideoTransition' to get the inversion from
    -> m Bool
    -- ^ __Returns:__ The invert value of /@self@/
videoTransitionIsInverted :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsVideoTransition a) =>
a -> m Bool
videoTransitionIsInverted 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 VideoTransition
self' <- a -> IO (Ptr VideoTransition)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CInt
result <- Ptr VideoTransition -> IO CInt
ges_video_transition_is_inverted Ptr VideoTransition
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 VideoTransitionIsInvertedMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsVideoTransition a) => O.OverloadedMethod VideoTransitionIsInvertedMethodInfo a signature where
    overloadedMethod = videoTransitionIsInverted

instance O.OverloadedMethodInfo VideoTransitionIsInvertedMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GES.Objects.VideoTransition.videoTransitionIsInverted",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ges-1.0.4/docs/GI-GES-Objects-VideoTransition.html#v:videoTransitionIsInverted"
        })


#endif

-- method VideoTransition::set_border
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "GES" , name = "VideoTransition" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "The #GESVideoTransition to set the border to"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "value"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "The value of the border to set on @object"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "ges_video_transition_set_border" ges_video_transition_set_border :: 
    Ptr VideoTransition ->                  -- self : TInterface (Name {namespace = "GES", name = "VideoTransition"})
    Word32 ->                               -- value : TBasicType TUInt
    IO ()

{-# DEPRECATED videoTransitionSetBorder ["(Since version 1.20)","Use ges_timeline_element_set_child_property instead."] #-}
-- | Set the border property of /@self@/, this value represents
-- the border width of the transition. In case this value does
-- not make sense for the current transition type, it is cached
-- for later use.
videoTransitionSetBorder ::
    (B.CallStack.HasCallStack, MonadIO m, IsVideoTransition a) =>
    a
    -- ^ /@self@/: The t'GI.GES.Objects.VideoTransition.VideoTransition' to set the border to
    -> Word32
    -- ^ /@value@/: The value of the border to set on /@object@/
    -> m ()
videoTransitionSetBorder :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsVideoTransition a) =>
a -> Word32 -> m ()
videoTransitionSetBorder a
self Word32
value = 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 VideoTransition
self' <- a -> IO (Ptr VideoTransition)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr VideoTransition -> Word32 -> IO ()
ges_video_transition_set_border Ptr VideoTransition
self' Word32
value
    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 VideoTransitionSetBorderMethodInfo
instance (signature ~ (Word32 -> m ()), MonadIO m, IsVideoTransition a) => O.OverloadedMethod VideoTransitionSetBorderMethodInfo a signature where
    overloadedMethod = videoTransitionSetBorder

instance O.OverloadedMethodInfo VideoTransitionSetBorderMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GES.Objects.VideoTransition.videoTransitionSetBorder",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ges-1.0.4/docs/GI-GES-Objects-VideoTransition.html#v:videoTransitionSetBorder"
        })


#endif

-- method VideoTransition::set_inverted
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "GES" , name = "VideoTransition" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "The #GESVideoTransition to set invert on"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "inverted"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "%TRUE if the transition should be inverted %FALSE otherwise"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "ges_video_transition_set_inverted" ges_video_transition_set_inverted :: 
    Ptr VideoTransition ->                  -- self : TInterface (Name {namespace = "GES", name = "VideoTransition"})
    CInt ->                                 -- inverted : TBasicType TBoolean
    IO ()

{-# DEPRECATED videoTransitionSetInverted ["(Since version 1.20)","Use ges_timeline_element_set_child_property instead."] #-}
-- | Set the invert property of /@self@/, this value represents
-- the direction of the transition. In case this value does
-- not make sense for the current transition type, it is cached
-- for later use.
videoTransitionSetInverted ::
    (B.CallStack.HasCallStack, MonadIO m, IsVideoTransition a) =>
    a
    -- ^ /@self@/: The t'GI.GES.Objects.VideoTransition.VideoTransition' to set invert on
    -> Bool
    -- ^ /@inverted@/: 'P.True' if the transition should be inverted 'P.False' otherwise
    -> m ()
videoTransitionSetInverted :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsVideoTransition a) =>
a -> Bool -> m ()
videoTransitionSetInverted a
self Bool
inverted = 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 VideoTransition
self' <- a -> IO (Ptr VideoTransition)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    let inverted' :: CInt
inverted' = (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
inverted
    Ptr VideoTransition -> CInt -> IO ()
ges_video_transition_set_inverted Ptr VideoTransition
self' CInt
inverted'
    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 VideoTransitionSetInvertedMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsVideoTransition a) => O.OverloadedMethod VideoTransitionSetInvertedMethodInfo a signature where
    overloadedMethod = videoTransitionSetInverted

instance O.OverloadedMethodInfo VideoTransitionSetInvertedMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GES.Objects.VideoTransition.videoTransitionSetInverted",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ges-1.0.4/docs/GI-GES-Objects-VideoTransition.html#v:videoTransitionSetInverted"
        })


#endif

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

foreign import ccall "ges_video_transition_set_transition_type" ges_video_transition_set_transition_type :: 
    Ptr VideoTransition ->                  -- self : TInterface (Name {namespace = "GES", name = "VideoTransition"})
    CUInt ->                                -- type : TInterface (Name {namespace = "GES", name = "VideoStandardTransitionType"})
    IO CInt

-- | Sets the transition being used to /@type@/.
videoTransitionSetTransitionType ::
    (B.CallStack.HasCallStack, MonadIO m, IsVideoTransition a) =>
    a
    -- ^ /@self@/: a t'GI.GES.Objects.VideoTransition.VideoTransition'
    -> GES.Enums.VideoStandardTransitionType
    -- ^ /@type@/: a t'GI.GES.Enums.VideoStandardTransitionType'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the transition type was properly changed, else 'P.False'.
videoTransitionSetTransitionType :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsVideoTransition a) =>
a -> VideoStandardTransitionType -> m Bool
videoTransitionSetTransitionType a
self VideoStandardTransitionType
type_ = 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 VideoTransition
self' <- a -> IO (Ptr VideoTransition)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    let type_' :: CUInt
type_' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt)
-> (VideoStandardTransitionType -> Int)
-> VideoStandardTransitionType
-> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VideoStandardTransitionType -> Int
forall a. Enum a => a -> Int
fromEnum) VideoStandardTransitionType
type_
    CInt
result <- Ptr VideoTransition -> CUInt -> IO CInt
ges_video_transition_set_transition_type Ptr VideoTransition
self' CUInt
type_'
    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 VideoTransitionSetTransitionTypeMethodInfo
instance (signature ~ (GES.Enums.VideoStandardTransitionType -> m Bool), MonadIO m, IsVideoTransition a) => O.OverloadedMethod VideoTransitionSetTransitionTypeMethodInfo a signature where
    overloadedMethod = videoTransitionSetTransitionType

instance O.OverloadedMethodInfo VideoTransitionSetTransitionTypeMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GES.Objects.VideoTransition.videoTransitionSetTransitionType",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ges-1.0.4/docs/GI-GES-Objects-VideoTransition.html#v:videoTransitionSetTransitionType"
        })


#endif