summaryrefslogtreecommitdiff
path: root/sdext/source/pdfimport/tree/drawtreevisiting.cxx
diff options
context:
space:
mode:
authorBjoern Michaelsen <bjoern.michaelsen@canonical.com>2011-08-23 15:07:32 +0200
committerBjoern Michaelsen <bjoern.michaelsen@canonical.com>2011-08-23 15:07:32 +0200
commit99effbc418feee675b6fd54a07c2f68d927de469 (patch)
treeb9a415494780c6cb86d0dfcf2d69a9da9cc436bd /sdext/source/pdfimport/tree/drawtreevisiting.cxx
parentf76f752dc908cfbab1cade605fe4f742233dfa6d (diff)
recreated tag libreoffice-3.3.0.4 which had these commits:
commit 01c917c0bdbb833cda4a0a77bc10264c4d40fcd5 (tag: refs/tags/libreoffice-3.3.0.4, refs/remotes/origin/libreoffice-3-3-0) Author: Petr Mladek <pmladek@suse.cz> Date: Tue Jan 18 19:01:16 2011 +0100 Version 3.3.0.4, tag libreoffice-3.3.0.4 (3.3-rc4) commit 983cd7d8b4d9c87f872472343f8399cb640cfb9a Author: Rene Engelhard <rene@debian.org> Date: Wed Jan 12 10:03:30 2011 +0100 fix presenter screens description.xml build sdext/source/presenter/makefile.mk | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit cb68579984b772fcbccd673f9cf930b4828d6fde Author: Petr Mladek <pmladek@suse.cz> Date: Tue Jan 11 22:59:36 2011 +0100 Branch libreoffice-3-3-0 This is 'libreoffice-3-3-0' - the stable branch for the 3.3.0 release. Only very safe changes, reviewed by three people are allowed. If you want to commit more complicated fix for the next 3.3.x release, please use the 'libreoffice-3-3' branch. If you want to build something cool, unstable, and risky, use master.
Notes
split repo tag: extensions_libreoffice-3.3.0.4
Diffstat (limited to 'sdext/source/pdfimport/tree/drawtreevisiting.cxx')
-rw-r--r--sdext/source/pdfimport/tree/drawtreevisiting.cxx234
1 files changed, 117 insertions, 117 deletions
diff --git a/sdext/source/pdfimport/tree/drawtreevisiting.cxx b/sdext/source/pdfimport/tree/drawtreevisiting.cxx
index bc24000025c2..bb6c6c6d3451 100644
--- a/sdext/source/pdfimport/tree/drawtreevisiting.cxx
+++ b/sdext/source/pdfimport/tree/drawtreevisiting.cxx
@@ -2,7 +2,7 @@
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
@@ -80,19 +80,19 @@ const ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XBreakIterator >
return mxBreakIter;
}
-void DrawXmlEmitter::visit( HyperlinkElement& elem, const std::list< Element* >::const_iterator& )
-{
+void DrawXmlEmitter::visit( HyperlinkElement& elem, const std::list< Element* >::const_iterator& )
+{
if( elem.Children.empty() )
return;
-
+
const char* pType = dynamic_cast<DrawElement*>(elem.Children.front()) ? "draw:a" : "text:a";
-
+
PropertyMap aProps;
aProps[ USTR( "xlink:type" ) ] = USTR( "simple" );
aProps[ USTR( "xlink:href" ) ] = elem.URI;
aProps[ USTR( "office:target-frame-name" ) ] = USTR( "_blank" );
aProps[ USTR( "xlink:show" ) ] = USTR( "new" );
-
+
m_rEmitContext.rEmitter.beginTag( pType, aProps );
std::list< Element* >::iterator this_it = elem.Children.begin();
while( this_it !=elem.Children.end() && *this_it != &elem )
@@ -103,18 +103,18 @@ void DrawXmlEmitter::visit( HyperlinkElement& elem, const std::list< Element* >:
m_rEmitContext.rEmitter.endTag( pType );
}
-void DrawXmlEmitter::visit( TextElement& elem, const std::list< Element* >::const_iterator& )
+void DrawXmlEmitter::visit( TextElement& elem, const std::list< Element* >::const_iterator& )
{
if( ! elem.Text.getLength() )
return;
-
+
rtl::OUString strSpace(32);
rtl::OUString strNbSpace(160);
rtl::OUString tabSpace(0x09);
PropertyMap aProps;
if( elem.StyleId != -1 )
{
- aProps[ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "text:style-name" ) ) ] =
+ aProps[ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "text:style-name" ) ) ] =
m_rEmitContext.rStyles.getStyleName( elem.StyleId );
}
@@ -127,7 +127,7 @@ void DrawXmlEmitter::visit( TextElement& elem, const std::list< Element* >::cons
sal_Int16 nType = GetBreakIterator()->getScriptType( str, i + 1);
if (nType == ::com::sun::star::i18n::ScriptType::COMPLEX)
isComplex = true;
- }
+ }
m_rEmitContext.rEmitter.beginTag( "text:span", aProps );
@@ -152,7 +152,7 @@ void DrawXmlEmitter::visit( TextElement& elem, const std::list< Element* >::cons
m_rEmitContext.rEmitter.write( strToken );
}
}
- }
+ }
std::list< Element* >::iterator this_it = elem.Children.begin();
while( this_it !=elem.Children.end() && *this_it != &elem )
@@ -160,7 +160,7 @@ void DrawXmlEmitter::visit( TextElement& elem, const std::list< Element* >::cons
(*this_it)->visitedBy( *this, this_it );
this_it++;
}
-
+
m_rEmitContext.rEmitter.endTag( "text:span" );
}
@@ -175,28 +175,28 @@ void DrawXmlEmitter::visit( ParagraphElement& elem, const std::list< Element* >:
if( elem.Type == elem.Headline )
pTagType = "text:h";
m_rEmitContext.rEmitter.beginTag( pTagType, aProps );
-
+
std::list< Element* >::iterator this_it = elem.Children.begin();
while( this_it !=elem.Children.end() && *this_it != &elem )
{
(*this_it)->visitedBy( *this, this_it );
this_it++;
}
-
+
m_rEmitContext.rEmitter.endTag( pTagType );
}
-void DrawXmlEmitter::fillFrameProps( DrawElement& rElem,
- PropertyMap& rProps,
+void DrawXmlEmitter::fillFrameProps( DrawElement& rElem,
+ PropertyMap& rProps,
const EmitContext& rEmitContext )
{
double rel_x = rElem.x, rel_y = rElem.y;
-
+
rProps[ USTR( "draw:z-index" ) ] = rtl::OUString::valueOf( rElem.ZOrder );
rProps[ USTR( "draw:style-name" )] = rEmitContext.rStyles.getStyleName( rElem.StyleId );
rProps[ USTR( "svg:width" ) ] = convertPixelToUnitString( rElem.w );
rProps[ USTR( "svg:height" ) ] = convertPixelToUnitString( rElem.h );
-
+
const GraphicsContext& rGC =
rEmitContext.rProcessor.getGraphicsContext( rElem.GCId );
if( rGC.Transformation.isIdentity() )
@@ -208,14 +208,14 @@ void DrawXmlEmitter::fillFrameProps( DrawElement& rElem,
{
basegfx::B2DTuple aScale, aTranslation;
double fRotate, fShearX;
-
+
rGC.Transformation.decompose( aScale, aTranslation, fRotate, fShearX );
-
+
rtl::OUStringBuffer aBuf( 256 );
- // TODO(F2): general transformation case missing; if implemented, note
+ // TODO(F2): general transformation case missing; if implemented, note
// that ODF rotation is oriented the other way
-
+
// vertical mirroring is done by horizontally mirroring and rotaing 180 degree
// quaint !
if( rElem.MirrorVertical )
@@ -244,36 +244,36 @@ void DrawXmlEmitter::fillFrameProps( DrawElement& rElem,
aBuf.append( sal_Unicode(' ') );
aBuf.append( convertPixelToUnitString( rel_y ) );
aBuf.appendAscii( " )" );
-
+
rProps[ USTR( "draw:transform" ) ] = aBuf.makeStringAndClear();
}
}
-void DrawXmlEmitter::visit( FrameElement& elem, const std::list< Element* >::const_iterator& )
-{
+void DrawXmlEmitter::visit( FrameElement& elem, const std::list< Element* >::const_iterator& )
+{
if( elem.Children.empty() )
return;
-
+
bool bTextBox = (dynamic_cast<ParagraphElement*>(elem.Children.front()) != NULL);
PropertyMap aFrameProps;
fillFrameProps( elem, aFrameProps, m_rEmitContext );
m_rEmitContext.rEmitter.beginTag( "draw:frame", aFrameProps );
if( bTextBox )
m_rEmitContext.rEmitter.beginTag( "draw:text-box", PropertyMap() );
-
+
std::list< Element* >::iterator this_it = elem.Children.begin();
while( this_it !=elem.Children.end() && *this_it != &elem )
{
(*this_it)->visitedBy( *this, this_it );
this_it++;
}
-
+
if( bTextBox )
m_rEmitContext.rEmitter.endTag( "draw:text-box" );
m_rEmitContext.rEmitter.endTag( "draw:frame" );
}
-void DrawXmlEmitter::visit( PolyPolyElement& elem, const std::list< Element* >::const_iterator& )
+void DrawXmlEmitter::visit( PolyPolyElement& elem, const std::list< Element* >::const_iterator& )
{
elem.updateGeometry();
/* note:
@@ -287,44 +287,44 @@ void DrawXmlEmitter::visit( PolyPolyElement& elem, const std::list< Element* >::
{
basegfx::B2DPolygon b2dPolygon;
b2dPolygon = elem.PolyPoly.getB2DPolygon( i );
-
+
for ( sal_uInt32 j = 0; j< b2dPolygon.count(); j++ )
{
basegfx::B2DPoint point;
basegfx::B2DPoint nextPoint;
point = b2dPolygon.getB2DPoint( j );
-
+
basegfx::B2DPoint prevPoint;
prevPoint = b2dPolygon.getPrevControlPoint( j ) ;
-
- point.setX( convPx2mmPrec2( point.getX() )*100.0 );
+
+ point.setX( convPx2mmPrec2( point.getX() )*100.0 );
point.setY( convPx2mmPrec2( point.getY() )*100.0 );
-
+
if ( b2dPolygon.isPrevControlPointUsed( j ) )
{
- prevPoint.setX( convPx2mmPrec2( prevPoint.getX() )*100.0 );
+ prevPoint.setX( convPx2mmPrec2( prevPoint.getX() )*100.0 );
prevPoint.setY( convPx2mmPrec2( prevPoint.getY() )*100.0 );
}
-
+
if ( b2dPolygon.isNextControlPointUsed( j ) )
{
nextPoint = b2dPolygon.getNextControlPoint( j ) ;
- nextPoint.setX( convPx2mmPrec2( nextPoint.getX() )*100.0 );
+ nextPoint.setX( convPx2mmPrec2( nextPoint.getX() )*100.0 );
nextPoint.setY( convPx2mmPrec2( nextPoint.getY() )*100.0 );
- }
-
+ }
+
b2dPolygon.setB2DPoint( j, point );
-
+
if ( b2dPolygon.isPrevControlPointUsed( j ) )
b2dPolygon.setPrevControlPoint( j , prevPoint ) ;
-
+
if ( b2dPolygon.isNextControlPointUsed( j ) )
b2dPolygon.setNextControlPoint( j , nextPoint ) ;
}
-
+
elem.PolyPoly.setB2DPolygon( i, b2dPolygon );
}
-
+
PropertyMap aProps;
fillFrameProps( elem, aProps, m_rEmitContext );
rtl::OUStringBuffer aBuf( 64 );
@@ -334,14 +334,14 @@ void DrawXmlEmitter::visit( PolyPolyElement& elem, const std::list< Element* >::
aBuf.append( convPx2mmPrec2(elem.h)*100.0 );
aProps[ USTR( "svg:viewBox" ) ] = aBuf.makeStringAndClear();
aProps[ USTR( "svg:d" ) ] = basegfx::tools::exportToSvgD( elem.PolyPoly );
-
+
m_rEmitContext.rEmitter.beginTag( "draw:path", aProps );
m_rEmitContext.rEmitter.endTag( "draw:path" );
}
-void DrawXmlEmitter::visit( ImageElement& elem, const std::list< Element* >::const_iterator& )
+void DrawXmlEmitter::visit( ImageElement& elem, const std::list< Element* >::const_iterator& )
{
- PropertyMap aImageProps;
+ PropertyMap aImageProps;
m_rEmitContext.rEmitter.beginTag( "draw:image", aImageProps );
m_rEmitContext.rEmitter.beginTag( "office:binary-data", PropertyMap() );
m_rEmitContext.rImages.writeBase64EncodedStream( elem.Image, m_rEmitContext);
@@ -353,9 +353,9 @@ void DrawXmlEmitter::visit( PageElement& elem, const std::list< Element* >::cons
{
PropertyMap aPageProps;
aPageProps[ USTR( "draw:master-page-name" ) ] = m_rEmitContext.rStyles.getStyleName( elem.StyleId );
-
+
m_rEmitContext.rEmitter.beginTag("draw:page", aPageProps);
-
+
if( m_rEmitContext.xStatusIndicator.is() )
m_rEmitContext.xStatusIndicator->setValue( elem.PageNumber );
@@ -365,23 +365,23 @@ void DrawXmlEmitter::visit( PageElement& elem, const std::list< Element* >::cons
(*this_it)->visitedBy( *this, this_it );
this_it++;
}
-
+
m_rEmitContext.rEmitter.endTag("draw:page");
}
-
+
void DrawXmlEmitter::visit( DocumentElement& elem, const std::list< Element* >::const_iterator&)
{
m_rEmitContext.rEmitter.beginTag( "office:body", PropertyMap() );
- m_rEmitContext.rEmitter.beginTag( m_bWriteDrawDocument ? "office:drawing" : "office:presentation",
+ m_rEmitContext.rEmitter.beginTag( m_bWriteDrawDocument ? "office:drawing" : "office:presentation",
PropertyMap() );
-
+
std::list< Element* >::iterator this_it = elem.Children.begin();
while( this_it !=elem.Children.end() && *this_it != &elem )
{
(*this_it)->visitedBy( *this, this_it );
this_it++;
}
-
+
m_rEmitContext.rEmitter.endTag( m_bWriteDrawDocument ? "office:drawing" : "office:presentation" );
m_rEmitContext.rEmitter.endTag( "office:body" );
}
@@ -412,12 +412,12 @@ void DrawXmlOptimizer::visit( PolyPolyElement& elem, const std::list< Element* >
* the other is a fill
*/
if( elem.Parent )
- {
- // find following PolyPolyElement in parent's children list
+ {
+ // find following PolyPolyElement in parent's children list
std::list< Element* >::iterator this_it = elem.Parent->Children.begin();
while( this_it != elem.Parent->Children.end() && *this_it != &elem )
++this_it;
-
+
if( this_it != elem.Parent->Children.end() )
{
std::list< Element* >::iterator next_it = this_it;
@@ -477,15 +477,15 @@ void DrawXmlOptimizer::visit( PageElement& elem, const std::list< Element* >::co
if( m_rProcessor.getStatusIndicator().is() )
m_rProcessor.getStatusIndicator()->setValue( elem.PageNumber );
- // resolve hyperlinks
+ // resolve hyperlinks
elem.resolveHyperlinks();
-
+
elem.resolveFontStyles( m_rProcessor ); // underlines and such
-
- // FIXME: until hyperlinks and font effects are adjusted for
- // geometrical search handle them before sorting
+
+ // FIXME: until hyperlinks and font effects are adjusted for
+ // geometrical search handle them before sorting
m_rProcessor.sortElements( &elem );
-
+
// find paragraphs in text
ParagraphElement* pCurPara = NULL;
std::list< Element* >::iterator page_element, next_page_element;
@@ -514,7 +514,7 @@ void DrawXmlOptimizer::visit( PageElement& elem, const std::list< Element* >::co
fCurLineHeight = (fCurLineHeight*double(nCurLineElements) + pTestText->h)/double(nCurLineElements+1);
nCurLineElements++;
}
- }
+ }
continue;
}
@@ -525,7 +525,7 @@ void DrawXmlOptimizer::visit( PageElement& elem, const std::list< Element* >::co
if( pDraw )
{
// insert small drawing objects as character, else leave them page bound
-
+
bool bInsertToParagraph = false;
// first check if this is either inside the paragraph
if( pCurPara && pDraw->y < pCurPara->y + pCurPara->h )
@@ -568,14 +568,14 @@ void DrawXmlOptimizer::visit( PageElement& elem, const std::list< Element* >::co
pDraw->isCharacter = true;
}
}
-
+
if( ! bInsertToParagraph )
{
pCurPara = NULL;
continue;
}
}
-
+
TextElement* pText = dynamic_cast<TextElement*>(*page_element);
if( ! pText && pLink && ! pLink->Children.empty() )
pText = dynamic_cast<TextElement*>(pLink->Children.front());
@@ -604,10 +604,10 @@ void DrawXmlOptimizer::visit( PageElement& elem, const std::list< Element* >::co
}
}
-
+
}
-
+
// update line height/width
if( pCurPara )
{
@@ -626,8 +626,8 @@ void DrawXmlOptimizer::visit( PageElement& elem, const std::list< Element* >::co
line_right = pGeo->x + pGeo->w;
}
}
-
-
+
+
// move element to current paragraph
if (! pCurPara ) // new paragraph, insert one
{
@@ -662,7 +662,7 @@ bool isSpaces(TextElement* pTextElem)
rtl::OUString strToken = ouTxt2.copy(i,1) ;
if( !strSpace.equals(strToken) )
return false;
- }
+ }
return true;
}
@@ -672,7 +672,7 @@ bool notTransformed(GraphicsContext GC)
GC.Transformation.get(0,0) == 100.00 &&
GC.Transformation.get(1,0) == 0.00 &&
GC.Transformation.get(0,1) == 0.00 &&
- GC.Transformation.get(1,1) == -100.00
+ GC.Transformation.get(1,1) == -100.00
);
}
@@ -683,7 +683,7 @@ void DrawXmlOptimizer::optimizeTextElements(Element& rParent)
OSL_ENSURE( 0, "empty paragraph optimized" );
return;
}
-
+
// concatenate child elements with same font id
std::list< Element* >::iterator next = rParent.Children.begin();
std::list< Element* >::iterator it = next++;
@@ -705,12 +705,12 @@ void DrawXmlOptimizer::optimizeTextElements(Element& rParent)
TextElement* pNext = dynamic_cast<TextElement*>(*next);
bool isComplex = false;
rtl::OUString str(pCur->Text.getStr());
- for(int i=0; i< str.getLength(); i++)
+ for(int i=0; i< str.getLength(); i++)
{
sal_Int16 nType = GetBreakIterator()->getScriptType( str, i );
if (nType == ::com::sun::star::i18n::ScriptType::COMPLEX)
isComplex = true;
- }
+ }
bool bPara = strspn("ParagraphElement", typeid(rParent).name());
ParagraphElement* pPara = dynamic_cast<ParagraphElement*>(&rParent);
if (bPara && isComplex)
@@ -719,9 +719,9 @@ void DrawXmlOptimizer::optimizeTextElements(Element& rParent)
{
const GraphicsContext& rCurGC = m_rProcessor.getGraphicsContext( pCur->GCId );
const GraphicsContext& rNextGC = m_rProcessor.getGraphicsContext( pNext->GCId );
-
+
// line and space optimization; works only in strictly horizontal mode
-
+
// concatenate consecutive text elements unless there is a
// font or text color or matrix change, leave a new span in that case
if( (pCur->FontId == pNext->FontId || isSpaces(pNext)) &&
@@ -729,7 +729,7 @@ void DrawXmlOptimizer::optimizeTextElements(Element& rParent)
rCurGC.FillColor.Green == rNextGC.FillColor.Green &&
rCurGC.FillColor.Blue == rNextGC.FillColor.Blue &&
rCurGC.FillColor.Alpha == rNextGC.FillColor.Alpha &&
- (rCurGC.Transformation == rNextGC.Transformation || notTransformed(rNextGC))
+ (rCurGC.Transformation == rNextGC.Transformation || notTransformed(rNextGC))
)
{
pCur->updateGeometryWith( pNext );
@@ -737,7 +737,7 @@ void DrawXmlOptimizer::optimizeTextElements(Element& rParent)
pCur->Text.append( pNext->Text.getStr(), pNext->Text.getLength() );
str = pCur->Text.getStr();
- for(int i=0; i< str.getLength(); i++)
+ for(int i=0; i< str.getLength(); i++)
{
sal_Int16 nType = GetBreakIterator()->getScriptType( str, i );
if (nType == ::com::sun::star::i18n::ScriptType::COMPLEX)
@@ -761,7 +761,7 @@ void DrawXmlOptimizer::optimizeTextElements(Element& rParent)
if ( bConcat )
next = it;
else
- ++it;
+ ++it;
++next;
}
}
@@ -783,7 +783,7 @@ void DrawXmlFinalizer::visit( PolyPolyElement& elem, const std::list< Element* >
aProps[ USTR( "style:parent-style-name") ] = USTR( "standard" );
// generate standard graphic style if necessary
m_rStyleContainer.getStandardStyleId( "graphic" );
-
+
PropertyMap aGCProps;
// TODO(F3): proper dash emulation
@@ -821,7 +821,7 @@ void DrawXmlFinalizer::visit( PolyPolyElement& elem, const std::list< Element* >
StyleContainer::Style aStyle( "style:style", aProps );
StyleContainer::Style aSubStyle( "style:graphic-properties", aGCProps );
aStyle.SubStyles.push_back( &aSubStyle );
-
+
elem.StyleId = m_rStyleContainer.getStyleId( aStyle );
}
@@ -830,22 +830,22 @@ void DrawXmlFinalizer::visit( HyperlinkElement&, const std::list< Element* >::co
}
void DrawXmlFinalizer::visit( TextElement& elem, const std::list< Element* >::const_iterator& )
-{
+{
const FontAttributes& rFont = m_rProcessor.getFont( elem.FontId );
PropertyMap aProps;
aProps[ USTR( "style:family" ) ] = USTR( "text" );
PropertyMap aFontProps;
-
+
// family name
aFontProps[ USTR( "fo:font-family" ) ] = rFont.familyName;
aFontProps[ USTR( "style:font-family-complex" ) ] = rFont.familyName;
-
+
// bold
if( rFont.isBold )
{
aFontProps[ USTR( "fo:font-weight" ) ] = USTR( "bold" );
- aFontProps[ USTR( "fo:font-weight-asian" ) ] = USTR( "bold" );
+ aFontProps[ USTR( "fo:font-weight-asian" ) ] = USTR( "bold" );
aFontProps[ USTR( "style:font-weight-complex" ) ] = USTR( "bold" );
}
// italic
@@ -853,7 +853,7 @@ void DrawXmlFinalizer::visit( TextElement& elem, const std::list< Element* >::co
{
aFontProps[ USTR( "fo:font-style" ) ] = USTR( "italic" );
aFontProps[ USTR( "fo:font-style-asian" ) ] = USTR( "italic" );
- aFontProps[ USTR( "style:font-style-complex" ) ] = USTR( "italic" );
+ aFontProps[ USTR( "style:font-style-complex" ) ] = USTR( "italic" );
}
// underline
if( rFont.isUnderline )
@@ -878,7 +878,7 @@ void DrawXmlFinalizer::visit( TextElement& elem, const std::list< Element* >::co
// color
const GraphicsContext& rGC = m_rProcessor.getGraphicsContext( elem.GCId );
aFontProps[ USTR( "fo:color" ) ] = getColorString( rFont.isOutline ? rGC.LineColor : rGC.FillColor );
-
+
StyleContainer::Style aStyle( "style:style", aProps );
StyleContainer::Style aSubStyle( "style:text-properties", aFontProps );
aStyle.SubStyles.push_back( &aSubStyle );
@@ -886,13 +886,13 @@ void DrawXmlFinalizer::visit( TextElement& elem, const std::list< Element* >::co
}
void DrawXmlFinalizer::visit( ParagraphElement& elem, const std::list< Element* >::const_iterator& )
-{
+{
PropertyMap aProps;
aProps[ USTR( "style:family" ) ] = USTR( "paragraph" );
// generate standard paragraph style if necessary
m_rStyleContainer.getStandardStyleId( "paragraph" );
-
+
PropertyMap aParProps;
aParProps[ USTR("fo:text-align")] = USTR("start");
@@ -900,11 +900,11 @@ void DrawXmlFinalizer::visit( ParagraphElement& elem, const std::list< Element*
aParProps[ USTR("style:writing-mode")] = USTR("rl-tb");
else
aParProps[ USTR("style:writing-mode")] = USTR("lr-tb");
-
+
StyleContainer::Style aStyle( "style:style", aProps );
StyleContainer::Style aSubStyle( "style:paragraph-properties", aParProps );
aStyle.SubStyles.push_back( &aSubStyle );
-
+
elem.StyleId = m_rStyleContainer.getStyleId( aStyle );
// update page boundaries
@@ -916,7 +916,7 @@ void DrawXmlFinalizer::visit( ParagraphElement& elem, const std::list< Element*
double p_y = elem.Parent->y;
double p_w = elem.Parent->w;
double p_h = elem.Parent->h;
-
+
PageElement* pPage = dynamic_cast<PageElement*>(elem.Parent);
if( pPage )
{
@@ -937,7 +937,7 @@ void DrawXmlFinalizer::visit( FrameElement& elem, const std::list< Element* >::c
aProps[ USTR( "style:parent-style-name") ] = USTR( "standard" );
// generate standard graphic style if necessary
m_rStyleContainer.getStandardStyleId( "graphic" );
-
+
PropertyMap aGCProps;
aGCProps[ USTR("draw:stroke") ] = USTR("none");
@@ -952,18 +952,18 @@ void DrawXmlFinalizer::visit( FrameElement& elem, const std::list< Element* >::c
aGCProps[ USTR("fo:padding-left") ] = USTR("0cm");
aGCProps[ USTR("fo:padding-right") ] = USTR("0cm");
aGCProps[ USTR("fo:padding-bottom") ] = USTR("0cm");
-
+
// remark: vertical mirroring is done in current OOO by
// mirroring horzontally and rotating 180 degrees
// this is quaint, but unfortunately it seems
// mirror=vertical is defined but not implemented in current code
if( elem.MirrorVertical )
aGCProps[ USTR("style:mirror") ] = USTR("horizontal");
-
+
StyleContainer::Style aStyle( "style:style", aProps );
StyleContainer::Style aSubStyle( "style:graphic-properties", aGCProps );
aStyle.SubStyles.push_back( &aSubStyle );
-
+
elem.StyleId = m_rStyleContainer.getStyleId( aStyle );
elem.applyToChildren(*this);
}
@@ -976,10 +976,10 @@ void DrawXmlFinalizer::visit( PageElement& elem, const std::list< Element* >::co
{
if( m_rProcessor.getStatusIndicator().is() )
m_rProcessor.getStatusIndicator()->setValue( elem.PageNumber );
-
+
// transform from pixel to mm
double page_width = convPx2mm( elem.w ), page_height = convPx2mm( elem.h );
-
+
// calculate page margins out of the relevant children (paragraphs)
elem.TopMargin = elem.h, elem.BottomMargin = 0, elem.LeftMargin = elem.w, elem.RightMargin = 0;
@@ -994,20 +994,20 @@ void DrawXmlFinalizer::visit( PageElement& elem, const std::list< Element* >::co
if( (*it)->y + (*it)->h > elem.BottomMargin )
elem.BottomMargin = ((*it)->y + (*it)->h);
}
-
+
// transform margins to mm
double left_margin = convPx2mm( elem.LeftMargin );
double right_margin = convPx2mm( elem.RightMargin );
double top_margin = convPx2mm( elem.TopMargin );
double bottom_margin = convPx2mm( elem.BottomMargin );
-
+
// round left/top margin to nearest mm
left_margin = rtl_math_round( left_margin, 0, rtl_math_RoundingMode_Floor );
top_margin = rtl_math_round( top_margin, 0, rtl_math_RoundingMode_Floor );
// round (fuzzy) right/bottom margin to nearest cm
right_margin = rtl_math_round( right_margin, right_margin >= 10 ? -1 : 0, rtl_math_RoundingMode_Floor );
- bottom_margin = rtl_math_round( bottom_margin, bottom_margin >= 10 ? -1 : 0, rtl_math_RoundingMode_Floor );
-
+ bottom_margin = rtl_math_round( bottom_margin, bottom_margin >= 10 ? -1 : 0, rtl_math_RoundingMode_Floor );
+
// set reasonable default in case of way too large margins
// e.g. no paragraph case
if( left_margin > page_width/2.0 - 10 )
@@ -1018,7 +1018,7 @@ void DrawXmlFinalizer::visit( PageElement& elem, const std::list< Element* >::co
top_margin = 10;
if( bottom_margin > page_height/2.0 - 10 )
bottom_margin = 10;
-
+
// catch the weird cases
if( left_margin < 0 )
left_margin = 0;
@@ -1028,16 +1028,16 @@ void DrawXmlFinalizer::visit( PageElement& elem, const std::list< Element* >::co
top_margin = 0;
if( bottom_margin < 0 )
bottom_margin = 0;
-
+
// widely differing margins are unlikely to be correct
if( right_margin > left_margin*1.5 )
right_margin = left_margin;
-
+
elem.LeftMargin = convmm2Px( left_margin );
elem.RightMargin = convmm2Px( right_margin );
elem.TopMargin = convmm2Px( top_margin );
elem.BottomMargin = convmm2Px( bottom_margin );
-
+
// get styles for paragraphs
PropertyMap aPageProps;
PropertyMap aPageLayoutProps;
@@ -1048,26 +1048,26 @@ void DrawXmlFinalizer::visit( PageElement& elem, const std::list< Element* >::co
aPageLayoutProps[ USTR( "fo:margin-right" ) ] = unitMMString( right_margin );
aPageLayoutProps[ USTR( "fo:page-width" ) ] = unitMMString( page_width );
aPageLayoutProps[ USTR( "fo:page-height" ) ] = unitMMString( page_height );
- aPageLayoutProps[ USTR( "style:print-orientation" ) ]= elem.w < elem.h ? USTR( "portrait" ) : USTR( "landscape" );
+ aPageLayoutProps[ USTR( "style:print-orientation" ) ]= elem.w < elem.h ? USTR( "portrait" ) : USTR( "landscape" );
aPageLayoutProps[ USTR( "style:writing-mode" ) ]= USTR( "lr-tb" );
-
- StyleContainer::Style aStyle( "style:page-layout", aPageProps);
- StyleContainer::Style aSubStyle( "style:page-layout-properties", aPageLayoutProps);
+
+ StyleContainer::Style aStyle( "style:page-layout", aPageProps);
+ StyleContainer::Style aSubStyle( "style:page-layout-properties", aPageLayoutProps);
aStyle.SubStyles.push_back(&aSubStyle);
sal_Int32 nPageStyle = m_rStyleContainer.impl_getStyleId( aStyle, false );
// create master page
rtl::OUString aMasterPageLayoutName = m_rStyleContainer.getStyleName( nPageStyle );
- aPageProps[ USTR( "style:page-layout-name" ) ] = aMasterPageLayoutName;
-
- StyleContainer::Style aMPStyle( "style:master-page", aPageProps);
-
+ aPageProps[ USTR( "style:page-layout-name" ) ] = aMasterPageLayoutName;
+
+ StyleContainer::Style aMPStyle( "style:master-page", aPageProps);
+
StyleContainer::Style aHeaderStyle( "style:header", PropertyMap() );
StyleContainer::Style aFooterStyle( "style:footer", PropertyMap() );
elem.StyleId = m_rStyleContainer.impl_getStyleId( aMPStyle,false );
-
+
rtl::OUString aMasterPageName = m_rStyleContainer.getStyleName( elem.StyleId );
// create styles for children
@@ -1075,7 +1075,7 @@ void DrawXmlFinalizer::visit( PageElement& elem, const std::list< Element* >::co
}
void DrawXmlFinalizer::visit( DocumentElement& elem, const std::list< Element* >::const_iterator& )
-{
+{
elem.applyToChildren(*this);
}