{-# LANGUAGE ImplicitParams, RankNTypes, TypeApplications #-}
#if !defined(__HADDOCK_VERSION__)
#define ENABLE_OVERLOADING
#endif
module GI.Atk.Interfaces.Value
(
Value(..) ,
IsValue ,
toValue ,
#if defined(ENABLE_OVERLOADING)
ResolveValueMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
ValueGetCurrentValueMethodInfo ,
#endif
valueGetCurrentValue ,
#if defined(ENABLE_OVERLOADING)
ValueGetIncrementMethodInfo ,
#endif
valueGetIncrement ,
#if defined(ENABLE_OVERLOADING)
ValueGetMaximumValueMethodInfo ,
#endif
valueGetMaximumValue ,
#if defined(ENABLE_OVERLOADING)
ValueGetMinimumIncrementMethodInfo ,
#endif
valueGetMinimumIncrement ,
#if defined(ENABLE_OVERLOADING)
ValueGetMinimumValueMethodInfo ,
#endif
valueGetMinimumValue ,
#if defined(ENABLE_OVERLOADING)
ValueGetRangeMethodInfo ,
#endif
valueGetRange ,
#if defined(ENABLE_OVERLOADING)
ValueGetSubRangesMethodInfo ,
#endif
valueGetSubRanges ,
#if defined(ENABLE_OVERLOADING)
ValueGetValueAndTextMethodInfo ,
#endif
valueGetValueAndText ,
#if defined(ENABLE_OVERLOADING)
ValueSetCurrentValueMethodInfo ,
#endif
valueSetCurrentValue ,
#if defined(ENABLE_OVERLOADING)
ValueSetValueMethodInfo ,
#endif
valueSetValue ,
ValueValueChangedCallback ,
#if defined(ENABLE_OVERLOADING)
ValueValueChangedSignalInfo ,
#endif
afterValueValueChanged ,
onValueValueChanged ,
) 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.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
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.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
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 qualified GHC.Records as R
import qualified Data.Word as DW
import qualified Data.Int as DI
import qualified System.Posix.Types as SPT
import qualified Foreign.C.Types as FCT
#if MIN_VERSION_base(4,18,0)
import {-# SOURCE #-} qualified GI.Atk.Structs.Range as Atk.Range
import qualified GI.GObject.Objects.Object as GObject.Object
#else
import {-# SOURCE #-} qualified GI.Atk.Structs.Range as Atk.Range
import qualified GI.GObject.Objects.Object as GObject.Object
#endif
newtype Value = Value (SP.ManagedPtr Value)
deriving (Value -> Value -> Bool
(Value -> Value -> Bool) -> (Value -> Value -> Bool) -> Eq Value
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Value -> Value -> Bool
== :: Value -> Value -> Bool
$c/= :: Value -> Value -> Bool
/= :: Value -> Value -> Bool
Eq)
instance SP.ManagedPtrNewtype Value where
toManagedPtr :: Value -> ManagedPtr Value
toManagedPtr (Value ManagedPtr Value
p) = ManagedPtr Value
p
foreign import ccall "atk_value_get_type"
c_atk_value_get_type :: IO B.Types.GType
instance B.Types.TypedObject Value where
glibType :: IO GType
glibType = IO GType
c_atk_value_get_type
instance B.Types.GObject Value
class (SP.GObject o, O.IsDescendantOf Value o) => IsValue o
instance (SP.GObject o, O.IsDescendantOf Value o) => IsValue o
instance O.HasParentTypes Value
type instance O.ParentTypes Value = '[GObject.Object.Object]
toValue :: (MIO.MonadIO m, IsValue o) => o -> m Value
toValue :: forall (m :: * -> *) o. (MonadIO m, IsValue o) => o -> m Value
toValue = IO Value -> m Value
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Value -> m Value) -> (o -> IO Value) -> o -> m Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr Value -> Value) -> o -> IO Value
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr Value -> Value
Value
instance B.GValue.IsGValue (Maybe Value) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_atk_value_get_type
gvalueSet_ :: Ptr GValue -> Maybe Value -> IO ()
gvalueSet_ Ptr GValue
gv Maybe Value
P.Nothing = Ptr GValue -> Ptr Value -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr Value
forall a. Ptr a
FP.nullPtr :: FP.Ptr Value)
gvalueSet_ Ptr GValue
gv (P.Just Value
obj) = Value -> (Ptr Value -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr Value
obj (Ptr GValue -> Ptr Value -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe Value)
gvalueGet_ Ptr GValue
gv = do
ptr <- Ptr GValue -> IO (Ptr Value)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr Value)
if ptr /= FP.nullPtr
then P.Just <$> B.ManagedPtr.newObject Value ptr
else return P.Nothing
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList Value
type instance O.AttributeList Value = ValueAttributeList
type ValueAttributeList = ('[ ] :: [(Symbol, DK.Type)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveValueMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveValueMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveValueMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveValueMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveValueMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveValueMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveValueMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveValueMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveValueMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveValueMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveValueMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveValueMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveValueMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveValueMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveValueMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveValueMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveValueMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveValueMethod "getCurrentValue" o = ValueGetCurrentValueMethodInfo
ResolveValueMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveValueMethod "getIncrement" o = ValueGetIncrementMethodInfo
ResolveValueMethod "getMaximumValue" o = ValueGetMaximumValueMethodInfo
ResolveValueMethod "getMinimumIncrement" o = ValueGetMinimumIncrementMethodInfo
ResolveValueMethod "getMinimumValue" o = ValueGetMinimumValueMethodInfo
ResolveValueMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveValueMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveValueMethod "getRange" o = ValueGetRangeMethodInfo
ResolveValueMethod "getSubRanges" o = ValueGetSubRangesMethodInfo
ResolveValueMethod "getValueAndText" o = ValueGetValueAndTextMethodInfo
ResolveValueMethod "setCurrentValue" o = ValueSetCurrentValueMethodInfo
ResolveValueMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveValueMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveValueMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveValueMethod "setValue" o = ValueSetValueMethodInfo
ResolveValueMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveValueMethod t Value, O.OverloadedMethod info Value p) => OL.IsLabel t (Value -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveValueMethod t Value, O.OverloadedMethod info Value p, R.HasField t Value p) => R.HasField t Value p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveValueMethod t Value, O.OverloadedMethodInfo info Value) => OL.IsLabel t (O.MethodProxy info Value) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
foreign import ccall "atk_value_get_current_value" atk_value_get_current_value ::
Ptr Value ->
Ptr GValue ->
IO ()
{-# DEPRECATED valueGetCurrentValue ["Since 2.12. Use 'GI.Atk.Interfaces.Value.valueGetValueAndText'","instead."] #-}
valueGetCurrentValue ::
(B.CallStack.HasCallStack, MonadIO m, IsValue a) =>
a
-> m (GValue)
valueGetCurrentValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsValue a) =>
a -> m GValue
valueGetCurrentValue a
obj = IO GValue -> m GValue
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO GValue -> m GValue) -> IO GValue -> m GValue
forall a b. (a -> b) -> a -> b
$ do
obj' <- a -> IO (Ptr Value)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
obj
value <- SP.callocBytes 24 :: IO (Ptr GValue)
atk_value_get_current_value obj' value
value' <- B.GValue.wrapGValuePtr value
touchManagedPtr obj
return value'
#if defined(ENABLE_OVERLOADING)
data ValueGetCurrentValueMethodInfo
instance (signature ~ (m (GValue)), MonadIO m, IsValue a) => O.OverloadedMethod ValueGetCurrentValueMethodInfo a signature where
overloadedMethod = valueGetCurrentValue
instance O.OverloadedMethodInfo ValueGetCurrentValueMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Atk.Interfaces.Value.valueGetCurrentValue",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-atk-2.0.28/docs/GI-Atk-Interfaces-Value.html#v:valueGetCurrentValue"
})
#endif
foreign import ccall "atk_value_get_increment" atk_value_get_increment ::
Ptr Value ->
IO CDouble
valueGetIncrement ::
(B.CallStack.HasCallStack, MonadIO m, IsValue a) =>
a
-> m Double
valueGetIncrement :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsValue a) =>
a -> m Double
valueGetIncrement a
obj = IO Double -> m Double
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Double -> m Double) -> IO Double -> m Double
forall a b. (a -> b) -> a -> b
$ do
obj' <- a -> IO (Ptr Value)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
obj
result <- atk_value_get_increment obj'
let result' = CDouble -> Double
forall a b. (Real a, Fractional b) => a -> b
realToFrac CDouble
result
touchManagedPtr obj
return result'
#if defined(ENABLE_OVERLOADING)
data ValueGetIncrementMethodInfo
instance (signature ~ (m Double), MonadIO m, IsValue a) => O.OverloadedMethod ValueGetIncrementMethodInfo a signature where
overloadedMethod = valueGetIncrement
instance O.OverloadedMethodInfo ValueGetIncrementMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Atk.Interfaces.Value.valueGetIncrement",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-atk-2.0.28/docs/GI-Atk-Interfaces-Value.html#v:valueGetIncrement"
})
#endif
foreign import ccall "atk_value_get_maximum_value" atk_value_get_maximum_value ::
Ptr Value ->
Ptr GValue ->
IO ()
{-# DEPRECATED valueGetMaximumValue ["Since 2.12. Use 'GI.Atk.Interfaces.Value.valueGetRange' instead."] #-}
valueGetMaximumValue ::
(B.CallStack.HasCallStack, MonadIO m, IsValue a) =>
a
-> m (GValue)
valueGetMaximumValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsValue a) =>
a -> m GValue
valueGetMaximumValue a
obj = IO GValue -> m GValue
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO GValue -> m GValue) -> IO GValue -> m GValue
forall a b. (a -> b) -> a -> b
$ do
obj' <- a -> IO (Ptr Value)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
obj
value <- SP.callocBytes 24 :: IO (Ptr GValue)
atk_value_get_maximum_value obj' value
value' <- B.GValue.wrapGValuePtr value
touchManagedPtr obj
return value'
#if defined(ENABLE_OVERLOADING)
data ValueGetMaximumValueMethodInfo
instance (signature ~ (m (GValue)), MonadIO m, IsValue a) => O.OverloadedMethod ValueGetMaximumValueMethodInfo a signature where
overloadedMethod = valueGetMaximumValue
instance O.OverloadedMethodInfo ValueGetMaximumValueMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Atk.Interfaces.Value.valueGetMaximumValue",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-atk-2.0.28/docs/GI-Atk-Interfaces-Value.html#v:valueGetMaximumValue"
})
#endif
foreign import ccall "atk_value_get_minimum_increment" atk_value_get_minimum_increment ::
Ptr Value ->
Ptr GValue ->
IO ()
{-# DEPRECATED valueGetMinimumIncrement ["Since 2.12. Use 'GI.Atk.Interfaces.Value.valueGetIncrement' instead."] #-}
valueGetMinimumIncrement ::
(B.CallStack.HasCallStack, MonadIO m, IsValue a) =>
a
-> m (GValue)
valueGetMinimumIncrement :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsValue a) =>
a -> m GValue
valueGetMinimumIncrement a
obj = IO GValue -> m GValue
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO GValue -> m GValue) -> IO GValue -> m GValue
forall a b. (a -> b) -> a -> b
$ do
obj' <- a -> IO (Ptr Value)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
obj
value <- SP.callocBytes 24 :: IO (Ptr GValue)
atk_value_get_minimum_increment obj' value
value' <- B.GValue.wrapGValuePtr value
touchManagedPtr obj
return value'
#if defined(ENABLE_OVERLOADING)
data ValueGetMinimumIncrementMethodInfo
instance (signature ~ (m (GValue)), MonadIO m, IsValue a) => O.OverloadedMethod ValueGetMinimumIncrementMethodInfo a signature where
overloadedMethod = valueGetMinimumIncrement
instance O.OverloadedMethodInfo ValueGetMinimumIncrementMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Atk.Interfaces.Value.valueGetMinimumIncrement",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-atk-2.0.28/docs/GI-Atk-Interfaces-Value.html#v:valueGetMinimumIncrement"
})
#endif
foreign import ccall "atk_value_get_minimum_value" atk_value_get_minimum_value ::
Ptr Value ->
Ptr GValue ->
IO ()
{-# DEPRECATED valueGetMinimumValue ["Since 2.12. Use 'GI.Atk.Interfaces.Value.valueGetRange' instead."] #-}
valueGetMinimumValue ::
(B.CallStack.HasCallStack, MonadIO m, IsValue a) =>
a
-> m (GValue)
valueGetMinimumValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsValue a) =>
a -> m GValue
valueGetMinimumValue a
obj = IO GValue -> m GValue
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO GValue -> m GValue) -> IO GValue -> m GValue
forall a b. (a -> b) -> a -> b
$ do
obj' <- a -> IO (Ptr Value)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
obj
value <- SP.callocBytes 24 :: IO (Ptr GValue)
atk_value_get_minimum_value obj' value
value' <- B.GValue.wrapGValuePtr value
touchManagedPtr obj
return value'
#if defined(ENABLE_OVERLOADING)
data ValueGetMinimumValueMethodInfo
instance (signature ~ (m (GValue)), MonadIO m, IsValue a) => O.OverloadedMethod ValueGetMinimumValueMethodInfo a signature where
overloadedMethod = valueGetMinimumValue
instance O.OverloadedMethodInfo ValueGetMinimumValueMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Atk.Interfaces.Value.valueGetMinimumValue",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-atk-2.0.28/docs/GI-Atk-Interfaces-Value.html#v:valueGetMinimumValue"
})
#endif
foreign import ccall "atk_value_get_range" atk_value_get_range ::
Ptr Value ->
IO (Ptr Atk.Range.Range)
valueGetRange ::
(B.CallStack.HasCallStack, MonadIO m, IsValue a) =>
a
-> m (Maybe Atk.Range.Range)
valueGetRange :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsValue a) =>
a -> m (Maybe Range)
valueGetRange a
obj = IO (Maybe Range) -> m (Maybe Range)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Range) -> m (Maybe Range))
-> IO (Maybe Range) -> m (Maybe Range)
forall a b. (a -> b) -> a -> b
$ do
obj' <- a -> IO (Ptr Value)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
obj
result <- atk_value_get_range obj'
maybeResult <- convertIfNonNull result $ \Ptr Range
result' -> do
result'' <- ((ManagedPtr Range -> Range) -> Ptr Range -> IO Range
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Range -> Range
Atk.Range.Range) Ptr Range
result'
return result''
touchManagedPtr obj
return maybeResult
#if defined(ENABLE_OVERLOADING)
data ValueGetRangeMethodInfo
instance (signature ~ (m (Maybe Atk.Range.Range)), MonadIO m, IsValue a) => O.OverloadedMethod ValueGetRangeMethodInfo a signature where
overloadedMethod = valueGetRange
instance O.OverloadedMethodInfo ValueGetRangeMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Atk.Interfaces.Value.valueGetRange",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-atk-2.0.28/docs/GI-Atk-Interfaces-Value.html#v:valueGetRange"
})
#endif
foreign import ccall "atk_value_get_sub_ranges" atk_value_get_sub_ranges ::
Ptr Value ->
IO (Ptr (GSList (Ptr Atk.Range.Range)))
valueGetSubRanges ::
(B.CallStack.HasCallStack, MonadIO m, IsValue a) =>
a
-> m [Atk.Range.Range]
valueGetSubRanges :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsValue a) =>
a -> m [Range]
valueGetSubRanges a
obj = IO [Range] -> m [Range]
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO [Range] -> m [Range]) -> IO [Range] -> m [Range]
forall a b. (a -> b) -> a -> b
$ do
obj' <- a -> IO (Ptr Value)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
obj
result <- atk_value_get_sub_ranges obj'
result' <- unpackGSList result
result'' <- mapM (wrapBoxed Atk.Range.Range) result'
g_slist_free result
touchManagedPtr obj
return result''
#if defined(ENABLE_OVERLOADING)
data ValueGetSubRangesMethodInfo
instance (signature ~ (m [Atk.Range.Range]), MonadIO m, IsValue a) => O.OverloadedMethod ValueGetSubRangesMethodInfo a signature where
overloadedMethod = valueGetSubRanges
instance O.OverloadedMethodInfo ValueGetSubRangesMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Atk.Interfaces.Value.valueGetSubRanges",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-atk-2.0.28/docs/GI-Atk-Interfaces-Value.html#v:valueGetSubRanges"
})
#endif
foreign import ccall "atk_value_get_value_and_text" atk_value_get_value_and_text ::
Ptr Value ->
Ptr CDouble ->
Ptr CString ->
IO ()
valueGetValueAndText ::
(B.CallStack.HasCallStack, MonadIO m, IsValue a) =>
a
-> m ((Double, T.Text))
valueGetValueAndText :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsValue a) =>
a -> m (Double, Text)
valueGetValueAndText a
obj = IO (Double, Text) -> m (Double, Text)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Double, Text) -> m (Double, Text))
-> IO (Double, Text) -> m (Double, Text)
forall a b. (a -> b) -> a -> b
$ do
obj' <- a -> IO (Ptr Value)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
obj
value <- allocMem :: IO (Ptr CDouble)
text <- callocMem :: IO (Ptr CString)
atk_value_get_value_and_text obj' value text
value' <- peek value
let value'' = CDouble -> Double
forall a b. (Real a, Fractional b) => a -> b
realToFrac CDouble
value'
text' <- peek text
text'' <- cstringToText text'
freeMem text'
touchManagedPtr obj
freeMem value
freeMem text
return (value'', text'')
#if defined(ENABLE_OVERLOADING)
data ValueGetValueAndTextMethodInfo
instance (signature ~ (m ((Double, T.Text))), MonadIO m, IsValue a) => O.OverloadedMethod ValueGetValueAndTextMethodInfo a signature where
overloadedMethod = valueGetValueAndText
instance O.OverloadedMethodInfo ValueGetValueAndTextMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Atk.Interfaces.Value.valueGetValueAndText",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-atk-2.0.28/docs/GI-Atk-Interfaces-Value.html#v:valueGetValueAndText"
})
#endif
foreign import ccall "atk_value_set_current_value" atk_value_set_current_value ::
Ptr Value ->
Ptr GValue ->
IO CInt
{-# DEPRECATED valueSetCurrentValue ["Since 2.12. Use 'GI.Atk.Interfaces.Value.valueSetValue' instead."] #-}
valueSetCurrentValue ::
(B.CallStack.HasCallStack, MonadIO m, IsValue a) =>
a
-> GValue
-> m Bool
valueSetCurrentValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsValue a) =>
a -> GValue -> m Bool
valueSetCurrentValue a
obj GValue
value = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
obj' <- a -> IO (Ptr Value)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
obj
value' <- unsafeManagedPtrGetPtr value
result <- atk_value_set_current_value obj' value'
let result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
touchManagedPtr obj
touchManagedPtr value
return result'
#if defined(ENABLE_OVERLOADING)
data ValueSetCurrentValueMethodInfo
instance (signature ~ (GValue -> m Bool), MonadIO m, IsValue a) => O.OverloadedMethod ValueSetCurrentValueMethodInfo a signature where
overloadedMethod = valueSetCurrentValue
instance O.OverloadedMethodInfo ValueSetCurrentValueMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Atk.Interfaces.Value.valueSetCurrentValue",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-atk-2.0.28/docs/GI-Atk-Interfaces-Value.html#v:valueSetCurrentValue"
})
#endif
foreign import ccall "atk_value_set_value" atk_value_set_value ::
Ptr Value ->
CDouble ->
IO ()
valueSetValue ::
(B.CallStack.HasCallStack, MonadIO m, IsValue a) =>
a
-> Double
-> m ()
valueSetValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsValue a) =>
a -> Double -> m ()
valueSetValue a
obj Double
newValue = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
obj' <- a -> IO (Ptr Value)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
obj
let newValue' = Double -> CDouble
forall a b. (Real a, Fractional b) => a -> b
realToFrac Double
newValue
atk_value_set_value obj' newValue'
touchManagedPtr obj
return ()
#if defined(ENABLE_OVERLOADING)
data ValueSetValueMethodInfo
instance (signature ~ (Double -> m ()), MonadIO m, IsValue a) => O.OverloadedMethod ValueSetValueMethodInfo a signature where
overloadedMethod = valueSetValue
instance O.OverloadedMethodInfo ValueSetValueMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Atk.Interfaces.Value.valueSetValue",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-atk-2.0.28/docs/GI-Atk-Interfaces-Value.html#v:valueSetValue"
})
#endif
type ValueValueChangedCallback =
Double
-> T.Text
-> IO ()
type C_ValueValueChangedCallback =
Ptr Value ->
CDouble ->
CString ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
mk_ValueValueChangedCallback :: C_ValueValueChangedCallback -> IO (FunPtr C_ValueValueChangedCallback)
wrap_ValueValueChangedCallback ::
GObject a => (a -> ValueValueChangedCallback) ->
C_ValueValueChangedCallback
wrap_ValueValueChangedCallback :: forall a.
GObject a =>
(a -> ValueValueChangedCallback) -> C_ValueValueChangedCallback
wrap_ValueValueChangedCallback a -> ValueValueChangedCallback
gi'cb Ptr Value
gi'selfPtr CDouble
value CString
text Ptr ()
_ = do
let value' :: Double
value' = CDouble -> Double
forall a b. (Real a, Fractional b) => a -> b
realToFrac CDouble
value
text' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
text
B.ManagedPtr.withNewObject gi'selfPtr $ \Value
gi'self -> a -> ValueValueChangedCallback
gi'cb (Value -> a
forall a b. Coercible a b => a -> b
Coerce.coerce Value
gi'self) Double
value' Text
text'
onValueValueChanged :: (IsValue a, MonadIO m) => a -> ((?self :: a) => ValueValueChangedCallback) -> m SignalHandlerId
onValueValueChanged :: forall a (m :: * -> *).
(IsValue a, MonadIO m) =>
a -> ((?self::a) => ValueValueChangedCallback) -> m SignalHandlerId
onValueValueChanged a
obj (?self::a) => ValueValueChangedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> ValueValueChangedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => ValueValueChangedCallback
ValueValueChangedCallback
cb
let wrapped' :: C_ValueValueChangedCallback
wrapped' = (a -> ValueValueChangedCallback) -> C_ValueValueChangedCallback
forall a.
GObject a =>
(a -> ValueValueChangedCallback) -> C_ValueValueChangedCallback
wrap_ValueValueChangedCallback a -> ValueValueChangedCallback
wrapped
wrapped'' <- C_ValueValueChangedCallback
-> IO (FunPtr C_ValueValueChangedCallback)
mk_ValueValueChangedCallback C_ValueValueChangedCallback
wrapped'
connectSignalFunPtr obj "value-changed" wrapped'' SignalConnectBefore Nothing
afterValueValueChanged :: (IsValue a, MonadIO m) => a -> ((?self :: a) => ValueValueChangedCallback) -> m SignalHandlerId
afterValueValueChanged :: forall a (m :: * -> *).
(IsValue a, MonadIO m) =>
a -> ((?self::a) => ValueValueChangedCallback) -> m SignalHandlerId
afterValueValueChanged a
obj (?self::a) => ValueValueChangedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> ValueValueChangedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => ValueValueChangedCallback
ValueValueChangedCallback
cb
let wrapped' :: C_ValueValueChangedCallback
wrapped' = (a -> ValueValueChangedCallback) -> C_ValueValueChangedCallback
forall a.
GObject a =>
(a -> ValueValueChangedCallback) -> C_ValueValueChangedCallback
wrap_ValueValueChangedCallback a -> ValueValueChangedCallback
wrapped
wrapped'' <- C_ValueValueChangedCallback
-> IO (FunPtr C_ValueValueChangedCallback)
mk_ValueValueChangedCallback C_ValueValueChangedCallback
wrapped'
connectSignalFunPtr obj "value-changed" wrapped'' SignalConnectAfter Nothing
#if defined(ENABLE_OVERLOADING)
data ValueValueChangedSignalInfo
instance SignalInfo ValueValueChangedSignalInfo where
type HaskellCallbackType ValueValueChangedSignalInfo = ValueValueChangedCallback
connectSignal obj cb connectMode detail = do
let cb' = wrap_ValueValueChangedCallback cb
cb'' <- mk_ValueValueChangedCallback cb'
connectSignalFunPtr obj "value-changed" cb'' connectMode detail
dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Atk.Interfaces.Value::value-changed"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-atk-2.0.28/docs/GI-Atk-Interfaces-Value.html#g:signal:valueChanged"})
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList Value = ValueSignalList
type ValueSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo), '("valueChanged", ValueValueChangedSignalInfo)] :: [(Symbol, DK.Type)])
#endif