{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- Opaque context structure for the plugin installation. Use the provided
-- API to set details on it.

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

module GI.GstPbutils.Structs.InstallPluginsContext
    ( 

-- * Exported types
    InstallPluginsContext(..)               ,
    noInstallPluginsContext                 ,


 -- * Methods
-- ** Overloaded methods #method:Overloaded methods#

#if defined(ENABLE_OVERLOADING)
    ResolveInstallPluginsContextMethod      ,
#endif


-- ** copy #method:copy#

#if defined(ENABLE_OVERLOADING)
    InstallPluginsContextCopyMethodInfo     ,
#endif
    installPluginsContextCopy               ,


-- ** free #method:free#

#if defined(ENABLE_OVERLOADING)
    InstallPluginsContextFreeMethodInfo     ,
#endif
    installPluginsContextFree               ,


-- ** new #method:new#

    installPluginsContextNew                ,


-- ** setConfirmSearch #method:setConfirmSearch#

#if defined(ENABLE_OVERLOADING)
    InstallPluginsContextSetConfirmSearchMethodInfo,
#endif
    installPluginsContextSetConfirmSearch   ,


-- ** setDesktopId #method:setDesktopId#

#if defined(ENABLE_OVERLOADING)
    InstallPluginsContextSetDesktopIdMethodInfo,
#endif
    installPluginsContextSetDesktopId       ,


-- ** setStartupNotificationId #method:setStartupNotificationId#

#if defined(ENABLE_OVERLOADING)
    InstallPluginsContextSetStartupNotificationIdMethodInfo,
#endif
    installPluginsContextSetStartupNotificationId,


-- ** setXid #method:setXid#

#if defined(ENABLE_OVERLOADING)
    InstallPluginsContextSetXidMethodInfo   ,
#endif
    installPluginsContextSetXid             ,




    ) 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.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
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 Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL


-- | Memory-managed wrapper type.
newtype InstallPluginsContext = InstallPluginsContext (ManagedPtr InstallPluginsContext)
    deriving (InstallPluginsContext -> InstallPluginsContext -> Bool
(InstallPluginsContext -> InstallPluginsContext -> Bool)
-> (InstallPluginsContext -> InstallPluginsContext -> Bool)
-> Eq InstallPluginsContext
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InstallPluginsContext -> InstallPluginsContext -> Bool
$c/= :: InstallPluginsContext -> InstallPluginsContext -> Bool
== :: InstallPluginsContext -> InstallPluginsContext -> Bool
$c== :: InstallPluginsContext -> InstallPluginsContext -> Bool
Eq)
foreign import ccall "gst_install_plugins_context_get_type" c_gst_install_plugins_context_get_type :: 
    IO GType

instance BoxedObject InstallPluginsContext where
    boxedType :: InstallPluginsContext -> IO GType
boxedType _ = IO GType
c_gst_install_plugins_context_get_type

-- | Convert 'InstallPluginsContext' to and from 'Data.GI.Base.GValue.GValue' with 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue InstallPluginsContext where
    toGValue :: InstallPluginsContext -> IO GValue
toGValue o :: InstallPluginsContext
o = do
        GType
gtype <- IO GType
c_gst_install_plugins_context_get_type
        InstallPluginsContext
-> (Ptr InstallPluginsContext -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr InstallPluginsContext
o (GType
-> (GValue -> Ptr InstallPluginsContext -> IO ())
-> Ptr InstallPluginsContext
-> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr InstallPluginsContext -> IO ()
forall a. GValue -> Ptr a -> IO ()
B.GValue.set_boxed)
        
    fromGValue :: GValue -> IO InstallPluginsContext
fromGValue gv :: GValue
gv = do
        Ptr InstallPluginsContext
ptr <- GValue -> IO (Ptr InstallPluginsContext)
forall b. GValue -> IO (Ptr b)
B.GValue.get_boxed GValue
gv :: IO (Ptr InstallPluginsContext)
        (ManagedPtr InstallPluginsContext -> InstallPluginsContext)
-> Ptr InstallPluginsContext -> IO InstallPluginsContext
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.newBoxed ManagedPtr InstallPluginsContext -> InstallPluginsContext
InstallPluginsContext Ptr InstallPluginsContext
ptr
        
    

-- | A convenience alias for `Nothing` :: `Maybe` `InstallPluginsContext`.
noInstallPluginsContext :: Maybe InstallPluginsContext
noInstallPluginsContext :: Maybe InstallPluginsContext
noInstallPluginsContext = Maybe InstallPluginsContext
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList InstallPluginsContext
type instance O.AttributeList InstallPluginsContext = InstallPluginsContextAttributeList
type InstallPluginsContextAttributeList = ('[ ] :: [(Symbol, *)])
#endif

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

foreign import ccall "gst_install_plugins_context_new" gst_install_plugins_context_new :: 
    IO (Ptr InstallPluginsContext)

-- | Creates a new t'GI.GstPbutils.Structs.InstallPluginsContext.InstallPluginsContext'.
installPluginsContextNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m InstallPluginsContext
    -- ^ __Returns:__ a new t'GI.GstPbutils.Structs.InstallPluginsContext.InstallPluginsContext'. Free with
    -- 'GI.GstPbutils.Structs.InstallPluginsContext.installPluginsContextFree' when no longer needed
installPluginsContextNew :: m InstallPluginsContext
installPluginsContextNew  = IO InstallPluginsContext -> m InstallPluginsContext
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO InstallPluginsContext -> m InstallPluginsContext)
-> IO InstallPluginsContext -> m InstallPluginsContext
forall a b. (a -> b) -> a -> b
$ do
    Ptr InstallPluginsContext
result <- IO (Ptr InstallPluginsContext)
gst_install_plugins_context_new
    Text -> Ptr InstallPluginsContext -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "installPluginsContextNew" Ptr InstallPluginsContext
result
    InstallPluginsContext
result' <- ((ManagedPtr InstallPluginsContext -> InstallPluginsContext)
-> Ptr InstallPluginsContext -> IO InstallPluginsContext
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr InstallPluginsContext -> InstallPluginsContext
InstallPluginsContext) Ptr InstallPluginsContext
result
    InstallPluginsContext -> IO InstallPluginsContext
forall (m :: * -> *) a. Monad m => a -> m a
return InstallPluginsContext
result'

#if defined(ENABLE_OVERLOADING)
#endif

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

foreign import ccall "gst_install_plugins_context_copy" gst_install_plugins_context_copy :: 
    Ptr InstallPluginsContext ->            -- ctx : TInterface (Name {namespace = "GstPbutils", name = "InstallPluginsContext"})
    IO (Ptr InstallPluginsContext)

-- | /No description available in the introspection data./
installPluginsContextCopy ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    InstallPluginsContext
    -> m InstallPluginsContext
installPluginsContextCopy :: InstallPluginsContext -> m InstallPluginsContext
installPluginsContextCopy ctx :: InstallPluginsContext
ctx = IO InstallPluginsContext -> m InstallPluginsContext
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO InstallPluginsContext -> m InstallPluginsContext)
-> IO InstallPluginsContext -> m InstallPluginsContext
forall a b. (a -> b) -> a -> b
$ do
    Ptr InstallPluginsContext
