{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.Gtk.Objects.Adjustment
    ( 

-- * Exported types
    Adjustment(..)                          ,
    AdjustmentK                             ,
    toAdjustment                            ,
    noAdjustment                            ,


 -- * Methods
-- ** adjustmentChanged
    adjustmentChanged                       ,


-- ** adjustmentClampPage
    adjustmentClampPage                     ,


-- ** adjustmentConfigure
    adjustmentConfigure                     ,


-- ** adjustmentGetLower
    adjustmentGetLower                      ,


-- ** adjustmentGetMinimumIncrement
    adjustmentGetMinimumIncrement           ,


-- ** adjustmentGetPageIncrement
    adjustmentGetPageIncrement              ,


-- ** adjustmentGetPageSize
    adjustmentGetPageSize                   ,


-- ** adjustmentGetStepIncrement
    adjustmentGetStepIncrement              ,


-- ** adjustmentGetUpper
    adjustmentGetUpper                      ,


-- ** adjustmentGetValue
    adjustmentGetValue                      ,


-- ** adjustmentNew
    adjustmentNew                           ,


-- ** adjustmentSetLower
    adjustmentSetLower                      ,


-- ** adjustmentSetPageIncrement
    adjustmentSetPageIncrement              ,


-- ** adjustmentSetPageSize
    adjustmentSetPageSize                   ,


-- ** adjustmentSetStepIncrement
    adjustmentSetStepIncrement              ,


-- ** adjustmentSetUpper
    adjustmentSetUpper                      ,


-- ** adjustmentSetValue
    adjustmentSetValue                      ,


-- ** adjustmentValueChanged
    adjustmentValueChanged                  ,




 -- * Properties
-- ** Lower
    AdjustmentLowerPropertyInfo             ,
    constructAdjustmentLower                ,
    getAdjustmentLower                      ,
    setAdjustmentLower                      ,


-- ** PageIncrement
    AdjustmentPageIncrementPropertyInfo     ,
    constructAdjustmentPageIncrement        ,
    getAdjustmentPageIncrement              ,
    setAdjustmentPageIncrement              ,


-- ** PageSize
    AdjustmentPageSizePropertyInfo          ,
    constructAdjustmentPageSize             ,
    getAdjustmentPageSize                   ,
    setAdjustmentPageSize                   ,


-- ** StepIncrement
    AdjustmentStepIncrementPropertyInfo     ,
    constructAdjustmentStepIncrement        ,
    getAdjustmentStepIncrement              ,
    setAdjustmentStepIncrement              ,


-- ** Upper
    AdjustmentUpperPropertyInfo             ,
    constructAdjustmentUpper                ,
    getAdjustmentUpper                      ,
    setAdjustmentUpper                      ,


-- ** Value
    AdjustmentValuePropertyInfo             ,
    constructAdjustmentValue                ,
    getAdjustmentValue                      ,
    setAdjustmentValue                      ,




 -- * Signals
-- ** Changed
    AdjustmentChangedCallback               ,
    AdjustmentChangedCallbackC              ,
    AdjustmentChangedSignalInfo             ,
    adjustmentChangedCallbackWrapper        ,
    adjustmentChangedClosure                ,
    afterAdjustmentChanged                  ,
    mkAdjustmentChangedCallback             ,
    noAdjustmentChangedCallback             ,
    onAdjustmentChanged                     ,


-- ** ValueChanged
    AdjustmentValueChangedCallback          ,
    AdjustmentValueChangedCallbackC         ,
    AdjustmentValueChangedSignalInfo        ,
    adjustmentValueChangedCallbackWrapper   ,
    adjustmentValueChangedClosure           ,
    afterAdjustmentValueChanged             ,
    mkAdjustmentValueChangedCallback        ,
    noAdjustmentValueChangedCallback        ,
    onAdjustmentValueChanged                ,




    ) 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

newtype Adjustment = Adjustment (ForeignPtr Adjustment)
foreign import ccall "gtk_adjustment_get_type"
    c_gtk_adjustment_get_type :: IO GType

type instance ParentTypes Adjustment = AdjustmentParentTypes
type AdjustmentParentTypes = '[GObject.Object]

instance GObject Adjustment where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_gtk_adjustment_get_type
    

class GObject o => AdjustmentK o
instance (GObject o, IsDescendantOf Adjustment o) => AdjustmentK o

toAdjustment :: AdjustmentK o => o -> IO Adjustment
toAdjustment = unsafeCastTo Adjustment

noAdjustment :: Maybe Adjustment
noAdjustment = Nothing

-- signal Adjustment::changed
type AdjustmentChangedCallback =
    IO ()

noAdjustmentChangedCallback :: Maybe AdjustmentChangedCallback
noAdjustmentChangedCallback = Nothing

type AdjustmentChangedCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkAdjustmentChangedCallback :: AdjustmentChangedCallbackC -> IO (FunPtr AdjustmentChangedCallbackC)

adjustmentChangedClosure :: AdjustmentChangedCallback -> IO Closure
adjustmentChangedClosure cb = newCClosure =<< mkAdjustmentChangedCallback wrapped
    where wrapped = adjustmentChangedCallbackWrapper cb

adjustmentChangedCallbackWrapper ::
    AdjustmentChangedCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
adjustmentChangedCallbackWrapper _cb _ _ = do
    _cb 

onAdjustmentChanged :: (GObject a, MonadIO m) => a -> AdjustmentChangedCallback -> m SignalHandlerId
onAdjustmentChanged obj cb = liftIO $ connectAdjustmentChanged obj cb SignalConnectBefore
afterAdjustmentChanged :: (GObject a, MonadIO m) => a -> AdjustmentChangedCallback -> m SignalHandlerId
afterAdjustmentChanged obj cb = connectAdjustmentChanged obj cb SignalConnectAfter

connectAdjustmentChanged :: (GObject a, MonadIO m) =>
                            a -> AdjustmentChangedCallback -> SignalConnectMode -> m SignalHandlerId
connectAdjustmentChanged obj cb after = liftIO $ do
    cb' <- mkAdjustmentChangedCallback (adjustmentChangedCallbackWrapper cb)
    connectSignalFunPtr obj "changed" cb' after

-- signal Adjustment::value-changed
type AdjustmentValueChangedCallback =
    IO ()

noAdjustmentValueChangedCallback :: Maybe AdjustmentValueChangedCallback
noAdjustmentValueChangedCallback = Nothing

type AdjustmentValueChangedCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkAdjustmentValueChangedCallback :: AdjustmentValueChangedCallbackC -> IO (FunPtr AdjustmentValueChangedCallbackC)

adjustmentValueChangedClosure :: AdjustmentValueChangedCallback -> IO Closure
adjustmentValueChangedClosure cb = newCClosure =<< mkAdjustmentValueChangedCallback wrapped
    where wrapped = adjustmentValueChangedCallbackWrapper cb

adjustmentValueChangedCallbackWrapper ::
    AdjustmentValueChangedCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
adjustmentValueChangedCallbackWrapper _cb _ _ = do
    _cb 

onAdjustmentValueChanged :: (GObject a, MonadIO m) => a -> AdjustmentValueChangedCallback -> m SignalHandlerId
onAdjustmentValueChanged obj cb = liftIO $ connectAdjustmentValueChanged obj cb SignalConnectBefore
afterAdjustmentValueChanged :: (GObject a, MonadIO m) => a -> AdjustmentValueChangedCallback -> m SignalHandlerId
afterAdjustmentValueChanged obj cb = connectAdjustmentValueChanged obj cb SignalConnectAfter

connectAdjustmentValueChanged :: (GObject a, MonadIO m) =>
                                 a -> AdjustmentValueChangedCallback -> SignalConnectMode -> m SignalHandlerId
connectAdjustmentValueChanged obj cb after = liftIO $ do
    cb' <- mkAdjustmentValueChangedCallback (adjustmentValueChangedCallbackWrapper cb)
    connectSignalFunPtr obj "value-changed" cb' after

-- VVV Prop "lower"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable,PropertyWritable]

getAdjustmentLower :: (MonadIO m, AdjustmentK o) => o -> m Double
getAdjustmentLower obj = liftIO $ getObjectPropertyDouble obj "lower"

setAdjustmentLower :: (MonadIO m, AdjustmentK o) => o -> Double -> m ()
setAdjustmentLower obj val = liftIO $ setObjectPropertyDouble obj "lower" val

constructAdjustmentLower :: Double -> IO ([Char], GValue)
constructAdjustmentLower val = constructObjectPropertyDouble "lower" val

data AdjustmentLowerPropertyInfo
instance AttrInfo AdjustmentLowerPropertyInfo where
    type AttrAllowedOps AdjustmentLowerPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AdjustmentLowerPropertyInfo = (~) Double
    type AttrBaseTypeConstraint AdjustmentLowerPropertyInfo = AdjustmentK
    type AttrGetType AdjustmentLowerPropertyInfo = Double
    type AttrLabel AdjustmentLowerPropertyInfo = "Adjustment::lower"
    attrGet _ = getAdjustmentLower
    attrSet _ = setAdjustmentLower
    attrConstruct _ = constructAdjustmentLower

-- VVV Prop "page-increment"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable,PropertyWritable]

getAdjustmentPageIncrement :: (MonadIO m, AdjustmentK o) => o -> m Double
getAdjustmentPageIncrement obj = liftIO $ getObjectPropertyDouble obj "page-increment"

setAdjustmentPageIncrement :: (MonadIO m, AdjustmentK o) => o -> Double -> m ()
setAdjustmentPageIncrement obj val = liftIO $ setObjectPropertyDouble obj "page-increment" val

constructAdjustmentPageIncrement :: Double -> IO ([Char], GValue)
constructAdjustmentPageIncrement val = constructObjectPropertyDouble "page-increment" val

data AdjustmentPageIncrementPropertyInfo
instance AttrInfo AdjustmentPageIncrementPropertyInfo where
    type AttrAllowedOps AdjustmentPageIncrementPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AdjustmentPageIncrementPropertyInfo = (~) Double
    type AttrBaseTypeConstraint AdjustmentPageIncrementPropertyInfo = AdjustmentK
    type AttrGetType AdjustmentPageIncrementPropertyInfo = Double
    type AttrLabel AdjustmentPageIncrementPropertyInfo = "Adjustment::page-increment"
    attrGet _ = getAdjustmentPageIncrement
    attrSet _ = setAdjustmentPageIncrement
    attrConstruct _ = constructAdjustmentPageIncrement

-- VVV Prop "page-size"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable,PropertyWritable]

getAdjustmentPageSize :: (MonadIO m, AdjustmentK o) => o -> m Double
getAdjustmentPageSize obj = liftIO $ getObjectPropertyDouble obj "page-size"

setAdjustmentPageSize :: (MonadIO m, AdjustmentK o) => o -> Double -> m ()
setAdjustmentPageSize obj val = liftIO $ setObjectPropertyDouble obj "page-size" val

constructAdjustmentPageSize :: Double -> IO ([Char], GValue)
constructAdjustmentPageSize val = constructObjectPropertyDouble "page-size" val

data AdjustmentPageSizePropertyInfo
instance AttrInfo AdjustmentPageSizePropertyInfo where
    type AttrAllowedOps AdjustmentPageSizePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AdjustmentPageSizePropertyInfo = (~) Double
    type AttrBaseTypeConstraint AdjustmentPageSizePropertyInfo = AdjustmentK
    type AttrGetType AdjustmentPageSizePropertyInfo = Double
    type AttrLabel AdjustmentPageSizePropertyInfo = "Adjustment::page-size"
    attrGet _ = getAdjustmentPageSize
    attrSet _ = setAdjustmentPageSize
    attrConstruct _ = constructAdjustmentPageSize

-- VVV Prop "step-increment"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable,PropertyWritable]

getAdjustmentStepIncrement :: (MonadIO m, AdjustmentK o) => o -> m Double
getAdjustmentStepIncrement obj = liftIO $ getObjectPropertyDouble obj "step-increment"

setAdjustmentStepIncrement :: (MonadIO m, AdjustmentK o) => o -> Double -> m ()
setAdjustmentStepIncrement obj val = liftIO $ setObjectPropertyDouble obj "step-increment" val

constructAdjustmentStepIncrement :: Double -> IO ([Char], GValue)
constructAdjustmentStepIncrement val = constructObjectPropertyDouble "step-increment" val

data AdjustmentStepIncrementPropertyInfo
instance AttrInfo AdjustmentStepIncrementPropertyInfo where
    type AttrAllowedOps AdjustmentStepIncrementPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AdjustmentStepIncrementPropertyInfo = (~) Double
    type AttrBaseTypeConstraint AdjustmentStepIncrementPropertyInfo = AdjustmentK
    type AttrGetType AdjustmentStepIncrementPropertyInfo = Double
    type AttrLabel AdjustmentStepIncrementPropertyInfo = "Adjustment::step-increment"
    attrGet _ = getAdjustmentStepIncrement
    attrSet _ = setAdjustmentStepIncrement
    attrConstruct _ = constructAdjustmentStepIncrement

-- VVV Prop "upper"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable,PropertyWritable]

getAdjustmentUpper :: (MonadIO m, AdjustmentK o) => o -> m Double
getAdjustmentUpper obj = liftIO $ getObjectPropertyDouble obj "upper"

setAdjustmentUpper :: (MonadIO m, AdjustmentK o) => o -> Double -> m ()
setAdjustmentUpper obj val = liftIO $ setObjectPropertyDouble obj "upper" val

constructAdjustmentUpper :: Double -> IO ([Char], GValue)
constructAdjustmentUpper val = constructObjectPropertyDouble "upper" val

data AdjustmentUpperPropertyInfo
instance AttrInfo AdjustmentUpperPropertyInfo where
    type AttrAllowedOps AdjustmentUpperPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AdjustmentUpperPropertyInfo = (~) Double
    type AttrBaseTypeConstraint AdjustmentUpperPropertyInfo = AdjustmentK
    type AttrGetType AdjustmentUpperPropertyInfo = Double
    type AttrLabel AdjustmentUpperPropertyInfo = "Adjustment::upper"
    attrGet _ = getAdjustmentUpper
    attrSet _ = setAdjustmentUpper
    attrConstruct _ = constructAdjustmentUpper

-- VVV Prop "value"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable,PropertyWritable]

getAdjustmentValue :: (MonadIO m, AdjustmentK o) => o -> m Double
getAdjustmentValue obj = liftIO $ getObjectPropertyDouble obj "value"

setAdjustmentValue :: (MonadIO m, AdjustmentK o) => o -> Double -> m ()
setAdjustmentValue obj val = liftIO $ setObjectPropertyDouble obj "value" val

constructAdjustmentValue :: Double -> IO ([Char], GValue)
constructAdjustmentValue val = constructObjectPropertyDouble "value" val

data AdjustmentValuePropertyInfo
instance AttrInfo AdjustmentValuePropertyInfo where
    type AttrAllowedOps AdjustmentValuePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AdjustmentValuePropertyInfo = (~) Double
    type AttrBaseTypeConstraint AdjustmentValuePropertyInfo = AdjustmentK
    type AttrGetType AdjustmentValuePropertyInfo = Double
    type AttrLabel AdjustmentValuePropertyInfo = "Adjustment::value"
    attrGet _ = getAdjustmentValue
    attrSet _ = setAdjustmentValue
    attrConstruct _ = constructAdjustmentValue

