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