ctx' <- InstallPluginsContext -> IO (Ptr InstallPluginsContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr InstallPluginsContext
ctx
    Ptr InstallPluginsContext
result <- Ptr InstallPluginsContext -> IO (Ptr InstallPluginsContext)
gst_install_plugins_context_copy Ptr InstallPluginsContext
ctx'
    Text -> Ptr InstallPluginsContext -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "installPluginsContextCopy" Ptr InstallPluginsContext
result
    InstallPluginsContext
result' <- ((ManagedPtr InstallPluginsContext -> InstallPluginsContext)
-> Ptr InstallPluginsContext -> IO InstallPluginsContext
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr InstallPluginsContext -> InstallPluginsContext
InstallPluginsContext) Ptr InstallPluginsContext
result
    InstallPluginsContext -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr InstallPluginsContext
ctx
    InstallPluginsContext -> IO InstallPluginsContext
forall (m :: * -> *) a. Monad m => a -> m a
return InstallPluginsContext
result'

#if defined(ENABLE_OVERLOADING)
data InstallPluginsContextCopyMethodInfo
instance (signature ~ (m InstallPluginsContext), MonadIO m) => O.MethodInfo InstallPluginsContextCopyMethodInfo InstallPluginsContext signature where
    overloadedMethod = installPluginsContextCopy