type instance AttributeList Adjustment = AdjustmentAttributeList
type AdjustmentAttributeList = ('[ '("lower", AdjustmentLowerPropertyInfo), '("page-increment", AdjustmentPageIncrementPropertyInfo), '("page-size", AdjustmentPageSizePropertyInfo), '("step-increment", AdjustmentStepIncrementPropertyInfo), '("upper", AdjustmentUpperPropertyInfo), '("value", AdjustmentValuePropertyInfo)] :: [(Symbol, *)])

data AdjustmentChangedSignalInfo
instance SignalInfo AdjustmentChangedSignalInfo where
    type HaskellCallbackType AdjustmentChangedSignalInfo = AdjustmentChangedCallback
    connectSignal _ = connectAdjustmentChanged

data AdjustmentValueChangedSignalInfo
instance SignalInfo AdjustmentValueChangedSignalInfo where
    type HaskellCallbackType AdjustmentValueChangedSignalInfo = AdjustmentValueChangedCallback
    connectSignal _ = connectAdjustmentValueChanged

type instance SignalList Adjustment = AdjustmentSignalList
type AdjustmentSignalList = ('[ '("changed", AdjustmentChangedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("value-changed", AdjustmentValueChangedSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method Adjustment::new
-- method type : Constructor
-- Args : [Arg {argName = "value", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lower", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "upper", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "step_increment", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page_increment", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page_size", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "value", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lower", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "upper", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "step_increment", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page_increment", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page_size", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "Adjustment"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_adjustment_new" gtk_adjustment_new :: 
    CDouble ->                              -- value : TBasicType TDouble
    CDouble ->                              -- lower : TBasicType TDouble
    CDouble ->                              -- upper : TBasicType TDouble
    CDouble ->                              -- step_increment : TBasicType TDouble
    CDouble ->                              -- page_increment : TBasicType TDouble
    CDouble ->                              -- page_size : TBasicType TDouble
    IO (Ptr Adjustment)


adjustmentNew ::
    (MonadIO m) =>
    Double ->                               -- value
    Double ->                               -- lower
    Double ->                               -- upper
    Double ->                               -- step_increment
    Double ->                               -- page_increment
    Double ->                               -- page_size
    m Adjustment
adjustmentNew value lower upper step_increment page_increment page_size = liftIO $ do
    let value' = realToFrac value
    let lower' = realToFrac lower
    let upper' = realToFrac upper
    let step_increment' = realToFrac step_increment
    let page_increment' = realToFrac page_increment
    let page_size' = realToFrac page_size
    result <- gtk_adjustment_new value' lower' upper' step_increment' page_increment' page_size'
    checkUnexpectedReturnNULL "gtk_adjustment_new" result
    result' <- (newObject Adjustment) result
    return result'

-- method Adjustment::changed
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_adjustment_changed" gtk_adjustment_changed :: 
    Ptr Adjustment ->                       -- _obj : TInterface "Gtk" "Adjustment"
    IO ()


adjustmentChanged ::
    (MonadIO m, AdjustmentK a) =>
    a ->                                    -- _obj
    m ()
adjustmentChanged _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_adjustment_changed _obj'
    touchManagedPtr _obj
    return ()

-- method Adjustment::clamp_page
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lower", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "upper", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lower", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "upper", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_adjustment_clamp_page" gtk_adjustment_clamp_page :: 
    Ptr Adjustment ->                       -- _obj : TInterface "Gtk" "Adjustment"
    CDouble ->                              -- lower : TBasicType TDouble
    CDouble ->                              -- upper : TBasicType TDouble
    IO ()


adjustmentClampPage ::
    (MonadIO m, AdjustmentK a) =>
    a ->                                    -- _obj
    Double ->                               -- lower
    Double ->                               -- upper
    m ()
adjustmentClampPage _obj lower upper = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let lower' = realToFrac lower
    let upper' = realToFrac upper
    gtk_adjustment_clamp_page _obj' lower' upper'
    touchManagedPtr _obj
    return ()

-- method Adjustment::configure
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lower", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "upper", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "step_increment", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page_increment", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page_size", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lower", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "upper", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "step_increment", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page_increment", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page_size", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_adjustment_configure" gtk_adjustment_configure :: 
    Ptr Adjustment ->                       -- _obj : TInterface "Gtk" "Adjustment"
    CDouble ->                              -- value : TBasicType TDouble
    CDouble ->                              -- lower : TBasicType TDouble
    CDouble ->                              -- upper : TBasicType TDouble
    CDouble ->                              -- step_increment : TBasicType TDouble
    CDouble ->                              -- page_increment : TBasicType TDouble
    CDouble ->                              -- page_size : TBasicType TDouble
    IO ()


adjustmentConfigure ::
    (MonadIO m, AdjustmentK a) =>
    a ->                                    -- _obj
    Double ->                               -- value
    Double ->                               -- lower
    Double ->                               -- upper
    Double ->                               -- step_increment
    Double ->                               -- page_increment
    Double ->                               -- page_size
    m ()
adjustmentConfigure _obj value lower upper step_increment page_increment page_size = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let value' = realToFrac value
    let lower' = realToFrac lower
    let upper' = realToFrac upper
    let step_increment' = realToFrac step_increment
    let page_increment' = realToFrac page_increment
    let page_size' = realToFrac page_size
    gtk_adjustment_configure _obj' value' lower' upper' step_increment' page_increment' page_size'
    touchManagedPtr _obj
    return ()

-- method Adjustment::get_lower
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TDouble
-- throws : False
-- Skip return : False

foreign import ccall "gtk_adjustment_get_lower" gtk_adjustment_get_lower :: 
    Ptr Adjustment ->                       -- _obj : TInterface "Gtk" "Adjustment"
    IO CDouble


adjustmentGetLower ::
    (MonadIO m, AdjustmentK a) =>
    a ->                                    -- _obj
    m Double
adjustmentGetLower _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_adjustment_get_lower _obj'
    let result' = realToFrac result
    touchManagedPtr _obj
    return result'

-- method Adjustment::get_minimum_increment
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TDouble
-- throws : False
-- Skip return : False

foreign import ccall "gtk_adjustment_get_minimum_increment" gtk_adjustment_get_minimum_increment :: 
    Ptr Adjustment ->                       -- _obj : TInterface "Gtk" "Adjustment"
    IO CDouble


adjustmentGetMinimumIncrement ::
    (MonadIO m, AdjustmentK a) =>
    a ->                                    -- _obj
    m Double
adjustmentGetMinimumIncrement _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_adjustment_get_minimum_increment _obj'
    let result' = realToFrac result
    touchManagedPtr _obj
    return result'

-- method Adjustment::get_page_increment
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TDouble
-- throws : False
-- Skip return : False

foreign import ccall "gtk_adjustment_get_page_increment" gtk_adjustment_get_page_increment :: 
    Ptr Adjustment ->                       -- _obj : TInterface "Gtk" "Adjustment"
    IO CDouble


adjustmentGetPageIncrement ::
    (MonadIO m, AdjustmentK a) =>
    a ->                                    -- _obj
    m Double
adjustmentGetPageIncrement _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_adjustment_get_page_increment _obj'
    let result' = realToFrac result
    touchManagedPtr _obj
    return result'

-- method Adjustment::get_page_size
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TDouble
-- throws : False
-- Skip return : False

foreign import ccall "gtk_adjustment_get_page_size" gtk_adjustment_get_page_size :: 
    Ptr Adjustment ->                       -- _obj : TInterface "Gtk" "Adjustment"
    IO CDouble


adjustmentGetPageSize ::
    (MonadIO m, AdjustmentK a) =>
    a ->                                    -- _obj
    m Double
adjustmentGetPageSize _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_adjustment_get_page_size _obj'
    let result' = realToFrac result
    touchManagedPtr _obj
    return result'

-- method Adjustment::get_step_increment
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TDouble
-- throws : False
-- Skip return : False

foreign import ccall "gtk_adjustment_get_step_increment" gtk_adjustment_get_step_increment :: 
    Ptr Adjustment ->                       -- _obj : TInterface "Gtk" "Adjustment"
    IO CDouble


adjustmentGetStepIncrement ::
    (MonadIO m, AdjustmentK a) =>
    a ->                                    -- _obj
    m Double
adjustmentGetStepIncrement _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_adjustment_get_step_increment _obj'
    let result' = realToFrac result
    touchManagedPtr _obj
    return result'

-- method Adjustment::get_upper
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TDouble
-- throws : False
-- Skip return : False

foreign import ccall "gtk_adjustment_get_upper" gtk_adjustment_get_upper :: 
    Ptr Adjustment ->                       -- _obj : TInterface "Gtk" "Adjustment"
    IO CDouble


adjustmentGetUpper ::
    (MonadIO m, AdjustmentK a) =>
    a ->                                    -- _obj
    m Double
adjustmentGetUpper _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_adjustment_get_upper _obj'
    let result' = realToFrac result
    touchManagedPtr _obj
    return result'

-- method Adjustment::get_value
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TDouble
-- throws : False
-- Skip return : False

foreign import ccall "gtk_adjustment_get_value" gtk_adjustment_get_value :: 
    Ptr Adjustment ->                       -- _obj : TInterface "Gtk" "Adjustment"
    IO CDouble


adjustmentGetValue ::
    (MonadIO m, AdjustmentK a) =>
    a ->                                    -- _obj
    m Double
adjustmentGetValue _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_adjustment_get_value _obj'
    let result' = realToFrac result
    touchManagedPtr _obj
    return result'

-- method Adjustment::set_lower
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lower", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lower", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_adjustment_set_lower" gtk_adjustment_set_lower :: 
    Ptr Adjustment ->                       -- _obj : TInterface "Gtk" "Adjustment"
    CDouble ->                              -- lower : TBasicType TDouble
    IO ()


adjustmentSetLower ::
    (MonadIO m, AdjustmentK a) =>
    a ->                                    -- _obj
    Double ->                               -- lower
    m ()
adjustmentSetLower _obj lower = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let lower' = realToFrac lower
    gtk_adjustment_set_lower _obj' lower'
    touchManagedPtr _obj
    return ()

-- method Adjustment::set_page_increment
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page_increment", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page_increment", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_adjustment_set_page_increment" gtk_adjustment_set_page_increment :: 
    Ptr Adjustment ->                       -- _obj : TInterface "Gtk" "Adjustment"
    CDouble ->                              -- page_increment : TBasicType TDouble
    IO ()


adjustmentSetPageIncrement ::
    (MonadIO m, AdjustmentK a) =>
    a ->                                    -- _obj
    Double ->                               -- page_increment
    m ()
adjustmentSetPageIncrement _obj page_increment = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let page_increment' = realToFrac page_increment
    gtk_adjustment_set_page_increment _obj' page_increment'
    touchManagedPtr _obj
    return ()

-- method Adjustment::set_page_size
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page_size", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page_size", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_adjustment_set_page_size" gtk_adjustment_set_page_size :: 
    Ptr Adjustment ->                       -- _obj : TInterface "Gtk" "Adjustment"
    CDouble ->                              -- page_size : TBasicType TDouble
    IO ()


adjustmentSetPageSize ::
    (MonadIO m, AdjustmentK a) =>
    a ->                                    -- _obj
    Double ->                               -- page_size
    m ()
adjustmentSetPageSize _obj page_size = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let page_size' = realToFrac page_size
    gtk_adjustment_set_page_size _obj' page_size'
    touchManagedPtr _obj
    return ()

-- method Adjustment::set_step_increment
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "step_increment", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "step_increment", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_adjustment_set_step_increment" gtk_adjustment_set_step_increment :: 
    Ptr Adjustment ->                       -- _obj : TInterface "Gtk" "Adjustment"
    CDouble ->                              -- step_increment : TBasicType TDouble
    IO ()


adjustmentSetStepIncrement ::
    (MonadIO m, AdjustmentK a) =>
    a ->                                    -- _obj
    Double ->                               -- step_increment
    m ()
adjustmentSetStepIncrement _obj step_increment = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let step_increment' = realToFrac step_increment
    gtk_adjustment_set_step_increment _obj' step_increment'
    touchManagedPtr _obj
    return ()

-- method Adjustment::set_upper
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "upper", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "upper", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_adjustment_set_upper" gtk_adjustment_set_upper :: 
    Ptr Adjustment ->                       -- _obj : TInterface "Gtk" "Adjustment"
    CDouble ->                              -- upper : TBasicType TDouble
    IO ()


adjustmentSetUpper ::
    (MonadIO m, AdjustmentK a) =>
    a ->                                    -- _obj
    Double ->                               -- upper
    m ()
adjustmentSetUpper _obj upper = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let upper' = realToFrac upper
    gtk_adjustment_set_upper _obj' upper'
    touchManagedPtr _obj
    return ()

-- method Adjustment::set_value
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_adjustment_set_value" gtk_adjustment_set_value :: 
    Ptr Adjustment ->                       -- _obj : TInterface "Gtk" "Adjustment"
    CDouble ->                              -- value : TBasicType TDouble
    IO ()


adjustmentSetValue ::
    (MonadIO m, AdjustmentK a) =>
    a ->                                    -- _obj
    Double ->                               -- value
    m ()
adjustmentSetValue _obj value = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let value' = realToFrac value
    gtk_adjustment_set_value _obj' value'
    touchManagedPtr _obj
    return ()

-- method Adjustment::value_changed
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_adjustment_value_changed" gtk_adjustment_value_changed :: 
    Ptr Adjustment ->                       -- _obj : TInterface "Gtk" "Adjustment"
    IO ()


adjustmentValueChanged ::
    (MonadIO m, AdjustmentK a) =>
    a ->                                    -- _obj
    m ()
adjustmentValueChanged _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_adjustment_value_changed _obj'
    touchManagedPtr _obj
    return ()