Author: Carlos Lopez <genet...@gmail.com>
Date:   Mon Apr  4 17:19:12 2011 +0200

Add new duck type for withpoints positions. Use ATL-7 to toggle visibility. It 
is red

---

 synfig-studio/src/gui/app.cpp                      |    3 +++
 synfig-studio/src/gui/canvasview.cpp               |    1 +
 synfig-studio/src/gui/duck.cpp                     |    3 ++-
 synfig-studio/src/gui/duck.h                       |    3 ++-
 synfig-studio/src/gui/duckmatic.cpp                |    2 +-
 .../src/gui/workarearenderer/renderer_ducks.cpp    |    2 ++
 .../src/gui/workarearenderer/renderer_ducks.h      |    1 +
 7 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/synfig-studio/src/gui/app.cpp b/synfig-studio/src/gui/app.cpp
index 1cb0819..731325b 100644
--- a/synfig-studio/src/gui/app.cpp
+++ b/synfig-studio/src/gui/app.cpp
@@ -815,6 +815,7 @@ init_ui_manager()
        DEFINE_ACTION("mask-radius-ducks", _("Show Radius Ducks"));
        DEFINE_ACTION("mask-width-ducks", _("Show Width Ducks"));
        DEFINE_ACTION("mask-angle-ducks", _("Show Angle Ducks"));
