clutterhs-0.1: Graphics/UI/Clutter/BehaviourScale.chs
-- -*-haskell-*-
-- Clutter BehaviourScale
--
-- Author : Matthew Arsenault
--
-- Created: 2 Oct 2009
--
-- Copyright (C) 2009 Matthew Arsenault
--
-- This library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public
-- License as published by the Free Software Foundation; either
-- version 3 of the License, or (at your option) any later version.
--
-- This library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
{-# LANGUAGE ForeignFunctionInterface #-}
#include <clutter/clutter.h>
{# context lib="clutter" prefix="clutter" #}
-- | BehaviourScale — A behaviour controlling scale
module Graphics.UI.Clutter.BehaviourScale (
-- * Description
-- | A 'BehaviourScale' interpolates actors size between two values.
-- * Class Hierarchy
-- |
-- @
-- | 'GObject'
-- | +----'Behaviour'
-- | +----'BehaviourScale'
-- |
-- @
-- * Types
BehaviourScale,
BehaviourScaleClass,
-- * Constructors
behaviourScaleNew,
-- * Methods
behaviourScaleSetBounds,
behaviourScaleGetBounds,
-- * Attributes
behaviourScaleXScaleEnd,
behaviourScaleXScaleStart,
behaviourScaleYScaleEnd,
behaviourScaleYScaleStart
) where
{# import Graphics.UI.Clutter.Types #}
{# import Graphics.UI.Clutter.Utility #}
import C2HS
import Control.Monad (liftM)
import System.Glib.Attributes
import System.Glib.Properties
-- | Creates a new 'BehaviourScale' instance.
--
-- [@alpha@] an 'Alpha'
--
-- [@x_scale_start@] initial scale factor on the X axis
--
-- [@y_scale_start@] initial scale factor on the Y axis
--
-- [@x_scale_end@] final scale factor on the X axis
--
-- [@y_scale_end@] final scale factor on the Y axis
--
-- [@Returns@] the newly created 'BehaviourScale'
--
-- * Since 0.2
--
{# fun unsafe behaviour_scale_new as ^
{ withAlpha* `Alpha', `Double', `Double', `Double', `Double'} ->
`BehaviourScale' newBehaviourScale* #}
-- | Sets the bounds used by scale behaviour.
--
-- [@scale@] a 'BehaviourScale'
--
-- [@x_scale_start@] initial scale factor on the X axis
--
-- [@y_scale_start@] initial scale factor on the Y axis
--
-- [@x_scale_end@] final scale factor on the X axis
--
-- [@y_scale_end@] final scale factor on the Y axis
--
-- * Since 0.6
--
{# fun unsafe behaviour_scale_set_bounds as ^
{ withBehaviourScale* `BehaviourScale', `Double', `Double', `Double', `Double'} -> `()' #}
-- | Retrieves the bounds used by scale behaviour.
--
-- [@scale@] a 'BehaviourScale'
--
-- [@Returns@] (initial scale factor on the X axis,
-- initial scale factor on the Y axis,
-- final scale factor on the X axis,
-- final scale factor on the Y axis)
--
-- * Since 0.4
--
{# fun unsafe behaviour_scale_get_bounds as ^
{ withBehaviourScale* `BehaviourScale',
alloca- `Double' peekFloatConv*,
alloca- `Double' peekFloatConv*,
alloca- `Double' peekFloatConv*,
alloca- `Double' peekFloatConv*} -> `()' #}
-- | The final scaling factor on the X axis for the actors.
--
-- Allowed values: >= 0
--
-- Default value: 1
--
-- * Since 0.6
--
behaviourScaleXScaleEnd :: Attr BehaviourScale Double
behaviourScaleXScaleEnd = newAttrFromDoubleProperty "x-scale-end"
-- | The initial scaling factor on the X axis for the actors.
--
-- Allowed values: >= 0
--
-- Default value: 1
--
-- * Since 0.6
--
behaviourScaleXScaleStart :: Attr BehaviourScale Double
behaviourScaleXScaleStart = newAttrFromDoubleProperty "x-scale-start"
-- | The final scaling factor on the Y axis for the actors.
--
-- Allowed values: >= 0
--
-- Default value: 1
--
-- * Since 0.6
--
behaviourScaleYScaleEnd :: Attr BehaviourScale Double
behaviourScaleYScaleEnd = newAttrFromDoubleProperty "y-scale-end"
-- | The initial scaling factor on the Y axis for the actors.
--
-- Allowed values: >= 0
--
-- Default value: 1
--
-- * Since 0.6
--
behaviourScaleYScaleStart :: Attr BehaviourScale Double
behaviourScaleYScaleStart = newAttrFromDoubleProperty "y-scale-start"