From b184d422893015e1c7086f7b31fe0a53814a2bb0 Mon Sep 17 00:00:00 2001
From: Philipp Weissenbacher
Date: Mon, 28 Nov 2011 18:53:42 +0100
Subject: [PATCH] Translate German comments
---
sw/source/core/doc/docfly.cxx | 137 ++++++++++++++++------------------
1 file changed, 64 insertions(+), 73 deletions(-)
diff --git a/sw/source/core/doc/docfly.cxx b/sw/source/core/doc/docfly.cxx
index b7f4da5eec0f..e867da142462 100644
--- a/sw/source/core/doc/docfly.cxx
+++ b/sw/source/core/doc/docfly.cxx
@@ -216,16 +216,16 @@ Point lcl_FindAnchorLayPos( SwDoc& rDoc, const SwFmtAnchor& rAnch,
sal_Int8 SwDoc::SetFlyFrmAnchor( SwFrmFmt& rFmt, SfxItemSet& rSet, sal_Bool bNewFrms )
{
- //Ankerwechsel sind fast immer in alle 'Richtungen' erlaubt.
- //Ausnahme: Absatz- bzw. Zeichengebundene Rahmen duerfen wenn sie in
- //Kopf-/Fusszeilen stehen nicht Seitengebunden werden.
+ // Changing anchors is almost always allowed.
+ // Exception: Paragraph and character bound frames must not become
+ // page bound, if they are located in the header or footer.
const SwFmtAnchor &rOldAnch = rFmt.GetAnchor();
const RndStdIds nOld = rOldAnch.GetAnchorId();
SwFmtAnchor aNewAnch( (SwFmtAnchor&)rSet.Get( RES_ANCHOR ) );
RndStdIds nNew = aNewAnch.GetAnchorId();
- // ist der neue ein gueltiger Anker?
+ // Is the new anchor valid?
if( !aNewAnch.GetCntntAnchor() && (FLY_AT_FLY == nNew ||
(FLY_AT_PARA == nNew) || (FLY_AS_CHAR == nNew) ||
(FLY_AT_CHAR == nNew) ))
@@ -240,16 +240,17 @@ sal_Int8 SwDoc::SetFlyFrmAnchor( SwFrmFmt& rFmt, SfxItemSet& rSet, sal_Bool bNew
Point aOldAnchorPos( ::lcl_FindAnchorLayPos( *this, rOldAnch, &rFmt ));
Point aNewAnchorPos( ::lcl_FindAnchorLayPos( *this, aNewAnch, 0 ));
- //Die alten Frms vernichten. Dabei werden die Views implizit gehidet und
- //doppeltes hiden waere so eine art Show!
+ // Destroy the old Frames.
+ // The Views are hidden implicitly, so hiding them another time would be
+ // kind of a show!
rFmt.DelFrms();
if ( FLY_AS_CHAR == nOld )
{
- //Bei InCntnt's wird es spannend: Das TxtAttribut muss vernichtet
- //werden. Leider reisst dies neben den Frms auch noch das Format mit
- //in sein Grab. Um dass zu unterbinden loesen wir vorher die
- //Verbindung zwischen Attribut und Format.
+ // We need to handle InCntnts in a special way:
+ // The TxtAttribut needs to be destroyed which, unfortunately, also
+ // destroys the format. To avoid that, we disconnect the format from
+ // the attribute.
const SwPosition *pPos = rOldAnch.GetCntntAnchor();
SwTxtNode *pTxtNode = pPos->nNode.GetNode().GetTxtNode();
OSL_ENSURE( pTxtNode->HasHints(), "Missing FlyInCnt-Hint." );
@@ -262,27 +263,25 @@ sal_Int8 SwDoc::SetFlyFrmAnchor( SwFrmFmt& rFmt, SfxItemSet& rSet, sal_Bool bNew
"Wrong TxtFlyCnt-Hint." );
const_cast(pHnt->GetFlyCnt()).SetFlyFmt();
- //Die Verbindung ist geloest, jetzt muss noch das Attribut vernichtet
- //werden.
+ // They are disconnected. We now have to destroy the attribute.
pTxtNode->DeleteAttributes( RES_TXTATR_FLYCNT, nIdx, nIdx );
}
- //Endlich kann das Attribut gesetzt werden. Es muss das erste Attribut
- //sein; Undo depends on it!
+ // We can finally set the attribute. It needs to be the first one!
+ // Undo depends on it!
rFmt.SetFmtAttr( aNewAnch );
- //Positionskorrekturen
+ // Correct the position
const SfxPoolItem* pItem;
switch( nNew )
{
case FLY_AS_CHAR:
- //Wenn keine Positionsattribute hereinkommen, dann muss dafuer
- //gesorgt werden, das keine unerlaubte automatische Ausrichtung
- //bleibt.
+ // If no position attributes are received, we have to make sure
+ // that no forbidden automatic alignment is left.
{
const SwPosition *pPos = aNewAnch.GetCntntAnchor();
SwTxtNode *pNd = pPos->nNode.GetNode().GetTxtNode();
- OSL_ENSURE( pNd, "Crsr steht nicht auf TxtNode." );
+ OSL_ENSURE( pNd, "Crsr does not point to TxtNode." );
SwFmtFlyCnt aFmt( static_cast(&rFmt) );
pNd->InsertItem( aFmt, pPos->nContent.GetIndex(), 0 );
@@ -307,16 +306,14 @@ sal_Int8 SwDoc::SetFlyFrmAnchor( SwFrmFmt& rFmt, SfxItemSet& rSet, sal_Bool bNew
break;
case FLY_AT_PARA:
- case FLY_AT_CHAR: // LAYER_IMPL
- case FLY_AT_FLY: // LAYER_IMPL
+ case FLY_AT_CHAR: // LAYER_IMPL
+ case FLY_AT_FLY: // LAYER_IMPL
case FLY_AT_PAGE:
{
- //Wenn keine Positionsattribute hereinschneien korrigieren wir
- //die Position so, dass die Dokumentkoordinaten des Flys erhalten
- //bleiben.
- //Chg: Wenn sich in den Positionsattributen lediglich die
- //Ausrichtung veraendert (text::RelOrientation::FRAME vs. text::RelOrientation::PRTAREA), dann wird die
- //Position ebenfalls korrigiert.
+ // If no position attributes are coming in, we correct the position in a way
+ // such that the fly's document coordinates are preserved.
+ // If only the alignment changes in the position attributes (text::RelOrientation::FRAME
+ // vs. text::RelOrientation::PRTAREA), we also correct the position.
if( SFX_ITEM_SET != rSet.GetItemState( RES_HORI_ORIENT, sal_False, &pItem ))
pItem = 0;
@@ -379,9 +376,9 @@ lcl_SetFlyFrmAttr(SwDoc & rDoc,
// objects of type SwUndoFrmFmt on the undo stack. We don't want them.
::sw::UndoGuard const undoGuard(rDoc.GetIDocumentUndoRedo());
- //Ist das Ankerattribut dabei? Falls ja ueberlassen wir die Verarbeitung
- //desselben einer Spezialmethode. Sie Returnt sal_True wenn der Fly neu
- //erzeugt werden muss (z.B. weil ein Wechsel des FlyTyps vorliegt).
+ // Is the anchor attribute included?
+ // If so, we pass it to a special method, which returns sal_True
+ // if the Fly needs to be created anew, because we e.g change the FlyType.
sal_Int8 const nMakeFrms =
(SFX_ITEM_SET == rSet.GetItemState( RES_ANCHOR, sal_False ))
? (rDoc.*pSetFlyFrmAnchor)( rFlyFmt, rSet, sal_False )
@@ -399,8 +396,8 @@ lcl_SetFlyFrmAttr(SwDoc & rDoc,
case RES_PAGEDESC:
case RES_CNTNT:
case RES_FOOTER:
- OSL_FAIL( ":-) Unbekanntes Attribut fuer Fly." );
- // kein break;
+ OSL_FAIL( "Unknown Fly attribute." );
+ // no break;
case RES_CHAIN:
rSet.ClearItem( nWhich );
break;
@@ -527,8 +524,8 @@ sal_Bool SwDoc::SetFrmFmtToFly( SwFrmFmt& rFmt, SwFrmFmt& rNewFmt,
// 2 objects of type SwUndoFrmFmt on the undo stack. We don't want them.
::sw::UndoGuard const undoGuard(GetIDocumentUndoRedo());
- //Erstmal die Spalten setzen, sonst gibts nix als Aerger mit dem
- //Set/Reset/Abgleich usw.
+ // Set the column first, or we'll have trouble with
+ //Set/Reset/Synch. and so on
const SfxPoolItem* pItem;
if( SFX_ITEM_SET != rNewFmt.GetAttrSet().GetItemState( RES_COL ))
rFmt.ResetFmtAttr( RES_COL );
@@ -537,8 +534,8 @@ sal_Bool SwDoc::SetFrmFmtToFly( SwFrmFmt& rFmt, SwFrmFmt& rNewFmt,
{
rFmt.SetDerivedFrom( &rNewFmt );
- // 1. wenn nicht automatisch -> ignorieren, sonst -> wech
- // 2. wech damit, MB!
+ // 1. If not automatic = ignore; else = dispose
+ // 2. Dispose of it!
if( SFX_ITEM_SET == rNewFmt.GetAttrSet().GetItemState( RES_FRM_SIZE, sal_False ))
{
rFmt.ResetFmtAttr( RES_FRM_SIZE );
@@ -555,8 +552,8 @@ sal_Bool SwDoc::SetFrmFmtToFly( SwFrmFmt& rFmt, SwFrmFmt& rNewFmt,
bChgAnchor = MAKEFRMS == SetFlyFrmAnchor( rFmt, *pSet, sal_False );
else
{
- //JP 23.04.98: muss den FlyFmt-Range haben, denn im SetFlyFrmAnchor
- // werden Attribute in diesen gesetzt!
+ // Needs to have the FlyFmt range, because we set attributes in it,
+ // in SetFlyFrmAnchor.
SfxItemSet aFlySet( *rNewFmt.GetAttrSet().GetPool(),
rNewFmt.GetAttrSet().GetRanges() );
aFlySet.Put( *pItem );
@@ -565,11 +562,10 @@ sal_Bool SwDoc::SetFrmFmtToFly( SwFrmFmt& rFmt, SwFrmFmt& rNewFmt,
}
}
- //Hori und Vert nur dann resetten, wenn in der Vorlage eine
- //automatische Ausrichtung eingestellt ist, anderfalls den alten Wert
- //wieder hineinstopfen.
- // beim Update der RahmenVorlage sollte der Fly NICHT
- // seine Orientierng verlieren (diese wird nicht geupdatet!)
+ // Only reset vertical and horizontal orientation, if we have automatic alignment
+ // set in the template. Otherwise use the old value.
+ // If we update the frame template the Fly should NOT lose its orientation (which
+ // is not being updated!).
// text::HoriOrientation::NONE and text::VertOrientation::NONE are allowed now
if (!bKeepOrient)
{
@@ -610,7 +606,7 @@ sal_Bool SwDoc::ChgAnchor( const SdrMarkList& _rMrkList,
const sal_Bool _bSameOnly,
const sal_Bool _bPosCorr )
{
- OSL_ENSURE( GetCurrentLayout(), "Ohne Layout geht gar nichts" );
+ OSL_ENSURE( GetCurrentLayout(), "No layout!" );
if ( !_rMrkList.GetMarkCount() ||
_rMrkList.GetMark( 0 )->GetMarkedSdrObj()->GetUpGroup() )
@@ -698,8 +694,7 @@ sal_Bool SwDoc::ChgAnchor( const SdrMarkList& _rMrkList,
case FLY_AT_FLY: // LAYER_IMPL
{
- //Ausgehend von der linken oberen Ecke des Fly den
- //dichtesten SwFlyFrm suchen.
+ // Search the closest SwFlyFrm starting from the upper left corner.
SwFrm *pTxtFrm;
{
SwCrsrMoveState aState( MV_SETONLYTEXT );
@@ -738,7 +733,7 @@ sal_Bool SwDoc::ChgAnchor( const SdrMarkList& _rMrkList,
}
break;
case FLY_AS_CHAR:
- if( _bSameOnly ) // Positions/Groessenaenderung
+ if( _bSameOnly ) // Change of position/size
{
if( !pOldAnchorFrm )
{
@@ -747,7 +742,7 @@ sal_Bool SwDoc::ChgAnchor( const SdrMarkList& _rMrkList,
}
((SwTxtFrm*)pOldAnchorFrm)->Prepare();
}
- else // Ankerwechsel
+ else // Change of anchors
{
// allow drawing objects in header/footer
pNewAnchorFrm = ::FindAnchor( pOldAnchorFrm, aPt, false );
@@ -759,13 +754,13 @@ sal_Bool SwDoc::ChgAnchor( const SdrMarkList& _rMrkList,
bUnmark = ( 0 != i );
Point aPoint( aPt );
- aPoint.X() -= 1; // nicht im DrawObj landen!!
+ aPoint.X() -= 1; // Do not load in the DrawObj!
aNewAnch.SetType( FLY_AS_CHAR );
SwPosition aPos( *((SwCntntFrm*)pNewAnchorFrm)->GetNode() );
if ( pNewAnchorFrm->Frm().IsInside( aPoint ) )
{
- // es muss ein TextNode gefunden werden, denn nur dort
- // ist ein inhaltsgebundenes DrawObjekt zu verankern
+ // We need to find a TextNode, because only there we can anchor a
+ // content-bound DrawObject.
SwCrsrMoveState aState( MV_SETONLYTEXT );
GetCurrentLayout()->GetCrsrOfst( &aPos, aPoint, &aState ); //swmod 080218
}
@@ -826,10 +821,10 @@ sal_Bool SwDoc::ChgAnchor( const SdrMarkList& _rMrkList,
// #i54336#
if ( pNewAnchorFrm && pOldAsCharAnchorPos )
{
- //Bei InCntnt's wird es spannend: Das TxtAttribut muss vernichtet
- //werden. Leider reisst dies neben den Frms auch noch das Format mit
- //in sein Grab. Um dass zu unterbinden loesen wir vorher die
- //Verbindung zwischen Attribut und Format.
+ // We need to handle InCntnts in a special way:
+ // The TxtAttribut needs to be destroyed which, unfortunately, also
+ // destroys the format. To avoid that, we disconnect the format from
+ // the attribute.
const xub_StrLen nIndx( pOldAsCharAnchorPos->nContent.GetIndex() );
SwTxtNode* pTxtNode( pOldAsCharAnchorPos->nNode.GetNode().GetTxtNode() );
OSL_ENSURE( pTxtNode, " - missing previous anchor text node for as-character anchored object" );
@@ -838,8 +833,7 @@ sal_Bool SwDoc::ChgAnchor( const SdrMarkList& _rMrkList,
pTxtNode->GetTxtAttrForCharAt( nIndx, RES_TXTATR_FLYCNT );
const_cast(pHnt->GetFlyCnt()).SetFlyFmt();
- //Die Verbindung ist geloest, jetzt muss noch das Attribut vernichtet
- //werden.
+ // They are disconnected. We now have to destroy the attribute.
pTxtNode->DeleteAttributes( RES_TXTATR_FLYCNT, nIndx, nIndx );
delete pOldAsCharAnchorPos;
}
@@ -854,13 +848,12 @@ sal_Bool SwDoc::ChgAnchor( const SdrMarkList& _rMrkList,
int SwDoc::Chainable( const SwFrmFmt &rSource, const SwFrmFmt &rDest )
{
- //Die Source darf noch keinen Follow haben.
+ // The Source must not yet have a Follow.
const SwFmtChain &rOldChain = rSource.GetChain();
if ( rOldChain.GetNext() )
return SW_CHAIN_SOURCE_CHAINED;
- //Ziel darf natuerlich nicht gleich Source sein und es
- //darf keine geschlossene Kette entstehen.
+ // Target must not be equal to Source and we also must not have a closed chain.
const SwFrmFmt *pFmt = &rDest;
do {
if( pFmt == &rSource )
@@ -868,17 +861,16 @@ int SwDoc::Chainable( const SwFrmFmt &rSource, const SwFrmFmt &rDest )
pFmt = pFmt->GetChain().GetNext();
} while ( pFmt );
- //Auch eine Verkettung von Innen nach aussen oder von aussen
- //nach innen ist nicht zulaessig.
+ // There must not be a chaining from outside to inside or the other way around.
if( rDest.IsLowerOf( rSource ) || rSource .IsLowerOf( rDest ) )
return SW_CHAIN_SELF;
- //Das Ziel darf noch keinen Master haben.
+ // The Target must not yet have a Master.
const SwFmtChain &rChain = rDest.GetChain();
if( rChain.GetPrev() )
return SW_CHAIN_IS_IN_CHAIN;
- //Das Ziel muss leer sein.
+ // Target must be empty.
const SwNodeIndex* pCntIdx = rDest.GetCntnt().GetCntntIdx();
if( !pCntIdx )
return SW_CHAIN_NOT_FOUND;
@@ -910,11 +902,10 @@ int SwDoc::Chainable( const SwFrmFmt &rSource, const SwFrmFmt &rDest )
}
}
- //Auf die richtige Area muessen wir auch noch einen Blick werfen.
- //Beide Flys muessen im selben Bereich (Body, Head/Foot, Fly) sitzen
- //Wenn die Source nicht der selektierte Rahmen ist, so reicht es
- //Wenn ein passender gefunden wird (Der Wunsch kann z.B. von der API
- //kommen).
+ // We also need to consider the right area.
+ // Both Flys need to be located in the same area (Body, Header/Footer, Fly).
+ // If the Source is not the selected frame, it's enough to find a suitable
+ // one. e.g. if it's requested by the API.
// both in the same fly, header, footer or on the page?
const SwFmtAnchor &rSrcAnchor = rSource.GetAnchor(),
@@ -960,7 +951,7 @@ int SwDoc::Chain( SwFrmFmt &rSource, const SwFrmFmt &rDest )
SwFlyFrmFmt& rDestFmt = (SwFlyFrmFmt&)rDest;
- //Follow an den Master haengen.
+ // Attach Follow to the Master.
SwFmtChain aChain = rDestFmt.GetChain();
aChain.SetPrev( &(SwFlyFrmFmt&)rSource );
SetAttr( aChain, rDestFmt );
@@ -968,12 +959,12 @@ int SwDoc::Chain( SwFrmFmt &rSource, const SwFrmFmt &rDest )
SfxItemSet aSet( GetAttrPool(), RES_FRM_SIZE, RES_FRM_SIZE,
RES_CHAIN, RES_CHAIN, 0 );
- //Follow an den Master haengen.
+ // Attach Follow to the Master.
aChain.SetPrev( &(SwFlyFrmFmt&)rSource );
SetAttr( aChain, rDestFmt );
- //Master an den Follow haengen und dafuer sorgen, dass der Master
- //eine fixierte Hoehe hat.
+ // Attach Master to the Follow.
+ // Make sure that the Master has a fixed height.
aChain = rSource.GetChain();
aChain.SetNext( &rDestFmt );
aSet.Put( aChain );