{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) /No description available in the introspection data./ -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.WebKit2.Objects.Plugin ( -- * Exported types Plugin(..) , IsPlugin , toPlugin , noPlugin , -- * Methods -- ** getDescription #method:getDescription# #if ENABLE_OVERLOADING PluginGetDescriptionMethodInfo , #endif pluginGetDescription , -- ** getMimeInfoList #method:getMimeInfoList# #if ENABLE_OVERLOADING PluginGetMimeInfoListMethodInfo , #endif pluginGetMimeInfoList , -- ** getName #method:getName# #if ENABLE_OVERLOADING PluginGetNameMethodInfo , #endif pluginGetName , -- ** getPath #method:getPath# #if 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.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.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 GI.GObject.Objects.Object as GObject.Object import {-# SOURCE #-} qualified GI.WebKit2.Structs.MimeInfo as WebKit2.MimeInfo -- | Memory-managed wrapper type. newtype Plugin = Plugin (ManagedPtr Plugin) foreign import ccall "webkit_plugin_get_type" c_webkit_plugin_get_type :: IO GType instance GObject Plugin where gobjectType = c_webkit_plugin_get_type -- | Type class for types which can be safely cast to `Plugin`, for instance with `toPlugin`. class (GObject o, O.IsDescendantOf Plugin o) => IsPlugin o instance (GObject o, O.IsDescendantOf Plugin o) => IsPlugin o instance O.HasParentTypes Plugin type instance O.ParentTypes Plugin = '[GObject.Object.Object] -- | Cast to `Plugin`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`. toPlugin :: (MonadIO m, IsPlugin o) => o -> m Plugin toPlugin = liftIO . unsafeCastTo Plugin -- | A convenience alias for `Nothing` :: `Maybe` `Plugin`. noPlugin :: Maybe Plugin noPlugin = Nothing #if 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 "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo ResolvePluginMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolvePluginMethod t Plugin, O.MethodInfo info Plugin p) => OL.IsLabel t (Plugin -> p) where #if MIN_VERSION_base(4,10,0) fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #else fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #endif #endif #if ENABLE_OVERLOADING instance O.HasAttributeList Plugin type instance O.AttributeList Plugin = PluginAttributeList type PluginAttributeList = ('[ ] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING #endif #if ENABLE_OVERLOADING type instance O.SignalList Plugin = PluginSignalList type PluginSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)]) #endif -- method Plugin::get_description -- method type : OrdinaryMethod -- Args : [Arg {argCName = "plugin", argType = TInterface (Name {namespace = "WebKit2", name = "Plugin"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitPlugin", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "webkit_plugin_get_description" webkit_plugin_get_description :: Ptr Plugin -> -- plugin : TInterface (Name {namespace = "WebKit2", name = "Plugin"}) IO CString {- | /No description available in the introspection data./ -} pluginGetDescription :: (B.CallStack.HasCallStack, MonadIO m, IsPlugin a) => a {- ^ /@plugin@/: a 'GI.WebKit2.Objects.Plugin.Plugin' -} -> m T.Text {- ^ __Returns:__ the description of the plugin. -} pluginGetDescription plugin = liftIO $ do plugin' <- unsafeManagedPtrCastPtr plugin result <- webkit_plugin_get_description plugin' checkUnexpectedReturnNULL "pluginGetDescription" result result' <- cstringToText result touchManagedPtr plugin return result' #if ENABLE_OVERLOADING data PluginGetDescriptionMethodInfo instance (signature ~ (m T.Text), MonadIO m, IsPlugin a) => O.MethodInfo PluginGetDescriptionMethodInfo a signature where overloadedMethod _ = pluginGetDescription #endif -- method Plugin::get_mime_info_list -- method type : OrdinaryMethod -- Args : [Arg {argCName = "plugin", argType = TInterface (Name {namespace = "WebKit2", name = "Plugin"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitPlugin", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TGList (TInterface (Name {namespace = "WebKit2", name = "MimeInfo"}))) -- throws : False -- Skip return : False foreign import ccall "webkit_plugin_get_mime_info_list" webkit_plugin_get_mime_info_list :: Ptr Plugin -> -- plugin : TInterface (Name {namespace = "WebKit2", name = "Plugin"}) IO (Ptr (GList (Ptr WebKit2.MimeInfo.MimeInfo))) {- | Get information about MIME types handled by the plugin, as a list of 'GI.WebKit2.Structs.MimeInfo.MimeInfo'. -} pluginGetMimeInfoList :: (B.CallStack.HasCallStack, MonadIO m, IsPlugin a) => a {- ^ /@plugin@/: a 'GI.WebKit2.Objects.Plugin.Plugin' -} -> m [WebKit2.MimeInfo.MimeInfo] {- ^ __Returns:__ a 'GI.GLib.Structs.List.List' of 'GI.WebKit2.Structs.MimeInfo.MimeInfo'. -} pluginGetMimeInfoList plugin = liftIO $ do plugin' <- unsafeManagedPtrCastPtr plugin result <- webkit_plugin_get_mime_info_list plugin' result' <- unpackGList result result'' <- mapM (newBoxed WebKit2.MimeInfo.MimeInfo) result' touchManagedPtr plugin return result'' #if ENABLE_OVERLOADING data PluginGetMimeInfoListMethodInfo instance (signature ~ (m [WebKit2.MimeInfo.MimeInfo]), MonadIO m, IsPlugin a) => O.MethodInfo PluginGetMimeInfoListMethodInfo a signature where overloadedMethod _ = pluginGetMimeInfoList #endif -- method Plugin::get_name -- method type : OrdinaryMethod -- Args : [Arg {argCName = "plugin", argType = TInterface (Name {namespace = "WebKit2", name = "Plugin"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitPlugin", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "webkit_plugin_get_name" webkit_plugin_get_name :: Ptr Plugin -> -- plugin : TInterface (Name {namespace = "WebKit2", name = "Plugin"}) IO CString {- | /No description available in the introspection data./ -} pluginGetName :: (B.CallStack.HasCallStack, MonadIO m, IsPlugin a) => a {- ^ /@plugin@/: a 'GI.WebKit2.Objects.Plugin.Plugin' -} -> m T.Text {- ^ __Returns:__ the name of the plugin. -} pluginGetName plugin = liftIO $ do plugin' <- unsafeManagedPtrCastPtr plugin result <- webkit_plugin_get_name plugin' checkUnexpectedReturnNULL "pluginGetName" result result' <- cstringToText result touchManagedPtr plugin return result' #if ENABLE_OVERLOADING data PluginGetNameMethodInfo instance (signature ~ (m T.Text), MonadIO m, IsPlugin a) => O.MethodInfo PluginGetNameMethodInfo a signature where overloadedMethod _ = pluginGetName #endif -- method Plugin::get_path -- method type : OrdinaryMethod -- Args : [Arg {argCName = "plugin", argType = TInterface (Name {namespace = "WebKit2", name = "Plugin"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitPlugin", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "webkit_plugin_get_path" webkit_plugin_get_path :: Ptr Plugin -> -- plugin : TInterface (Name {namespace = "WebKit2", name = "Plugin"}) IO CString {- | /No description available in the introspection data./ -} pluginGetPath :: (B.CallStack.HasCallStack, MonadIO m, IsPlugin a) => a {- ^ /@plugin@/: a 'GI.WebKit2.Objects.Plugin.Plugin' -} -> m T.Text {- ^ __Returns:__ the absolute path where the plugin is installed. -} pluginGetPath plugin = liftIO $ do plugin' <- unsafeManagedPtrCastPtr plugin result <- webkit_plugin_get_path plugin' checkUnexpectedReturnNULL "pluginGetPath" result result' <- cstringToText result touchManagedPtr plugin return result' #if ENABLE_OVERLOADING data PluginGetPathMethodInfo instance (signature ~ (m T.Text), MonadIO m, IsPlugin a) => O.MethodInfo PluginGetPathMethodInfo a signature where overloadedMethod _ = pluginGetPath #endif