X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fduck.h;h=2a38d6479ec19be78115bdc2e75f3149fd89df5d;hb=432aa9c1918023ca0811e33ace5ee31e4f2558b0;hp=1b8ff6410ed20ad3e42c15446e5111b729e2d2fc;hpb=02252941b29de64037116f4d37991a38d9ff0d94;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/duck.h b/synfig-studio/trunk/src/gtkmm/duck.h index 1b8ff64..2a38d64 100644 --- a/synfig-studio/trunk/src/gtkmm/duck.h +++ b/synfig-studio/trunk/src/gtkmm/duck.h @@ -2,19 +2,20 @@ /*! \file duck.h ** \brief Template Header ** -** $Id: duck.h,v 1.1.1.1 2005/01/07 03:34:36 darco Exp $ +** $Id$ ** ** \legal -** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley ** -** This software and associated documentation -** are CONFIDENTIAL and PROPRIETARY property of -** the above-mentioned copyright holder. +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. ** -** You may not copy, print, publish, or in any -** other way distribute this software without -** a prior written agreement with -** the copyright holder. +** This package 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 +** General Public License for more details. ** \endlegal */ /* ========================================================================= */ @@ -43,16 +44,13 @@ /* === M A C R O S ========================================================= */ -#define HASH_MAP_H -#define HASH_SET_H - #ifdef HASH_MAP_H #include HASH_MAP_H #ifndef __STRING_HASH__ #define __STRING_HASH__ class StringHash { - __gnu_cxx::hash hasher_; + HASH_MAP_NAMESPACE::hash hasher_; public: size_t operator()(const synfig::String& x)const { @@ -72,13 +70,13 @@ public: namespace studio { class Duckmatic; - + /*! \class Duck ** \writeme */ class Duck : public etl::shared_object { friend class Duckmatic; - + public: enum Type { @@ -97,18 +95,20 @@ public: typedef etl::handle Handle; typedef etl::loose_handle LooseHandle; - + private: sigc::signal signal_edited_; + sigc::signal signal_edited_angle_; sigc::signal signal_user_click_[5]; - + Type type_; synfig::Point point; + synfig::Angle rotations; etl::smart_ptr shared_point; - + synfig::Point origin; synfig::String name; synfig::Real scalar; @@ -118,13 +118,13 @@ private: etl::handle connect_duck; etl::handle box_duck; - synfig::GUID guid_; + synfig::GUID guid_; // Flags bool editable; bool radius_; bool tangent_; - + synfig::TransformStack transform_stack_; synfigapp::ValueDesc value_desc_; @@ -135,8 +135,9 @@ public: Duck(const synfig::Point &point); Duck(const synfig::Point &point,const synfig::Point &origin); ~Duck(); - + sigc::signal &signal_edited() { return signal_edited_; } + sigc::signal &signal_edited_angle() { return signal_edited_angle_; } sigc::signal &signal_user_click(int i=0) { assert(i>=0); assert(i<5); return signal_user_click_[i]; } void set_guid(const synfig::GUID& x) { guid_=x; } @@ -169,7 +170,7 @@ public: void set_transform_stack(const synfig::TransformStack& x) { transform_stack_=x; } const synfig::TransformStack& get_transform_stack()const { return transform_stack_; } - + //! \writeme void set_type(Type x) { type_=x; } @@ -186,12 +187,14 @@ public: //! Sets the location of the duck with respect to the origin void set_point(const synfig::Point &x) { (shared_point?*shared_point:point)=x; } - + //! Returns the location of the duck synfig::Point get_point()const { return shared_point?*shared_point:point; } - + + synfig::Angle get_rotations()const { return rotations; }; + synfig::Point get_trans_point()const; - + void set_trans_point(const synfig::Point &x); synfig::Point get_sub_trans_point()const; @@ -206,22 +209,22 @@ public: //! Retrieves the origin location synfig::Point get_origin()const; - + //! Retrieves the origin duck - const etl::handle & get_origin_duck() const; + const etl::handle & get_origin_duck() const; //! Retrieves the origin location synfig::Point get_trans_origin()const; void set_radius(bool r) { radius_=r; } bool is_radius()const { return radius_; } - + //! Sets the name of the duck void set_name(const synfig::String &x); //! Retrieves the name of the duck synfig::String get_name()const { return name; } - + bool operator==(const Duck &rhs)const; }; // END of class Duck @@ -245,9 +248,9 @@ operator&(const Duck::Type lhs, const Duck::Type rhs) class DuckMap : public #ifdef HASH_MAP_H -__gnu_cxx::hash_map,synfig::GUIDHash> +HASH_MAP_CLASS,synfig::GUIDHash> { - typedef __gnu_cxx::hash_map,synfig::GUIDHash> PARENT_TYPE; + typedef HASH_MAP_CLASS,synfig::GUIDHash> PARENT_TYPE; #else std::map > {