[Libreoffice-commits] .: 17 commits - sw/source
Jan Holesovsky
kendy at kemper.freedesktop.org
Mon Feb 27 05:57:13 PST 2012
sw/source/core/layout/atrfrm.cxx | 191 ++++++-------
sw/source/core/layout/calcmove.cxx | 470 +++++++++++++++-----------------
sw/source/core/layout/colfrm.cxx | 65 ++--
sw/source/core/layout/dbg_lay.cxx | 329 ++++++++++++----------
sw/source/core/layout/findfrm.cxx | 143 ++++-----
sw/source/core/layout/flycnt.cxx | 189 ++++++------
sw/source/core/layout/flyincnt.cxx | 26 -
sw/source/core/layout/flypos.cxx | 8
sw/source/core/layout/laycache.cxx | 12
sw/source/core/layout/pagedesc.cxx | 29 -
sw/source/core/layout/paintfrm.cxx | 314 ++++++++++-----------
sw/source/core/layout/ssfrm.cxx | 27 -
sw/source/core/layout/unusedf.cxx | 16 -
sw/source/core/layout/virtoutp.cxx | 12
sw/source/core/layout/virtoutp.hxx | 2
sw/source/core/layout/wsfrm.cxx | 538 +++++++++++++++++--------------------
16 files changed, 1173 insertions(+), 1198 deletions(-)
New commits:
commit 542047f0c555e8a7d0538d4be905556d5b3cbf5a
Author: Nicolas Christener <nicolas.christener at adfinis-sygroup.ch>
Date: Mon Feb 13 11:37:48 2012 +0100
translate german comments
diff --git a/sw/source/core/layout/ssfrm.cxx b/sw/source/core/layout/ssfrm.cxx
index d0515ef..f935cc7 100644
--- a/sw/source/core/layout/ssfrm.cxx
+++ b/sw/source/core/layout/ssfrm.cxx
@@ -458,7 +458,7 @@ SwCntntFrm::~SwCntntFrm()
if( 0 != ( pCNd = PTR_CAST( SwCntntNode, GetRegisteredIn() )) &&
!pCNd->GetDoc()->IsInDtor() )
{
- //Bei der Root abmelden wenn ich dort noch im Turbo stehe.
+ //Unregister from root if I'm still in turbo there.
SwRootFrm *pRoot = getRootFrm();
if( pRoot && pRoot->GetTurbo() == this )
{
@@ -523,13 +523,14 @@ void SwCntntFrm::DelFrms( const SwCntntNode& rNode )
SwCntntFrm* pMaster = (SwTxtFrm*)pFrm->FindMaster();
pMaster->SetFollow( pFrm->GetFollow() );
}
- pFrm->SetFollow( 0 );//Damit er nicht auf dumme Gedanken kommt.
- //Andernfalls kann es sein, dass ein Follow
- //vor seinem Master zerstoert wird, der Master
- //greift dann ueber den ungueltigen
- //Follow-Pointer auf fremdes Memory zu.
- //Die Kette darf hier zerknauscht werden, weil
- //sowieso alle zerstoert werden.
+ pFrm->SetFollow( 0 );//So it doesn't get funny ideas.
+ //Otherwise it could be possible that a follow
+ //gets destroyed before its master. Following
+ //the now invalid pointer will then lead to an
+ //illegal memory access. The chain can be
+ //crushed here because we'll destroy all of it
+ //anyway.
+
if( pFrm->GetUpper() && pFrm->IsInFtn() && !pFrm->GetIndNext() &&
!pFrm->GetIndPrev() )
{
@@ -563,10 +564,10 @@ SwLayoutFrm::~SwLayoutFrm()
{
while ( pFrm )
{
- //Erst die Objs des Frm vernichten, denn diese koennen sich sonst nach
- //dem Remove nicht mehr bei der Seite abmelden.
- //Falls sich einer nicht abmeldet wollen wir nicht gleich
- //endlos schleifen.
+ //First delete the Objs of the Frm because they can't unregister
+ //from the page after remove.
+ //We don't want to create an endless loop only because one couldn't
+ //unregister.
sal_uInt32 nCnt;
while ( pFrm->GetDrawObjs() && pFrm->GetDrawObjs()->Count() )
@@ -598,7 +599,7 @@ SwLayoutFrm::~SwLayoutFrm()
delete pFrm;
pFrm = pLower;
}
- //Fly's vernichten. Der letzte loescht gleich das Array.
+ //Delete the Flys, the last one also deletes the array.
sal_uInt32 nCnt;
while ( GetDrawObjs() && GetDrawObjs()->Count() )
{
commit c198cb5c26daee57b471d0911977081680f91369
Author: Nicolas Christener <nicolas.christener at adfinis-sygroup.ch>
Date: Mon Feb 13 11:37:03 2012 +0100
translate german comments
diff --git a/sw/source/core/layout/dbg_lay.cxx b/sw/source/core/layout/dbg_lay.cxx
index b3458ff..69cdfeb 100644
--- a/sw/source/core/layout/dbg_lay.cxx
+++ b/sw/source/core/layout/dbg_lay.cxx
@@ -29,51 +29,74 @@
#ifdef DBG_UTIL
/*
- * Und hier die Beschreibung:
+ * And here's the description:
*
- * Durch die PROTOCOL-Makros wird es ermoeglicht, Ereignisse im Frame-Methoden zu protokollieren.
- * In protokollwuerdigen Stellen in Frame-Methoden muss entweder ein PROTOCOL(...) oder bei Methoden,
- * bei denen auch das Verlassen der Methode mitprotokolliert werden soll, ein PROTOCOL_ENTER(...)-Makro
- * stehen.
- * Die Parameter der PROTOCOL-Makros sind
- * 1. Ein Pointer auf einen SwFrm, also meist "this" oder "rThis"
- * 2. Die Funktionsgruppe z.B. PROT_MAKEALL, hierueber wird (inline) entschieden, ob dies
- * zur Zeit protokolliert werden soll oder nicht.
- * 3. Die Aktion, im Normalfall 0, aber z.B. ein ACT_START bewirkt eine Einrueckung in der
- * Ausgabedatei, ein ACT_END nimmt dies wieder zurueck. Auf diese Art wird z.B. durch
- * PROTOCOL_ENTER am Anfang einer Methode eingerueckt und beim Verlassen wieder zurueck.
- * 4. Der vierte Parameter ist ein void-Pointer, damit man irgendetwas uebergeben kann,
- * was in das Protokoll einfliessen kann, typesches Beispiel bei PROT_GROW muss man
- * einen Pointer auf den Wert, um den gegrowt werden soll, uebergeben.
+ * The PROTOCOL macros allow you to log events in frame methods. In places where
+ * logging is useful either one of the PROTOCOL(...) or PROTOCOL_ENTER(...) can
+ * be used. PROTOCOL_ENTER(...) additionally logs the leaving of a method.
+
+ * The PROTOCOL macros accept the following parameters:
+ * 1. A pointer to an SwFrm (usually "this" or "rThis")
+ * 2. The function group i.e. PROT_MAKEALL. This is used to decide (inline)
+ * whether this event shall be logged at the current time.
+ * 3. The action, usually 0. For example ACT_START indents output in the log
+ * file and ACT_END stops the indentation. This allows for example
+ * PROTOCOL_ENTER to indent at the beginning of a method and stop indenting
+ * when leaving the method.
+ * 4. The fourth parameter is a void pointer which allows to pass anything
+ * which can be used in the log. A good example is PROT_GROW: this requires
+ * a pointer to the value which defines how much to grow.
*
- *
- * Das Protokoll ist die Datei "dbg_lay.out" im aktuellen (BIN-)Verzeichnis.
- * Es enthaelt Zeilen mit FrmId, Funktionsgruppe sowie weiteren Infos.
+ * The log file is called "dbg_lay.out", which is saved in the current (BIN-)
+ * directory. The file contains lines with FrmId, function group and additional
+ * information.
*
* Was genau protokolliert wird, kann auf folgende Arten eingestellt werden:
- * 1. Die statische Variable SwProtokoll::nRecord enthaelt die Funktionsgruppen,
- * die aufgezeichnet werden sollen.
- * Ein Wert von z.B. PROT_GROW bewirkt, das Aufrufe von SwFrm::Grow dokumentiert werden,
- * PROT_MAKEALL protokolliert Aufrufe von xxx::MakeAll.
- * Die PROT_XY-Werte koennen oderiert werden.
- * Default ist Null, es wird keine Methode aufgezeichnet.
- * 2. In der SwImplProtocol-Klasse gibt es einen Filter fuer Frame-Typen,
- * nur die Methodenaufrufe von Frame-Typen, die dort gesetzt sind, werden protokolliert.
- * Der Member nTypes kann auf Werte wie FRM_PAGE, FRM_SECTION gesetzt und oderiert werden.
- * Default ist 0xFFFF, d.h. alle Frame-Typen.
+ * What exactly is going to be logged, can be defined as follows:
+ * 1. The static variable SwProtocol::nRecord contains the function groups
+ * which shall be logged.
+ * A value of i.e. PROT_GROW causes calls to SwFrm::Grow to be
+ * logged; PROT_MAKEALL logs the calls to xxx::MakeAll.
+ * The PROT_XY values can be combined using binary OR, the default value
+ * is null - no method calls are logged.
+ * 2. The SwImplProtocol class contains a filter for frame types, only method
+ * call of frame types which are defined there are logged.
+ * The member nTypes can be set to values like FRM_PAGE or FRM_SECTION and
+ * may be combined using binary OR. The default values is 0xFFFF - meaning
+ * all frame types.
+
* 3. In der SwImplProtocol-Klasse gibt es einen ArrayPointer auf FrmIds, die zu ueberwachen sind.
* Ist der Pointer Null, so werden alle Frames protokolliert, ansonsten nur Frames,
* die in dem Array vermerkt sind.
+
+ * 3. The SwImplProtocol class contains an ArrayPointer to FrmIds which need to be
+ * tracked. If the pointer is null, all frames will be logged; otherwise
+ * only frames of linked from the array will be logged.
*
* Eine Aufzeichnung in Gang zu setzen, erfordert entweder Codemanipulation, z.B. in
* SwProtocol::Init() einen anderen Default fuer nRecord setzen oder Debuggermanipulation.
* Im Debugger gibt verschiedene, sich anbietende Stellen:
+
+ * Code changes are needed to start logging; either change the default of nRecord
+ * in SwProtocol::Init() or change the debugger. There are several possible
+ * places in the debugger:
+
* 1. In SwProtocol::Init() einen Breakpoint setzen und dort nRecord manipulieren, ggf.
* FrmIds eintragen, dann beginnt die Aufzeichnung bereits beim Programmstart.
+
+ * 1. Set a breakpoint in SwProtocol::Init() and manipulate nRecord there, set
+ FrmIds accordingly then start logging during program start.
+
* 2. Waehrend des Programmlaufs einen Breakpoint vor irgendein PROTOCOL oder PROTOCOL_ENTER-
* Makro setzen, dann am SwProtocol::nRecord das unterste Bit setzen (PROT_INIT). Dies
* bewirkt, dass die Funktionsgruppe des folgenden Makros aktiviert und in Zukunft
* protokolliert wird.
+
+ * 2. Set a breakpoint before any PROTOCOL or PROTOCOL_ENTER macro during
+ program execution, then set the lowest bit (PROT_INIT) of
+ SwProtocol::nRecord. This activates the function group of the following
+ macro and causes it to be logged in the future.
+
* 3. Spezialfall von 2.: Wenn man 2. in der Methode SwRootFrm::Paint(..) anwendet, werden
* die Aufzeichnungseinstellung aus der Datei "dbg_lay.ini" ausgelesen!
* In dieser INI-Datei kann es Kommentarzeilen geben, diese beginnen mit '#', dann
@@ -98,9 +121,39 @@
* [frmtype] !0x3FFF 0x4
* ------------------------------------------
*
+ * 3. There's a special case for 2: If one uses 2. in SwRootFrm::Paint(..),
+ * the log settings are taken from the file "dbg_lay.ini"!
+ * In this INI-file you can have comment lines starting with a '#'.
+ * The sections "[frmid]", "[frmtype]" and "[record]" are relevant.
+ * In the [frmid] section, you can put FrameIds of the Frames to be logged.
+ * If there are no entries in this section, all Frames will be logged.
+ * In the [frmtype] section, the frame types which should be logged are
+ * listed; default is USHRT_MAX which means that all types are logged.
+ * It's possible to remove types from the list using '!' in front of a
+ * value. The value !0xC000 would for example exclude SwCntntFrms from
+ * logging.
+ * In the [record] section the functions group which should be logged are
+ * listed; default is 0 which means that none are logged. It's also
+ * possible to remove functions using '!'.
+ * An example INI file:
+ * ------------------------------------------
+ * #Functions: all, except PRTARE
+ * [record] 0xFFFFFFFE !0x200
+ * [frmid]
+ * #the following FrmIds:
+ * 1 2 12 13 14 15
+ * #no layout frames, except ColumnFrms
+ * [frmtype] !0x3FFF 0x4
+ * ------------------------------------------
+
* Wenn die Aufzeichnung erstmal laeuft, kann man in SwImplProtocol::_Record(...) mittels
* Debugger vielfaeltige Manipulationen vornehmen, z.B. bezueglich FrameTypen oder FrmIds.
*
+
+ * As soon as the logging is in process, one can manipulate many things in
+ * SwImplProtocol::_Record(...) using a debugger, especially concerning
+ * frame types and FrmIds.
+
* --------------------------------------------------*/
#include "dbg_lay.hxx"
@@ -137,16 +190,15 @@ sal_uLong lcl_GetFrameId( const SwFrm* pFrm )
class SwImplProtocol
{
- SvFileStream *pStream; // Ausgabestream
- std::set<sal_uInt16> *pFrmIds; // welche FrmIds sollen aufgezeichnet werden ( NULL == alle )
- std::vector<long> aVars; // Variables
- rtl::OStringBuffer aLayer; // Einrueckung der Ausgabe (" " pro Start/End)
- sal_uInt16 nTypes; // welche Typen sollen aufgezeichnet werden
- sal_uInt16 nLineCount; // Ausgegebene Zeilen
- sal_uInt16 nMaxLines; // Maximal auszugebende Zeilen
- sal_uInt8 nInitFile; // Bereich (FrmId,FrmType,Record) beim Einlesen der INI-Datei
- sal_uInt8 nTestMode; // Special fuer Testformatierung, es wird ggf. nur
- // innerhalb einer Testformatierung aufgezeichnet.
+ SvFileStream *pStream; // output stream
+ std::set<sal_uInt16> *pFrmIds; // which FrmIds shall be logged ( NULL == all)
+ std::vector<long> aVars; // variables
+ rtl::OStringBuffer aLayer; // indentation of output (" " per start/end)
+ sal_uInt16 nTypes; // which types shall be logged
+ sal_uInt16 nLineCount; // printed lines
+ sal_uInt16 nMaxLines; // max lines to be printed
+ sal_uInt8 nInitFile; // range (FrmId,FrmType,Record) during reading of the INI file
+ sal_uInt8 nTestMode; // special for test formating, logging may only be done in test formating.
void _Record( const SwFrm* pFrm, sal_uLong nFunction, sal_uLong nAct, void* pParam );
sal_Bool NewStream();
void CheckLine( rtl::OString& rLine );
@@ -154,41 +206,38 @@ class SwImplProtocol
public:
SwImplProtocol();
~SwImplProtocol();
- // Aufzeichnen
+ // logging
void Record( const SwFrm* pFrm, sal_uLong nFunction, sal_uLong nAct, void* pParam )
{ if( pStream ) _Record( pFrm, nFunction, nAct, pParam ); }
- sal_Bool InsertFrm( sal_uInt16 nFrmId ); // FrmId aufnehmen zum Aufzeichnen
- sal_Bool DeleteFrm( sal_uInt16 nFrmId ); // FrmId entfernen, diesen nicht mehr Aufzeichnen
- void FileInit(); // Auslesen der INI-Datei
+ sal_Bool InsertFrm( sal_uInt16 nFrmId ); // take FrmId for logging
+ sal_Bool DeleteFrm( sal_uInt16 nFrmId ); // remove FrmId; don't log him anymore
+ void FileInit(); // read the INI file
void ChkStream() { if( !pStream ) NewStream(); }
};
/* --------------------------------------------------
- * Durch das PROTOCOL_ENTER-Makro wird ein SwEnterLeave-Objekt erzeugt,
- * wenn die aktuelle Funktion aufgezeichnet werden soll, wird ein
- * SwImplEnterLeave-Objekt angelegt. Der Witz dabei ist, das der Ctor
- * des Impl-Objekt am Anfang der Funktion und automatisch der Dtor beim
- * Verlassen der Funktion gerufen wird. In der Basis-Implementierung ruft
- * der Ctor lediglich ein PROTOCOL(..) mit ACT_START und im Dtor ein
- * PROTOCOL(..) mit ACT_END.
- * Es lassen sich Ableitungen der Klasse bilden, um z.B. beim Verlassen
- * einer Funktion Groessenaenderungen des Frames zu dokumentieren u.v.a.m.
- * Dazu braucht dann nur noch in SwEnterLeave::Ctor(...) die gewuenschte
- * SwImplEnterLeave-Klasse angelegt zu werden.
- *
+ * Through the PROTOCOL_ENTER macro a SwEnterLeave object gets created. If the
+ * current function should be logged a SwImplEnterLeace object gets created.
+ * The funny thing here is, that the Ctor of the Impl object is automatically
+ * called at the beginning of the function and the Dtor is automatically called
+ * when leaving the function. In the base implementation the Ctor calls only
+ * PROTOCOL(..) with ACT_START and in the Dtor a PROTOCOL(..) with ACT_END.
+ * It's possible to derive from this class, for example to be able to document
+ * frame resize while leaving a function. To do this, one only needs to add the
+ * desired SwImplEnterLeave class in SwEnterLeave::Ctor().
* --------------------------------------------------*/
class SwImplEnterLeave
{
protected:
- const SwFrm* pFrm; // Der Frame,
- sal_uLong nFunction, nAction; // die Funktion, ggf. die Aktion
- void* pParam; // und weitere Parameter
+ const SwFrm* pFrm; // the frame
+ sal_uLong nFunction, nAction; // the function, the action if needed
+ void* pParam; // further parameter
public:
SwImplEnterLeave( const SwFrm* pF, sal_uLong nFunct, sal_uLong nAct, void* pPar )
: pFrm( pF ), nFunction( nFunct ), nAction( nAct ), pParam( pPar ) {}
- virtual void Enter(); // Ausgabe beim Eintritt
- virtual void Leave(); // Ausgabe beim Verlassen
+ virtual void Enter(); // message when entering
+ virtual void Leave(); // message when leaving
};
class SwSizeEnterLeave : public SwImplEnterLeave
@@ -197,7 +246,7 @@ class SwSizeEnterLeave : public SwImplEnterLeave
public:
SwSizeEnterLeave( const SwFrm* pF, sal_uLong nFunct, sal_uLong nAct, void* pPar )
: SwImplEnterLeave( pF, nFunct, nAct, pPar ), nFrmHeight( pF->Frm().Height() ) {}
- virtual void Leave(); // Ausgabe der Groessenaenderung
+ virtual void Leave(); // resize message
};
class SwUpperEnterLeave : public SwImplEnterLeave
@@ -206,8 +255,8 @@ class SwUpperEnterLeave : public SwImplEnterLeave
public:
SwUpperEnterLeave( const SwFrm* pF, sal_uLong nFunct, sal_uLong nAct, void* pPar )
: SwImplEnterLeave( pF, nFunct, nAct, pPar ), nFrmId( 0 ) {}
- virtual void Enter(); // Ausgabe
- virtual void Leave(); // Ausgabe der FrmId des Uppers
+ virtual void Enter(); // message
+ virtual void Leave(); // message of FrmId from upper
};
class SwFrmChangesLeave : public SwImplEnterLeave
@@ -216,33 +265,34 @@ class SwFrmChangesLeave : public SwImplEnterLeave
public:
SwFrmChangesLeave( const SwFrm* pF, sal_uLong nFunct, sal_uLong nAct, void* pPar )
: SwImplEnterLeave( pF, nFunct, nAct, pPar ), aFrm( pF->Frm() ) {}
- virtual void Enter(); // keine Ausgabe
- virtual void Leave(); // Ausgabe bei Aenderung der Frm-Area
+ virtual void Enter(); // no message
+ virtual void Leave(); // message when resizing the Frm area
};
void SwProtocol::Record( const SwFrm* pFrm, sal_uLong nFunction, sal_uLong nAct, void* pParam )
{
if( Start() )
- { // Hier landen wir, wenn im Debugger SwProtocol::nRecord mit PROT_INIT(0x1) oderiert wurde
- sal_Bool bFinit = sal_False; // Dies bietet im Debugger die Moeglichkeit,
- if( bFinit ) // die Aufzeichnung dieser Action zu beenden
+ { // We reach this point if SwProtocol::nRecord is binary OR'd with PROT_INIT(0x1) using the debugger
+ sal_Bool bFinit = sal_False; // This gives the possibility to stop logging of this action in the debugger
+ if( bFinit )
{
- nRecord &= ~nFunction; // Diese Funktion nicht mehr aufzeichnen
- nRecord &= ~PROT_INIT; // PROT_INIT stets zuruecksetzen
+ nRecord &= ~nFunction; // Don't log this function any longer
+ nRecord &= ~PROT_INIT; // Always reset PROT_INIT
return;
}
- nRecord |= nFunction; // Aufzeichnung dieser Funktion freischalten
- nRecord &= ~PROT_INIT; // PROT_INIT stets zuruecksetzen
+ nRecord |= nFunction; // Acitivate logging of this function
+ nRecord &= ~PROT_INIT; // Always reset PROT_INIT
if( pImpl )
pImpl->ChkStream();
}
- if( !pImpl ) // Impl-Object anlegen, wenn noetig
+ if( !pImpl ) // Create Impl object if needed
pImpl = new SwImplProtocol();
- pImpl->Record( pFrm, nFunction, nAct, pParam ); // ...und Aufzeichnen
+ pImpl->Record( pFrm, nFunction, nAct, pParam ); // ...and start logging
}
-// Die folgende Funktion wird beim Anziehen der Writer-DLL durch TxtInit(..) aufgerufen
-// und ermoeglicht dem Debuggenden Funktionen und/oder FrmIds freizuschalten
+// The following function gets called when pulling in the writer DLL through
+// TxtInit(..) and gives the possibility to release functions
+// and/or FrmIds to the debugger
void SwProtocol::Init()
{
@@ -257,7 +307,7 @@ void SwProtocol::Init()
aStream.Close();
}
-// Ende der Aufzeichnung
+// End of logging
void SwProtocol::Stop()
{
@@ -304,43 +354,43 @@ SwImplProtocol::~SwImplProtocol()
}
/* --------------------------------------------------
- * SwImplProtocol::CheckLine analysiert eine Zeile der INI-Datei
+ * SwImplProtocol::CheckLine analyzes a line in the INI file
* --------------------------------------------------*/
void SwImplProtocol::CheckLine( rtl::OString& rLine )
{
- rLine = rLine.toAsciiLowerCase(); // Gross/Kleinschreibung ist einerlei
+ rLine = rLine.toAsciiLowerCase(); // upper/lower case is the same
rLine = rLine.replace( '\t', ' ' );
- if( '#' == rLine[0] ) // Kommentarzeilen beginnen mit '#'
+ if( '#' == rLine[0] ) // comments start with '#'
return;
- if( '[' == rLine[0] ) // Bereiche: FrmIds, Typen oder Funktionen
+ if( '[' == rLine[0] ) // section: FrmIds, type or funciton
{
rtl::OString aTmp = comphelper::string::getToken(rLine, 0, ']');
- if (aTmp.equalsL(RTL_CONSTASCII_STRINGPARAM("[frmid"))) // Bereich FrmIds
+ if (aTmp.equalsL(RTL_CONSTASCII_STRINGPARAM("[frmid"))) // section FrmIds
{
nInitFile = 1;
pFrmIds->clear();
delete pFrmIds;
- pFrmIds = NULL; // Default: Alle Frames aufzeichnen
+ pFrmIds = NULL; // default: log all frames
}
- else if (aTmp.equalsL(RTL_CONSTASCII_STRINGPARAM("[frmtype")))// Bereich Typen
+ else if (aTmp.equalsL(RTL_CONSTASCII_STRINGPARAM("[frmtype")))// section types
{
nInitFile = 2;
- nTypes = USHRT_MAX; // Default: Alle FrmaeTypen aufzeichnen
+ nTypes = USHRT_MAX; // default: log all frame types
}
- else if (aTmp.equalsL(RTL_CONSTASCII_STRINGPARAM("[record")))// Bereich Funktionen
+ else if (aTmp.equalsL(RTL_CONSTASCII_STRINGPARAM("[record")))// section functions
{
nInitFile = 3;
- SwProtocol::SetRecord( 0 );// Default: Keine Funktion wird aufgezeichnet
+ SwProtocol::SetRecord( 0 );// default: don't log any function
}
- else if (aTmp.equalsL(RTL_CONSTASCII_STRINGPARAM("[test")))// Bereich Funktionen
+ else if (aTmp.equalsL(RTL_CONSTASCII_STRINGPARAM("[test")))// section functions
{
- nInitFile = 4; // Default:
- nTestMode = 0; // Ausserhalb der Testformatierung wird aufgezeichnet
+ nInitFile = 4; // default:
+ nTestMode = 0; // log outside of test formating
}
- else if (aTmp.equalsL(RTL_CONSTASCII_STRINGPARAM("[max")))// maximale Zeilenzahl
+ else if (aTmp.equalsL(RTL_CONSTASCII_STRINGPARAM("[max")))// Max number of lines
{
- nInitFile = 5; // Default:
+ nInitFile = 5; // default:
nMaxLines = USHRT_MAX;
}
else if (aTmp.equalsL(RTL_CONSTASCII_STRINGPARAM("[var")))// variables
@@ -348,11 +398,11 @@ void SwImplProtocol::CheckLine( rtl::OString& rLine )
nInitFile = 6;
}
else
- nInitFile = 0; // Nanu: Unbekannter Bereich?
+ nInitFile = 0; // oops: unknown section?
rLine = rLine.copy(aTmp.getLength() + 1);
}
- // Blanks (oder Tabs) sind die Trenner
+ // spaces (or tabs) are the delimiter
sal_Int32 nIndex = 0;
do
{
@@ -360,7 +410,7 @@ void SwImplProtocol::CheckLine( rtl::OString& rLine )
sal_Bool bNo = sal_False;
if( '!' == aTok[0] )
{
- bNo = sal_True; // Diese(n) Funktion/Typ entfernen
+ bNo = sal_True; // remove this function/type
aTok = aTok.copy(1);
}
if( !aTok.isEmpty() )
@@ -369,31 +419,31 @@ void SwImplProtocol::CheckLine( rtl::OString& rLine )
sscanf( aTok.getStr(), "%li", &nVal );
switch ( nInitFile )
{
- case 1: InsertFrm( sal_uInt16( nVal ) ); // FrmId aufnehmen
+ case 1: InsertFrm( sal_uInt16( nVal ) ); // add FrmId
break;
case 2: {
sal_uInt16 nNew = (sal_uInt16)nVal;
if( bNo )
- nTypes &= ~nNew; // Typ entfernen
+ nTypes &= ~nNew; // remove type
else
- nTypes |= nNew; // Typ aufnehmen
+ nTypes |= nNew; // add type
}
break;
case 3: {
sal_uLong nOld = SwProtocol::Record();
if( bNo )
- nOld &= ~nVal; // Funktion entfernen
+ nOld &= ~nVal; // remove function
else
- nOld |= nVal; // Funktion aufnehmen
+ nOld |= nVal; // remove function
SwProtocol::SetRecord( nOld );
}
break;
case 4: {
sal_uInt8 nNew = (sal_uInt8)nVal;
if( bNo )
- nTestMode &= ~nNew; // TestMode zuruecksetzen
+ nTestMode &= ~nNew; // reset test mode
else
- nTestMode |= nNew; // TestMode setzen
+ nTestMode |= nNew; // set test mode
}
break;
case 5: nMaxLines = (sal_uInt16)nVal;
@@ -407,8 +457,8 @@ void SwImplProtocol::CheckLine( rtl::OString& rLine )
}
/* --------------------------------------------------
- * SwImplProtocol::FileInit() liest die Datei "dbg_lay.ini"
- * im aktuellen Verzeichnis und wertet sie aus.
+ * SwImplProtocol::FileInit() reads the file "dbg_lay.ini"
+ * in the current directory and evaluates it.
* --------------------------------------------------*/
void SwImplProtocol::FileInit()
{
@@ -422,25 +472,25 @@ void SwImplProtocol::FileInit()
{
sal_Char c;
aStream >> c;
- if( '\n' == c || '\r' == c ) // Zeilenende
+ if( '\n' == c || '\r' == c ) // line ending
{
aLine = aLine.trim();
if( !aLine.isEmpty() )
- CheckLine( aLine ); // Zeile auswerten
+ CheckLine( aLine ); // evaluate line
aLine = rtl::OString();
}
else
aLine = rtl::OString(c);
}
if( !aLine.isEmpty() )
- CheckLine( aLine ); // letzte Zeile auswerten
+ CheckLine( aLine ); // evaluate last line
}
aStream.Close();
}
/* --------------------------------------------------
- * lcl_Start sorgt fuer Einrueckung um zwei Blanks bei ACT_START
- * und nimmt diese bei ACT_END wieder zurueck.
+ * lcl_Start enables indentation by two spaces during ACT_START and disables
+ * it again at ACT_END.
* --------------------------------------------------*/
void lcl_Start(rtl::OStringBuffer& rOut, rtl::OStringBuffer& rLay, sal_uLong nAction)
{
@@ -461,8 +511,8 @@ void lcl_Start(rtl::OStringBuffer& rOut, rtl::OStringBuffer& rLay, sal_uLong nAc
}
/* --------------------------------------------------
- * lcl_Flags gibt das ValidSize-, ValidPos- und ValidPrtArea-Flag ("Sz","Ps","PA")
- * des Frames aus, "+" fuer valid, "-" fuer invalid.
+ * lcl_Flags outputs the ValidSize-, ValidPos- and ValidPrtArea-Flag ("Sz","Ps","PA")
+ * of the frame; "+" stands for valid, "-" stands for invalid.
* --------------------------------------------------*/
void lcl_Flags(rtl::OStringBuffer& rOut, const SwFrm* pFrm)
@@ -476,7 +526,7 @@ void lcl_Flags(rtl::OStringBuffer& rOut, const SwFrm* pFrm)
}
/* --------------------------------------------------
- * lcl_FrameType gibt den Typ des Frames in Klartext aus.
+ * lcl_FrameType outputs the type of the frame as clear text.
* --------------------------------------------------*/
void lcl_FrameType( rtl::OStringBuffer& rOut, const SwFrm* pFrm )
@@ -525,16 +575,15 @@ void lcl_FrameType( rtl::OStringBuffer& rOut, const SwFrm* pFrm )
}
/* --------------------------------------------------
- * SwImplProtocol::Record(..) wird nur gerufen, wenn das PROTOCOL-Makro
- * feststellt, dass die Funktion aufgezeichnet werden soll ( SwProtocol::nRecord ).
- * In dieser Methode werden noch die beiden weiteren Einschraenkungen ueberprueft,
- * ob die FrmId und der FrameType zu den aufzuzeichnenden gehoeren.
+ * SwImplProtocol::Record(..) is only called if the PROTOCOL macro finds out,
+ * that this function should be recorded ( SwProtocol::nRecord ).
+ * In this method we also check if FrmId and frame type should be logged.
* --------------------------------------------------*/
void SwImplProtocol::_Record( const SwFrm* pFrm, sal_uLong nFunction, sal_uLong nAct, void* pParam )
{
sal_uInt16 nSpecial = 0;
- if( nSpecial ) // Debugger-Manipulationsmoeglichkeit
+ if( nSpecial ) // the possible debugger manipulations
{
sal_uInt16 nId = sal_uInt16(lcl_GetFrameId( pFrm ));
switch ( nSpecial )
@@ -547,22 +596,22 @@ void SwImplProtocol::_Record( const SwFrm* pFrm, sal_uLong nFunction, sal_uLong
return;
}
if( !pStream && !NewStream() )
- return; // Immer noch kein Stream
+ return; // still no stream
if( pFrmIds && !pFrmIds->count( sal_uInt16(lcl_GetFrameId( pFrm )) ) )
- return; // gehoert nicht zu den gewuenschten FrmIds
+ return; // doesn't belong to the wished FrmIds
if( !(pFrm->GetType() & nTypes) )
- return; // Der Typ ist unerwuenscht
+ return; // the type is unwanted
if( 1 == nTestMode && nFunction != PROT_TESTFORMAT )
- return; // Wir sollen nur innerhalb einer Testformatierung aufzeichnen
+ return; // we may only log inside a test formating
sal_Bool bTmp = sal_False;
rtl::OStringBuffer aOut(aLayer);
aOut.append(static_cast<sal_Int64>(lcl_GetFrameId(pFrm)));
aOut.append(' ');
- lcl_FrameType( aOut, pFrm ); // dann den FrameType
- switch ( nFunction ) // und die Funktion
+ lcl_FrameType( aOut, pFrm ); // then the frame type
+ switch ( nFunction ) // and the function
{
case PROT_SNAPSHOT: lcl_Flags( aOut, pFrm );
break;
@@ -684,15 +733,15 @@ void SwImplProtocol::_Record( const SwFrm* pFrm, sal_uLong nFunction, sal_uLong
break;
}
}
- *pStream << aOut.getStr() << endl; // Ausgabe
- pStream->Flush(); // Gleich auf die Platte, damit man mitlesen kann
- if( ++nLineCount >= nMaxLines ) // Maximale Ausgabe erreicht?
- SwProtocol::SetRecord( 0 ); // => Ende der Aufzeichnung
+ *pStream << aOut.getStr() << endl; // output
+ pStream->Flush(); // to the disk, so we can read it immediately
+ if( ++nLineCount >= nMaxLines ) // max number of lines reached?
+ SwProtocol::SetRecord( 0 ); // => end f logging
}
/* --------------------------------------------------
- * SwImplProtocol::SectFunc(...) wird von SwImplProtocol::_Record(..) gerufen,
- * hier werden die Ausgaben rund um SectionFrms abgehandelt.
+ * SwImplProtocol::SectFunc(...) is called from SwImplProtocol::_Record(..)
+ * here we handle the output of the SectionFrms.
* --------------------------------------------------*/
void SwImplProtocol::SectFunc(rtl::OStringBuffer &rOut, const SwFrm* , sal_uLong nAct, void* pParam)
@@ -723,9 +772,9 @@ void SwImplProtocol::SectFunc(rtl::OStringBuffer &rOut, const SwFrm* , sal_uLong
}
/* --------------------------------------------------
- * SwImplProtocol::InsertFrm(..) nimmt eine neue FrmId zum Aufzeichnen auf,
- * wenn pFrmIds==NULL, werden alle aufgezeichnet, sobald durch InsertFrm(..)
- * pFrmIds angelegt wird, werden nur noch die enthaltenen FrmIds aufgezeichnet.
+ * SwImplProtocol::InsertFrm(..) takes a new FrmId for logging; if pFrmIds==NULL
+ * all are going to be logged but as soon as pFrmIds are set through
+ * InsertFrm(..) only the added FrmIds are being logged.
* --------------------------------------------------*/
sal_Bool SwImplProtocol::InsertFrm( sal_uInt16 nId )
@@ -739,8 +788,8 @@ sal_Bool SwImplProtocol::InsertFrm( sal_uInt16 nId )
}
/* --------------------------------------------------
- * SwImplProtocol::DeleteFrm(..) entfernt eine FrmId aus dem pFrmIds-Array,
- * so dass diese Frame nicht mehr aufgezeichnet wird.
+ * SwImplProtocol::DeleteFrm(..) removes a FrmId from the pFrmIds array, so they
+ * won't be logged anymore.
* --------------------------------------------------*/
sal_Bool SwImplProtocol::DeleteFrm( sal_uInt16 nId )
{
@@ -752,10 +801,10 @@ sal_Bool SwImplProtocol::DeleteFrm( sal_uInt16 nId )
}
/* --------------------------------------------------
- * SwEnterLeave::Ctor(..) wird vom eigentlichen (inline-)Kontruktor gerufen,
- * wenn die Funktion aufgezeichnet werden soll.
- * Die Aufgabe ist es abhaengig von der Funktion das richtige SwImplEnterLeave-Objekt
- * zu erzeugen, alles weitere geschieht dann in dessen Ctor/Dtor.
+ * SwEnterLeave::Ctor(..) is called from the (inline-)CTor if the function should
+ * be logged.
+ * The task here is to find the right SwImplEnterLeave object based on the
+ * function; everything else is then done in his Ctor/Dtor.
* --------------------------------------------------*/
void SwEnterLeave::Ctor( const SwFrm* pFrm, sal_uLong nFunc, sal_uLong nAct, void* pPar )
{
@@ -773,9 +822,9 @@ void SwEnterLeave::Ctor( const SwFrm* pFrm, sal_uLong nFunc, sal_uLong nAct, voi
}
/* --------------------------------------------------
- * SwEnterLeave::Dtor() ruft lediglich den Destruktor des SwImplEnterLeave-Objekts,
- * ist nur deshalb nicht inline, damit die SwImplEnterLeave-Definition nicht
- * im dbg_lay.hxx zu stehen braucht.
+ * SwEnterLeave::Dtor() only calls the Dtor of the SwImplEnterLeave object. It's
+ * just no inline because we don't want the SwImplEnterLeave definition inside
+ * dbg_lay.hxx.
* --------------------------------------------------*/
void SwEnterLeave::Dtor()
commit fde84025da96ae2270ebd3ef9d779c284c650608
Author: Nicolas Christener <nicolas.christener at adfinis-sygroup.ch>
Date: Wed Feb 15 22:30:06 2012 +0100
translate german comments
diff --git a/sw/source/core/layout/wsfrm.cxx b/sw/source/core/layout/wsfrm.cxx
index 5cd17ee..ff03015 100644
--- a/sw/source/core/layout/wsfrm.cxx
+++ b/sw/source/core/layout/wsfrm.cxx
@@ -969,7 +969,6 @@ void SwCntntFrm::Cut()
pFrm->_InvalidatePos();
pFrm->InvalidatePage( pPage );
}
- //Ausserdem kann eine Leerseite entstanden sein.
//If I'm (was) the only CntntFrm in my upper, he has to do the
//retouching.
else
@@ -1076,12 +1075,12 @@ void SwLayoutFrm::Paste( SwFrm* pParent, SwFrm* pSibling)
{
OSL_ENSURE( pParent, "No parent for pasting." );
OSL_ENSURE( pParent->IsLayoutFrm(), "Parent is CntntFrm." );
- OSL_ENSURE( pParent != this, "Bin selbst der Parent." );
- OSL_ENSURE( pSibling != this, "Bin mein eigener Nachbar." );
+ OSL_ENSURE( pParent != this, "I'm the parent oneself." );
+ OSL_ENSURE( pSibling != this, "I'm my own neighbour." );
OSL_ENSURE( !GetPrev() && !GetNext() && !GetUpper(),
- "Bin noch irgendwo angemeldet." );
+ "I'm still registered somewhere." );
- //In den Baum einhaengen.
+ //Insert in the tree.
InsertBefore( (SwLayoutFrm*)pParent, pSibling );
// OD 24.10.2002 #103517# - correct setting of variable <fnRect>
@@ -1151,8 +1150,8 @@ void SwLayoutFrm::Paste( SwFrm* pParent, SwFrm* pSibling)
if( (Frm().*fnRect->fnGetHeight)() )
{
- // AdjustNeighbourhood wird jetzt auch in Spalten aufgerufen,
- // die sich nicht in Rahmen befinden
+ // AdjustNeighbourhood is now also called in columns which are not
+ // placed inside the frame
sal_uInt8 nAdjust = GetUpper()->IsFtnBossFrm() ?
((SwFtnBossFrm*)GetUpper())->NeighbourhoodAdjustment( this )
: NA_GROW_SHRINK;
@@ -1185,11 +1184,11 @@ void SwLayoutFrm::Cut()
SWRECTFN( this )
SwTwips nShrink = (Frm().*fnRect->fnGetHeight)();
- //Erst removen, dann Upper Shrinken.
+ //Remove first, then shrink upper.
SwLayoutFrm *pUp = GetUpper();
- // AdjustNeighbourhood wird jetzt auch in Spalten aufgerufen,
- // die sich nicht in Rahmen befinden
+ // AdjustNeighbourhood is now also called in columns which are not
+ // placed inside the frame
// Remove must not be called before a AdjustNeighbourhood, but it has to
// be called before the upper-shrink-call, if the upper-shrink takes care
@@ -1241,7 +1240,7 @@ void SwLayoutFrm::Cut()
|*************************************************************************/
SwTwips SwFrm::Grow( SwTwips nDist, sal_Bool bTst, sal_Bool bInfo )
{
- OSL_ENSURE( nDist >= 0, "Negatives Wachstum?" );
+ OSL_ENSURE( nDist >= 0, "Negative growth?" );
PROTOCOL_ENTER( this, bTst ? PROT_GROW_TST : PROT_GROW, 0, &nDist )
@@ -1290,7 +1289,7 @@ SwTwips SwFrm::Grow( SwTwips nDist, sal_Bool bTst, sal_Bool bInfo )
|*************************************************************************/
SwTwips SwFrm::Shrink( SwTwips nDist, sal_Bool bTst, sal_Bool bInfo )
{
- OSL_ENSURE( nDist >= 0, "Negative Verkleinerung?" );
+ OSL_ENSURE( nDist >= 0, "Negative reduction?" );
PROTOCOL_ENTER( this, bTst ? PROT_SHRINK_TST : PROT_SHRINK, 0, &nDist )
@@ -1333,50 +1332,46 @@ SwTwips SwFrm::Shrink( SwTwips nDist, sal_Bool bTst, sal_Bool bInfo )
|*
|* SwFrm::AdjustNeighbourhood()
|*
-|* Beschreibung Wenn sich die Groesse eines Frm's direkt unterhalb
-|* eines Fussnotenbosses (Seite/Spalte) veraendert hat, so muss dieser
-|* "Normalisiert" werden.
-|* Es gibt dort immer einen Frame, der den "maximal moeglichen" Raum
-|* einnimmt (der Frame, der den Body.Text enhaelt) und keinen oder
-|* mehrere Frames die den Platz einnehmen den sie halt brauchen
-|* (Kopf-/Fussbereich, Fussnoten).
-|* Hat sich einer der Frames veraendert, so muss der Body-Text-Frame
-|* entsprechen wachsen oder schrumpfen; unabhaegig davon, dass er fix ist.
-|* !! Ist es moeglich dies allgemeiner zu loesen, also nicht auf die
-|* Seite beschraenkt und nicht auf einen Speziellen Frame, der den
-|* maximalen Platz einnimmt (gesteuert ueber Attribut FrmSize)? Probleme:
-|* Was ist wenn mehrere Frames nebeneinander stehen, die den maximalen
-|* Platz einnehmen?
-|* Wie wird der Maximale Platz berechnet?
-|* Wie klein duerfen diese Frames werden?
-|*
-|* Es wird auf jeden Fall nur so viel Platz genehmigt, dass ein
-|* Minimalwert fuer die Hoehe des Bodys nicht unterschritten wird.
-|*
-|* Parameter: nDiff ist der Betrag, um den Platz geschaffen werden muss
+|* Description A Frm needs "normalization" if it is directly placed
+|* below a footnote boss (page/column) and its size changed.
+|* There's always a frame which takes the maximum possible space (the
+|* frame which contains the Body.Text) and zero or more frames which
+|* only take the space needed (header/footer area, footnote).
+|* If one of frames changed, the body-text-frame has to grow or shrink
+|* accordingly; even tough it's fixed.
+|* !! Is it possible to do this in a generic way and not restrict it to
+|* the page and a distinct frame which takes the maximum space (controlled
+|* using the FrmSize attribute)? Problems: What if multiple frames taking
+|* the maximum space are placed next to each other?
+|* How is the maximum space calculated?
+|* How small can those frames become?
+|*
+|* In any case, only a certain amount of space is allowed, so we
+|* never go below a minimum value for the height of the body.
+|*
+|* Parameter: nDiff is the value around which the space has to be allocated
|*
|*************************************************************************/
SwTwips SwFrm::AdjustNeighbourhood( SwTwips nDiff, sal_Bool bTst )
{
PROTOCOL_ENTER( this, PROT_ADJUSTN, 0, &nDiff );
- if ( !nDiff || !GetUpper()->IsFtnBossFrm() ) // nur innerhalb von Seiten/Spalten
+ if ( !nDiff || !GetUpper()->IsFtnBossFrm() ) // only inside pages/columns
return 0L;
const ViewShell *pSh = getRootFrm()->GetCurrShell();
const sal_Bool bBrowse = pSh && pSh->GetViewOptions()->getBrowseMode();
- //Der (Page)Body veraendert sich nur im BrowseMode, aber nicht wenn er
- //Spalten enthaelt.
+ //The (Page-)Body only changes in BrwoseMode, but only if it does not
+ //contain columns.
if ( IsPageBodyFrm() && (!bBrowse ||
(((SwLayoutFrm*)this)->Lower() &&
((SwLayoutFrm*)this)->Lower()->IsColumnFrm())) )
return 0L;
- //In der BrowseView kann der PageFrm selbst ersteinmal einiges von den
- //Wuenschen abfangen.
+ //In BrowseView mode the PageFrm can handle some of the requests.
long nBrowseAdd = 0;
- if ( bBrowse && GetUpper()->IsPageFrm() ) // nur (Page)BodyFrms
+ if ( bBrowse && GetUpper()->IsPageFrm() ) // only (Page-)BodyFrms
{
ViewShell *pViewShell = getRootFrm()->GetCurrShell();
SwLayoutFrm *pUp = GetUpper();
@@ -1399,8 +1394,7 @@ SwTwips SwFrm::AdjustNeighbourhood( SwTwips nDiff, sal_Bool bTst )
SetCompletePaint();
if ( !pViewShell || pViewShell->VisArea().Height() >= pUp->Frm().Height() )
{
- //Ersteinmal den Body verkleinern. Der waechst dann schon
- //wieder.
+ //First minimize Body, it will grow again later.
SwFrm *pBody = ((SwFtnBossFrm*)pUp)->FindBodyCont();
const long nTmp = nChg - pBody->Prt().Height();
if ( !bTst )
@@ -1423,20 +1417,19 @@ SwTwips SwFrm::AdjustNeighbourhood( SwTwips nDiff, sal_Bool bTst )
}
else
{
- //Die Seite kann bis auf 0 schrumpfen. Die erste Seite bleibt
- //mindestens so gross wie die VisArea.
+ //The page can shrink to 0. The fist page keeps the same size like
+ //VisArea.
nChg = nDiff;
long nInvaAdd = 0;
if ( pViewShell && !pUp->GetPrev() &&
pUp->Frm().Height() + nDiff < pViewShell->VisArea().Height() )
{
- //Das heisst aber wiederum trotzdem, das wir geeignet invalidieren
- //muessen.
+ //This means, that we have to invalidate adequate.
nChg = pViewShell->VisArea().Height() - pUp->Frm().Height();
nInvaAdd = -(nDiff - nChg);
}
- //Invalidieren inklusive unterem Rand.
+ //Invalidate including bottom border.
long nBorder = nUpPrtBottom + 20;
nBorder -= nChg;
aInva.Top( aInva.Bottom() - (nBorder+nInvaAdd) );
@@ -1446,15 +1439,14 @@ SwTwips SwFrm::AdjustNeighbourhood( SwTwips nDiff, sal_Bool bTst )
if ( !IsHeaderFrm() )
((SwFtnBossFrm*)pUp)->FindBodyCont()->SetCompletePaint();
}
- //Wegen der Rahmen die Seite invalidieren. Dadurch wird die Seite
- //wieder entsprechend gross wenn ein Rahmen nicht passt. Das
- //funktioniert anderfalls nur zufaellig fuer absatzgebundene Rahmen
- //(NotifyFlys).
+ //Invalidate the page because of the frames. Thereby the page becomes
+ //the right size again if a frame didn't fit. This only works
+ //randomly for paragraph bound frames otherwise (NotifyFlys).
pUp->InvalidateSize();
}
if ( !bTst )
{
- //Unabhaengig von nChg
+ //Independent from nChg
if ( pViewShell && aInva.HasArea() && pUp->GetUpper() )
pViewShell->InvalidateWindows( aInva );
}
@@ -1469,7 +1461,7 @@ SwTwips SwFrm::AdjustNeighbourhood( SwTwips nDiff, sal_Bool bTst )
if ( GetNext() )
GetNext()->_InvalidatePos();
- //Ggf. noch ein Repaint ausloesen.
+ //Trigger a repaint if necessary.
const SvxGraphicPosition ePos = pUp->GetFmt()->GetBackground().GetGraphicPos();
if ( ePos != GPOS_NONE && ePos != GPOS_TILED )
pViewShell->InvalidateWindows( pUp->Frm() );
@@ -1479,10 +1471,10 @@ SwTwips SwFrm::AdjustNeighbourhood( SwTwips nDiff, sal_Bool bTst )
if ( pUp->GetNext() )
pUp->GetNext()->InvalidatePos();
- //Mies aber wahr: im Notify am ViewImp wird evtl. ein Calc
- //auf die Seite und deren Lower gerufen. Die Werte sollten
- //unverandert bleiben, weil der Aufrufer bereits fuer die
- //Anpassung von Frm und Prt sorgen wird.
+ //Sad but true: during notify on ViewImp a Calc on the page and
+ //its Lower may be called. The values should not be changed
+ //because the caller takes care of the adjustment of Frm and
+ //Prt.
const long nOldFrmHeight = Frm().Height();
const long nOldPrtHeight = Prt().Height();
const sal_Bool bOldComplete = IsCompletePaint();
@@ -1564,13 +1556,13 @@ SwTwips SwFrm::AdjustNeighbourhood( SwTwips nDiff, sal_Bool bTst )
if ( !pFrm )
return 0;
- //Wenn ich keinen finde eruebrigt sich alles weitere.
+ //If not one is found, everything else is solved.
nReal = (pFrm->Frm().*fnRect->fnGetHeight)();
if( nReal > nDiff )
nReal = nDiff;
if( !bFtnPage )
{
- //Minimalgrenze beachten!
+ //Respect the minimal boundary!
if( nReal )
{
const SwTwips nMax = pBoss->GetVarSpace();
@@ -1582,9 +1574,8 @@ SwTwips SwFrm::AdjustNeighbourhood( SwTwips nDiff, sal_Bool bTst )
&& ( pFrm->GetNext()->IsVertical() == IsVertical() )
)
{
- //Wenn der Body nicht genuegend her gibt, kann ich noch mal
- //schauen ob es eine Fussnote gibt, falls ja kann dieser
- //entsprechend viel gemopst werden.
+ //If the Body doesn't return enough, we look for a footnote, if
+ //there is one, we steal there accordingly.
const SwTwips nAddMax = (pFrm->GetNext()->Frm().*fnRect->
fnGetHeight)();
nAdd = nDiff - nReal;
@@ -1634,11 +1625,12 @@ SwTwips SwFrm::AdjustNeighbourhood( SwTwips nDiff, sal_Bool bTst )
OSL_ENSURE( !pFly->IsFlyInCntFrm(), "FlyInCnt at Page?" );
const SwFmtVertOrient &rVert =
pFly->GetFmt()->GetVertOrient();
- // Wann muss invalidiert werden?
- // Wenn ein Rahmen am SeitenTextBereich ausgerichtet ist,
- // muss bei Aenderung des Headers ein TOP, MIDDLE oder NONE,
- // bei Aenderung des Footers ein BOTTOM oder MIDDLE
- // ausgerichteter Rahmen seine Position neu berechnen.
+ // When do we have to invalidate?
+ // If a frame is aligned on a PageTextArea and the header
+ // changes a TOP, MIDDLE or NONE aligned frame needs to
+ // recalculate it's position; if the footer changes a BOTTOM
+ // or MIDDLE aligned frame needs to recalculate it's
+ // position.
if( ( rVert.GetRelationOrient() == text::RelOrientation::PRINT_AREA ||
rVert.GetRelationOrient() == text::RelOrientation::PAGE_PRINT_AREA ) &&
((IsHeaderFrm() && rVert.GetVertOrient()!=text::VertOrientation::BOTTOM) ||
@@ -1855,7 +1847,7 @@ SwTwips SwCntntFrm::GrowFrm( SwTwips nDist, sal_Bool bTst, sal_Bool bInfo )
const ViewShell *pSh = getRootFrm()->GetCurrShell();
const sal_Bool bBrowse = pSh && pSh->GetViewOptions()->getBrowseMode();
- const sal_uInt16 nTmpType = bBrowse ? 0x2084: 0x2004; //Row+Cell, Browse mit Body
+ const sal_uInt16 nTmpType = bBrowse ? 0x2084: 0x2004; //Row+Cell, Browse with Body
if( !(GetUpper()->GetType() & nTmpType) && GetUpper()->HasFixSize() )
{
if ( !bTst )
@@ -1890,7 +1882,7 @@ SwTwips SwCntntFrm::GrowFrm( SwTwips nDist, sal_Bool bTst, sal_Bool bInfo )
if ( !bTst )
{
- //Cntnts werden immer auf den gewuenschten Wert gebracht.
+ //Cntnts are always resized to the wished value.
long nOld = (Frm().*fnRect->fnGetHeight)();
(Frm().*fnRect->fnSetHeight)( nOld + nDist );
//Badaa: 2008-04-18 * Support for Classical Mongolian Script (SCMS) joint with Jiayanmin
@@ -1909,7 +1901,7 @@ SwTwips SwCntntFrm::GrowFrm( SwTwips nDist, sal_Bool bTst, sal_Bool bInfo )
}
}
- //Upper nur growen wenn notwendig.
+ //Only grow Upper if necessary.
if ( nReal < nDist )
{
if( GetUpper() )
@@ -1959,7 +1951,7 @@ SwTwips SwCntntFrm::ShrinkFrm( SwTwips nDist, sal_Bool bTst, sal_Bool bInfo )
SWRECTFN( this )
OSL_ENSURE( nDist >= 0, "nDist < 0" );
OSL_ENSURE( nDist <= (Frm().*fnRect->fnGetHeight)(),
- "nDist > als aktuelle Grosse." );
+ "nDist > than current size." );
if ( !bTst )
{
@@ -2058,11 +2050,10 @@ SwTwips SwCntntFrm::ShrinkFrm( SwTwips nDist, sal_Bool bTst, sal_Bool bInfo )
if ( !bTst )
{
- //Die Position des naechsten Frm's veraendert sich auf jeden Fall.
+ //The position of the next Frm changes for sure.
InvalidateNextPos();
- //Wenn ich keinen Nachfolger habe, so muss ich mich eben selbst um
- //die Retusche kuemmern.
+ //If I don't have a successor I have to do the retouch by myself.
if ( !GetNext() )
SetRetouche();
}
@@ -2157,9 +2148,9 @@ void SwCntntFrm::_UpdateAttr( const SfxPoolItem* pOld, const SfxPoolItem* pNew,
{
case RES_FMT_CHG:
rInvFlags = 0xFF;
- /* kein break hier */
+ /* no break here */
- case RES_PAGEDESC: //Attributaenderung (an/aus)
+ case RES_PAGEDESC: //attribute changes (on/off)
if ( IsInDocBody() && !IsInTab() )
{
rInvFlags |= 0x02;
@@ -2205,9 +2196,9 @@ void SwCntntFrm::_UpdateAttr( const SfxPoolItem* pOld, const SfxPoolItem* pNew,
// OD 2004-07-01 #i28701# - use new method <InvalidateObjs(..)>
GetIndNext()->InvalidateObjs( true );
}
- Prepare( PREP_UL_SPACE ); //TxtFrm muss Zeilenabst. korrigieren.
+ Prepare( PREP_UL_SPACE ); //TxtFrm has to correct line spacing.
rInvFlags |= 0x80;
- /* kein Break hier */
+ /* no break here */
}
case RES_LR_SPACE:
case RES_BOX:
@@ -2365,7 +2356,7 @@ SwTwips SwLayoutFrm::GrowFrm( SwTwips nDist, sal_Bool bTst, sal_Bool bInfo )
{
const ViewShell *pSh = getRootFrm()->GetCurrShell();
const sal_Bool bBrowse = pSh && pSh->GetViewOptions()->getBrowseMode();
- const sal_uInt16 nTmpType = bBrowse ? 0x2084: 0x2004; //Row+Cell, Browse mit Body
+ const sal_uInt16 nTmpType = bBrowse ? 0x2084: 0x2004; //Row+Cell, Browse with Body
if( !(GetType() & nTmpType) && HasFixSize() )
return 0;
@@ -2406,7 +2397,7 @@ SwTwips SwLayoutFrm::GrowFrm( SwTwips nDist, sal_Bool bTst, sal_Bool bInfo )
if ( nReal > 0 )
{
if ( GetUpper() )
- { // AdjustNeighbourhood jetzt auch in Spalten (aber nicht in Rahmen)
+ { // AdjustNeighbourhood now only for the columns (but not in frames)
sal_uInt8 nAdjust = GetUpper()->IsFtnBossFrm() ?
((SwFtnBossFrm*)GetUpper())->NeighbourhoodAdjustment( this )
: NA_GROW_SHRINK;
@@ -2443,7 +2434,7 @@ SwTwips SwLayoutFrm::GrowFrm( SwTwips nDist, sal_Bool bTst, sal_Bool bInfo )
if ( IsFtnFrm() && (nGrow != nReal) && GetNext() )
{
- //Fussnoten koennen ihre Nachfolger verdraengen.
+ //Footnotes can replace their successor.
SwTwips nSpace = bTst ? 0 : -nDist;
const SwFrm *pFrm = GetUpper()->Lower();
do
@@ -2578,7 +2569,7 @@ SwTwips SwLayoutFrm::ShrinkFrm( SwTwips nDist, sal_Bool bTst, sal_Bool bInfo )
((SwFtnBossFrm*)GetUpper())->NeighbourhoodAdjustment( this )
: NA_GROW_SHRINK;
- // AdjustNeighbourhood auch in Spalten (aber nicht in Rahmen)
+ // AdjustNeighbourhood also in columns (but not in frames)
if( NA_ONLY_ADJUST == nAdjust )
{
if ( IsPageBodyFrm() && !bBrowse )
@@ -2656,7 +2647,7 @@ SwTwips SwLayoutFrm::ShrinkFrm( SwTwips nDist, sal_Bool bTst, sal_Bool bInfo )
{
if( IsTabFrm() )
((SwTabFrm*)this)->SetComplete();
- if ( Lower() ) //Kann auch im Join stehen und leer sein!
+ if ( Lower() ) //Can also be in the Join an be empty!
InvalidateNextPos();
}
}
@@ -2682,9 +2673,8 @@ SwTwips SwLayoutFrm::ShrinkFrm( SwTwips nDist, sal_Bool bTst, sal_Bool bInfo )
0 != (pCnt = ((SwFtnFrm*)this)->GetRefFromAttr() ) )
{
if ( pCnt->IsFollow() )
- { // Wenn wir sowieso schon in einer anderen Spalte/Seite sitzen
- // als der Frame mit der Referenz, dann brauchen wir nicht
- // auch noch seinen Master zu invalidieren.
+ { // If we are in an other column/page than the frame with the
+ // reference, we don't need to invalidate its master.
SwFrm *pTmp = pCnt->FindFtnBossFrm(sal_True) == FindFtnBossFrm(sal_True)
? pCnt->FindMaster()->GetFrm() : pCnt;
pTmp->Prepare( PREP_ADJUST_FRM );
@@ -2700,11 +2690,11 @@ SwTwips SwLayoutFrm::ShrinkFrm( SwTwips nDist, sal_Bool bTst, sal_Bool bInfo )
|*
|* SwLayoutFrm::ChgLowersProp()
|*
-|* Beschreibung Aendert die Grosse der direkt untergeordneten Frm's
-|* die eine Fixe Groesse haben, proportional zur Groessenaenderung der
-|* PrtArea des Frm's.
-|* Die Variablen Frm's werden auch proportional angepasst; sie werden
-|* sich schon wieder zurechtwachsen/-schrumpfen.
+|* Description Changes the size of the directly subsidiary Frm's
+|* which have a fixed size, proportionally to the size change of the
+|* PrtArea of the Frm's.
+|* The variable Frm's are also proportionally adapted; they will grow/shrink
+|* again oneself.
|*
|*************************************************************************/
void SwLayoutFrm::ChgLowersProp( const Size& rOldSize )
@@ -3063,9 +3053,8 @@ void SwLayoutFrm::ChgLowersProp( const Size& rOldSize )
if ( !pLowerFrm->GetNext() && pLowerFrm->IsRetoucheFrm() )
{
- //Wenn ein Wachstum stattgefunden hat, und die untergeordneten
- //zur Retouche faehig sind (derzeit Tab, Section und Cntnt), so
- //trigger ich sie an.
+ //If a growth took place and the subordinate elements can retouch
+ //oneself (currently Tabs, Sections and Cntnt) we trigger it.
if ( rOldSize.Height() < Prt().SSize().Height() ||
rOldSize.Width() < Prt().SSize().Width() )
pLowerFrm->SetRetouche();
@@ -3101,8 +3090,8 @@ void SwLayoutFrm::ChgLowersProp( const Size& rOldSize )
|*
|* SwLayoutFrm::Format()
|*
-|* Beschreibung: "Formatiert" den Frame; Frm und PrtArea.
-|* Die Fixsize wird hier nicht eingestellt.
+|* Description: "Formats" the Frame; Frm and PrtArea.
+|* The Fixsize is not set here.
|*
|*************************************************************************/
void SwLayoutFrm::Format( const SwBorderAttrs *pAttrs )
@@ -3137,14 +3126,14 @@ void SwLayoutFrm::Format( const SwBorderAttrs *pAttrs )
do
{ bValidSize = sal_True;
- //Die Groesse in der VarSize wird durch den Inhalt plus den
- //Raendern bestimmt.
+ //The size in VarSize is calculated using the content plus the
+ //frames.
SwTwips nRemaining = 0;
SwFrm *pFrm = Lower();
while ( pFrm )
{ nRemaining += (pFrm->Frm().*fnRect->fnGetHeight)();
if( pFrm->IsTxtFrm() && ((SwTxtFrm*)pFrm)->IsUndersized() )
- // Dieser TxtFrm waere gern ein bisschen groesser
+ // This TxtFrm would like to be a bit bigger
nRemaining += ((SwTxtFrm*)pFrm)->GetParHeight()
- (pFrm->Prt().*fnRect->fnGetHeight)();
else if( pFrm->IsSctFrm() && ((SwSectionFrm*)pFrm)->IsUndersized() )
@@ -3162,10 +3151,10 @@ void SwLayoutFrm::Format( const SwBorderAttrs *pAttrs )
Grow( nDiff );
else
Shrink( -nDiff );
- //Schnell auf dem kurzen Dienstweg die Position updaten.
+ //Updates the positions using the fast channel.
MakePos();
}
- //Unterkante des Uppers nicht ueberschreiten.
+ //Don't exceed the bottom edge of the Upper.
if ( GetUpper() && (Frm().*fnRect->fnGetHeight)() )
{
const SwTwips nLimit = (GetUpper()->*fnRect->fnGetPrtBottom)();
@@ -3313,7 +3302,7 @@ long MA_FASTCALL lcl_CalcMinColDiff( SwLayoutFrm *pLayFrm )
nDiff = nDiff ? Min( nDiff, nTmp ) : nTmp;
}
}
- //Leere Spalten ueberspringen!
+ //Skip empty columns!
pCol = (SwLayoutFrm*)pCol->GetNext();
while ( pCol && 0 == (pFrm = pCol->Lower()) )
pCol = (SwLayoutFrm*)pCol->GetNext();
@@ -3357,20 +3346,16 @@ sal_Bool lcl_IsFlyHeightClipped( SwLayoutFrm *pLay )
void SwLayoutFrm::FormatWidthCols( const SwBorderAttrs &rAttrs,
const SwTwips nBorder, const SwTwips nMinHeight )
{
- //Wenn Spalten im Spiel sind, so wird die Groesse an der
- //letzten Spalte ausgerichtet.
- //1. Inhalt formatieren.
- //2. Hoehe der letzten Spalte ermitteln, wenn diese zu
- // zu gross ist muss der Fly wachsen.
- // Der Betrag um den der Fly waechst ist aber nicht etwa
- // der Betrag des Ueberhangs, denn wir muessen davon
- // ausgehen, dass etwas Masse zurueckfliesst und so
- // zusaetzlicher Platz geschaffen wird.
- // Im Ersten Ansatz ist der Betrag um den gewachsen wird
- // der Ueberhang geteilt durch die Spaltenanzahl oder
- // der Ueberhang selbst wenn er kleiner als die Spalten-
- // anzahl ist.
- //3. Weiter mit 1. bis zur Stabilitaet.
+ //If there are columns involved, the size is adjusted using the last column.
+ //1. Format content.
+ //2. Calculate height of the last column if it's too big, the Fly has to
+ // grow. The amount by which the Fly grows is not the amount of the
+ // overhang because we have to act on the assumption that some bulk floats
+ // back which will generate some more space.
+ // In the first paragraph the amount which we grow by equals the overhang
+ // divided by the amount of columns or the overhang itself if it's smaller
+ // than the amount of columns.
+ //3. Go back to 1. until everything is stable.
const SwFmtCol &rCol = rAttrs.GetAttrSet().GetCol();
const sal_uInt16 nNumCols = rCol.GetNumCols();
@@ -3380,34 +3365,33 @@ void SwLayoutFrm::FormatWidthCols( const SwBorderAttrs &rAttrs,
ViewShell *pSh = getRootFrm()->GetCurrShell();
SwViewImp *pImp = pSh ? pSh->Imp() : 0;
{
- // Zugrunde liegender Algorithmus
- // Es wird versucht, eine optimale Hoehe fuer die Spalten zu finden.
- // nMinimum beginnt mit der uebergebenen Mindesthoehe und wird dann als
- // Maximum der Hoehen gepflegt, bei denen noch Spalteninhalt aus einer
- // Spalte herausragt.
- // nMaximum beginnt bei LONG_MAX und wird als Minimum der Hoehen gepflegt,
- // bei denen der Inhalt gepasst hat.
- // Bei spaltigen Bereichen beginnt nMaximum bei dem maximalen Wert, den
- // die Umgebung vorgibt, dies kann natuerlich ein Wert sein, bei dem noch
- // Inhalt heraushaengt.
- // Es werden die Spalten formatiert, wenn Inhalt heraushaengt, wird nMinimum
- // ggf. angepasst, dann wird gewachsen, mindestens um nMinDiff, aber nicht ueber
- // ein groesseres nMaximum hinaus. Wenn kein Inhalt heraushaengt, sondern
- // noch Luft in einer Spalte ist, schrumpfen wir entsprechend, mindestens um
- // nMinDiff, aber nicht unter das nMinimum.
- // Abgebrochen wird, wenn kein Inhalt mehr heraushaengt und das Minimum sich auf
- // weniger als ein MinDiff dem Maximum angenaehert hat oder das von der
- // Umgebung vorgegebene Maximum erreicht ist und trotzdem Inhalt heraus-
- // haengt.
-
- // Kritik an der Implementation
- // 1. Es kann theoretisch Situationen geben, in denen der Inhalt in einer geringeren
- // Hoehe passt und in einer groesseren Hoehe nicht passt. Damit der Code robust
- // gegen solche Verhaeltnisse ist, sind ein paar Abfragen bezgl. Minimum und Maximum
- // drin, die wahrscheinlich niemals zuschlagen koennen.
- // 2. Es wird fuer das Schrumpfen das gleiche nMinDiff benutzt wie fuer das Wachstum,
- // das nMinDiff ist allerdings mehr oder weniger die kleinste erste Zeilenhoehe und
- // als Mindestwert fuer das Schrumpfen nicht unbedingt optimal.
+ // Underlying algorithm
+ // We try to find the optimal height for the column.
+ // nMinimum starts with the passed minimum height and is then remembered
+ // as the maximum height on which column content still juts out of a
+ // column.
+ // nMaximum starts with LONG_MAX and is then remembered as the minimum
+ // width on which the content fitted.
+ // In column based sections nMaximum starts at the maximum value which
+ // the surrounding defines, this can certainly be a value on which
+ // content still juts out.
+ // If content still juts out, the columns are formated and nMinimum is
+ // adjusted accordingly, then the growth is done, at least by uMinDiff
+ // but not over a certain nMaximum. If no content juts out but there is
+ // still some space left in the column, shrinking is done accordingly, at
+ // least by nMindIff but not below the nMinimum.
+ // Cancel as soon as no content juts out and the difference from minimum
+ // to maximum is less than MinDiff or the maximum which was defined by
+ // the surrounding is reached even if some content still juts out.
+
+ // Criticism of this implementation
+ // 1. Theoretically situations are possible in which the content fits in
+ // a lower height but not in a higher height. To ensure that the code
+ // handles such situations the code contains a few checks concerning
+ // minimum and maximum which probably are never triggered.
+ // 2. We use the same nMinDiff for shrinking and growing, but nMinDiff
+ // is more or less the smallest first line height and doesn't fit ideal
+ // as minimum value.
long nMinimum = nMinHeight;
long nMaximum;
@@ -3480,15 +3464,14 @@ void SwLayoutFrm::FormatWidthCols( const SwBorderAttrs &rAttrs,
}
do
{
- //Kann eine Weile dauern, deshalb hier auf Waitcrsr pruefen.
+ //Could take a while therefore check for Waitcrsr here.
if ( pImp )
pImp->CheckWaitCrsr();
bValidSize = sal_True;
- //Erstmal die Spalten formatieren, das entlastet den
- //Stack ein wenig.
- //Bei der Gelegenheit stellen wir auch gleich mal die
- //Breiten und Hoehen der Spalten ein (so sie denn falsch sind).
+ //First format the column as this will relieve the stack a bit.
+ //Also set width and height of the column (if they are wrong)
+ //while we are at it.
SwLayoutFrm *pCol = (SwLayoutFrm*)Lower();
// #i27399#
@@ -3499,7 +3482,7 @@ void SwLayoutFrm::FormatWidthCols( const SwBorderAttrs &rAttrs,
for ( sal_uInt16 i = 0; i < nNumCols; ++i )
{
pCol->Calc();
- // ColumnFrms besitzen jetzt einen BodyFrm, der auch kalkuliert werden will
+ // ColumnFrms have a BodyFrm now, which need to be calculated too
pCol->Lower()->Calc();
if( pCol->Lower()->GetNext() )
pCol->Lower()->GetNext()->Calc(); // SwFtnCont
@@ -3509,8 +3492,8 @@ void SwLayoutFrm::FormatWidthCols( const SwBorderAttrs &rAttrs,
::CalcCntnt( this );
pCol = (SwLayoutFrm*)Lower();
- OSL_ENSURE( pCol && pCol->GetNext(), ":-( Spalten auf Urlaub?");
- // bMinDiff wird gesetzt, wenn es keine leere Spalte gibt
+ OSL_ENSURE( pCol && pCol->GetNext(), ":-( column making holidays?");
+ // set bMinDiff if no empty columns exist
sal_Bool bMinDiff = sal_True;
// OD 28.03.2003 #108446# - check for all column content and all columns
while ( bMinDiff && pCol )
@@ -3524,7 +3507,7 @@ void SwLayoutFrm::FormatWidthCols( const SwBorderAttrs &rAttrs,
SwTwips nDiff = 0;
SwTwips nMaxFree = 0;
SwTwips nAllFree = LONG_MAX;
- // bFoundLower wird gesetzt, wenn es mind. eine nichtleere Spalte gibt
+ // set bFoundLower if there is at least one non-empty column
sal_Bool bFoundLower = sal_False;
while( pCol )
{
@@ -3567,59 +3550,59 @@ void SwLayoutFrm::FormatWidthCols( const SwBorderAttrs &rAttrs,
if ( bFoundLower || ( IsSctFrm() && ((SwSectionFrm*)this)->HasFollow() ) )
{
SwTwips nMinDiff = ::lcl_CalcMinColDiff( this );
- // Hier wird entschieden, ob wir wachsen muessen, naemlich wenn
- // ein Spalteninhalt (nDiff) oder ein Fly herausragt.
- // Bei spaltigen Bereichen wird beruecksichtigt, dass mit dem
- // Besitz eines nichtleeren Follows die Groesse festgelegt ist.
+ // Here we decide if growing is needed - this is the case, if
+ // column content (nDiff) or a Fly juts over.
+ // In sections with columns we take into account to set the size
+ // when having a non-empty Follow.
if ( nDiff || ::lcl_IsFlyHeightClipped( this ) ||
( IsSctFrm() && ((SwSectionFrm*)this)->CalcMinDiff( nMinDiff ) ) )
{
long nPrtHeight = (Prt().*fnRect->fnGetHeight)();
- // Das Minimum darf nicht kleiner sein als unsere PrtHeight,
- // solange noch etwas herausragt.
+ // The minimum must not be smaller than our PrtHeight as
+ // long as something juts over.
if( nMinimum < nPrtHeight )
nMinimum = nPrtHeight;
- // Es muss sichergestellt sein, dass das Maximum nicht kleiner
- // als die PrtHeight ist, wenn noch etwas herausragt
+ // The maximum must not be smaller than PrtHeight if
+ // something still juts over.
if( nMaximum < nPrtHeight )
- nMaximum = nPrtHeight; // Robust, aber kann das ueberhaupt eintreten?
- if( !nDiff ) // wenn nur Flys herausragen, wachsen wir um nMinDiff
+ nMaximum = nPrtHeight; // Robust, but will this ever happen?
+ if( !nDiff ) // If only Flys jut over, we grow by nMinDiff
nDiff = nMinDiff;
- // Wenn wir um mehr als nMinDiff wachsen wollen, wird dies auf die
- // Spalten verteilt
+ // If we should grow more than by nMindDiff we split it over
+ // the columns
if ( Abs(nDiff - nMinDiff) > nNumCols && nDiff > (long)nNumCols )
nDiff /= nNumCols;
if ( bMinDiff )
- { // Wenn es keinen leeren Spalten gibt, wollen wir mind. um nMinDiff
- // wachsen. Sonderfall: Wenn wir kleiner als die minimale Frmhoehe
- // sind und die PrtHeight kleiner als nMinDiff ist, wachsen wir so,
- // dass die PrtHeight hinterher genau nMinDiff ist.
+ { // If no empty column exists, we want to grow at least
+ // by nMinDiff. Special case: If we are smaller than the
+ // minimal FrmHeight and PrtHeight is smaller than
+ // nMindiff we grow in a way that PrtHeight is exactly
+ // nMinDiff afterwards.
long nFrmHeight = (Frm().*fnRect->fnGetHeight)();
if ( nFrmHeight > nMinHeight || nPrtHeight >= nMinDiff )
nDiff = Max( nDiff, nMinDiff );
else if( nDiff < nMinDiff )
nDiff = nMinDiff - nPrtHeight + 1;
}
- // nMaximum ist eine Groesse, in der der Inhalt gepasst hat,
- // oder der von der Umgebung vorgegebene Wert, deshalb
- // brauchen wir nicht ueber diesen Wrt hinauswachsen.
+ // nMaximum has a size which fits the content or the
+ // requested value from the surrounding therefore we don't
+ // need to exceed this value.
if( nDiff + nPrtHeight > nMaximum )
nDiff = nMaximum - nPrtHeight;
}
- else if( nMaximum > nMinimum ) // Wir passen, haben wir auch noch Spielraum?
+ else if( nMaximum > nMinimum ) // We fit, do we still have some margin?
{
long nPrtHeight = (Prt().*fnRect->fnGetHeight)();
if ( nMaximum < nPrtHeight )
- nDiff = nMaximum - nPrtHeight; // wir sind ueber eine funktionierende
- // Hoehe hinausgewachsen und schrumpfen wieder auf diese zurueck,
- // aber kann das ueberhaupt eintreten?
+ nDiff = nMaximum - nPrtHeight; // We grew over a working
+ // height and shrink back it, but will this ever happen?
else
- { // Wir haben ein neues Maximum, eine Groesse, fuer die der Inhalt passt.
+ { // We have a new maximum, a size which fits for the content.
nMaximum = nPrtHeight;
- // Wenn der Freiraum in den Spalten groesser ist als nMinDiff und wir
- // nicht dadurch wieder unter das Minimum rutschen, wollen wir ein wenig
- // Luft herauslassen.
+ // If the margin in the column is bigger than nMinDiff
+ // and we therefore drop under the minimum, we deflate
+ // a bit.
if ( !bNoBalance &&
// #i23129# - <nMinDiff> can be
// big, because of an object at the beginning of
@@ -3629,10 +3612,10 @@ void SwLayoutFrm::FormatWidthCols( const SwBorderAttrs &rAttrs,
( !nAllFree ||
nMinimum < nPrtHeight - nMinDiff ) )
{
- nMaxFree /= nNumCols; // auf die Spalten verteilen
- nDiff = nMaxFree < nMinDiff ? -nMinDiff : -nMaxFree; // mind. nMinDiff
- if( nPrtHeight + nDiff <= nMinimum ) // Unter das Minimum?
- nDiff = ( nMinimum - nMaximum ) / 2; // dann lieber die Mitte
+ nMaxFree /= nNumCols; // disperse over the columns
+ nDiff = nMaxFree < nMinDiff ? -nMinDiff : -nMaxFree; // min nMinDiff
+ if( nPrtHeight + nDiff <= nMinimum ) // below the minimum?
+ nDiff = ( nMinimum - nMaximum ) / 2; // Take the center
}
else if( nAllFree )
{
@@ -3642,7 +3625,7 @@ void SwLayoutFrm::FormatWidthCols( const SwBorderAttrs &rAttrs,
}
}
}
- if( nDiff ) // jetzt wird geschrumpft oder gewachsen..
+ if( nDiff ) // now we shrink or grow...
{
Size aOldSz( Prt().SSize() );
long nTop = (this->*fnRect->fnGetTopMargin)();
@@ -3675,10 +3658,9 @@ void SwLayoutFrm::FormatWidthCols( const SwBorderAttrs &rAttrs,
}
}
}
- //Es muss geeignet invalidiert werden, damit
- //sich die Frms huebsch ausbalancieren
- //- Der jeweils erste ab der zweiten Spalte bekommt
- // ein InvalidatePos();
+ //Invalidate suitable to nicely balance the Frms.
+ //- Every first one after the second column gets a
+ // InvalidatePos();
pCol = (SwLayoutFrm*)Lower()->GetNext();
while ( pCol )
{
@@ -3689,9 +3671,8 @@ void SwLayoutFrm::FormatWidthCols( const SwBorderAttrs &rAttrs,
}
if( IsSctFrm() && ((SwSectionFrm*)this)->HasFollow() )
{
- // Wenn wir einen Follow erzeugt haben, muessen wir
- // seinem Inhalt die Chance geben, im CalcCntnt
- // zurueckzufliessen
+ // If we created a Follow, we need to give its content
+ // the opportunity to flow back inside the CalcCntnt
SwCntntFrm* pTmpCntnt =
((SwSectionFrm*)this)->GetFollow()->ContainsCntnt();
if( pTmpCntnt )
@@ -3728,9 +3709,9 @@ void SwLayoutFrm::FormatWidthCols( const SwBorderAttrs &rAttrs,
SwCntntFrm* lcl_InvalidateSection( SwFrm *pCnt, sal_uInt8 nInv )
{
SwSectionFrm* pSect = pCnt->FindSctFrm();
- // Wenn unser CntntFrm in einer Tabelle oder Fussnote steht, sind nur
- // Bereiche gemeint, die ebenfalls innerhalb liegen.
- // Ausnahme: Wenn direkt eine Tabelle uebergeben wird.
+ // If our CntntFrm is placed inside a table or a footnote, only sections
+ // which are also placed inside are meant.
+ // Exception: If a table is directly passed.
if( ( ( pCnt->IsInTab() && !pSect->IsInTab() ) ||
( pCnt->IsInFtn() && !pSect->IsInFtn() ) ) && !pCnt->IsTabFrm() )
return NULL;
@@ -3773,7 +3754,7 @@ void lcl_InvalidateCntnt( SwCntntFrm *pCnt, sal_uInt8 nInv )
{
if( pCnt->IsInSct() )
{
- // Siehe oben bei Tabellen
+ // See above at tables
if( !pLastSctCnt )
pLastSctCnt = lcl_InvalidateSection( pCnt, nInv );
if( pLastSctCnt == pCnt )
@@ -3788,14 +3769,14 @@ void lcl_InvalidateCntnt( SwCntntFrm *pCnt, sal_uInt8 nInv )
{
if( pCnt->IsInTab() )
{
- // Um nicht fuer jeden CntntFrm einer Tabelle das FindTabFrm() zu rufen
- // und wieder die gleiche Tabelle zu invalidieren, merken wir uns den letzten
- // CntntFrm der Tabelle und reagieren erst wieder auf IsInTab(), wenn wir
- // an diesem vorbei sind.
- // Beim Eintritt in die Tabelle wird der LastSctCnt auf Null gesetzt,
- // damit Bereiche im Innern der Tabelle richtig invalidiert werden.
- // Sollte die Tabelle selbst in einem Bereich stehen, so wird an
- // diesem die Invalidierung bis zu dreimal durchgefuehrt, das ist vertretbar.
+ // To not call FindTabFrm() for each CntntFrm of a table and
+ // then invalidate the table, we remember the last CntntFrm of
+ // the table and stop to react to IsInTab() until we passed it
+ // up.
+ // When entering the table, LastSctCnt is set to null, so areas
+ // inside the table are correctly invalidated.
+ // If the table itself is placed in such an area the
+ // invalidation is done three times, which is acceptable.
if( !pLastTabCnt )
{
pLastTabCnt = lcl_InvalidateTable( pCnt->FindTabFrm(), nInv );
@@ -3848,7 +3829,7 @@ void lcl_InvalidateAllCntnt( SwCntntFrm *pCnt, sal_uInt8 nInv )
void SwRootFrm::InvalidateAllCntnt( sal_uInt8 nInv )
{
- // Erst werden alle Seitengebundenen FlyFrms abgearbeitet.
+ // First process all page bound FlyFrms.
SwPageFrm *pPage = (SwPageFrm*)Lower();
while( pPage )
{
@@ -3857,7 +3838,7 @@ void SwRootFrm::InvalidateAllCntnt( sal_uInt8 nInv )
pPage->InvalidateFlyInCnt();
pPage->InvalidateLayout();
pPage->InvalidateCntnt();
- pPage->InvalidatePage( pPage ); //Damit ggf. auch der Turbo verschwindet
+ pPage->InvalidatePage( pPage ); // So even the Turbo disappears if applicable
if ( pPage->GetSortedObjs() )
{
@@ -3879,7 +3860,7 @@ void SwRootFrm::InvalidateAllCntnt( sal_uInt8 nInv )
pPage = (SwPageFrm*)(pPage->GetNext());
}
- //Hier den gesamten Dokumentinhalt und die zeichengebundenen Flys.
+ //Invalidate the whole document content and the drawn Flys here.
::lcl_InvalidateCntnt( ContainsCntnt(), nInv );
if( nInv & INV_PRTAREA )
commit 4e760ffe88e2c461c69310aff48a44b4f421ff67
Author: Nicolas Christener <nicolas.christener at adfinis-sygroup.ch>
Date: Mon Feb 13 11:38:19 2012 +0100
translate german comments
diff --git a/sw/source/core/layout/wsfrm.cxx b/sw/source/core/layout/wsfrm.cxx
index 737f45c..5cd17ee 100644
--- a/sw/source/core/layout/wsfrm.cxx
+++ b/sw/source/core/layout/wsfrm.cxx
@@ -101,7 +101,7 @@ SwFrm::SwFrm( SwModify *pMod, SwFrm* pSib ) :
bInfFtn ( sal_False ),
bInfSct ( sal_False )
{
- OSL_ENSURE( pMod, "Kein Frameformat uebergeben." );
+ OSL_ENSURE( pMod, "No frame format passed." );
bInvalidR2L = bInvalidVert = 1;
//Badaa: 2008-04-18 * Support for Classical Mongolian Script (SCMS) joint with Jiayanmin
bDerivedR2L = bDerivedVert = bRightToLeft = bVertical = bReverse = bVertLR = 0;
@@ -308,7 +308,7 @@ void SwFrm::_UpdateAttrFrm( const SfxPoolItem *pOld, const SfxPoolItem *pNew,
case RES_BOX:
case RES_SHADOW:
Prepare( PREP_FIXSIZE_CHG );
- // hier kein break !
+ // no break here!
case RES_LR_SPACE:
case RES_UL_SPACE:
rInvFlags |= 0x0B;
@@ -351,7 +351,7 @@ void SwFrm::_UpdateAttrFrm( const SfxPoolItem *pOld, const SfxPoolItem *pNew,
break;
}
case RES_COL:
- OSL_FAIL( "Spalten fuer neuen FrmTyp?" );
+ OSL_FAIL( "Columns for new FrmTyp?" );
break;
default:
@@ -372,9 +372,9 @@ void SwFrm::Prepare( const PrepareHint, const void *, sal_Bool )
/*************************************************************************
|*
|* SwFrm::InvalidatePage()
-|* Beschreibung: Invalidiert die Seite, in der der Frm gerade steht.
-|* Je nachdem ob es ein Layout, Cntnt oder FlyFrm ist wird die Seite
-|* entsprechend Invalidiert.
+|* Description: Invalidates the page in which the Frm is placed
+|* currently. The page is invalidated depending on the type (Layout,
+|* Cntnt, FlyFrm)
|*
|*************************************************************************/
void SwFrm::InvalidatePage( const SwPageFrm *pPage ) const
@@ -414,16 +414,16 @@ void SwFrm::InvalidatePage( const SwPageFrm *pPage ) const
{
if ( pRoot->IsTurboAllowed() )
{
- // JP 21.09.95: wenn sich der ContentFrame 2 mal eintragen
- // will, kann es doch eine TurboAction bleiben.
- // ODER????
+ // JP 21.09.95: it can still be a TurboAction if the
+ // ContentFrame wants to register a second time.
+ // RIGHT????
if ( !pRoot->GetTurbo() || this == pRoot->GetTurbo() )
pRoot->SetTurbo( (const SwCntntFrm*)this );
else
{
pRoot->DisallowTurbo();
- //Die Seite des Turbo koennte eine andere als die meinige
- //sein, deshalb muss sie invalidiert werden.
+ //The page of the Turbo could be a different one then mine,
+ //therefore we have to invalidate it.
const SwFrm *pTmp = pRoot->GetTurbo();
pRoot->ResetTurbo();
pTmp->InvalidatePage();
@@ -530,9 +530,9 @@ Size SwFrm::ChgSize( const Size& aNewSize )
GetUpper()->_InvalidateSize();
}
- // Auch wenn das Grow/Shrink noch nicht die gewuenschte Breite eingestellt hat,
- // wie z.B. beim Aufruf durch ChgColumns, um die Spaltenbreiten einzustellen,
- // wird die Breite jetzt gesetzt.
+ // Even if grow/shrink did not yet set the desired width, for
+ // example when called by ChgColumns to set the column width, we
+ // set the right width now.
(aFrm.*fnRect->fnSetHeight)( nNew );
}
}
@@ -567,22 +567,21 @@ Size SwFrm::ChgSize( const Size& aNewSize )
|*
|* SwFrm::InsertBefore()
|*
-|* Beschreibung SwFrm wird in eine bestehende Struktur eingefuegt
-|* Eingefuegt wird unterhalb des Parent und entweder
-|* vor pBehind oder am Ende der Kette wenn pBehind
-|* leer ist.
+|* Description SwFrm is inserted into an existing structure.
+|* Insertion is done below the parent and either before
+|* pBehind or at the end of the chain if pBehind is empty.
|*
|*************************************************************************/
void SwFrm::InsertBefore( SwLayoutFrm* pParent, SwFrm* pBehind )
{
- OSL_ENSURE( pParent, "Kein Parent fuer Insert." );
+ OSL_ENSURE( pParent, "No parent for insert." );
OSL_ENSURE( (!pBehind || (pBehind && pParent == pBehind->GetUpper())),
- "Framebaum inkonsistent." );
+ "Frame tree is inconsistent." );
pUpper = pParent;
pNext = pBehind;
if( pBehind )
- { //Einfuegen vor pBehind.
+ { //Inert before pBehind.
if( 0 != (pPrev = pBehind->pPrev) )
pPrev->pNext = this;
else
@@ -590,7 +589,7 @@ void SwFrm::InsertBefore( SwLayoutFrm* pParent, SwFrm* pBehind )
pBehind->pPrev = this;
}
else
- { //Einfuegen am Ende, oder als ersten Node im Unterbaum
+ { //Insert at the end, or as first node in the sub tree
pPrev = pUpper->Lower();
if ( pPrev )
{
@@ -607,30 +606,30 @@ void SwFrm::InsertBefore( SwLayoutFrm* pParent, SwFrm* pBehind )
|*
|* SwFrm::InsertBehind()
|*
-|* Beschreibung SwFrm wird in eine bestehende Struktur eingefuegt
-|* Eingefuegt wird unterhalb des Parent und entweder
-|* hinter pBefore oder am Anfang der Kette wenn pBefore
-|* leer ist.
+|* Description SwFrm is inserted in an existing structure.
+|* Insertion is done below the parent and either behind
+|* pBefore or at the beginning of the chain if pBefore is
+|* empty.
|*
|*************************************************************************/
void SwFrm::InsertBehind( SwLayoutFrm *pParent, SwFrm *pBefore )
{
- OSL_ENSURE( pParent, "Kein Parent fuer Insert." );
+ OSL_ENSURE( pParent, "No Parent for Insert." );
OSL_ENSURE( (!pBefore || (pBefore && pParent == pBefore->GetUpper())),
- "Framebaum inkonsistent." );
+ "Frame tree is inconsistent." );
pUpper = pParent;
pPrev = pBefore;
if ( pBefore )
{
- //Einfuegen hinter pBefore
+ //Insert after pBefore
if ( 0 != (pNext = pBefore->pNext) )
pNext->pPrev = this;
pBefore->pNext = this;
}
else
{
- //Einfuegen am Anfang der Kette
+ //Insert at the beginning of the chain
pNext = pParent->Lower();
if ( pParent->Lower() )
pParent->Lower()->pPrev = this;
@@ -642,31 +641,28 @@ void SwFrm::InsertBehind( SwLayoutFrm *pParent, SwFrm *pBefore )
|*
|* SwFrm::InsertGroup()
|*
-|* Beschreibung Eine Kette von SwFrms wird in eine bestehende Struktur
-|* eingefuegt
+|* Description A chain of SwFrms gets inserted in an existing structure
|*
-|* Bisher wird dies genutzt, um einen SectionFrame, der ggf. schon Geschwister
-|* mit sich bringt, in eine bestehende Struktur einzufuegen.
+|* Until now this is used to insert a SectionFrame which may has some siblings
+|* into an existing structure.
|*
-|* Wenn man den dritten Parameter als NULL uebergibt, entspricht
-|* diese Methode dem SwFrm::InsertBefore(..), nur eben mit Geschwistern.
+|* If the third parameter is NULL, this method is (besides handling the
+|* siblings) equal to SwFrm::InsertBefore(..)
|*
-|* Wenn man einen dritten Parameter uebergibt, passiert folgendes:
-|* this wird pNext von pParent,
-|* pSct wird pNext vom Letzten der this-Kette,
-|* pBehind wird vom pParent an den pSct umgehaengt.
-|* Dies dient dazu: ein SectionFrm (this) wird nicht als
-|* Kind an einen anderen SectionFrm (pParent) gehaengt, sondern pParent
-|* wird in zwei Geschwister aufgespalten (pParent+pSct) und this dazwischen
-|* eingebaut.
+|* If the third parameter is passed, the following happens:
+|* - this becomes pNext of pParent
+|* - pSct becomes pNext of the last on in the this-chains
+|* - pBehind is reconnected from pParent to pSct
+|* This leads to: a SectionFrm (pParent) won't be connected, but pParent get
+|* split up into two siblings (pParent+pSect) and inserted between.
|*
|*************************************************************************/
void SwFrm::InsertGroupBefore( SwFrm* pParent, SwFrm* pBehind, SwFrm* pSct )
{
- OSL_ENSURE( pParent, "Kein Parent fuer Insert." );
+ OSL_ENSURE( pParent, "No parent for insert." );
OSL_ENSURE( (!pBehind || ( (pBehind && (pParent == pBehind->GetUpper()))
|| ((pParent->IsSctFrm() && pBehind->GetUpper()->IsColBodyFrm())) ) ),
- "Framebaum inkonsistent." );
+ "Frame tree inconsistent." );
if( pSct )
{
pUpper = pParent->GetUpper();
@@ -698,7 +694,7 @@ void SwFrm::InsertGroupBefore( SwFrm* pParent, SwFrm* pBehind, SwFrm* pSct )
pLast->pUpper = GetUpper();
}
if( pBehind )
- { //Einfuegen vor pBehind.
+ { //Insert befor pBehind.
if( pBehind->GetPrev() )
pBehind->GetPrev()->pNext = NULL;
else
@@ -737,7 +733,7 @@ void SwFrm::InsertGroupBefore( SwFrm* pParent, SwFrm* pBehind, SwFrm* pSct )
}
pLast->pNext = pBehind;
if( pBehind )
- { //Einfuegen vor pBehind.
+ { //Insert befor pBehind.
if( 0 != (pPrev = pBehind->pPrev) )
pPrev->pNext = this;
else
@@ -745,7 +741,7 @@ void SwFrm::InsertGroupBefore( SwFrm* pParent, SwFrm* pBehind, SwFrm* pSct )
pBehind->pPrev = pLast;
}
else
- { //Einfuegen am Ende, oder des ersten Nodes im Unterbaum
+ //Insert at the end, or ... the first node in the subtree
pPrev = pUpper->Lower();
if ( pPrev )
{
@@ -766,20 +762,20 @@ void SwFrm::InsertGroupBefore( SwFrm* pParent, SwFrm* pBehind, SwFrm* pSct )
|*************************************************************************/
void SwFrm::Remove()
{
- OSL_ENSURE( pUpper, "Removen ohne Upper?" );
+ OSL_ENSURE( pUpper, "Remove without upper?" );
if( pPrev )
- // einer aus der Mitte wird removed
+ // one out of the middle is removed
pPrev->pNext = pNext;
else
- { // der erste in einer Folge wird removed
- OSL_ENSURE( pUpper->pLower == this, "Layout inkonsistent." );
+ { // the first in a list is removed //TODO
+ OSL_ENSURE( pUpper->pLower == this, "Layout is inconsistent." );
pUpper->pLower = pNext;
}
if( pNext )
pNext->pPrev = pPrev;
- // Verbindung kappen.
+ // Remove link
pNext = pPrev = 0;
pUpper = 0;
}
@@ -790,16 +786,16 @@ void SwFrm::Remove()
|*************************************************************************/
void SwCntntFrm::Paste( SwFrm* pParent, SwFrm* pSibling)
{
- OSL_ENSURE( pParent, "Kein Parent fuer Paste." );
- OSL_ENSURE( pParent->IsLayoutFrm(), "Parent ist CntntFrm." );
- OSL_ENSURE( pParent != this, "Bin selbst der Parent." );
- OSL_ENSURE( pSibling != this, "Bin mein eigener Nachbar." );
+ OSL_ENSURE( pParent, "No parent for pasting." );
+ OSL_ENSURE( pParent->IsLayoutFrm(), "Parent is CntntFrm." );
+ OSL_ENSURE( pParent != this, "I'm the parent." );
+ OSL_ENSURE( pSibling != this, "I'm my own neighbour." );
OSL_ENSURE( !GetPrev() && !GetNext() && !GetUpper(),
- "Bin noch irgendwo angemeldet." );
+ "I'm still registered somewhere" );
OSL_ENSURE( !pSibling || pSibling->IsFlowFrm(),
"<SwCntntFrm::Paste(..)> - sibling not of expected type." );
- //In den Baum einhaengen.
+ //Insert in the tree.
InsertBefore( (SwLayoutFrm*)pParent, pSibling );
SwPageFrm *pPage = FindPageFrm();
@@ -835,13 +831,13 @@ void SwCntntFrm::Paste( SwFrm* pParent, SwFrm* pSibling)
if ( GetPrev() )
{
if ( IsFollow() )
- //Ich bin jetzt direkter Nachfolger meines Masters geworden
+ //I'm a direct follower of my master now
((SwCntntFrm*)GetPrev())->Prepare( PREP_FOLLOW_FOLLOWS );
else
{
if ( GetPrev()->Frm().Height() !=
GetPrev()->Prt().Height() + GetPrev()->Prt().Top() )
- //Umrandung zu beruecksichtigen?
+ //Take the frame into account?
GetPrev()->_InvalidatePrt();
// OD 18.02.2003 #104989# - force complete paint of previous frame,
// if frame is inserted at the end of a section frame, in order to
@@ -895,7 +891,7 @@ void SwCntntFrm::Paste( SwFrm* pParent, SwFrm* pSibling)
|*************************************************************************/
void SwCntntFrm::Cut()
{
- OSL_ENSURE( GetUpper(), "Cut ohne Upper()." );
+ OSL_ENSURE( GetUpper(), "Cut without Upper()." );
SwPageFrm *pPage = FindPageFrm();
InvalidatePage( pPage );
@@ -935,8 +931,9 @@ void SwCntntFrm::Cut()
}
if( 0 != (pFrm = GetIndNext()) )
- { //Der alte Nachfolger hat evtl. einen Abstand zum Vorgaenger
- //berechnet, der ist jetzt, wo er der erste wird obsolet bzw. anders.
+ //The old follower may calculated a gap to the predecessor which now
+ //becomes obsolete or different respectively as it becomes the first
+ //one itself.
pFrm->_InvalidatePrt();
pFrm->_InvalidatePos();
pFrm->InvalidatePage( pPage );
@@ -965,16 +962,16 @@ void SwCntntFrm::Cut()
else
{
InvalidateNextPos();
- //Einer muss die Retusche uebernehmen: Vorgaenger oder Upper
+ //Someone needs to do the retouching: predecessor or upper
if ( 0 != (pFrm = GetPrev()) )
{ pFrm->SetRetouche();
pFrm->Prepare( PREP_WIDOWS_ORPHANS );
pFrm->_InvalidatePos();
pFrm->InvalidatePage( pPage );
}
- //Wenn ich der einzige CntntFrm in meinem Upper bin (war), so muss
- //er die Retouche uebernehmen.
//Ausserdem kann eine Leerseite entstanden sein.
+ //If I'm (was) the only CntntFrm in my upper, he has to do the
+ //retouching.
else
{ SwRootFrm *pRoot = getRootFrm();
if ( pRoot )
@@ -1006,7 +1003,7 @@ void SwCntntFrm::Cut()
}
}
}
- //Erst removen, dann Upper Shrinken.
+ //Remove first, then shrink the upper.
SwLayoutFrm *pUp = GetUpper();
Remove();
if ( pUp )
@@ -1047,9 +1044,9 @@ void SwCntntFrm::Cut()
( pUp->IsFtnFrm() && pUp->IsColLocked() ) )
{
pSct->DelEmpty( sal_False );
- // Wenn ein gelockter Bereich nicht geloescht werden darf,
- // so ist zumindest seine Groesse durch das Entfernen seines
- // letzten Contents ungueltig geworden.
+ // If a loosened area may not be deleted then at least
+ // its size became invalid after removing its last
+ // content.
pSct->_InvalidateSize();
}
else
@@ -1077,8 +1074,8 @@ void SwCntntFrm::Cut()
|*************************************************************************/
void SwLayoutFrm::Paste( SwFrm* pParent, SwFrm* pSibling)
{
- OSL_ENSURE( pParent, "Kein Parent fuer Paste." );
- OSL_ENSURE( pParent->IsLayoutFrm(), "Parent ist CntntFrm." );
+ OSL_ENSURE( pParent, "No parent for pasting." );
+ OSL_ENSURE( pParent->IsLayoutFrm(), "Parent is CntntFrm." );
OSL_ENSURE( pParent != this, "Bin selbst der Parent." );
OSL_ENSURE( pSibling != this, "Bin mein eigener Nachbar." );
OSL_ENSURE( !GetPrev() && !GetNext() && !GetUpper(),
commit 9b6dab22f9cec6690c400ea302473cbb0119a701
Author: Nicolas Christener <nicolas.christener at adfinis-sygroup.ch>
Date: Mon Feb 13 11:38:09 2012 +0100
translate german comments
diff --git a/sw/source/core/layout/virtoutp.hxx b/sw/source/core/layout/virtoutp.hxx
index f6ecb88..61e712f 100644
--- a/sw/source/core/layout/virtoutp.hxx
+++ b/sw/source/core/layout/virtoutp.hxx
@@ -42,7 +42,7 @@ class ViewShell;
class SwLayVout
{
- friend void _FrmFinit(); //loescht das Vout
+ friend void _FrmFinit(); //deletes Vout
private:
ViewShell* pSh;
OutputDevice* pOut;
commit 267e077b979b6f81175ed2d0b7a1ba9e04483549
Author: Nicolas Christener <nicolas.christener at adfinis-sygroup.ch>
Date: Mon Feb 13 11:38:02 2012 +0100
translate german comments
diff --git a/sw/source/core/layout/virtoutp.cxx b/sw/source/core/layout/virtoutp.cxx
index b4acf6c..831b9e0 100644
--- a/sw/source/core/layout/virtoutp.cxx
+++ b/sw/source/core/layout/virtoutp.cxx
@@ -68,9 +68,9 @@ inline DbgRect::DbgRect( OutputDevice *pOutDev, const Rectangle &rRect,
#endif
-/* class SwLayVout verwaltet das virtuelle Outputdevice
- * Es gibt von dieser Klasse einen statischen Member am RootFrm,
- * dieser wird in _FrmInit angelegt und in _FrmFinit zerstoert.
+/* The SWLayVout class manages the virtual output devices.
+ * RootFrm has a static member of this class which is created in _FrmInit
+ * and destroyed in _FrmFinit.
* */
sal_Bool SwRootFrm::FlushVout()
@@ -136,7 +136,7 @@ void SetMappingForVirtDev( const Point& _rNewOrigin,
* SwVOut::DoesFit()
*************************************************************************/
-// rSize muss in Pixel-Koordinaten vorliegen!
+// rSize must be pixel coordinates!
sal_Bool SwLayVout::DoesFit( const Size &rNew )
{
if( rNew.Height() > VIRTUALHEIGHT )
@@ -197,7 +197,7 @@ void SwLayVout::Enter( ViewShell *pShell, SwRect &rRect, sal_Bool bOn )
pSh = pShell;
pOut = NULL;
OutputDevice *pO = pSh->GetOut();
-// Auf dem Drucker oder einem virt. Outputdevice wird nicht getrickst...
+// We don't cheat on printers or virtual output devices...
if( OUTDEV_WINDOW != pO->GetOutDevType() )
return;
@@ -211,7 +211,7 @@ void SwLayVout::Enter( ViewShell *pShell, SwRect &rRect, sal_Bool bOn )
OSL_ENSURE( !pSh->GetWin()->IsReallyVisible() ||
aTmpRect.GetWidth() <= pSh->GetWin()->GetOutputSizePixel().Width() + 2,
"Paintwidth bigger than visarea?" );
- // Passt das Rechteck in unseren Buffer ?
+ // Does the rectangle fit in our buffer?
if( !DoesFit( aTmpRect.GetSize() ) )
{
pOut = NULL;
commit c1beabb18abba10d8ea8454b1baea61292e75b15
Author: Nicolas Christener <nicolas.christener at adfinis-sygroup.ch>
Date: Mon Feb 13 11:37:54 2012 +0100
translate german comments
diff --git a/sw/source/core/layout/unusedf.cxx b/sw/source/core/layout/unusedf.cxx
index f68f2b7..d28eb5f 100644
--- a/sw/source/core/layout/unusedf.cxx
+++ b/sw/source/core/layout/unusedf.cxx
@@ -34,17 +34,17 @@
void SwFrm::Format( const SwBorderAttrs * )
{
- OSL_FAIL( "Format() der Basisklasse gerufen." );
+ OSL_FAIL( "Format() of the base class called." );
}
void SwFrm::Paint(SwRect const&, SwPrintData const*const) const
{
- OSL_FAIL( "Paint() der Basisklasse gerufen." );
+ OSL_FAIL( "Paint() of the base class called." );
}
sal_Bool SwCntntFrm::WouldFit( SwTwips &, sal_Bool&, sal_Bool )
{
- OSL_FAIL( "WouldFit des CntntFrm gerufen." );
+ OSL_FAIL( "WouldFit of CntntFrm called." );
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list