gi-webkit-0.2.4.14: GI/WebKit/Structs/WebPluginMIMEType.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
A structure representing one of the MIME types associated with a
plugin. A #GSList of these objects will be returned by
#webkit_web_plugin_get_mimetypes, use
#webkit_web_plugin_mime_type_list_free to free it.
-}
module GI.WebKit.Structs.WebPluginMIMEType
(
-- * Exported types
WebPluginMIMEType(..) ,
newZeroWebPluginMIMEType ,
noWebPluginMIMEType ,
-- * Properties
-- ** Description
webPluginMIMETypeClearDescription ,
webPluginMIMETypeDescription ,
webPluginMIMETypeReadDescription ,
webPluginMIMETypeWriteDescription ,
-- ** Extensions
webPluginMIMETypeClearExtensions ,
webPluginMIMETypeExtensions ,
webPluginMIMETypeReadExtensions ,
webPluginMIMETypeWriteExtensions ,
-- ** Name
webPluginMIMETypeClearName ,
webPluginMIMETypeName ,
webPluginMIMETypeReadName ,
webPluginMIMETypeWriteName ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.WebKit.Types
import GI.WebKit.Callbacks
newtype WebPluginMIMEType = WebPluginMIMEType (ForeignPtr WebPluginMIMEType)
-- | Construct a `WebPluginMIMEType` struct initialized to zero.
newZeroWebPluginMIMEType :: MonadIO m => m WebPluginMIMEType
newZeroWebPluginMIMEType = liftIO $ callocBytes 24 >>= wrapPtr WebPluginMIMEType
instance tag ~ 'AttrSet => Constructible WebPluginMIMEType tag where
new _ attrs = do
o <- newZeroWebPluginMIMEType
GI.Attributes.set o attrs
return o
noWebPluginMIMEType :: Maybe WebPluginMIMEType
noWebPluginMIMEType = Nothing
webPluginMIMETypeReadName :: MonadIO m => WebPluginMIMEType -> m (Maybe T.Text)
webPluginMIMETypeReadName s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CString
result <- convertIfNonNull val $ \val' -> do
val'' <- cstringToText val'
return val''
return result
webPluginMIMETypeWriteName :: MonadIO m => WebPluginMIMEType -> CString -> m ()
webPluginMIMETypeWriteName s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: CString)
webPluginMIMETypeClearName :: MonadIO m => WebPluginMIMEType -> m ()
webPluginMIMETypeClearName s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (nullPtr :: CString)
data WebPluginMIMETypeNameFieldInfo
instance AttrInfo WebPluginMIMETypeNameFieldInfo where
type AttrAllowedOps WebPluginMIMETypeNameFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint WebPluginMIMETypeNameFieldInfo = (~) CString
type AttrBaseTypeConstraint WebPluginMIMETypeNameFieldInfo = (~) WebPluginMIMEType
type AttrGetType WebPluginMIMETypeNameFieldInfo = Maybe T.Text
type AttrLabel WebPluginMIMETypeNameFieldInfo = "name"
attrGet _ = webPluginMIMETypeReadName
attrSet _ = webPluginMIMETypeWriteName
attrConstruct = undefined
attrClear _ = webPluginMIMETypeClearName
webPluginMIMETypeName :: AttrLabelProxy "name"
webPluginMIMETypeName = AttrLabelProxy
webPluginMIMETypeReadDescription :: MonadIO m => WebPluginMIMEType -> m (Maybe T.Text)
webPluginMIMETypeReadDescription s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO CString
result <- convertIfNonNull val $ \val' -> do
val'' <- cstringToText val'
return val''
return result
webPluginMIMETypeWriteDescription :: MonadIO m => WebPluginMIMEType -> CString -> m ()
webPluginMIMETypeWriteDescription s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (val :: CString)
webPluginMIMETypeClearDescription :: MonadIO m => WebPluginMIMEType -> m ()
webPluginMIMETypeClearDescription s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (nullPtr :: CString)
data WebPluginMIMETypeDescriptionFieldInfo
instance AttrInfo WebPluginMIMETypeDescriptionFieldInfo where
type AttrAllowedOps WebPluginMIMETypeDescriptionFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint WebPluginMIMETypeDescriptionFieldInfo = (~) CString
type AttrBaseTypeConstraint WebPluginMIMETypeDescriptionFieldInfo = (~) WebPluginMIMEType
type AttrGetType WebPluginMIMETypeDescriptionFieldInfo = Maybe T.Text
type AttrLabel WebPluginMIMETypeDescriptionFieldInfo = "description"
attrGet _ = webPluginMIMETypeReadDescription
attrSet _ = webPluginMIMETypeWriteDescription
attrConstruct = undefined
attrClear _ = webPluginMIMETypeClearDescription
webPluginMIMETypeDescription :: AttrLabelProxy "description"
webPluginMIMETypeDescription = AttrLabelProxy
webPluginMIMETypeReadExtensions :: MonadIO m => WebPluginMIMEType -> m (Maybe T.Text)
webPluginMIMETypeReadExtensions s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO CString
result <- convertIfNonNull val $ \val' -> do
val'' <- cstringToText val'
return val''
return result
webPluginMIMETypeWriteExtensions :: MonadIO m => WebPluginMIMEType -> CString -> m ()
webPluginMIMETypeWriteExtensions s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (val :: CString)
webPluginMIMETypeClearExtensions :: MonadIO m => WebPluginMIMEType -> m ()
webPluginMIMETypeClearExtensions s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (nullPtr :: CString)
data WebPluginMIMETypeExtensionsFieldInfo
instance AttrInfo WebPluginMIMETypeExtensionsFieldInfo where
type AttrAllowedOps WebPluginMIMETypeExtensionsFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint WebPluginMIMETypeExtensionsFieldInfo = (~) CString
type AttrBaseTypeConstraint WebPluginMIMETypeExtensionsFieldInfo = (~) WebPluginMIMEType
type AttrGetType WebPluginMIMETypeExtensionsFieldInfo = Maybe T.Text
type AttrLabel WebPluginMIMETypeExtensionsFieldInfo = "extensions"
attrGet _ = webPluginMIMETypeReadExtensions
attrSet _ = webPluginMIMETypeWriteExtensions
attrConstruct = undefined
attrClear _ = webPluginMIMETypeClearExtensions
webPluginMIMETypeExtensions :: AttrLabelProxy "extensions"
webPluginMIMETypeExtensions = AttrLabelProxy
type instance AttributeList WebPluginMIMEType = WebPluginMIMETypeAttributeList
type WebPluginMIMETypeAttributeList = ('[ '("name", WebPluginMIMETypeNameFieldInfo), '("description", WebPluginMIMETypeDescriptionFieldInfo), '("extensions", WebPluginMIMETypeExtensionsFieldInfo)] :: [(Symbol, *)])
type family ResolveWebPluginMIMETypeMethod (t :: Symbol) (o :: *) :: * where
ResolveWebPluginMIMETypeMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveWebPluginMIMETypeMethod t WebPluginMIMEType, MethodInfo info WebPluginMIMEType p) => IsLabelProxy t (WebPluginMIMEType -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveWebPluginMIMETypeMethod t WebPluginMIMEType, MethodInfo info WebPluginMIMEType p) => IsLabel t (WebPluginMIMEType -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif