{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.WebKit2.Structs.UserStyleSheet
(
UserStyleSheet(..) ,
#if defined(ENABLE_OVERLOADING)
ResolveUserStyleSheetMethod ,
#endif
userStyleSheetNew ,
userStyleSheetNewForWorld ,
#if defined(ENABLE_OVERLOADING)
UserStyleSheetRefMethodInfo ,
#endif
userStyleSheetRef ,
#if defined(ENABLE_OVERLOADING)
UserStyleSheetUnrefMethodInfo ,
#endif
userStyleSheetUnref ,
) 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.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.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 {-# SOURCE #-} qualified GI.WebKit2.Enums as WebKit2.Enums
newtype UserStyleSheet = UserStyleSheet (SP.ManagedPtr UserStyleSheet)
deriving (UserStyleSheet -> UserStyleSheet -> Bool
(UserStyleSheet -> UserStyleSheet -> Bool)
-> (UserStyleSheet -> UserStyleSheet -> Bool) -> Eq UserStyleSheet
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UserStyleSheet -> UserStyleSheet -> Bool
$c/= :: UserStyleSheet -> UserStyleSheet -> Bool
== :: UserStyleSheet -> UserStyleSheet -> Bool
$c== :: UserStyleSheet -> UserStyleSheet -> Bool
Eq)
instance SP.ManagedPtrNewtype UserStyleSheet where
toManagedPtr :: UserStyleSheet -> ManagedPtr UserStyleSheet
toManagedPtr (UserStyleSheet ManagedPtr UserStyleSheet
p) = ManagedPtr UserStyleSheet
p
foreign import ccall "webkit_user_style_sheet_get_type" c_webkit_user_style_sheet_get_type ::
IO GType
type instance O.ParentTypes UserStyleSheet = '[]
instance O.HasParentTypes UserStyleSheet
instance B.Types.TypedObject UserStyleSheet where
glibType :: IO GType
glibType = IO GType
c_webkit_user_style_sheet_get_type
instance B.Types.GBoxed UserStyleSheet
instance B.GValue.IsGValue UserStyleSheet where
toGValue :: UserStyleSheet -> IO GValue
toGValue UserStyleSheet
o = do
GType
gtype <- IO GType
c_webkit_user_style_sheet_get_type
UserStyleSheet -> (Ptr UserStyleSheet -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr UserStyleSheet
o (GType
-> (GValue -> Ptr UserStyleSheet -> IO ())
-> Ptr UserStyleSheet
-> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr UserStyleSheet -> IO ()
forall a. GValue -> Ptr a -> IO ()
B.GValue.set_boxed)
fromGValue :: GValue -> IO UserStyleSheet
fromGValue GValue
gv = do
Ptr UserStyleSheet
ptr <- GValue -> IO (Ptr UserStyleSheet)
forall b. GValue -> IO (Ptr b)
B.GValue.get_boxed GValue
gv :: IO (Ptr UserStyleSheet)
(ManagedPtr UserStyleSheet -> UserStyleSheet)
-> Ptr UserStyleSheet -> IO UserStyleSheet
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.newBoxed ManagedPtr UserStyleSheet -> UserStyleSheet
UserStyleSheet Ptr UserStyleSheet
ptr
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList UserStyleSheet
type instance O.AttributeList UserStyleSheet = UserStyleSheetAttributeList
type UserStyleSheetAttributeList = ('[ ] :: [(Symbol, *)])
#endif
foreign import ccall "webkit_user_style_sheet_new" webkit_user_style_sheet_new ::
CString ->
CUInt ->
CUInt ->
Ptr CString ->
Ptr CString ->
IO (Ptr UserStyleSheet)
userStyleSheetNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> WebKit2.Enums.UserContentInjectedFrames
-> WebKit2.Enums.UserStyleLevel
-> Maybe ([T.Text])
-> Maybe ([T.Text])
-> m UserStyleSheet
userStyleSheetNew :: Text
-> UserContentInjectedFrames
-> UserStyleLevel
-> Maybe [Text]
-> Maybe [Text]
-> m UserStyleSheet
userStyleSheetNew Text
source UserContentInjectedFrames
injectedFrames UserStyleLevel
level Maybe [Text]
whitelist Maybe [Text]
blacklist = IO UserStyleSheet -> m UserStyleSheet
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO UserStyleSheet -> m UserStyleSheet)
-> IO UserStyleSheet -> m UserStyleSheet
forall a b. (a -> b) -> a -> b
$ do
CString
source' <- Text -> IO CString
textToCString Text
source
let injectedFrames' :: CUInt
injectedFrames' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt)
-> (UserContentInjectedFrames -> Int)
-> UserContentInjectedFrames
-> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. UserContentInjectedFrames -> Int
forall a. Enum a => a -> Int
fromEnum) UserContentInjectedFrames
injectedFrames
let level' :: CUInt
level' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt)
-> (UserStyleLevel -> Int) -> UserStyleLevel -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. UserStyleLevel -> Int
forall a. Enum a => a -> Int
fromEnum) UserStyleLevel
level
Ptr CString
maybeWhitelist <- case Maybe [Text]
whitelist of
Maybe [Text]
Nothing -> Ptr CString -> IO (Ptr CString)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CString
forall a. Ptr a
nullPtr
Just [Text]
jWhitelist -> do
Ptr CString
jWhitelist' <- [Text] -> IO (Ptr CString)
packZeroTerminatedUTF8CArray [Text]
jWhitelist
Ptr CString -> IO (Ptr CString)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CString
jWhitelist'
Ptr CString
maybeBlacklist <- case Maybe [Text]
blacklist of
Maybe [Text]
Nothing -> Ptr CString -> IO (Ptr CString)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CString
forall a. Ptr a
nullPtr
Just [Text]
jBlacklist -> do
Ptr CString
jBlacklist' <- [Text] -> IO (Ptr CString)
packZeroTerminatedUTF8CArray [Text]
jBlacklist
Ptr CString -> IO (Ptr CString)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CString
jBlacklist'
Ptr UserStyleSheet
result <- CString
-> CUInt
-> CUInt
-> Ptr CString
-> Ptr CString
-> IO (Ptr UserStyleSheet)
webkit_user_style_sheet_new CString
source' CUInt
injectedFrames' CUInt
level' Ptr CString
maybeWhitelist Ptr CString
maybeBlacklist
Text -> Ptr UserStyleSheet -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"userStyleSheetNew" Ptr UserStyleSheet
result
UserStyleSheet
result' <- ((ManagedPtr UserStyleSheet -> UserStyleSheet)
-> Ptr UserStyleSheet -> IO UserStyleSheet
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr UserStyleSheet -> UserStyleSheet
UserStyleSheet) Ptr UserStyleSheet
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
source'
(CString -> IO ()) -> Ptr CString -> IO ()
forall a b. (Ptr a -> IO b) -> Ptr (Ptr a) -> IO ()
mapZeroTerminatedCArray CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
maybeWhitelist
Ptr CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
maybeWhitelist
(CString -> IO ()) -> Ptr CString -> IO ()
forall a b. (Ptr a -> IO b) -> Ptr (Ptr a) -> IO ()
mapZeroTerminatedCArray CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
maybeBlacklist
Ptr CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
maybeBlacklist
UserStyleSheet -> IO UserStyleSheet
forall (m :: * -> *) a. Monad m => a -> m a
return UserStyleSheet
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "webkit_user_style_sheet_new_for_world" webkit_user_style_sheet_new_for_world ::
CString ->
CUInt ->
CUInt ->
CString ->
Ptr CString ->
Ptr CString ->
IO (Ptr UserStyleSheet)
userStyleSheetNewForWorld ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> WebKit2.Enums.UserContentInjectedFrames
-> WebKit2.Enums.UserStyleLevel
-> T.Text
-> Maybe ([T.Text])
-> Maybe ([T.Text])
-> m UserStyleSheet
userStyleSheetNewForWorld :: Text
-> UserContentInjectedFrames
-> UserStyleLevel
-> Text
-> Maybe [Text]
-> Maybe [Text]
-> m UserStyleSheet
userStyleSheetNewForWorld Text
source UserContentInjectedFrames
injectedFrames UserStyleLevel
level Text
worldName Maybe [Text]
whitelist Maybe [Text]
blacklist = IO UserStyleSheet -> m UserStyleSheet
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO UserStyleSheet -> m UserStyleSheet)
-> IO UserStyleSheet -> m UserStyleSheet
forall a b. (a -> b) -> a -> b
$ do
CString
source' <- Text -> IO CString
textToCString Text
source
let injectedFrames' :: CUInt
injectedFrames' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt)
-> (UserContentInjectedFrames -> Int)
-> UserContentInjectedFrames
-> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. UserContentInjectedFrames -> Int
forall a. Enum a => a -> Int
fromEnum) UserContentInjectedFrames
injectedFrames
let level' :: CUInt
level' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt)
-> (UserStyleLevel -> Int) -> UserStyleLevel -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. UserStyleLevel -> Int
forall a. Enum a => a -> Int
fromEnum) UserStyleLevel
level
CString
worldName' <- Text -> IO CString
textToCString Text
worldName
Ptr CString
maybeWhitelist <- case Maybe [Text]
whitelist of
Maybe [Text]
Nothing -> Ptr CString -> IO (Ptr CString)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CString
forall a. Ptr a
nullPtr
Just [Text]
jWhitelist -> do
Ptr CString
jWhitelist' <- [Text] -> IO (Ptr CString)
packZeroTerminatedUTF8CArray [Text]
jWhitelist
Ptr CString -> IO (Ptr CString)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CString
jWhitelist'
Ptr CString
maybeBlacklist <- case Maybe [Text]
blacklist of
Maybe [Text]
Nothing -> Ptr CString -> IO (Ptr CString)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CString
forall a. Ptr a
nullPtr
Just [Text]
jBlacklist -> do
Ptr CString
jBlacklist' <- [Text] -> IO (Ptr CString)
packZeroTerminatedUTF8CArray [Text]
jBlacklist
Ptr CString -> IO (Ptr CString)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CString
jBlacklist'
Ptr UserStyleSheet
result <- CString
-> CUInt
-> CUInt
-> CString
-> Ptr CString
-> Ptr CString
-> IO (Ptr UserStyleSheet)
webkit_user_style_sheet_new_for_world CString
source' CUInt
injectedFrames' CUInt
level' CString
worldName' Ptr CString
maybeWhitelist Ptr CString
maybeBlacklist
Text -> Ptr UserStyleSheet -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"userStyleSheetNewForWorld" Ptr UserStyleSheet
result
UserStyleSheet
result' <- ((ManagedPtr UserStyleSheet -> UserStyleSheet)
-> Ptr UserStyleSheet -> IO UserStyleSheet
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr UserStyleSheet -> UserStyleSheet
UserStyleSheet) Ptr UserStyleSheet
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
source'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
worldName'
(CString -> IO ()) -> Ptr CString -> IO ()
forall a b. (Ptr a -> IO b) -> Ptr (Ptr a) -> IO ()
mapZeroTerminatedCArray CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
maybeWhitelist
Ptr CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
maybeWhitelist
(CString -> IO ()) -> Ptr CString -> IO ()
forall a b. (Ptr a -> IO b) -> Ptr (Ptr a) -> IO ()
mapZeroTerminatedCArray CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
maybeBlacklist
Ptr CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
maybeBlacklist
UserStyleSheet -> IO UserStyleSheet
forall (m :: * -> *) a. Monad m => a -> m a
return UserStyleSheet
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "webkit_user_style_sheet_ref" webkit_user_style_sheet_ref ::
Ptr UserStyleSheet ->
IO (Ptr UserStyleSheet)
userStyleSheetRef ::
(B.CallStack.HasCallStack, MonadIO m) =>
UserStyleSheet
-> m UserStyleSheet
userStyleSheetRef :: UserStyleSheet -> m UserStyleSheet
userStyleSheetRef UserStyleSheet
userStyleSheet = IO UserStyleSheet -> m UserStyleSheet
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO UserStyleSheet -> m UserStyleSheet)
-> IO UserStyleSheet -> m UserStyleSheet
forall a b. (a -> b) -> a -> b
$ do
Ptr UserStyleSheet
userStyleSheet' <- UserStyleSheet -> IO (Ptr UserStyleSheet)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr UserStyleSheet
userStyleSheet
Ptr UserStyleSheet
result <- Ptr UserStyleSheet -> IO (Ptr UserStyleSheet)
webkit_user_style_sheet_ref Ptr UserStyleSheet
userStyleSheet'
Text -> Ptr UserStyleSheet -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"userStyleSheetRef" Ptr UserStyleSheet
result
UserStyleSheet
result' <- ((ManagedPtr UserStyleSheet -> UserStyleSheet)
-> Ptr UserStyleSheet -> IO UserStyleSheet
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr UserStyleSheet -> UserStyleSheet
UserStyleSheet) Ptr UserStyleSheet
result
UserStyleSheet -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr UserStyleSheet
userStyleSheet
UserStyleSheet -> IO UserStyleSheet
forall (m :: * -> *) a. Monad m => a -> m a
return UserStyleSheet
result'
#if defined(ENABLE_OVERLOADING)
data UserStyleSheetRefMethodInfo
instance (signature ~ (m UserStyleSheet), MonadIO m) => O.MethodInfo UserStyleSheetRefMethodInfo UserStyleSheet signature where
overloadedMethod = userStyleSheetRef
#endif
foreign import ccall "webkit_user_style_sheet_unref" webkit_user_style_sheet_unref ::
Ptr UserStyleSheet ->
IO ()
userStyleSheetUnref ::
(B.CallStack.HasCallStack, MonadIO m) =>
UserStyleSheet
-> m ()
userStyleSheetUnref :: UserStyleSheet -> m ()
userStyleSheetUnref UserStyleSheet
userStyleSheet = 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 UserStyleSheet
userStyleSheet' <- UserStyleSheet -> IO (Ptr UserStyleSheet)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr UserStyleSheet
userStyleSheet
Ptr UserStyleSheet -> IO ()
webkit_user_style_sheet_unref Ptr UserStyleSheet
userStyleSheet'
UserStyleSheet -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr UserStyleSheet
userStyleSheet
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data UserStyleSheetUnrefMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo UserStyleSheetUnrefMethodInfo UserStyleSheet signature where
overloadedMethod = userStyleSheetUnref
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveUserStyleSheetMethod (t :: Symbol) (o :: *) :: * where
ResolveUserStyleSheetMethod "ref" o = UserStyleSheetRefMethodInfo
ResolveUserStyleSheetMethod "unref" o = UserStyleSheetUnrefMethodInfo
ResolveUserStyleSheetMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveUserStyleSheetMethod t UserStyleSheet, O.MethodInfo info UserStyleSheet p) => OL.IsLabel t (UserStyleSheet -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#endif