+       DEFINE_ACTION("mask-widthpoint-position-ducks", _("Show WidthPoints 
Position Ducks"));
        DEFINE_ACTION("quality-00", _("Use Parametric Renderer"));
        DEFINE_ACTION("quality-01", _("Use Quality Level 1"));
        DEFINE_ACTION("quality-02", _("Use Quality Level 2"));
@@ -917,6 +918,7 @@ init_ui_manager()
 "                      <menuitem action='mask-radius-ducks' />"
 "                      <menuitem action='mask-width-ducks' />"
 "                      <menuitem action='mask-angle-ducks' />"
+"                      <menuitem action='mask-widthpoint-position-ducks' />"
 "              </menu>"
 "              <menu action='menu-preview-quality'>"
 "                      <menuitem action='quality-00' />"
@@ -1083,6 +1085,7 @@ init_ui_manager()
        ACCEL("<Mod1>4",                                                        
                                                
"<Actions>/canvasview/mask-radius-ducks"                                );
        ACCEL("<Mod1>5",                                                        
                                                
"<Actions>/canvasview/mask-width-ducks"                         );
        ACCEL("<Mod1>6",                                                        
                                                
"<Actions>/canvasview/mask-angle-ducks"                         );
+       ACCEL("<Mod1>7",                                                        
                                                
"<Actions>/canvasview/mask-widthpoint-position-ducks"                           
);
        ACCEL2(Gtk::AccelKey(GDK_Page_Up,Gdk::SHIFT_MASK,                       
                "<Actions>/action_group_layer_action_manager/action-LayerRaise" 
                        ));
        ACCEL2(Gtk::AccelKey(GDK_Page_Down,Gdk::SHIFT_MASK,                     
                "<Actions>/action_group_layer_action_manager/action-LayerLower" 
                        ));
        ACCEL("<Control>1",                                                     
                                                
"<Actions>/canvasview/quality-01"                                               
);
diff --git a/synfig-studio/src/gui/canvasview.cpp 
b/synfig-studio/src/gui/canvasview.cpp
index 74f36ee..fdf1442 100644
--- a/synfig-studio/src/gui/canvasview.cpp
+++ b/synfig-studio/src/gui/canvasview.cpp
@@ -1674,6 +1674,7 @@ CanvasView::init_menus()
                DUCK_MASK(radius,RADIUS,_("Show Radius Ducks"));
                DUCK_MASK(width,WIDTH,_("Show Width Ducks"));
                DUCK_MASK(angle,ANGLE,_("Show Angle Ducks"));
+               DUCK_MASK(widthpoint-position, WIDTHPOINT_POSITION, _("Show 
WidthPoints Position Ducks"));
 
 #undef DUCK_MASK
        }
diff --git a/synfig-studio/src/gui/duck.cpp b/synfig-studio/src/gui/duck.cpp
index ddc928c..729769c 100644
--- a/synfig-studio/src/gui/duck.cpp
+++ b/synfig-studio/src/gui/duck.cpp
@@ -225,7 +225,7 @@ Duck::set_sub_trans_point(const synfig::Point &x, const 
synfig::Time &time)
                        (new_halves > 1 || new_halves < -1 ||
                         old_halves > 1 || old_halves < -1))
                        synfig::info("rotation: %.2f turns", new_halves/2.0)*/;
-       } else if(get_type() == Duck::TYPE_VERTEX || get_type() == 
Duck::TYPE_POSITION)
+       } else if(get_type() == Duck::TYPE_VERTEX || get_type() == 
Duck::TYPE_POSITION || get_type() == Duck::TYPE_WIDTHPOINT_POSITION)
        {
                set_point((x-get_sub_trans_origin())/get_scalar());
 
@@ -313,6 +313,7 @@ Duck::type_name(Type id)
        if (id & TYPE_WIDTH       ) { if (!ret.empty()) ret += ", "; ret += 
"width"   ; }
        if (id & TYPE_ANGLE       ) { if (!ret.empty()) ret += ", "; ret += 
"angle"   ; }
        if (id & TYPE_VERTEX  ) { if (!ret.empty()) ret += ", "; ret += 
"vertex"  ; }
+       if (id & TYPE_WIDTHPOINT_POSITION  ) { if (!ret.empty()) ret += ", "; 
ret += "widthpoint position"  ; }
 
        if (ret.empty())
                ret = "none";
diff --git a/synfig-studio/src/gui/duck.h b/synfig-studio/src/gui/duck.h
index fb96c45..36c672b 100644
--- a/synfig-studio/src/gui/duck.h
+++ b/synfig-studio/src/gui/duck.h
@@ -99,6 +99,7 @@ public:
                TYPE_WIDTH              =       (1<<3), //  8
                TYPE_ANGLE              =       (1<<4), // 16
                TYPE_VERTEX             =       (1<<5), // 32
+               TYPE_WIDTHPOINT_POSITION        = (1<<8), //256
 
                TYPE_ALL                =       (~0),
 
@@ -222,7 +223,7 @@ public:
         *  so that the duck can me rotated more than 180 degrees
         */
        synfig::Angle get_rotations()const { return rotations; };
-       
+
        //! Sets the rotations of the duck
        void set_rotations(const synfig::Angle &x) { rotations=x; };
 
diff --git a/synfig-studio/src/gui/duckmatic.cpp 
b/synfig-studio/src/gui/duckmatic.cpp
index ea0d808..5c440aa 100644
--- a/synfig-studio/src/gui/duckmatic.cpp
+++ b/synfig-studio/src/gui/duckmatic.cpp
@@ -1872,7 +1872,7 @@ Duckmatic::add_to_ducks(const synfigapp::ValueDesc& 
value_desc,etl::handle<Canva
                                {
                                        etl::handle<Duck> pduck=new Duck();
                                        synfigapp::ValueDesc 
wpoint_value_desc(value_node, i); // The i-widthpoint on WPList
-                                       pduck->set_type(Duck::TYPE_POSITION);
+                                       
pduck->set_type(Duck::TYPE_WIDTHPOINT_POSITION);
                                        
pduck->set_transform_stack(transform_stack);
                                        
pduck->set_name(guid_string(wpoint_value_desc));
                                        
pduck->set_value_desc(wpoint_value_desc);
diff --git a/synfig-studio/src/gui/workarearenderer/renderer_ducks.cpp 
b/synfig-studio/src/gui/workarearenderer/renderer_ducks.cpp
index c25995d..68f2d34 100644
--- a/synfig-studio/src/gui/workarearenderer/renderer_ducks.cpp
+++ b/synfig-studio/src/gui/workarearenderer/renderer_ducks.cpp
@@ -345,6 +345,8 @@ Renderer_Ducks::render_vfunc(
                        screen_duck.color=DUCK_COLOR_WIDTH;
                else if((*iter)->get_type()&Duck::TYPE_ANGLE)
                        screen_duck.color=(DUCK_COLOR_ANGLE);
+               else if((*iter)->get_type()&Duck::TYPE_WIDTHPOINT_POSITION)
+                       screen_duck.color=(DUCK_COLOR_WIDTHPOINT_POSITION);
                else
                        screen_duck.color=DUCK_COLOR_OTHER;
 
diff --git a/synfig-studio/src/gui/workarearenderer/renderer_ducks.h 
b/synfig-studio/src/gui/workarearenderer/renderer_ducks.h
index 32a6efd..7f13e29 100644
--- a/synfig-studio/src/gui/workarearenderer/renderer_ducks.h
+++ b/synfig-studio/src/gui/workarearenderer/renderer_ducks.h
@@ -41,6 +41,7 @@
 #define DUCK_COLOR_TANGENT_2   Gdk::Color("#ff0000")
 #define DUCK_COLOR_VERTEX              Gdk::Color("#ff7f00")
 #define DUCK_COLOR_WIDTH               Gdk::Color("#ff00ff")
+#define DUCK_COLOR_WIDTHPOINT_POSITION Gdk::Color("#ff0000")
 #define DUCK_COLOR_OTHER               Gdk::Color("#00ff00")
 
 #define DUCK_COLOR_OUTLINE             Gdk::Color("#000000") // the outline 
around each duck


------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself; 
WebMatrix provides all the features you need to develop and 
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
_______________________________________________
Synfig-devl mailing list
Synfig-devl@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/synfig-devl

Reply via email to