/* Copyright (C) 2007 The cluttermm Development Team
 *
 * 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 2.1 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.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free
 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#include <cluttermm/behaviour.h>
#include <cluttermm/alpha.h>
#include <cluttermm/types.h>
 
_DEFS(cluttermm,clutter)
_PINCLUDE(cluttermm/private/behaviour_p.h)


namespace Clutter
{

class BehaviourRotate : public Behaviour
{
  _CLASS_GOBJECT(BehaviourRotate, ClutterBehaviourRotate, CLUTTER_BEHAVIOUR_ROTATE, Behaviour, ClutterBehaviour)

protected:
  _WRAP_CTOR(BehaviourRotate(const Glib::RefPtr<Alpha>& alpha, RotateAxis axis, RotateDirection direction, double angle_begin, double angle_end), clutter_behaviour_rotate_new)

public:
  _WRAP_CREATE(const Glib::RefPtr<Alpha>& alpha, RotateAxis axis, RotateDirection direction, double angle_begin, double angle_end)

  _WRAP_METHOD(void set_axis(RotateAxis axis), clutter_behaviour_rotate_set_axis)
  _WRAP_METHOD(RotateAxis get_axis() const, clutter_behaviour_rotate_get_axis)

  _WRAP_METHOD(void set_direction(RotateDirection direction), clutter_behaviour_rotate_set_direction)
  _WRAP_METHOD(RotateDirection get_direction() const, clutter_behaviour_rotate_get_direction)

  _WRAP_METHOD(void set_center(int x, int y, int z), clutter_behaviour_rotate_set_center)
  _WRAP_METHOD(void get_center(int& x, int& y, int& z) const, clutter_behaviour_rotate_get_center)

  _WRAP_METHOD(void set_bounds(double angle_begin, double angle_end), clutter_behaviour_rotate_set_bounds)
  _WRAP_METHOD(void get_bounds(double& angle_begin, double& angle_end) const, clutter_behaviour_rotate_get_bounds)

  _WRAP_PROPERTY("angle-end", double)
  _WRAP_PROPERTY("angle-start", double)
  _WRAP_PROPERTY("axis", RotateAxis)
  _WRAP_PROPERTY("center-x", int)
  _WRAP_PROPERTY("center-y", int)
  _WRAP_PROPERTY("center-z", int)
  _WRAP_PROPERTY("direction", RotateDirection)
};

} // namespace Clutter
