module GI.Atk.Structs.Range
(
Range(..) ,
noRange ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
RangeCopyMethodInfo ,
#endif
rangeCopy ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
RangeFreeMethodInfo ,
#endif
rangeFree ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
RangeGetDescriptionMethodInfo ,
#endif
rangeGetDescription ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
RangeGetLowerLimitMethodInfo ,
#endif
rangeGetLowerLimit ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
RangeGetUpperLimitMethodInfo ,
#endif
rangeGetUpperLimit ,
rangeNew ,
) 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.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
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
newtype Range = Range (ManagedPtr Range)
foreign import ccall "atk_range_get_type" c_atk_range_get_type ::
IO GType
instance BoxedObject Range where
boxedType _ = c_atk_range_get_type
noRange :: Maybe Range
noRange = Nothing
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
instance O.HasAttributeList Range
type instance O.AttributeList Range = RangeAttributeList
type RangeAttributeList = ('[ ] :: [(Symbol, *)])
#endif
foreign import ccall "atk_range_new" atk_range_new ::
CDouble ->
CDouble ->
CString ->
IO (Ptr Range)
rangeNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
Double
-> Double
-> T.Text
-> m Range
rangeNew lowerLimit upperLimit description = liftIO $ do
let lowerLimit' = realToFrac lowerLimit
let upperLimit' = realToFrac upperLimit
description' <- textToCString description
result <- atk_range_new lowerLimit' upperLimit' description'
checkUnexpectedReturnNULL "rangeNew" result
result' <- (wrapBoxed Range) result
freeMem description'
return result'
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
#endif
foreign import ccall "atk_range_copy" atk_range_copy ::
Ptr Range ->
IO (Ptr Range)
rangeCopy ::
(B.CallStack.HasCallStack, MonadIO m) =>
Range
-> m Range
rangeCopy src = liftIO $ do
src' <- unsafeManagedPtrGetPtr src
result <- atk_range_copy src'
checkUnexpectedReturnNULL "rangeCopy" result
result' <- (wrapBoxed Range) result
touchManagedPtr src
return result'
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data RangeCopyMethodInfo
instance (signature ~ (m Range), MonadIO m) => O.MethodInfo RangeCopyMethodInfo Range signature where
overloadedMethod _ = rangeCopy
#endif
foreign import ccall "atk_range_free" atk_range_free ::
Ptr Range ->
IO ()
rangeFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
Range
-> m ()
rangeFree range = liftIO $ do
range' <- unsafeManagedPtrGetPtr range
atk_range_free range'
touchManagedPtr range
return ()
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data RangeFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo RangeFreeMethodInfo Range signature where
overloadedMethod _ = rangeFree
#endif
foreign import ccall "atk_range_get_description" atk_range_get_description ::
Ptr Range ->
IO CString
rangeGetDescription ::
(B.CallStack.HasCallStack, MonadIO m) =>
Range
-> m T.Text
rangeGetDescription range = liftIO $ do
range' <- unsafeManagedPtrGetPtr range
result <- atk_range_get_description range'
checkUnexpectedReturnNULL "rangeGetDescription" result
result' <- cstringToText result
touchManagedPtr range
return result'
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data RangeGetDescriptionMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => O.MethodInfo RangeGetDescriptionMethodInfo Range signature where
overloadedMethod _ = rangeGetDescription
#endif
foreign import ccall "atk_range_get_lower_limit" atk_range_get_lower_limit ::
Ptr Range ->
IO CDouble
rangeGetLowerLimit ::
(B.CallStack.HasCallStack, MonadIO m) =>
Range
-> m Double
rangeGetLowerLimit range = liftIO $ do
range' <- unsafeManagedPtrGetPtr range
result <- atk_range_get_lower_limit range'
let result' = realToFrac result
touchManagedPtr range
return result'
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data RangeGetLowerLimitMethodInfo
instance (signature ~ (m Double), MonadIO m) => O.MethodInfo RangeGetLowerLimitMethodInfo Range signature where
overloadedMethod _ = rangeGetLowerLimit
#endif
foreign import ccall "atk_range_get_upper_limit" atk_range_get_upper_limit ::
Ptr Range ->
IO CDouble
rangeGetUpperLimit ::
(B.CallStack.HasCallStack, MonadIO m) =>
Range
-> m Double
rangeGetUpperLimit range = liftIO $ do
range' <- unsafeManagedPtrGetPtr range
result <- atk_range_get_upper_limit range'
let result' = realToFrac result
touchManagedPtr range
return result'
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data RangeGetUpperLimitMethodInfo
instance (signature ~ (m Double), MonadIO m) => O.MethodInfo RangeGetUpperLimitMethodInfo Range signature where
overloadedMethod _ = rangeGetUpperLimit
#endif
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
type family ResolveRangeMethod (t :: Symbol) (o :: *) :: * where
ResolveRangeMethod "copy" o = RangeCopyMethodInfo
ResolveRangeMethod "free" o = RangeFreeMethodInfo
ResolveRangeMethod "getDescription" o = RangeGetDescriptionMethodInfo
ResolveRangeMethod "getLowerLimit" o = RangeGetLowerLimitMethodInfo
ResolveRangeMethod "getUpperLimit" o = RangeGetUpperLimitMethodInfo
ResolveRangeMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveRangeMethod t Range, O.MethodInfo info Range p) => O.IsLabelProxy t (Range -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveRangeMethod t Range, O.MethodInfo info Range p) => O.IsLabel t (Range -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif
#endif