Remove .gitignore do nothing is ignored.
[synfig.git] / synfig-studio / trunk / src / gtkmm / duckmatic.h
index ad251a2..42282e0 100644 (file)
@@ -6,6 +6,7 @@
 **
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+**     Copyright (c) 2007, 2008 Chris Moore
 **
 **     This package is free software; you can redistribute it and/or
 **     modify it under the terms of the GNU General Public License as
 
 /* === M A C R O S ========================================================= */
 
-#define HASH_MAP_H <ext/hash_map>
-
 #ifdef HASH_MAP_H
 #include HASH_MAP_H
+#include FUNCTIONAL_H
+
 #ifndef __STRING_HASH__
 #define __STRING_HASH__
 class StringHash
 {
-       __gnu_cxx::hash<const char*> hasher_;
+# ifdef FUNCTIONAL_HASH_ON_STRING
+       HASH_MAP_NAMESPACE::hash<synfig::String> hasher_;
+# else  // FUNCTIONAL_HASH_ON_STRING
+       HASH_MAP_NAMESPACE::hash<const char*> hasher_;
+# endif  // FUNCTIONAL_HASH_ON_STRING
 public:
        size_t operator()(const synfig::String& x)const
        {
+# ifdef FUNCTIONAL_HASH_ON_STRING
+               return hasher_(x);
+# else  // FUNCTIONAL_HASH_ON_STRING
                return hasher_(x.c_str());
+# endif  // FUNCTIONAL_HASH_ON_STRING
        }
 };
 #endif
@@ -123,7 +132,7 @@ class Duckmatic
 public:
 
 #ifdef HASH_MAP_H
-typedef __gnu_cxx::hash_map<synfig::GUID,etl::smart_ptr<synfig::Point>,synfig::GUIDHash> DuckDataMap;
+typedef HASH_MAP_CLASS<synfig::GUID,etl::smart_ptr<synfig::Point>,synfig::GUIDHash> DuckDataMap;
 #else
 typedef std::map<synfig::GUID,etl::smart_ptr<synfig::Point> > DuckDataMap;
 #endif
@@ -158,7 +167,7 @@ private:
 
        std::list<etl::handle<Stroke> > stroke_list_;
 
-       std::list<etl::handle<Stroke> > persistant_stroke_list_;
+       std::list<etl::handle<Stroke> > persistent_stroke_list_;
 
        synfig::GUIDSet selected_ducks;
 
@@ -205,7 +214,7 @@ protected:
        /*! \see grid_snap, show_grid */
        synfig::Vector grid_size;
 
-       bool show_persistant_strokes;
+       bool show_persistent_strokes;
 
        bool axis_lock;
 
@@ -258,8 +267,8 @@ public:
 
        synfig::Point snap_point_to_grid(const synfig::Point& x, float radius=0.1)const;
 
-       bool get_show_persistant_strokes()const { return show_persistant_strokes; }
-       void set_show_persistant_strokes(bool x);
+       bool get_show_persistent_strokes()const { return show_persistent_strokes; }
+       void set_show_persistent_strokes(bool x);
 
        //! Sets the size of the grid
        void set_grid_size(const synfig::Vector &s);
@@ -284,9 +293,9 @@ public:
 
        const std::list<etl::handle<Stroke> >& stroke_list()const { return stroke_list_; }
 
-       const std::list<etl::handle<Stroke> >& persistant_stroke_list()const { return persistant_stroke_list_; }
+       const std::list<etl::handle<Stroke> >& persistent_stroke_list()const { return persistent_stroke_list_; }
 
-       std::list<etl::handle<Stroke> >& persistant_stroke_list() { return persistant_stroke_list_; }
+       std::list<etl::handle<Stroke> >& persistent_stroke_list() { return persistent_stroke_list_; }
 
        //! \todo We should modify this to support multiple selections
        etl::handle<Duck> get_selected_duck()const;
@@ -327,9 +336,9 @@ public:
 
        void add_stroke(etl::smart_ptr<std::list<synfig::Point> > stroke_point_list, const synfig::Color& color=synfig::Color(0,0,0));
 
-       void add_persistant_stroke(etl::smart_ptr<std::list<synfig::Point> > stroke_point_list, const synfig::Color& color=synfig::Color(0,0,0));
+       void add_persistent_stroke(etl::smart_ptr<std::list<synfig::Point> > stroke_point_list, const synfig::Color& color=synfig::Color(0,0,0));
 
-       void clear_persistant_strokes();
+       void clear_persistent_strokes();
 
        void add_duck(const etl::handle<Duck> &duck);
 
@@ -372,6 +381,7 @@ public:
        Type get_type_mask()const { return type_mask; }
 
        void select_all_ducks();
+       void unselect_all_ducks();
 
        void clear_ducks();
 
@@ -433,7 +443,7 @@ public:
        bool is_valid()const { return (bool)stroke_data; }
 
        sigc::signal<void,float> &signal_user_click(int i=0) { assert(i>=0); assert(i<5); return signal_user_click_[i]; }
-}; // END of struct Duckmatic::Bezier
+}; // END of struct Duckmatic::Stroke
 
 }; // END of namespace studio