Added copyright lines for files I've edited this year.
[synfig.git] / synfig-studio / trunk / src / gtkmm / duckmatic.h
index e311b7f..d197549 100644 (file)
@@ -6,7 +6,7 @@
 **
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
-**     Copyright (c) 2007 Chris Moore
+**     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
@@ -124,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
@@ -185,6 +193,9 @@ private:
 
        mutable synfig::String sketch_filename_;
 
+       //! whether the display is flipped vertically or horizontally
+       bool flip_x_, flip_y_;
+
        /*
  -- ** -- P R O T E C T E D   D A T A -----------------------------------------
        */
@@ -231,6 +242,9 @@ public:
        Duckmatic();
        virtual ~Duckmatic();
 
+       void set_flip_x(bool flip_x);
+       void set_flip_y(bool flip_y);
+
        sigc::signal<void>& signal_duck_selection_changed() { return signal_duck_selection_changed_; }
        sigc::signal<void>& signal_strokes_changed() { return signal_strokes_changed_; }
        sigc::signal<void>& signal_grid_changed() { return signal_grid_changed_; }