X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fduckmatic.h;h=d19754929613a81951ccb1905efb347b7a0dc358;hb=756c0d29ac1742f231e6615f9a577e574e35a4af;hp=68cad6165d05f4d4e868369197c48f11a3690715;hpb=c34eaa5441242b3e9a7b7645e9ee4983d14eae85;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/duckmatic.h b/synfig-studio/trunk/src/gtkmm/duckmatic.h index 68cad61..d197549 100644 --- a/synfig-studio/trunk/src/gtkmm/duckmatic.h +++ b/synfig-studio/trunk/src/gtkmm/duckmatic.h @@ -2,10 +2,11 @@ /*! \file duckmatic.h ** \brief Template Header ** -** $Id: duckmatic.h,v 1.1.1.1 2005/01/07 03:34:36 darco Exp $ +** $Id$ ** ** \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 @@ -49,19 +50,27 @@ /* === M A C R O S ========================================================= */ -#define HASH_MAP_H - #ifdef HASH_MAP_H #include HASH_MAP_H +#include FUNCTIONAL_H + #ifndef __STRING_HASH__ #define __STRING_HASH__ class StringHash { - __gnu_cxx::hash hasher_; +# ifdef FUNCTIONAL_HASH_ON_STRING + HASH_MAP_NAMESPACE::hash hasher_; +# else // FUNCTIONAL_HASH_ON_STRING + HASH_MAP_NAMESPACE::hash 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::GUIDHash> DuckDataMap; +typedef HASH_MAP_CLASS,synfig::GUIDHash> DuckDataMap; #else typedef std::map > DuckDataMap; #endif @@ -158,7 +167,7 @@ private: std::list > stroke_list_; - std::list > persistant_stroke_list_; + std::list > persistent_stroke_list_; synfig::GUIDSet selected_ducks; @@ -184,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 ----------------------------------------- */ @@ -205,7 +217,7 @@ protected: /*! \see grid_snap, show_grid */ synfig::Vector grid_size; - bool show_persistant_strokes; + bool show_persistent_strokes; bool axis_lock; @@ -230,6 +242,9 @@ public: Duckmatic(); virtual ~Duckmatic(); + void set_flip_x(bool flip_x); + void set_flip_y(bool flip_y); + sigc::signal& signal_duck_selection_changed() { return signal_duck_selection_changed_; } sigc::signal& signal_strokes_changed() { return signal_strokes_changed_; } sigc::signal& signal_grid_changed() { return signal_grid_changed_; } @@ -258,8 +273,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 +299,9 @@ public: const std::list >& stroke_list()const { return stroke_list_; } - const std::list >& persistant_stroke_list()const { return persistant_stroke_list_; } + const std::list >& persistent_stroke_list()const { return persistent_stroke_list_; } - std::list >& persistant_stroke_list() { return persistant_stroke_list_; } + std::list >& persistent_stroke_list() { return persistent_stroke_list_; } //! \todo We should modify this to support multiple selections etl::handle get_selected_duck()const; @@ -307,6 +322,8 @@ public: void select_duck(const etl::handle &duck); + void toggle_select_ducks_in_box(const synfig::Vector& tl,const synfig::Vector& br); + void select_ducks_in_box(const synfig::Vector& tl,const synfig::Vector& br); void unselect_duck(const etl::handle &duck); @@ -325,9 +342,9 @@ public: void add_stroke(etl::smart_ptr > stroke_point_list, const synfig::Color& color=synfig::Color(0,0,0)); - void add_persistant_stroke(etl::smart_ptr > stroke_point_list, const synfig::Color& color=synfig::Color(0,0,0)); + void add_persistent_stroke(etl::smart_ptr > 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); @@ -431,7 +448,7 @@ public: bool is_valid()const { return (bool)stroke_data; } sigc::signal &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