#endif

-- method InstallPluginsContext::free
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "ctx"
--           , argType =
--               TInterface
--                 Name { namespace = "GstPbutils" , name = "InstallPluginsContext" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstInstallPluginsContext"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gst_install_plugins_context_free" gst_install_plugins_context_free :: 
    Ptr InstallPluginsContext ->            -- ctx : TInterface (Name {namespace = "GstPbutils", name = "InstallPluginsContext"})
    IO ()

-- | Frees a t'GI.GstPbutils.Structs.InstallPluginsContext.InstallPluginsContext'.
installPluginsContextFree ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    InstallPluginsContext
    -- ^ /@ctx@/: a t'GI.GstPbutils.Structs.InstallPluginsContext.InstallPluginsContext'
    -> m ()
installPluginsContextFree :: InstallPluginsContext -> m ()
installPluginsContextFree ctx :: InstallPluginsContext
ctx = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr InstallPluginsContext
ctx' <- InstallPluginsContext -> IO (Ptr InstallPluginsContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr InstallPluginsContext
ctx
    Ptr InstallPluginsContext -> IO ()
gst_install_plugins_context_free Ptr InstallPluginsContext
ctx'
    InstallPluginsContext -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr InstallPluginsContext
ctx
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data InstallPluginsContextFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo InstallPluginsContextFreeMethodInfo InstallPluginsContext signature where
    overloadedMethod = installPluginsContextFree

#endif

-- method InstallPluginsContext::set_confirm_search
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "ctx"
--           , argType =
--               TInterface
--                 Name { namespace = "GstPbutils" , name = "InstallPluginsContext" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstInstallPluginsContext"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "confirm_search"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "whether to ask for confirmation before searching for plugins"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gst_install_plugins_context_set_confirm_search" gst_install_plugins_context_set_confirm_search :: 
    Ptr InstallPluginsContext ->            -- ctx : TInterface (Name {namespace = "GstPbutils", name = "InstallPluginsContext"})
    CInt ->                                 -- confirm_search : TBasicType TBoolean
    IO ()

-- | This function is used to tell the external installer process whether it
-- should ask for confirmation or not before searching for missing plugins.
-- 
-- If set, this option will be passed to the installer via a
-- --interaction=[show-confirm-search|hide-confirm-search] command line option.
-- 
-- /Since: 1.6/
installPluginsContextSetConfirmSearch ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    InstallPluginsContext
    -- ^ /@ctx@/: a t'GI.GstPbutils.Structs.InstallPluginsContext.InstallPluginsContext'
    -> Bool
    -- ^ /@confirmSearch@/: whether to ask for confirmation before searching for plugins
    -> m ()
installPluginsContextSetConfirmSearch :: InstallPluginsContext -> Bool -> m ()
installPluginsContextSetConfirmSearch ctx :: InstallPluginsContext
ctx confirmSearch :: Bool
confirmSearch = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr InstallPluginsContext
ctx' <- InstallPluginsContext -> IO (Ptr InstallPluginsContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr InstallPluginsContext
ctx
    let confirmSearch' :: CInt
confirmSearch' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
confirmSearch
    Ptr InstallPluginsContext -> CInt -> IO ()
gst_install_plugins_context_set_confirm_search Ptr InstallPluginsContext
ctx' CInt
confirmSearch'
    InstallPluginsContext -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr InstallPluginsContext
ctx
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data InstallPluginsContextSetConfirmSearchMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m) => O.MethodInfo InstallPluginsContextSetConfirmSearchMethodInfo InstallPluginsContext signature where
    overloadedMethod = installPluginsContextSetConfirmSearch

#endif

-- method InstallPluginsContext::set_desktop_id
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "ctx"
--           , argType =
--               TInterface
--                 Name { namespace = "GstPbutils" , name = "InstallPluginsContext" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstInstallPluginsContext"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "desktop_id"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the desktop file ID of the calling application"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gst_install_plugins_context_set_desktop_id" gst_install_plugins_context_set_desktop_id :: 
    Ptr InstallPluginsContext ->            -- ctx : TInterface (Name {namespace = "GstPbutils", name = "InstallPluginsContext"})
    CString ->                              -- desktop_id : TBasicType TUTF8
    IO ()

-- | This function is used to pass the calling application\'s desktop file ID to
-- the external installer process.
-- 
-- A desktop file ID is the basename of the desktop file, including the
-- .desktop extension.
-- 
-- If set, the desktop file ID will be passed to the installer via a
-- --desktop-id= command line option.
-- 
-- /Since: 1.6/
installPluginsContextSetDesktopId ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    InstallPluginsContext
    -- ^ /@ctx@/: a t'GI.GstPbutils.Structs.InstallPluginsContext.InstallPluginsContext'
    -> T.Text
    -- ^ /@desktopId@/: the desktop file ID of the calling application
    -> m ()
installPluginsContextSetDesktopId :: InstallPluginsContext -> Text -> m ()
installPluginsContextSetDesktopId ctx :: InstallPluginsContext
ctx desktopId :: Text
desktopId = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr InstallPluginsContext
ctx' <- InstallPluginsContext -> IO (Ptr InstallPluginsContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr InstallPluginsContext
ctx
    CString
desktopId' <- Text -> IO CString
textToCString Text
desktopId
    Ptr InstallPluginsContext -> CString -> IO ()
gst_install_plugins_context_set_desktop_id Ptr InstallPluginsContext
ctx' CString
desktopId'
    InstallPluginsContext -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr InstallPluginsContext
ctx
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
desktopId'
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data InstallPluginsContextSetDesktopIdMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m) => O.MethodInfo InstallPluginsContextSetDesktopIdMethodInfo InstallPluginsContext signature where
    overloadedMethod = installPluginsContextSetDesktopId

#endif

-- method InstallPluginsContext::set_startup_notification_id
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "ctx"
--           , argType =
--               TInterface
--                 Name { namespace = "GstPbutils" , name = "InstallPluginsContext" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstInstallPluginsContext"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "startup_id"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the startup notification ID"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gst_install_plugins_context_set_startup_notification_id" gst_install_plugins_context_set_startup_notification_id :: 
    Ptr InstallPluginsContext ->            -- ctx : TInterface (Name {namespace = "GstPbutils", name = "InstallPluginsContext"})
    CString ->                              -- startup_id : TBasicType TUTF8
    IO ()

-- | Sets the startup notification ID for the launched process.
-- 
-- This is typically used to to pass the current X11 event timestamp to the
-- external installer process.
-- 
-- Startup notification IDs are defined in the
-- <http://standards.freedesktop.org/startup-notification-spec/startup-notification-latest.txt FreeDesktop.Org Startup Notifications standard>.
-- 
-- If set, the ID will be passed to the installer via a
-- --startup-notification-id= command line option.
-- 
-- GTK+\/GNOME applications should be able to create a startup notification ID
-- like this:
-- >
-- >  timestamp = gtk_get_current_event_time ();
-- >  startup_id = g_strdup_printf ("_TIME%u", timestamp);
-- >...
-- 
-- 
-- /Since: 1.6/
installPluginsContextSetStartupNotificationId ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    InstallPluginsContext
    -- ^ /@ctx@/: a t'GI.GstPbutils.Structs.InstallPluginsContext.InstallPluginsContext'
    -> T.Text
    -- ^ /@startupId@/: the startup notification ID
    -> m ()
installPluginsContextSetStartupNotificationId :: InstallPluginsContext -> Text -> m ()
installPluginsContextSetStartupNotificationId ctx :: InstallPluginsContext
ctx startupId :: Text
startupId = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr InstallPluginsContext
ctx' <- InstallPluginsContext -> IO (Ptr InstallPluginsContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr InstallPluginsContext
ctx
    CString
startupId' <- Text -> IO CString
textToCString Text
startupId
    Ptr InstallPluginsContext -> CString -> IO ()
gst_install_plugins_context_set_startup_notification_id Ptr InstallPluginsContext
ctx' CString
startupId'
    InstallPluginsContext -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr InstallPluginsContext
ctx
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
startupId'
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data InstallPluginsContextSetStartupNotificationIdMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m) => O.MethodInfo InstallPluginsContextSetStartupNotificationIdMethodInfo InstallPluginsContext signature where
    overloadedMethod = installPluginsContextSetStartupNotificationId

#endif

-- method InstallPluginsContext::set_xid
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "ctx"
--           , argType =
--               TInterface
--                 Name { namespace = "GstPbutils" , name = "InstallPluginsContext" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstInstallPluginsContext"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "xid"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the XWindow ID (XID) of the top-level application"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gst_install_plugins_context_set_xid" gst_install_plugins_context_set_xid :: 
    Ptr InstallPluginsContext ->            -- ctx : TInterface (Name {namespace = "GstPbutils", name = "InstallPluginsContext"})
    Word32 ->                               -- xid : TBasicType TUInt
    IO ()

-- | This function is for X11-based applications (such as most Gtk\/Qt
-- applications on linux\/unix) only. You can use it to tell the external
-- installer the XID of your main application window. That way the installer
-- can make its own window transient to your application window during the
-- installation.
-- 
-- If set, the XID will be passed to the installer via a --transient-for=XID
-- command line option.
-- 
-- Gtk+\/Gnome application should be able to obtain the XID of the top-level
-- window like this:
-- >
-- >##include &lt;gtk/gtk.h&gt;
-- >##ifdef GDK_WINDOWING_X11
-- >##include &lt;gdk/gdkx.h&gt;
-- >##endif
-- >...
-- >##ifdef GDK_WINDOWING_X11
-- >  xid = GDK_WINDOW_XWINDOW (GTK_WIDGET (application_window)-&gt;window);
-- >##endif
-- >...
installPluginsContextSetXid ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    InstallPluginsContext
    -- ^ /@ctx@/: a t'GI.GstPbutils.Structs.InstallPluginsContext.InstallPluginsContext'
    -> Word32
    -- ^ /@xid@/: the XWindow ID (XID) of the top-level application
    -> m ()
installPluginsContextSetXid :: InstallPluginsContext -> Word32 -> m ()
installPluginsContextSetXid ctx :: InstallPluginsContext
ctx xid :: Word32
xid = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr InstallPluginsContext
ctx' <- InstallPluginsContext -> IO (Ptr InstallPluginsContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr InstallPluginsContext
ctx
    Ptr InstallPluginsContext -> Word32 -> IO ()
gst_install_plugins_context_set_xid Ptr InstallPluginsContext
ctx' Word32
xid
    InstallPluginsContext -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr InstallPluginsContext
ctx
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data InstallPluginsContextSetXidMethodInfo
instance (signature ~ (Word32 -> m ()), MonadIO m) => O.MethodInfo InstallPluginsContextSetXidMethodInfo InstallPluginsContext signature where
    overloadedMethod = installPluginsContextSetXid

#endif

#if defined(ENABLE_OVERLOADING)
type family ResolveInstallPluginsContextMethod (t :: Symbol) (o :: *) :: * where
    ResolveInstallPluginsContextMethod "copy" o = InstallPluginsContextCopyMethodInfo
    ResolveInstallPluginsContextMethod "free" o = InstallPluginsContextFreeMethodInfo
    ResolveInstallPluginsContextMethod "setConfirmSearch" o = InstallPluginsContextSetConfirmSearchMethodInfo
    ResolveInstallPluginsContextMethod "setDesktopId" o = InstallPluginsContextSetDesktopIdMethodInfo
    ResolveInstallPluginsContextMethod "setStartupNotificationId" o = InstallPluginsContextSetStartupNotificationIdMethodInfo
    ResolveInstallPluginsContextMethod "setXid" o = InstallPluginsContextSetXidMethodInfo
    ResolveInstallPluginsContextMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveInstallPluginsContextMethod t InstallPluginsContext, O.MethodInfo info InstallPluginsContext p) => OL.IsLabel t (InstallPluginsContext -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#endif