summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2015-01-16 14:47:14 +0000
committertavmjong-free <tavmjong@free.fr>2015-01-16 14:47:14 +0000
commitf020705fc609f8718b57b9540e7fc2b2dc59b2fe (patch)
tree1a500c2696a164a80e6b5d6fa70f74ffd5fd2a28 /src
parentStart to implement SVG 2 text in a shape. (diff)
downloadinkscape-f020705fc609f8718b57b9540e7fc2b2dc59b2fe.tar.gz
inkscape-f020705fc609f8718b57b9540e7fc2b2dc59b2fe.zip
Test implementation of 'shape-padding'.
(bzr r13858)
Diffstat (limited to 'src')
-rw-r--r--src/sp-text.cpp17
-rw-r--r--src/style.cpp1
2 files changed, 16 insertions, 2 deletions
diff --git a/src/sp-text.cpp b/src/sp-text.cpp
index fdf57577c..e40661824 100644
--- a/src/sp-text.cpp
+++ b/src/sp-text.cpp
@@ -501,10 +501,18 @@ unsigned SPText::_buildLayoutInput(SPObject *root, Inkscape::Text::Layout::Optio
if ( curve ) {
Path *temp = new Path;
+ Path *padded = new Path;
temp->LoadPathVector( curve->get_pathvector(), shape->transform, true );
- temp->Convert( 0.25 ); // Convert to polyline
+ if( style->shape_padding.set ) {
+ // std::cout << " padding: " << style->shape_padding.computed << std::endl;
+ temp->OutsideOutline ( padded, style->shape_padding.computed, join_round, butt_straight, 20.0 );
+ } else {
+ // std::cout << " no padding" << std::endl;
+ padded->Copy( temp );
+ }
+ padded->Convert( 0.25 ); // Convert to polyline
Shape* sh = new Shape;
- temp->Fill( sh, 0 );
+ padded->Fill( sh, 0 );
// for( unsigned i = 0; i < temp->pts.size(); ++i ) {
// std::cout << " ........ " << temp->pts[i].p << std::endl;
// }
@@ -512,6 +520,11 @@ unsigned SPText::_buildLayoutInput(SPObject *root, Inkscape::Text::Layout::Optio
Shape *uncross = new Shape;
uncross->ConvertToShape( sh );
layout.appendWrapShape( uncross );
+
+ delete temp;
+ delete padded;
+ delete sh;
+ // delete uncross;
} else {
std::cerr << "SPText::_buildLayoutInput(): Failed to get curve." << std::endl;
}
diff --git a/src/style.cpp b/src/style.cpp
index 8b6c4c79e..b65bff53f 100644
--- a/src/style.cpp
+++ b/src/style.cpp
@@ -249,6 +249,7 @@ SPStyle::SPStyle(SPDocument *document_in, SPObject *object_in) :
word_spacing.setStylePointer( this );
stroke_width.setStylePointer( this );
stroke_dashoffset.setStylePointer( this );
+ shape_padding.setStylePointer( this );
// Properties that depend on 'color'
text_decoration_color.setStylePointer( this );