packages feed

haskell-gi-base 0.21.3 → 0.21.4

raw patch · 3 files changed

+26/−2 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Data.GI.Base.Properties: constructObjectPropertyCallback :: String -> FunPtr b -> IO (GValueConstruct o)
+ Data.GI.Base.Properties: getObjectPropertyCallback :: GObject a => a -> String -> (FunPtr b -> c) -> IO (Maybe c)
+ Data.GI.Base.Properties: setObjectPropertyCallback :: GObject a => a -> String -> FunPtr b -> IO ()

Files

ChangeLog.md view
@@ -1,3 +1,7 @@+### 0.21.4+++ Add support for callback-valued properties.+ ### 0.21.3  + Fix a compilation error on Windows, see [issue 193](https://github.com/haskell-gi/haskell-gi/issues/193).
Data/GI/Base/Properties.hsc view
@@ -24,6 +24,7 @@     , setObjectPropertyByteArray     , setObjectPropertyPtrGList     , setObjectPropertyHash+    , setObjectPropertyCallback      , getObjectPropertyString     , getObjectPropertyStringArray@@ -48,6 +49,7 @@     , getObjectPropertyByteArray     , getObjectPropertyPtrGList     , getObjectPropertyHash+    , getObjectPropertyCallback      , constructObjectPropertyString     , constructObjectPropertyStringArray@@ -72,6 +74,7 @@     , constructObjectPropertyByteArray     , constructObjectPropertyPtrGList     , constructObjectPropertyHash+    , constructObjectPropertyCallback     ) where  #if !MIN_VERSION_base(4,8,0)@@ -90,7 +93,8 @@ import Data.GI.Base.GVariant (newGVariantFromPtr) import Data.GI.Base.Utils (freeMem, convertIfNonNull) -import Foreign (Ptr, Int32, Word32, Int64, Word64, nullPtr)+import Foreign (Ptr, FunPtr, Int32, Word32, Int64, Word64, nullPtr,+                castFunPtrToPtr, castPtrToFunPtr) import Foreign.C (CString, withCString) import Foreign.C.Types (CInt, CUInt, CLong, CULong) @@ -519,3 +523,19 @@ getObjectPropertyHash :: GObject a => a -> String -> IO b getObjectPropertyHash =     error $ "Getting GHashTable properties not supported yet."++setObjectPropertyCallback :: GObject a => a -> String -> FunPtr b -> IO ()+setObjectPropertyCallback obj propName funPtr =+    setObjectProperty obj propName (castFunPtrToPtr funPtr) set_pointer gtypePointer++constructObjectPropertyCallback :: String -> FunPtr b -> IO (GValueConstruct o)+constructObjectPropertyCallback propName funPtr =+  constructObjectProperty propName (castFunPtrToPtr funPtr) set_pointer gtypePointer++getObjectPropertyCallback :: GObject a => a -> String ->+                             (FunPtr b -> c) -> IO (Maybe c)+getObjectPropertyCallback obj propName wrapper = do+  ptr <- getObjectProperty obj propName get_pointer gtypePointer+  if ptr /= nullPtr+    then return . Just . wrapper $ castPtrToFunPtr ptr+    else return Nothing
haskell-gi-base.cabal view
@@ -1,5 +1,5 @@ name:                haskell-gi-base-version:             0.21.3+version:             0.21.4 synopsis:            Foundation for libraries generated by haskell-gi description:         Foundation for libraries generated by haskell-gi homepage:            https://github.com/haskell-gi/haskell-gi-base