{-# LINE 2 "./Graphics/UI/Gtk/Special/Ruler.chs" #-}
module Graphics.UI.Gtk.Special.Ruler (
Ruler,
RulerClass,
castToRuler,
toRuler,
MetricType (..),
rulerRange,
rulerLower,
rulerUpper,
rulerPosition,
rulerMaxSize,
rulerMetric,
) where
import System.Glib.FFI
import System.Glib.Attributes
import System.Glib.Properties
import Graphics.UI.Gtk.General.Enums
import Graphics.UI.Gtk.Types
{-# LINE 80 "./Graphics/UI/Gtk/Special/Ruler.chs" #-}
{-# LINE 82 "./Graphics/UI/Gtk/Special/Ruler.chs" #-}
rulerSetRange :: RulerClass self => self
-> (Double
,Double
,Double
,Double)
-> IO ()
rulerSetRange self (lower, upper, position, maxSize) =
(\(Ruler arg1) arg2 arg3 arg4 arg5 -> withForeignPtr arg1 $ \argPtr1 ->gtk_ruler_set_range argPtr1 arg2 arg3 arg4 arg5)
{-# LINE 100 "./Graphics/UI/Gtk/Special/Ruler.chs" #-}
(toRuler self)
(realToFrac lower)
(realToFrac upper)
(realToFrac position)
(realToFrac maxSize)
rulerGetRange :: RulerClass self => self
-> IO (Double, Double, Double, Double)
rulerGetRange self =
alloca $ \lowerPtr ->
alloca $ \upperPtr ->
alloca $ \positionPtr ->
alloca $ \maxSizePtr -> do
(\(Ruler arg1) arg2 arg3 arg4 arg5 -> withForeignPtr arg1 $ \argPtr1 ->gtk_ruler_get_range argPtr1 arg2 arg3 arg4 arg5)
{-# LINE 117 "./Graphics/UI/Gtk/Special/Ruler.chs" #-}
(toRuler self)
lowerPtr
upperPtr
positionPtr
maxSizePtr
lower <- peek lowerPtr
upper <- peek upperPtr
position <- peek positionPtr
maxSize <- peek maxSizePtr
return (realToFrac lower, realToFrac upper, realToFrac position, realToFrac maxSize)
rulerRange :: RulerClass self => Attr self (Double, Double, Double, Double)
rulerRange = newAttr
rulerGetRange
rulerSetRange
rulerLower :: RulerClass self => Attr self Double
rulerLower = newAttrFromDoubleProperty "lower"
rulerUpper :: RulerClass self => Attr self Double
rulerUpper = newAttrFromDoubleProperty "upper"
rulerPosition :: RulerClass self => Attr self Double
rulerPosition = newAttrFromDoubleProperty "position"
rulerMaxSize :: RulerClass self => Attr self Double
rulerMaxSize = newAttrFromDoubleProperty "max-size"
rulerMetric :: RulerClass self => Attr self MetricType
rulerMetric = newAttrFromEnumProperty "metric"
gtk_metric_type_get_type
{-# LINE 176 "./Graphics/UI/Gtk/Special/Ruler.chs" #-}
foreign import ccall safe "gtk_ruler_set_range"
gtk_ruler_set_range :: ((Ptr Ruler) -> (CDouble -> (CDouble -> (CDouble -> (CDouble -> (IO ()))))))
foreign import ccall safe "gtk_ruler_get_range"
gtk_ruler_get_range :: ((Ptr Ruler) -> ((Ptr CDouble) -> ((Ptr CDouble) -> ((Ptr CDouble) -> ((Ptr CDouble) -> (IO ()))))))
foreign import ccall unsafe "gtk_metric_type_get_type"
gtk_metric_type_get_type :: CULong