Author: Carlos Lopez <[email protected]>
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl