module GI.Gtk.Objects.CssProvider
(
CssProvider(..) ,
CssProviderK ,
toCssProvider ,
noCssProvider ,
cssProviderGetDefault ,
cssProviderGetNamed ,
cssProviderLoadFromData ,
cssProviderLoadFromFile ,
cssProviderLoadFromPath ,
cssProviderLoadFromResource ,
cssProviderNew ,
cssProviderToString ,
CssProviderParsingErrorCallback ,
CssProviderParsingErrorCallbackC ,
CssProviderParsingErrorSignalInfo ,
afterCssProviderParsingError ,
cssProviderParsingErrorCallbackWrapper ,
cssProviderParsingErrorClosure ,
mkCssProviderParsingErrorCallback ,
noCssProviderParsingErrorCallback ,
onCssProviderParsingError ,
) where
import Prelude ()
import Data.GI.Base.ShortPrelude
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.Gtk.Types
import GI.Gtk.Callbacks
import qualified GI.GObject as GObject
import qualified GI.Gio as Gio
newtype CssProvider = CssProvider (ForeignPtr CssProvider)
foreign import ccall "gtk_css_provider_get_type"
c_gtk_css_provider_get_type :: IO GType
type instance ParentTypes CssProvider = CssProviderParentTypes
type CssProviderParentTypes = '[GObject.Object, StyleProvider]
instance GObject CssProvider where
gobjectIsInitiallyUnowned _ = False
gobjectType _ = c_gtk_css_provider_get_type
class GObject o => CssProviderK o
instance (GObject o, IsDescendantOf CssProvider o) => CssProviderK o
toCssProvider :: CssProviderK o => o -> IO CssProvider
toCssProvider = unsafeCastTo CssProvider
noCssProvider :: Maybe CssProvider
noCssProvider = Nothing
type CssProviderParsingErrorCallback =
CssSection ->
GError ->
IO ()
noCssProviderParsingErrorCallback :: Maybe CssProviderParsingErrorCallback
noCssProviderParsingErrorCallback = Nothing
type CssProviderParsingErrorCallbackC =
Ptr () ->
Ptr CssSection ->
Ptr GError ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
mkCssProviderParsingErrorCallback :: CssProviderParsingErrorCallbackC -> IO (FunPtr CssProviderParsingErrorCallbackC)
cssProviderParsingErrorClosure :: CssProviderParsingErrorCallback -> IO Closure
cssProviderParsingErrorClosure cb = newCClosure =<< mkCssProviderParsingErrorCallback wrapped
where wrapped = cssProviderParsingErrorCallbackWrapper cb
cssProviderParsingErrorCallbackWrapper ::
CssProviderParsingErrorCallback ->
Ptr () ->
Ptr CssSection ->
Ptr GError ->
Ptr () ->
IO ()
cssProviderParsingErrorCallbackWrapper _cb _ section error_ _ = do
section' <- (newBoxed CssSection) section
error_' <- (newBoxed GError) error_
_cb section' error_'
onCssProviderParsingError :: (GObject a, MonadIO m) => a -> CssProviderParsingErrorCallback -> m SignalHandlerId
onCssProviderParsingError obj cb = liftIO $ connectCssProviderParsingError obj cb SignalConnectBefore
afterCssProviderParsingError :: (GObject a, MonadIO m) => a -> CssProviderParsingErrorCallback -> m SignalHandlerId
afterCssProviderParsingError obj cb = connectCssProviderParsingError obj cb SignalConnectAfter
connectCssProviderParsingError :: (GObject a, MonadIO m) =>
a -> CssProviderParsingErrorCallback -> SignalConnectMode -> m SignalHandlerId
connectCssProviderParsingError obj cb after = liftIO $ do
cb' <- mkCssProviderParsingErrorCallback (cssProviderParsingErrorCallbackWrapper cb)
connectSignalFunPtr obj "parsing-error" cb' after
type instance AttributeList CssProvider = CssProviderAttributeList
type CssProviderAttributeList = ('[ ] :: [(Symbol, *)])
data CssProviderParsingErrorSignalInfo
instance SignalInfo CssProviderParsingErrorSignalInfo where
type HaskellCallbackType CssProviderParsingErrorSignalInfo = CssProviderParsingErrorCallback
connectSignal _ = connectCssProviderParsingError
type instance SignalList CssProvider = CssProviderSignalList
type CssProviderSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("parsing-error", CssProviderParsingErrorSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
foreign import ccall "gtk_css_provider_new" gtk_css_provider_new ::
IO (Ptr CssProvider)
cssProviderNew ::
(MonadIO m) =>
m CssProvider
cssProviderNew = liftIO $ do
result <- gtk_css_provider_new
checkUnexpectedReturnNULL "gtk_css_provider_new" result
result' <- (wrapObject CssProvider) result
return result'
foreign import ccall "gtk_css_provider_load_from_data" gtk_css_provider_load_from_data ::
Ptr CssProvider ->
Ptr Word8 ->
Int64 ->
Ptr (Ptr GError) ->
IO CInt
cssProviderLoadFromData ::
(MonadIO m, CssProviderK a) =>
a ->
ByteString ->
m ()
cssProviderLoadFromData _obj data_ = liftIO $ do
let length_ = fromIntegral $ B.length data_
let _obj' = unsafeManagedPtrCastPtr _obj
data_' <- packByteString data_
onException (do
_ <- propagateGError $ gtk_css_provider_load_from_data _obj' data_' length_
touchManagedPtr _obj
freeMem data_'
return ()
) (do
freeMem data_'
)
foreign import ccall "gtk_css_provider_load_from_file" gtk_css_provider_load_from_file ::
Ptr CssProvider ->
Ptr Gio.File ->
Ptr (Ptr GError) ->
IO CInt
cssProviderLoadFromFile ::
(MonadIO m, CssProviderK a, Gio.FileK b) =>
a ->
b ->
m ()
cssProviderLoadFromFile _obj file = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let file' = unsafeManagedPtrCastPtr file
onException (do
_ <- propagateGError $ gtk_css_provider_load_from_file _obj' file'
touchManagedPtr _obj
touchManagedPtr file
return ()
) (do
return ()
)
foreign import ccall "gtk_css_provider_load_from_path" gtk_css_provider_load_from_path ::
Ptr CssProvider ->
CString ->
Ptr (Ptr GError) ->
IO CInt
cssProviderLoadFromPath ::
(MonadIO m, CssProviderK a) =>
a ->
T.Text ->
m ()
cssProviderLoadFromPath _obj path = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
path' <- textToCString path
onException (do
_ <- propagateGError $ gtk_css_provider_load_from_path _obj' path'
touchManagedPtr _obj
freeMem path'
return ()
) (do
freeMem path'
)
foreign import ccall "gtk_css_provider_load_from_resource" gtk_css_provider_load_from_resource ::
Ptr CssProvider ->
CString ->
IO ()
cssProviderLoadFromResource ::
(MonadIO m, CssProviderK a) =>
a ->
T.Text ->
m ()
cssProviderLoadFromResource _obj resource_path = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
resource_path' <- textToCString resource_path
gtk_css_provider_load_from_resource _obj' resource_path'
touchManagedPtr _obj
freeMem resource_path'
return ()
foreign import ccall "gtk_css_provider_to_string" gtk_css_provider_to_string ::
Ptr CssProvider ->
IO CString
cssProviderToString ::
(MonadIO m, CssProviderK a) =>
a ->
m T.Text
cssProviderToString _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gtk_css_provider_to_string _obj'
checkUnexpectedReturnNULL "gtk_css_provider_to_string" result
result' <- cstringToText result
freeMem result
touchManagedPtr _obj
return result'
foreign import ccall "gtk_css_provider_get_default" gtk_css_provider_get_default ::
IO (Ptr CssProvider)
cssProviderGetDefault ::
(MonadIO m) =>
m CssProvider
cssProviderGetDefault = liftIO $ do
result <- gtk_css_provider_get_default
checkUnexpectedReturnNULL "gtk_css_provider_get_default" result
result' <- (newObject CssProvider) result
return result'
foreign import ccall "gtk_css_provider_get_named" gtk_css_provider_get_named ::
CString ->
CString ->
IO (Ptr CssProvider)
cssProviderGetNamed ::
(MonadIO m) =>
T.Text ->
Maybe (T.Text) ->
m CssProvider
cssProviderGetNamed name variant = liftIO $ do
name' <- textToCString name
maybeVariant <- case variant of
Nothing -> return nullPtr
Just jVariant -> do
jVariant' <- textToCString jVariant
return jVariant'
result <- gtk_css_provider_get_named name' maybeVariant
checkUnexpectedReturnNULL "gtk_css_provider_get_named" result
result' <- (newObject CssProvider) result
freeMem name'
freeMem maybeVariant
return result'