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 +4/−0
- Data/GI/Base/Properties.hsc +21/−1
- haskell-gi-base.cabal +1/−1
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