{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.WebKit2.Objects.Plugin
(
Plugin(..) ,
IsPlugin ,
toPlugin ,
#if defined(ENABLE_OVERLOADING)
ResolvePluginMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
PluginGetDescriptionMethodInfo ,
#endif
pluginGetDescription ,
#if defined(ENABLE_OVERLOADING)
PluginGetMimeInfoListMethodInfo ,
#endif
pluginGetMimeInfoList ,
#if defined(ENABLE_OVERLOADING)
PluginGetNameMethodInfo ,
#endif
pluginGetName ,
#if defined(ENABLE_OVERLOADING)
PluginGetPathMethodInfo ,
#endif
pluginGetPath ,
) 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.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.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.WebKit2.Structs.MimeInfo as WebKit2.MimeInfo
newtype Plugin = Plugin (SP.ManagedPtr Plugin)
deriving (Plugin -> Plugin -> Bool
(Plugin -> Plugin -> Bool)
-> (Plugin -> Plugin -> Bool) -> Eq Plugin
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Plugin -> Plugin -> Bool
$c/= :: Plugin -> Plugin -> Bool
== :: Plugin -> Plugin -> Bool
$c== :: Plugin -> Plugin -> Bool
Eq)
instance SP.ManagedPtrNewtype Plugin where
toManagedPtr :: Plugin -> ManagedPtr Plugin
toManagedPtr (Plugin ManagedPtr Plugin
p) = ManagedPtr Plugin
p
foreign import ccall "webkit_plugin_get_type"
c_webkit_plugin_get_type :: IO B.Types.GType
instance B.Types.TypedObject Plugin where
glibType :: IO GType
glibType = IO GType
c_webkit_plugin_get_type
instance B.Types.GObject Plugin
class (SP.GObject o, O.IsDescendantOf Plugin o) => IsPlugin o
instance (SP.GObject o, O.IsDescendantOf Plugin o) => IsPlugin o
instance O.HasParentTypes Plugin
type instance O.ParentTypes Plugin = '[GObject.Object.Object]
toPlugin :: (MIO.MonadIO m, IsPlugin o) => o -> m Plugin
toPlugin :: forall (m :: * -> *) o. (MonadIO m, IsPlugin o) => o -> m Plugin
toPlugin = IO Plugin -> m Plugin
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Plugin -> m Plugin) -> (o -> IO Plugin) -> o -> m Plugin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr Plugin -> Plugin) -> o -> IO Plugin
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr Plugin -> Plugin
Plugin
instance B.GValue.IsGValue (Maybe Plugin) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_webkit_plugin_get_type
gvalueSet_ :: Ptr GValue -> Maybe Plugin -> IO ()
gvalueSet_ Ptr GValue
gv Maybe Plugin
P.Nothing = Ptr GValue -> Ptr Plugin -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr Plugin
forall a. Ptr a
FP.nullPtr :: FP.Ptr Plugin)
gvalueSet_ Ptr GValue
gv (P.Just Plugin
obj) = Plugin -> (Ptr Plugin -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr Plugin
obj (Ptr GValue -> Ptr Plugin -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe Plugin)
gvalueGet_ Ptr GValue
gv = do
Ptr Plugin
ptr <- Ptr GValue -> IO (Ptr Plugin)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr Plugin)
if Ptr Plugin
ptr Ptr Plugin -> Ptr Plugin -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr Plugin
forall a. Ptr a
FP.nullPtr
then Plugin -> Maybe Plugin
forall a. a -> Maybe a
P.Just (Plugin -> Maybe Plugin) -> IO Plugin -> IO (Maybe Plugin)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr Plugin -> Plugin) -> Ptr Plugin -> IO Plugin
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr Plugin -> Plugin
Plugin Ptr Plugin
ptr
else Maybe Plugin -> IO (Maybe Plugin)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Plugin
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolvePluginMethod (t :: Symbol) (o :: *) :: * where
ResolvePluginMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolvePluginMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolvePluginMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolvePluginMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolvePluginMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolvePluginMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolvePluginMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolvePluginMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolvePluginMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolvePluginMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolvePluginMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolvePluginMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolvePluginMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolvePluginMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolvePluginMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolvePluginMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolvePluginMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolvePluginMethod "getDescription" o = PluginGetDescriptionMethodInfo
ResolvePluginMethod "getMimeInfoList" o = PluginGetMimeInfoListMethodInfo
ResolvePluginMethod "getName" o = PluginGetNameMethodInfo
ResolvePluginMethod "getPath" o = PluginGetPathMethodInfo
ResolvePluginMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolvePluginMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolvePluginMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolvePluginMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolvePluginMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolvePluginMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolvePluginMethod t Plugin, O.OverloadedMethod info Plugin p) => OL.IsLabel t (Plugin -> 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 ~ ResolvePluginMethod t Plugin, O.OverloadedMethod info Plugin p, R.HasField t Plugin p) => R.HasField t Plugin p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolvePluginMethod t Plugin, O.OverloadedMethodInfo info Plugin) => OL.IsLabel t (O.MethodProxy info Plugin) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList Plugin
type instance O.AttributeList Plugin = PluginAttributeList
type PluginAttributeList = ('[ ] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList Plugin = PluginSignalList
type PluginSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "webkit_plugin_get_description" webkit_plugin_get_description ::
Ptr Plugin ->
IO CString
{-# DEPRECATED pluginGetDescription ["(Since version 2.32)"] #-}
pluginGetDescription ::
(B.CallStack.HasCallStack, MonadIO m, IsPlugin a) =>
a
-> m T.Text
pluginGetDescription :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsPlugin a) =>
a -> m Text
pluginGetDescription a
plugin = IO Text -> m Text
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
Ptr Plugin
plugin' <- a -> IO (Ptr Plugin)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
plugin
CString
result <- Ptr Plugin -> IO CString
webkit_plugin_get_description Ptr Plugin
plugin'
Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"pluginGetDescription" CString
result
Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
plugin
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
#if defined(ENABLE_OVERLOADING)
data PluginGetDescriptionMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsPlugin a) => O.OverloadedMethod PluginGetDescriptionMethodInfo a signature where
overloadedMethod = pluginGetDescription
instance O.OverloadedMethodInfo PluginGetDescriptionMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.WebKit2.Objects.Plugin.pluginGetDescription",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2-4.0.28/docs/GI-WebKit2-Objects-Plugin.html#v:pluginGetDescription"
})
#endif
foreign import ccall "webkit_plugin_get_mime_info_list" webkit_plugin_get_mime_info_list ::
Ptr Plugin ->
IO (Ptr (GList (Ptr WebKit2.MimeInfo.MimeInfo)))
{-# DEPRECATED pluginGetMimeInfoList ["(Since version 2.32)"] #-}
pluginGetMimeInfoList ::
(B.CallStack.HasCallStack, MonadIO m, IsPlugin a) =>
a
-> m [WebKit2.MimeInfo.MimeInfo]
pluginGetMimeInfoList :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsPlugin a) =>
a -> m [MimeInfo]
pluginGetMimeInfoList a
plugin = IO [MimeInfo] -> m [MimeInfo]
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO [MimeInfo] -> m [MimeInfo]) -> IO [MimeInfo] -> m [MimeInfo]
forall a b. (a -> b) -> a -> b
$ do
Ptr Plugin
plugin' <- a -> IO (Ptr Plugin)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
plugin
Ptr (GList (Ptr MimeInfo))
result <- Ptr Plugin -> IO (Ptr (GList (Ptr MimeInfo)))
webkit_plugin_get_mime_info_list Ptr Plugin
plugin'
[Ptr MimeInfo]
result' <- Ptr (GList (Ptr MimeInfo)) -> IO [Ptr MimeInfo]
forall a. Ptr (GList (Ptr a)) -> IO [Ptr a]
unpackGList Ptr (GList (Ptr MimeInfo))
result
[MimeInfo]
result'' <- (Ptr MimeInfo -> IO MimeInfo) -> [Ptr MimeInfo] -> IO [MimeInfo]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM ((ManagedPtr MimeInfo -> MimeInfo) -> Ptr MimeInfo -> IO MimeInfo
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr MimeInfo -> MimeInfo
WebKit2.MimeInfo.MimeInfo) [Ptr MimeInfo]
result'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
plugin
[MimeInfo] -> IO [MimeInfo]
forall (m :: * -> *) a. Monad m => a -> m a
return [MimeInfo]
result''
#if defined(ENABLE_OVERLOADING)
data PluginGetMimeInfoListMethodInfo
instance (signature ~ (m [WebKit2.MimeInfo.MimeInfo]), MonadIO m, IsPlugin a) => O.OverloadedMethod PluginGetMimeInfoListMethodInfo a signature where
overloadedMethod = pluginGetMimeInfoList
instance O.OverloadedMethodInfo PluginGetMimeInfoListMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.WebKit2.Objects.Plugin.pluginGetMimeInfoList",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2-4.0.28/docs/GI-WebKit2-Objects-Plugin.html#v:pluginGetMimeInfoList"
})
#endif
foreign import ccall "webkit_plugin_get_name" webkit_plugin_get_name ::
Ptr Plugin ->
IO CString
{-# DEPRECATED pluginGetName ["(Since version 2.32)"] #-}
pluginGetName ::
(B.CallStack.HasCallStack, MonadIO m, IsPlugin a) =>
a
-> m T.Text
pluginGetName :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsPlugin a) =>
a -> m Text
pluginGetName a
plugin = IO Text -> m Text
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
Ptr Plugin
plugin' <- a -> IO (Ptr Plugin)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
plugin
CString
result <- Ptr Plugin -> IO CString
webkit_plugin_get_name Ptr Plugin
plugin'
Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"pluginGetName" CString
result
Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
plugin
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
#if defined(ENABLE_OVERLOADING)
data PluginGetNameMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsPlugin a) => O.OverloadedMethod PluginGetNameMethodInfo a signature where
overloadedMethod = pluginGetName
instance O.OverloadedMethodInfo PluginGetNameMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.WebKit2.Objects.Plugin.pluginGetName",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2-4.0.28/docs/GI-WebKit2-Objects-Plugin.html#v:pluginGetName"
})
#endif
foreign import ccall "webkit_plugin_get_path" webkit_plugin_get_path ::
Ptr Plugin ->
IO CString
{-# DEPRECATED pluginGetPath ["(Since version 2.32)"] #-}
pluginGetPath ::
(B.CallStack.HasCallStack, MonadIO m, IsPlugin a) =>
a
-> m T.Text
pluginGetPath :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsPlugin a) =>
a -> m Text
pluginGetPath a
plugin = IO Text -> m Text
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
Ptr Plugin
plugin' <- a -> IO (Ptr Plugin)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
plugin
CString
result <- Ptr Plugin -> IO CString
webkit_plugin_get_path Ptr Plugin
plugin'
Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"pluginGetPath" CString
result
Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
plugin
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
#if defined(ENABLE_OVERLOADING)
data PluginGetPathMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsPlugin a) => O.OverloadedMethod PluginGetPathMethodInfo a signature where
overloadedMethod = pluginGetPath
instance O.OverloadedMethodInfo PluginGetPathMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.WebKit2.Objects.Plugin.pluginGetPath",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2-4.0.28/docs/GI-WebKit2-Objects-Plugin.html#v:pluginGetPath"
})
#endif