[Libreoffice-commits] .: 3 commits - svtools/source

Stefan Knorr astron at kemper.freedesktop.org
Wed Mar 14 04:17:15 PDT 2012


 svtools/source/brwbox/brwbox1.cxx             |  156 ++++++-------
 svtools/source/brwbox/brwbox2.cxx             |   93 +++----
 svtools/source/brwbox/brwhead.cxx             |    6 
 svtools/source/brwbox/datwin.cxx              |   10 
 svtools/source/brwbox/editbrowsebox.cxx       |    4 
 svtools/source/config/fontsubstconfig.cxx     |    4 
 svtools/source/config/miscopt.cxx             |   20 -
 svtools/source/config/optionsdrawinglayer.cxx |    8 
 svtools/source/config/printoptions.cxx        |   18 -
 svtools/source/config/test/test.cxx           |    2 
 svtools/source/contnr/contentenumeration.hxx  |    4 
 svtools/source/contnr/fileview.cxx            |   10 
 svtools/source/contnr/imivctl.hxx             |   47 +--
 svtools/source/contnr/imivctl1.cxx            |  307 ++++++++++++--------------
 svtools/source/contnr/imivctl2.cxx            |   34 +-
 svtools/source/contnr/ivctrl.cxx              |   10 
 svtools/source/contnr/svimpbox.cxx            |  255 ++++++++++-----------
 svtools/source/contnr/svlbitm.cxx             |    2 
 svtools/source/contnr/svlbox.cxx              |  126 +++++-----
 svtools/source/contnr/svtabbx.cxx             |   30 +-
 svtools/source/contnr/svtreebx.cxx            |  181 +++++++--------
 svtools/source/contnr/treelist.cxx            |   99 ++++----
 22 files changed, 696 insertions(+), 730 deletions(-)

New commits:
commit 25d571fff37ee353ff3b6c89accb73e853392168
Author: Stefan Knorr (astron) <heinzlesspam at gmail.com>
Date:   Wed Mar 14 11:35:04 2012 +0100

    svtools/source/contnr: translate comments

diff --git a/svtools/source/contnr/contentenumeration.hxx b/svtools/source/contnr/contentenumeration.hxx
index bf53373..612f71f 100644
--- a/svtools/source/contnr/contentenumeration.hxx
+++ b/svtools/source/contnr/contentenumeration.hxx
@@ -142,8 +142,8 @@ namespace svt
     //====================================================================
     enum EnumerationResult
     {
-        SUCCESS,    /// the enumration was successfull
-        ERROR,      /// the enumration was unsuccessfull
+        SUCCESS,    /// the enumeration was successful
+        ERROR,      /// the enumeration was unsuccessful
         RUNNING     /// the enumeration is still running, and the maximum wait time has passed
     };
 
diff --git a/svtools/source/contnr/fileview.cxx b/svtools/source/contnr/fileview.cxx
index ab3f6d8..9180e77 100644
--- a/svtools/source/contnr/fileview.cxx
+++ b/svtools/source/contnr/fileview.cxx
@@ -1340,7 +1340,7 @@ sal_Bool SvtFileView::GetParentURL( String& rParentURL ) const
     }
     catch( Exception const & )
     {
-        // perhaps an unkown url protocol (e.g. "private:newdoc")
+        // perhaps an unknown url protocol (e.g. "private:newdoc")
     }
 
     return bRet;
@@ -2274,7 +2274,6 @@ void SvtFileView_Impl::CreateVector_Impl( const Sequence < OUString > &rList )
         // get the title
         pEntry->SetNewTitle( aValue.getToken( 0, '\t', nIndex ) );
         aDisplayText = pEntry->GetTitle();
-        // #83004# --------------------
         ReplaceTabWithString( aDisplayText );
         aDisplayText += aTab;
 
@@ -2410,7 +2409,7 @@ sal_Bool CompareSortingData_Impl( SortingData_Impl* const aOne, SortingData_Impl
         switch ( gnColumn )
         {
             case COLUMN_TITLE:
-                // compare case insensitiv first
+                // compare case insensitive first
                 nComp = pCollatorWrapper->compareString( aOne->GetLowerTitle(), aTwo->GetLowerTitle() );
 
                 if ( nComp == 0 )
@@ -2552,7 +2551,6 @@ String SvtFileView_Impl::FolderInserted( const OUString& rURL, const OUString& r
 
     // title, type, size, date
     aValue = pData->GetTitle();
-    // #83004# --------------------
     ReplaceTabWithString( aValue );
     aValue += aTab;
     aValue += pData->maType;
@@ -2641,7 +2639,7 @@ namespace svtools {
 QueryDeleteDlg_Impl::QueryDeleteDlg_Impl
 (
     Window* pParent,
-    const String& rName      // Eintragsname
+    const String& rName      // entry name
 ) :
 
     ModalDialog( pParent, SvtResId( DLG_SVT_QUERYDELETE ) ),
@@ -2663,7 +2661,7 @@ QueryDeleteDlg_Impl::QueryDeleteDlg_Impl
     _aAllButton.SetClickHdl( aLink );
     _aNoButton.SetClickHdl( aLink );
 
-    // Anzeige der spezifizierten Texte
+    // display specified texts
 
     WinBits nTmpStyle = _aEntry.GetStyle();
     nTmpStyle |= WB_PATHELLIPSIS;
diff --git a/svtools/source/contnr/imivctl.hxx b/svtools/source/contnr/imivctl.hxx
index 0393f8c..2dc4cf2 100644
--- a/svtools/source/contnr/imivctl.hxx
+++ b/svtools/source/contnr/imivctl.hxx
@@ -56,7 +56,7 @@ class IcnGridMap_Impl;
 
 #define F_VER_SBARSIZE_WITH_HBAR        0x0001
 #define F_HOR_SBARSIZE_WITH_VBAR        0x0002
-#define F_PAINTED                       0x0004  // sal_True nach erstem Paint
+#define F_PAINTED                       0x0004  // sal_True after first paint
 #define F_ADD_MODE                      0x0008
 #define F_SELECTING_RECT                0x0020
 #define F_DOWN_CTRL                     0x0080
@@ -67,20 +67,20 @@ class IcnGridMap_Impl;
 #define F_CLEARING_SELECTION            0x2000
 #define F_ARRANGING                     0x4000
 
-// alle Angaben in Pixel
-// Abstaende von Fensterraendern
+// unit = pixels
+// distances from window borders
 #define LROFFS_WINBORDER            4
 #define TBOFFS_WINBORDER            4
-// fuer das Bounding-Rectangle
+// for the bounding rectangle
 #define LROFFS_BOUND                2
 #define TBOFFS_BOUND                2
-// Abstand Fokusrechteck - Icon
+// distance focus rectangle to icon
 #define LROFFS_ICON                 2
 #define TBOFFS_ICON                 2
-// Abstaende Icon - Text
+// distance icon to text
 #define HOR_DIST_BMP_STRING         3
 #define VER_DIST_BMP_STRING         3
-// Breitenoffset Highlight-Rect bei Text
+//  width offset of highlight rectangle for Text
 #define LROFFS_TEXT                 2
 
 #define DEFAULT_MAX_VIRT_WIDTH      200
@@ -172,7 +172,7 @@ class SvxIconChoiceCtrl_Impl
     ScrollBarBox            aScrBarBox;
     Rectangle               aCurSelectionRect;
     SvPtrarr                aSelectedRectList;
-    Timer                   aEditTimer;                 // fuer Inplace-Editieren
+    Timer                   aEditTimer;                 // for editing in place
     Timer                   aAutoArrangeTimer;
     Timer                   aDocRectChangedTimer;
     Timer                   aVisRectChangedTimer;
@@ -188,20 +188,20 @@ class SvxIconChoiceCtrl_Impl
     SvtIconChoiceCtrl*      pView;
     IcnCursor_Impl*         pImpCursor;
     IcnGridMap_Impl*        pGridMap;
-    long                    nMaxVirtWidth;  // max. Breite aVirtOutputSize bei ALIGN_TOP
-    long                    nMaxVirtHeight; // max. Hoehe aVirtOutputSize bei ALIGN_LEFT
+    long                    nMaxVirtWidth;  // max. width aVirtOutputSize for ALIGN_TOP
+    long                    nMaxVirtHeight; // max. height aVirtOutputSize for ALIGN_LEFT
     SvxIconChoiceCtrlEntryList_impl*    pZOrderList;
     SvPtrarr*               pColumns;
     IcnViewEdit_Impl*       pEdit;
     WinBits                 nWinBits;
-    long                    nMaxBoundHeight;            // Hoehe des hoechsten BoundRects
+    long                    nMaxBoundHeight;            // height of highest BoundRects
     sal_uInt16              nFlags;
     sal_uInt16              nCurTextDrawFlags;
     sal_uLong               nUserEventAdjustScrBars;
     sal_uLong               nUserEventShowCursor;
     SvxIconChoiceCtrlEntry* pCurHighlightFrame;
     sal_Bool                bHighlightFramePressed;
-    SvxIconChoiceCtrlEntry* pHead;                      // Eintrag oben links
+    SvxIconChoiceCtrlEntry* pHead;                      // top left entry
     SvxIconChoiceCtrlEntry* pCursor;
     SvxIconChoiceCtrlEntry* pPrevDropTarget;
     SvxIconChoiceCtrlEntry* pHdlEntry;
@@ -210,7 +210,7 @@ class SvxIconChoiceCtrl_Impl
     VirtualDevice*          pDDBufDev;
     VirtualDevice*          pDDTempDev;
     VirtualDevice*          pEntryPaintDev;
-    SvxIconChoiceCtrlEntry* pAnchor;                    // fuer Selektion
+    SvxIconChoiceCtrlEntry* pAnchor;                    // for selection
     LocalFocus              aFocus;                             // Data for focusrect
     ::svt::AccessibleFactoryAccess aAccFactory;
 
@@ -289,7 +289,7 @@ class SvxIconChoiceCtrl_Impl
     void                ClipAtVirtOutRect( Rectangle& rRect ) const;
     void                AdjustAtGrid( const SvPtrarr& rRow, SvxIconChoiceCtrlEntry* pStart=0 );
     Point               AdjustAtGrid(
-                            const Rectangle& rCenterRect, // "Schwerpunkt" des Objekts (typ. Bmp-Rect)
+                            const Rectangle& rCenterRect, // balance point of object (typically Bmp-Rect)
                             const Rectangle& rBoundRect
                         ) const;
     sal_uLong           GetPredecessorGrid( const Point& rDocPos) const;
@@ -397,7 +397,7 @@ public:
     SvxIconChoiceCtrlEntry* GetCurEntry() const { return pCursor; }
     void                SetCursor(
                             SvxIconChoiceCtrlEntry*,
-                            // sal_True == bei Single-Selection die Sel. mitfuehren
+                            // sal_True == carry selection when single-selecting
                             sal_Bool bSyncSingleSelection = sal_True,
                             sal_Bool bShowFocusAsync = sal_False
                         );
@@ -431,7 +431,7 @@ public:
                             const Point& rPos,
                             const Size& rBoundingSize
                         );
-    // berechnet alle ungueltigen BoundRects neu
+    // recalculates all invalid BoundRects
     void                RecalcAllBoundingRectsSmart();
     const Rectangle&    GetEntryBoundRect( SvxIconChoiceCtrlEntry* );
     void                InvalidateBoundingRect( Rectangle& rRect )
@@ -461,9 +461,9 @@ public:
                             ::vcl::ControlLayoutData* _pLayoutData = NULL
                         );
 
-    // berechnet alle BoundingRects neu, wenn bMustRecalcBoundingRects == sal_True
+    // recalculates all BoundingRects if bMustRecalcBoundingRects == sal_True
     void                CheckBoundingRects() { if (bBoundRectsDirty) RecalcAllBoundingRectsSmart(); }
-    // berechnet alle invalidierten BoundingRects neu
+    // recalculates all invalidated BoundingRects
     void                ShowTargetEmphasis( SvxIconChoiceCtrlEntry* pEntry, sal_Bool bShow );
     void                Command( const CommandEvent& rCEvt );
     void                ToTop( SvxIconChoiceCtrlEntry* );
@@ -536,7 +536,7 @@ public:
     sal_Bool            ArePredecessorsSet() const { return (sal_Bool)(pHead != 0); }
     SvxIconChoiceCtrlEntry* GetPredecessorHead() const { return pHead; }
     void                SetEntryPredecessor(SvxIconChoiceCtrlEntry* pEntry,SvxIconChoiceCtrlEntry* pPredecessor);
-    // liefert gueltige Ergebnisse nur im AutoArrange-Modus!
+    // only delivers valid results when in AutoArrange mode!
     SvxIconChoiceCtrlEntry* FindEntryPredecessor( SvxIconChoiceCtrlEntry* pEntry, const Point& );
 
     void                SetPositionMode( SvxIconChoiceCtrlPositionMode );
@@ -608,15 +608,14 @@ public:
                             ~IcnCursor_Impl();
     void                    Clear();
 
-    // fuer Cursortravelling usw.
+    // for Cursortravelling etc.
     SvxIconChoiceCtrlEntry* GoLeftRight( SvxIconChoiceCtrlEntry*, sal_Bool bRight );
     SvxIconChoiceCtrlEntry* GoUpDown( SvxIconChoiceCtrlEntry*, sal_Bool bDown );
     SvxIconChoiceCtrlEntry* GoPageUpDown( SvxIconChoiceCtrlEntry*, sal_Bool bDown );
 
-    // Erzeugt fuer jede Zeile (Hoehe=nGridDY) eine nach BoundRect.Left()
-    // sortierte Liste der Eintraege, die in ihr stehen. Eine Liste kann
-    // leer sein. Die Listen gehen in das Eigentum des Rufenden ueber und
-    // muessen mit DestroyGridAdjustData geloescht werden
+    // Creates a list of entries for every row (height = nGridDY) sorted by
+    // BoundRect.Left(). A list may be empty. The lists become the property of
+    // the caller and have to be deleted with DestroyGridAdjustData.
     void                    CreateGridAjustData( SvPtrarr& pLists, SvxIconChoiceCtrlEntry* pRow=0);
     static void             DestroyGridAdjustData( SvPtrarr& rLists );
 };
diff --git a/svtools/source/contnr/imivctl1.cxx b/svtools/source/contnr/imivctl1.cxx
index b0edba9..eec11d1 100644
--- a/svtools/source/contnr/imivctl1.cxx
+++ b/svtools/source/contnr/imivctl1.cxx
@@ -250,7 +250,7 @@ void SvxIconChoiceCtrl_Impl::SetStyle( WinBits nWinStyle )
 IMPL_LINK( SvxIconChoiceCtrl_Impl, ScrollUpDownHdl, ScrollBar*, pScrollBar )
 {
     StopEntryEditing( sal_True );
-    // Pfeil hoch: delta=-1; Pfeil runter: delta=+1
+    // arrow up: delta=-1; arrow down: delta=+1
     Scroll( 0, pScrollBar->GetDelta(), sal_True );
     bEndScrollInvalidate = sal_True;
     return 0;
@@ -259,7 +259,7 @@ IMPL_LINK( SvxIconChoiceCtrl_Impl, ScrollUpDownHdl, ScrollBar*, pScrollBar )
 IMPL_LINK( SvxIconChoiceCtrl_Impl, ScrollLeftRightHdl, ScrollBar*, pScrollBar )
 {
     StopEntryEditing( sal_True );
-    // Pfeil links: delta=-1; Pfeil rechts: delta=+1
+    // arrow left: delta=-1; arrow right: delta=+1
     Scroll( pScrollBar->GetDelta(), 0, sal_True );
     bEndScrollInvalidate = sal_True;
     return 0;
@@ -309,9 +309,9 @@ void SvxIconChoiceCtrl_Impl::InsertEntry( SvxIconChoiceCtrlEntry* pEntry, size_t
     }
     else
     {
-        // wenn der UpdateMode sal_True ist, wollen wir nicht pauschal alle
-        // BoundRects auf 'zu ueberpruefen' setzen, sondern nur das des
-        // neuen Eintrags. Deshalb kein InvalidateBoundingRect aufrufen!
+        // If the UpdateMode is sal_True, don't set all bounding rectangles to
+        // 'to be checked', but only the bounding rectangle of the new entry.
+        // Thus, don't call InvalidateBoundingRect!
         pEntry->aRect.Right() = LONG_MAX;
         if( bUpdateMode )
         {
@@ -319,7 +319,7 @@ void SvxIconChoiceCtrl_Impl::InsertEntry( SvxIconChoiceCtrlEntry* pEntry, size_t
             Rectangle aOutputArea( GetOutputRect() );
             pGridMap->OccupyGrids( pEntry );
             if( !aOutputArea.IsOver( pEntry->aRect ) )
-                return; // ist nicht sichtbar
+                return; // is invisible
             pView->Invalidate( pEntry->aRect );
         }
         else
@@ -421,9 +421,8 @@ void SvxIconChoiceCtrl_Impl::SelectEntry( SvxIconChoiceCtrlEntry* pEntry, sal_Bo
 void SvxIconChoiceCtrl_Impl::EntrySelected( SvxIconChoiceCtrlEntry* pEntry, sal_Bool bSelect,
     sal_Bool bSyncPaint )
 {
-    // bei SingleSelection dafuer sorgen, dass der Cursor immer
-    // auf dem (einzigen) selektierten Eintrag steht. Aber nur,
-    // wenn es bereits einen Cursor gibt
+    // When using SingleSelection, make sure that the cursor is always placed
+    // over the (only) selected entry. (But only if a cursor exists.)
     if( bSelect && pCursor &&
         eSelectionMode == SINGLE_SELECTION &&
         pEntry != pCursor )
@@ -432,17 +431,17 @@ void SvxIconChoiceCtrl_Impl::EntrySelected( SvxIconChoiceCtrlEntry* pEntry, sal_
         //DBG_ASSERT(pView->GetSelectionCount()==1,"selection count?")
     }
 
-    // beim Aufziehen nicht, da sonst die Schleife in SelectRect
-    // nicht richtig funktioniert!
+    // Not when dragging though, else the loop in SelectRect doesn't work
+    // correctly!
     if( !(nFlags & F_SELECTING_RECT) )
         ToTop( pEntry );
     if( bUpdateMode )
     {
         if( pEntry == pCursor )
             ShowCursor( sal_False );
-        if( pView->IsTracking() && (bSelect || !pView->HasBackground()) ) // beim Tracken immer synchron
+        if( pView->IsTracking() && (bSelect || !pView->HasBackground()) ) // always synchronous when tracking
             PaintEntry( pEntry );
-        else if( bSyncPaint ) // synchron & mit virtuellem OutDev!
+        else if( bSyncPaint ) // synchronous & with a virtual OutDev!
             PaintEntryVirtOutDev( pEntry );
         else
         {
@@ -471,7 +470,7 @@ void SvxIconChoiceCtrl_Impl::ResetVirtSize()
         pCur->ClearFlags( ICNVIEW_FLAG_POS_MOVED );
         if( pCur->IsPosLocked() )
         {
-            // VirtSize u.a. anpassen
+            // adapt (among others) VirtSize
             if( !IsBoundingRectValid( pCur->aRect ) )
                 FindBoundingRect( pCur );
             else
@@ -612,7 +611,7 @@ void SvxIconChoiceCtrl_Impl::ImpArrange( sal_Bool bKeepPredecessors )
     SetOrigin( Point() );
     VisRectChanged();
     RecalcAllBoundingRectsSmart();
-    // in der Detailsview muss das Invalidieren intelligenter erfolgen
+    // TODO: the invalidation in the detail view should be more intelligent
     //if( !(nWinBits & WB_DETAILS ))
         pView->Invalidate( INVALIDATE_NOCHILDREN );
     nFlags &= ~F_ARRANGING;
@@ -717,7 +716,7 @@ void SvxIconChoiceCtrl_Impl::Paint( const Rectangle& rRect )
         if( rRect.IsOver( rBoundRect ) )
         {
             PaintEntry( pEntry, rBoundRect.TopLeft(), pView, sal_True );
-            // Eintraege, die neu gezeichnet werden, auf Top setzen
+            // set entries to Top if they are being repainted
             pPaintedEntries->push_back( pEntry );
         }
         else
@@ -799,7 +798,7 @@ sal_Bool SvxIconChoiceCtrl_Impl::MouseButtonDown( const MouseEvent& rMEvt)
         return sal_True;
     }
 
-    if( pAnchor && (rMEvt.IsShift() || rMEvt.IsMod1())) // Tastaturselektion?
+    if( pAnchor && (rMEvt.IsShift() || rMEvt.IsMod1())) // keyboard selection?
     {
         DBG_ASSERT(eSelectionMode != SINGLE_SELECTION,"Invalid selection mode");
         if( rMEvt.IsMod1() )
@@ -889,7 +888,7 @@ sal_Bool SvxIconChoiceCtrl_Impl::MouseButtonDown( const MouseEvent& rMEvt)
         {
             if( rMEvt.IsLeft() && (nWinBits & WB_HIGHLIGHTFRAME) )
             {
-                pCurHighlightFrame = 0; // Neues painten des Frames erzwingen
+                pCurHighlightFrame = 0; // force repaint of frame
                 bHighlightFramePressed = sal_True;
                 SetEntryHighlightFrame( pEntry, sal_True );
             }
@@ -900,13 +899,13 @@ sal_Bool SvxIconChoiceCtrl_Impl::MouseButtonDown( const MouseEvent& rMEvt)
             {
                 if( !bSelected )
                 {
-                    DeselectAllBut( pEntry, sal_True /* Synchron painten */ );
+                    DeselectAllBut( pEntry, sal_True /* paint synchronously */ );
                     SetCursor( pEntry );
                     SelectEntry( pEntry, sal_True, sal_True, sal_False, sal_True );
                 }
                 else
                 {
-                    // erst im Up deselektieren, falls Move per D&D!
+                    // deselect only in the Up, if the Move happened via D&D!
                     nFlags |= F_DOWN_DESELECT;
                     if( bEditingEnabled && IsTextHit( pEntry, aDocPos ) &&
                         rMEvt.IsLeft())
@@ -964,7 +963,7 @@ sal_Bool SvxIconChoiceCtrl_Impl::MouseButtonUp( const MouseEvent& rMEvt )
     {
         bHandled = sal_True;
         SvxIconChoiceCtrlEntry* pEntry = pCurHighlightFrame;
-        pCurHighlightFrame = 0; // Neues painten des Frames erzwingen
+        pCurHighlightFrame = 0; // force repaint of frame
         bHighlightFramePressed = sal_False;
         SetEntryHighlightFrame( pEntry, sal_True );
 
@@ -1265,17 +1264,17 @@ sal_Bool SvxIconChoiceCtrl_Impl::KeyInput( const KeyEvent& rKEvt )
     return bKeyUsed;
 }
 
-// Berechnet TopLeft der Scrollbars (nicht ihre Groessen!)
+// recalculate TopLeft of scrollbars (but not their sizes!)
 void SvxIconChoiceCtrl_Impl::PositionScrollBars( long nRealWidth, long nRealHeight )
 {
-    // hor scrollbar
+    // horizontal scrollbar
     Point aPos( 0, nRealHeight );
     aPos.Y() -= nHorSBarHeight;
 
     if( aHorSBar.GetPosPixel() != aPos )
         aHorSBar.SetPosPixel( aPos );
 
-    // ver scrollbar
+    // vertical scrollbar
     aPos.X() = nRealWidth; aPos.Y() = 0;
     aPos.X() -= nVerSBarWidth;
     aPos.X()++;
@@ -1320,7 +1319,7 @@ void SvxIconChoiceCtrl_Impl::AdjustScrollBars( sal_Bool )
     sal_uInt16 nResult = 0;
     if( nVirtHeight )
     {
-        // activate ver scrollbar ?
+        // activate vertical scrollbar?
         if( !bNoVerSBar && (bVerSBar || ( nVirtHeight > nVisibleHeight)) )
         {
             nResult = 0x0001;
@@ -1333,7 +1332,7 @@ void SvxIconChoiceCtrl_Impl::AdjustScrollBars( sal_Bool )
 
             nFlags |= F_HOR_SBARSIZE_WITH_VBAR;
         }
-        // activate hor scrollbar ?
+        // activate horizontal scrollbar?
         if( !bNoHorSBar && (bHorSBar || (nVirtWidth > nVisibleWidth)) )
         {
             nResult |= 0x0002;
@@ -1344,11 +1343,11 @@ void SvxIconChoiceCtrl_Impl::AdjustScrollBars( sal_Bool )
             else
                 nVisibleHeight = nRealHeight;
 
-            // brauchen wir jetzt doch eine senkrechte Scrollbar ?
-            if( !(nResult & 0x0001) &&  // nur wenn nicht schon da
+            // do we need a vertical scrollbar after all?
+            if( !(nResult & 0x0001) &&  // only if not already there
                 ( !bNoVerSBar && ((nVirtHeight > nVisibleHeight) || bVerSBar)) )
             {
-                nResult = 3; // beide sind an
+                nResult = 3; // both turned on
                 nRealWidth -= nVerSBarWidth;
 
                 if( nRealWidth > nVirtWidth )
@@ -1361,7 +1360,7 @@ void SvxIconChoiceCtrl_Impl::AdjustScrollBars( sal_Bool )
         }
     }
 
-    // size ver scrollbar
+    // size vertical scrollbar
     long nThumb = aVerSBar.GetThumbPos();
     Size aSize( nVerSBarWidth, nRealHeight );
     aSize.Height() += 2;
@@ -1381,12 +1380,12 @@ void SvxIconChoiceCtrl_Impl::AdjustScrollBars( sal_Bool )
         aVerSBar.Hide();
     }
 
-    // size hor scrollbar
+    // size horizontal scrollbar
     nThumb = aHorSBar.GetThumbPos();
     aSize.Width() = nRealWidth;
     aSize.Height() = nHorSBarHeight;
     aSize.Width()++;
-    if( nResult & 0x0001 ) // vertikale Scrollbar ?
+    if( nResult & 0x0001 ) // vertical scrollbar?
     {
         aSize.Width()++;
         nRealWidth++;
@@ -1407,8 +1406,8 @@ void SvxIconChoiceCtrl_Impl::AdjustScrollBars( sal_Bool )
     }
 
     aOutputSize.Width() = nRealWidth;
-    if( nResult & 0x0002 ) // hor scrollbar ?
-        nRealHeight++; // weil unterer Rand geclippt wird
+    if( nResult & 0x0002 ) // horizontal scrollbar ?
+        nRealHeight++; // because lower border is clipped
     aOutputSize.Height() = nRealHeight;
 
     Rectangle aNewOutRect( GetOutputRect() );
@@ -1435,11 +1434,11 @@ void SvxIconChoiceCtrl_Impl::Resize()
 
     const Size& rSize = pView->Control::GetOutputSizePixel();
     PositionScrollBars( rSize.Width(), rSize.Height() );
-    // Die ScrollBars werden asynchron ein/ausgeblendet, damit abgeleitete
-    // Klassen im Resize ein Arrange durchfuehren koennen, ohne dass
-    // die ScrollBars aufblitzen
-    // Wenn schon ein Event unterwegs ist, dann braucht kein neues verschickt werden,
-    // zumindest, solange es nur einen EventTypen gibt
+    // The scrollbars are shown/hidden asynchronously, so derived classes can
+    // do an Arrange during Resize, without the scrollbars suddenly turning
+    // on and off again.
+    // If an event is already underway, we don't need to send a new one, at least
+    // as long as there is only one event type.
     if ( ! nUserEventAdjustScrBars )
         nUserEventAdjustScrBars =
             Application::PostUserEvent( LINK( this, SvxIconChoiceCtrl_Impl, UserEventHdl),
@@ -1532,7 +1531,7 @@ sal_Bool SvxIconChoiceCtrl_Impl::CheckVerScrollBar()
 }
 
 
-// blendet Scrollbars aus, wenn sie nicht mehr benoetigt werden
+// hides scrollbars if they're unnecessary
 void SvxIconChoiceCtrl_Impl::CheckScrollBars()
 {
     CheckVerScrollBar();
@@ -1589,7 +1588,7 @@ void SvxIconChoiceCtrl_Impl::PaintEntry( SvxIconChoiceCtrlEntry* pEntry, sal_Boo
     PaintEntry( pEntry, aPos, 0, bIsBackgroundPainted );
 }
 
-// Prios der Emphasis:  bDropTarget => bCursored => bSelected
+// priorities of the emphasis:  bDropTarget => bCursored => bSelected
 void SvxIconChoiceCtrl_Impl::PaintEmphasis(
     const Rectangle& rTextRect, const Rectangle& rImageRect,
     sal_Bool bSelected, sal_Bool bDropTarget, sal_Bool bCursored, OutputDevice* pOut,
@@ -1638,7 +1637,7 @@ void SvxIconChoiceCtrl_Impl::PaintEmphasis(
         }
     }
 
-    // Textrechteck zeichnen
+    // draw text rectangle
     if( !bSolidTextRect )
     {
         if( !bIsBackgroundPainted )
@@ -1657,14 +1656,14 @@ void SvxIconChoiceCtrl_Impl::PaintEmphasis(
             pOut->SetLineColor( aOldLineColor );
     }
 
-    // Bildrechteck zeichnen
+    // draw image rectangle
     if( !bSolidImageRect )
     {
         if( !bIsBackgroundPainted )
             pOut->Erase( rImageRect );
     }
-// die Emphasis des Images muss von der abgeleiteten Klasse gezeichnet werden
-// (in der virtuellen Funktion DrawEntryImage)
+// the emphasis of the images has to be drawn by the derived class (in the
+// virtual function DrawEntryImage)
 //  else
 //      pOut->DrawRect( rImageRect );
 
@@ -1747,8 +1746,8 @@ void SvxIconChoiceCtrl_Impl::PaintEntryVirtOutDev( SvxIconChoiceCtrlEntry* pEntr
     Wallpaper aPaper( pView->GetBackground() );
     Rectangle aRect( aPaper.GetRect() );
 
-    // Rechteck verschieben, so dass das Boundrect des Entries im
-    // VirtOut-Dev bei 0,0 liegt.
+    // move rectangle, so the bounding rectangle of the entry lies in
+    // VirtOut-Dev at 0,0
     aRect.Move( -rRect.Left(), -rRect.Top() );
     aPaper.SetRect( aRect );
     pEntryPaintDev->SetBackground( aPaper );
@@ -1816,8 +1815,8 @@ void SvxIconChoiceCtrl_Impl::PaintEntry( SvxIconChoiceCtrlEntry* pEntry, const P
         const StyleSettings& rSettings = pOut->GetSettings().GetStyleSettings();
         Font aNewFont( aTempFont );
 
-        // bei hart attributierter Font-Fuellcolor muessen wir diese
-        // hart auf die Highlight-Color setzen
+        // font fill colors that are attributed "hard" need corresponding "hard"
+        // attributed highlight colors
         if( pView->HasFontFillColor() )
         {
             if( (nWinBits & WB_NOHIDESELECTION) || pView->HasFocus() )
@@ -1879,7 +1878,7 @@ void SvxIconChoiceCtrl_Impl::PaintEntry( SvxIconChoiceCtrlEntry* pEntry, const P
     PaintItem( aTextRect, IcnViewFieldTypeText, pEntry,
         nTextPaintFlags, pOut );
 
-    // Highlight-Frame zeichnen
+    // draw highlight frame
     if( pEntry == pCurHighlightFrame && !bNoEmphasis )
         DrawHighlightFrame( pOut, CalcFocusRect( pEntry ), sal_False );
 
@@ -1914,14 +1913,13 @@ void SvxIconChoiceCtrl_Impl::SetEntryPos( SvxIconChoiceCtrlEntry* pEntry, const
         {
             if( bAdjustVirtSize )
             {
-                // Durch das Ausrichten des (ggf. gerade neu positionierten) Eintrags,
-                // kann er wieder komplett
-                // in den sichtbaren Bereich rutschen, so dass u.U. doch keine Scrollbar
-                // eingeblendet werden muss. Um deshalb ein 'Aufblitzen' der
-                // Scrollbar(s) zu vermeiden, wird zum Aufplustern der virtuellen
-                // Ausgabegroesse bereits das ausgerichtete Boundrect des
-                // Eintrags genommen. Die virtuelle Groesse muss angepasst werden,
-                // da AdjustEntryAtGrid von ihr abhaengt.
+                // By aligning the (in some cases newly positioned) entry, it
+                // can become completely visible again, so that maybe we don't
+                // need a scrollbar after all. To avoid suddenly turning the
+                // scrollbar(s) on and then off again, we use the aligned
+                // bounding rectangle of the entry to enlarge the virtual
+                // output size. The virtual size has to be adapted, because
+                // AdjustEntryAtGrid depends on it.
                 const Rectangle& rBoundRect = GetEntryBoundRect( pEntry );
                 Rectangle aCenterRect( CalcBmpRect( pEntry, 0 ));
                 Point aNewPos( AdjustAtGrid( aCenterRect, rBoundRect ) );
@@ -1952,7 +1950,7 @@ void SvxIconChoiceCtrl_Impl::SetEntryPos( SvxIconChoiceCtrlEntry* pEntry, const
 
 void SvxIconChoiceCtrl_Impl::SetNoSelection()
 {
-    // rekursive Aufrufe ueber SelectEntry abblocken
+    // block recursive calls via SelectEntry
     if( !(nFlags & F_CLEARING_SELECTION ))
     {
         nFlags |= F_CLEARING_SELECTION;
@@ -1964,7 +1962,7 @@ void SvxIconChoiceCtrl_Impl::SetNoSelection()
 SvxIconChoiceCtrlEntry* SvxIconChoiceCtrl_Impl::GetEntry( const Point& rDocPos, sal_Bool bHit )
 {
     CheckBoundingRects();
-    // Z-Order-Liste vom Ende her absuchen
+    // search through z-order list from the end
     size_t nCount = pZOrderList->size();
     while( nCount )
     {
@@ -2041,7 +2039,7 @@ Rectangle SvxIconChoiceCtrl_Impl::CalcBmpRect( SvxIconChoiceCtrlEntry* pEntry, c
         case WB_SMALLICON:
         case WB_DETAILS:
             aPos.Y() += ( aBound.GetHeight() - aImageSize.Height() ) / 2;
-            //todo: hor. Abstand zum BoundRect?
+            //TODO: determine horizontal distance to bounding rectangle
             return Rectangle( aPos, aImageSize );
 
         default:
@@ -2079,10 +2077,10 @@ Rectangle SvxIconChoiceCtrl_Impl::CalcTextRect( SvxIconChoiceCtrlEntry* pEntry,
         case WB_ICON:
             aPos.Y() += aImageSize.Height();
             aPos.Y() += VER_DIST_BMP_STRING;
-            // beim Editieren etwas mehr Platz
+            // at little more space when editing
             if( bEdit )
             {
-                // 20% rauf
+                // +20%
                 long nMinWidth = (( (aImageSize.Width()*10) / 100 ) * 2 ) +
                                  aImageSize.Width();
                 if( nMinWidth > nBoundWidth )
@@ -2091,7 +2089,7 @@ Rectangle SvxIconChoiceCtrl_Impl::CalcTextRect( SvxIconChoiceCtrlEntry* pEntry,
                 if( aTextSize.Width() < nMinWidth )
                     aTextSize.Width() = nMinWidth;
 
-                // beim Editieren ist Ueberlappung nach unten erlaubt
+                // when editing, overlap with the area below is allowed
                 Size aOptSize = aMaxTextRect.GetSize();
                 if( aOptSize.Height() > aTextSize.Height() )
                     aTextSize.Height() = aOptSize.Height();
@@ -2253,7 +2251,7 @@ void SvxIconChoiceCtrl_Impl::SetCursor( SvxIconChoiceCtrlEntry* pEntry, sal_Bool
     {
         pOldCursor->ClearFlags( ICNVIEW_FLAG_FOCUSED );
         if( eSelectionMode == SINGLE_SELECTION && bSyncSingleSelection )
-            SelectEntry( pOldCursor, sal_False, sal_True ); // alten Cursor deselektieren
+            SelectEntry( pOldCursor, sal_False, sal_True ); // deselect old cursor
     }
     if( pCursor )
     {
@@ -2299,7 +2297,7 @@ void SvxIconChoiceCtrl_Impl::ImpHideDDIcon()
     if( pDDDev )
     {
         Size aSize( pDDDev->GetOutputSizePixel() );
-        // pView restaurieren
+        // restore pView
         pView->DrawOutDev( aDDLastRectPos, aSize, Point(), aSize, *pDDDev );
     }
 }
@@ -2383,7 +2381,7 @@ sal_Bool SvxIconChoiceCtrl_Impl::HandleScrollCommand( const CommandEvent& rCmd )
 
 void SvxIconChoiceCtrl_Impl::Command( const CommandEvent& rCEvt )
 {
-    // Rollmaus-Event?
+    // scroll mouse event?
     if( (rCEvt.GetCommand() == COMMAND_WHEEL) ||
         (rCEvt.GetCommand() == COMMAND_STARTAUTOSCROLL) ||
         (rCEvt.GetCommand() == COMMAND_AUTOSCROLL) )
@@ -2425,9 +2423,9 @@ void SvxIconChoiceCtrl_Impl::ClipAtVirtOutRect( Rectangle& rRect ) const
         rRect.Left() = 0;
 }
 
-// rRect: Bereich des Dokumentes (in Dokumentkoordinaten), der
-// sichtbar gemacht werden soll.
-// bScrBar == sal_True: Das Rect wurde aufgrund eines ScrollBar-Events berechnet
+// rRect: area of the document (in document coordinates) that we want to make
+// visible
+// bScrBar == sal_True: rectangle was calculated because of a scrollbar event
 
 void SvxIconChoiceCtrl_Impl::MakeVisible( const Rectangle& rRect, sal_Bool bScrBar,
     sal_Bool bCallRectChangedHdl )
@@ -2435,21 +2433,21 @@ void SvxIconChoiceCtrl_Impl::MakeVisible( const Rectangle& rRect, sal_Bool bScrB
     Rectangle aVirtRect( rRect );
     ClipAtVirtOutRect( aVirtRect );
     Point aOrigin( pView->GetMapMode().GetOrigin() );
-    // in Dokumentkoordinate umwandeln
+    // convert to document coordinate
     aOrigin *= -1;
     Rectangle aOutputArea( GetOutputRect() );
     if( aOutputArea.IsInside( aVirtRect ) )
-        return; // ist schon sichtbar
+        return; // is already visible
 
     long nDy;
     if( aVirtRect.Top() < aOutputArea.Top() )
     {
-        // nach oben scrollen (nDy < 0)
+        // scroll up (nDy < 0)
         nDy = aVirtRect.Top() - aOutputArea.Top();
     }
     else if( aVirtRect.Bottom() > aOutputArea.Bottom() )
     {
-        // nach unten scrollen (nDy > 0)
+        // scroll down (nDy > 0)
         nDy = aVirtRect.Bottom() - aOutputArea.Bottom();
     }
     else
@@ -2458,12 +2456,12 @@ void SvxIconChoiceCtrl_Impl::MakeVisible( const Rectangle& rRect, sal_Bool bScrB
     long nDx;
     if( aVirtRect.Left() < aOutputArea.Left() )
     {
-        // nach links scrollen (nDx < 0)
+        // scroll to the left (nDx < 0)
         nDx = aVirtRect.Left() - aOutputArea.Left();
     }
     else if( aVirtRect.Right() > aOutputArea.Right() )
     {
-        // nach rechts scrollen (nDx > 0)
+        // scroll to the right (nDx > 0)
         nDx = aVirtRect.Right() - aOutputArea.Right();
     }
     else
@@ -2479,8 +2477,7 @@ void SvxIconChoiceCtrl_Impl::MakeVisible( const Rectangle& rRect, sal_Bool bScrB
         ShowCursor( sal_False );
     }
 
-    // Origin fuer SV invertieren (damit wir in
-    // Dokumentkoordinaten scrollen/painten koennen)
+    // invert origin for SV (so we can scroll/paint using document coordinates)
     aOrigin *= -1;
     SetOrigin( aOrigin );
 
@@ -2495,7 +2492,7 @@ void SvxIconChoiceCtrl_Impl::MakeVisible( const Rectangle& rRect, sal_Bool bScrB
 
     if( bScrollable && GetUpdateMode() )
     {
-        // in umgekehrte Richtung scrollen!
+        // scroll in reverse direction!
         pView->Control::Scroll( -nDx, -nDy, aOutputArea,
             SCROLL_NOCHILDREN | SCROLL_USECLIPREGION | SCROLL_CLIP );
     }
@@ -2507,7 +2504,7 @@ void SvxIconChoiceCtrl_Impl::MakeVisible( const Rectangle& rRect, sal_Bool bScrB
         if( !bScrBar )
         {
             aOrigin *= -1;
-            // Thumbs korrigieren
+            // correct thumbs
             if(aHorSBar.IsVisible() && aHorSBar.GetThumbPos() != aOrigin.X())
                 aHorSBar.SetThumbPos( aOrigin.X() );
             if(aVerSBar.IsVisible() && aVerSBar.GetThumbPos() != aOrigin.Y())
@@ -2518,15 +2515,15 @@ void SvxIconChoiceCtrl_Impl::MakeVisible( const Rectangle& rRect, sal_Bool bScrB
     if( GetUpdateMode() )
         ShowCursor( sal_True );
 
-    // pruefen, ob ScrollBars noch benoetigt werden
+    // check if we still need scrollbars
     CheckScrollBars();
     if( bScrollable && GetUpdateMode() )
         pView->Update();
 
-    // kann der angeforderte Bereich nicht komplett sichtbar gemacht werden,
-    // wird auf jeden Fall der Vis-Rect-Changed-Handler gerufen. Eintreten kann der
-    // Fall z.B. wenn nur wenige Pixel des unteren Randes nicht sichtbar sind,
-    // eine ScrollBar aber eine groessere Line-Size eingestellt hat.
+    // If the requested area can not be made completely visible, the
+    // Vis-Rect-Changed handler is called in any case. This case may occur e.g.
+    // if only few pixels of the lower border are invisible, but a scrollbar has
+    // a larger line size.
     if( bCallRectChangedHdl || GetOutputRect() != rRect )
         VisRectChanged();
 }
@@ -2553,7 +2550,7 @@ void SvxIconChoiceCtrl_Impl::DeselectAllBut( SvxIconChoiceCtrlEntry* pThisEntryN
 {
     ClearSelectedRectList();
     //
-    // !!!!!!! Todo: Evtl. Z-Orderlist abarbeiten !!!!!!!
+    // TODO: work through z-order list, if necessary!
     //
     size_t nCount = aEntries.size();
     for( size_t nCur = 0; nCur < nCount; nCur++ )
@@ -2570,7 +2567,7 @@ Size SvxIconChoiceCtrl_Impl::GetMinGrid() const
 {
     Size aMinSize( aImageSize );
     aMinSize.Width() += 2 * LROFFS_BOUND;
-    aMinSize.Height() += TBOFFS_BOUND;  // PB: einmal Offset reicht (FileDlg)
+    aMinSize.Height() += TBOFFS_BOUND;  // single offset is enough (FileDlg)
     String aStrDummy( RTL_CONSTASCII_USTRINGPARAM( "XXX" ) );
     Size aTextSize( pView->GetTextWidth( aStrDummy ), pView->GetTextHeight() );
     if( nWinBits & WB_ICON )
@@ -2596,8 +2593,8 @@ void SvxIconChoiceCtrl_Impl::SetGrid( const Size& rSize )
         aSize.Height() = aMinSize.Height();
 
     nGridDX = aSize.Width();
-    // HACK(Detail-Modus ist noch nicht vollstaendig implementiert!)
-    // dieses Workaround bringts mit einer Spalte zum Fliegen
+    // HACK: Detail mode is not yet fully implemented, this workaround makes it
+    // fly with a single column
     if( nWinBits & WB_DETAILS )
     {
         const SvxIconChoiceCtrlColumnInfo* pCol = GetColumn( 0 );
@@ -2608,14 +2605,14 @@ void SvxIconChoiceCtrl_Impl::SetGrid( const Size& rSize )
     SetDefaultTextSize();
 }
 
-// berechnet die maximale Groesse, die das Textrechteck innerhalb des
-// umschliessenden Rechtecks einnehmen kann. Im Modus WB_ICON und
-// IcnShowTextFull wird Bottom auf LONG_MAX gesetzt
+// Calculates the maximum size that the text rectangle may use within its
+// bounding rectangle. In WB_ICON mode with IcnShowTextFull, Bottom is set to
+// LONG_MAX.
 
 Rectangle SvxIconChoiceCtrl_Impl::CalcMaxTextRect( const SvxIconChoiceCtrlEntry* pEntry ) const
 {
     Rectangle aBoundRect;
-    // keine Endlosrekursion! deshalb das Bound-Rect hier nicht berechnen
+    // avoid infinite recursion: don't calculate the bounding rectangle here
     if( IsBoundingRectValid( pEntry->aRect ) )
         aBoundRect = pEntry->aRect;
     else
@@ -2683,24 +2680,24 @@ void SvxIconChoiceCtrl_Impl::Center( SvxIconChoiceCtrlEntry* pEntry ) const
     Size aSize( CalcBoundingSize( pEntry ) );
     if( nWinBits & WB_ICON )
     {
-        // horizontal zentrieren
+        // center horizontally
         long nBorder = pEntry->aGridRect.GetWidth() - aSize.Width();
         pEntry->aRect.Left() += nBorder / 2;
         pEntry->aRect.Right() -= nBorder / 2;
     }
-    // vertikal zentrieren
+    // center vertically
     pEntry->aRect.Bottom() = pEntry->aRect.Top() + aSize.Height();
 }
 
 
-// Die Deltas entsprechen Offsets, um die die View auf dem Doc verschoben wird
-// links, hoch: Offsets < 0
-// rechts, runter: Offsets > 0
+// The deltas are the offsets by which the view is moved on the document.
+// left, up: offsets < 0
+// right, down: offsets > 0
 void SvxIconChoiceCtrl_Impl::Scroll( long nDeltaX, long nDeltaY, sal_Bool bScrollBar )
 {
     const MapMode& rMapMode = pView->GetMapMode();
     Point aOrigin( rMapMode.GetOrigin() );
-    // in Dokumentkoordinate umwandeln
+    // convert to document coordinate
     aOrigin *= -1;
     aOrigin.Y() += nDeltaY;
     aOrigin.X() += nDeltaX;
@@ -2724,7 +2721,7 @@ Rectangle SvxIconChoiceCtrl_Impl::CalcFocusRect( SvxIconChoiceCtrlEntry* pEntry
     Rectangle aBoundRect( GetEntryBoundRect( pEntry ) );
     Rectangle aFocusRect( aBoundRect.Left(), aBmpRect.Top() - 1,
                           aBoundRect.Right() - 4, aTextRect.Bottom() + 1 );
-    // Das Fokusrechteck soll nicht den Text beruehren
+    // the focus rectangle should not touch the text
     if( aFocusRect.Left() - 1 >= pEntry->aRect.Left() )
         aFocusRect.Left()--;
     if( aFocusRect.Right() + 1 <= pEntry->aRect.Right() )
@@ -2733,7 +2730,7 @@ Rectangle SvxIconChoiceCtrl_Impl::CalcFocusRect( SvxIconChoiceCtrlEntry* pEntry
     return aFocusRect;
 }
 
-// Der 'Hot Spot' sind die inneren 50% der Rechteckflaeche
+// the hot spot is the inner 50 % of the rectangle
 static Rectangle GetHotSpot( const Rectangle& rRect )
 {
     Rectangle aResult( rRect );
@@ -2764,7 +2761,7 @@ void SvxIconChoiceCtrl_Impl::SelectRect( const Rectangle& rRect, sal_Bool bAdd,
     if( !pZOrderList || !pZOrderList->size() )
         return;
 
-    // Flag setzen, damit im Select kein ToTop gerufen wird
+    // set flag, so ToTop won't be called in Select
     sal_Bool bAlreadySelectingRect = nFlags & F_SELECTING_RECT ? sal_True : sal_False;
     nFlags |= F_SELECTING_RECT;
 
@@ -2801,48 +2798,47 @@ void SvxIconChoiceCtrl_Impl::SelectRect( const Rectangle& rRect, sal_Bool bAdd,
 
         if( bOver && !bOverlaps )
         {
-            // Ist im neuen Selektionsrechteck und in keinem alten
-            // => selektieren
+            // is inside the new selection rectangle and outside of any old one
+            // => select
             if( !bSelected )
                 SelectEntry( pEntry, sal_True, sal_True, sal_True );
         }
         else if( !bAdd )
         {
-            // ist ausserhalb des Selektionsrechtecks
-            // => Selektion entfernen
+            // is outside of the selection rectangle
+            // => deselect
             if( bSelected )
                 SelectEntry( pEntry, sal_False, sal_True, sal_True );
         }
         else if( bAdd && bOverlaps )
         {
-            // Der Eintrag befindet sich in einem alten (=>Aufspannen
-            // mehrerer Rechtecke mit Ctrl!) Selektionsrechteck
-
-            // Hier ist noch ein Bug! Der Selektionsstatus eines Eintrags
-            // in einem vorherigen Rechteck, muss restauriert werden, wenn
-            // er vom aktuellen Selektionsrechteck beruehrt wurde, jetzt aber
-            // nicht mehr in ihm liegt. Ich gehe hier der Einfachheit halber
-            // pauschal davon aus, dass die Eintraege in den alten Rechtecken
-            // alle selektiert sind. Ebenso ist es falsch, die Schnittmenge
-            // nur zu deselektieren.
-            // Loesungsmoeglichkeit: Snapshot der Selektion vor dem Auf-
-            // spannen des Rechtecks merken
+            // The entry is inside an old (=>span multiple rectangles with Ctrl)
+            // selection rectangle.
+
+            // There is still a bug here! The selection status of an entry in a
+            // previous rectangle has to be restored, if it was touched by the
+            // current selection rectangle but is not inside it any more.
+            // For simplicity's sake, let's assume that all entries in the old
+            // rectangles were correctly selected. It is wrong to just deselect
+            // the intersection.
+            // Possible solution: remember a snapshot of the selection before
+            // spanning the rectangle.
             if( aBoundRect.IsOver( rRect))
             {
-                // Schnittmenge zwischen alten Rects & aktuellem Rect desel.
+                // deselect intersection between old rectangles and current rectangle
                 if( bSelected )
                     SelectEntry( pEntry, sal_False, sal_True, sal_True );
             }
             else
             {
-                // Eintrag eines alten Rects selektieren
+                // select entry of an old rectangle
                 if( !bSelected )
                     SelectEntry( pEntry, sal_True, sal_True, sal_True );
             }
         }
         else if( !bOver && bSelected )
         {
-            // Der Eintrag liegt voellig ausserhalb und wird deshalb desel.
+            // this entry is completely outside the rectangle => deselect it
             SelectEntry( pEntry, sal_False, sal_True, sal_True );
         }
     }
@@ -2983,11 +2979,11 @@ IMPL_LINK_NOARG(SvxIconChoiceCtrl_Impl, EditTimeoutHdl)
 
 
 //
-// Funktionen zum Ausrichten der Eintraege am Grid
+// Function to align entries to the grid
 //
 
-// pStart == 0: Alle Eintraege werden ausgerichtet
-// sonst: Alle Eintraege der Zeile ab einschliesslich pStart werden ausgerichtet
+// pStart == 0: align all entries
+// else: align all entries of the row from pStart on (including pStart)
 void SvxIconChoiceCtrl_Impl::AdjustEntryAtGrid( SvxIconChoiceCtrlEntry* pStart )
 {
     SvPtrarr aLists;
@@ -2999,7 +2995,7 @@ void SvxIconChoiceCtrl_Impl::AdjustEntryAtGrid( SvxIconChoiceCtrlEntry* pStart )
     CheckScrollBars();
 }
 
-// Richtet eine Zeile aus, erweitert ggf. die Breite; Bricht die Zeile nicht um
+// align a row, might expand width, doesn't break the line
 void SvxIconChoiceCtrl_Impl::AdjustAtGrid( const SvPtrarr& rRow, SvxIconChoiceCtrlEntry* pStart )
 {
     if( !rRow.Count() )
@@ -3018,9 +3014,9 @@ void SvxIconChoiceCtrl_Impl::AdjustAtGrid( const SvPtrarr& rRow, SvxIconChoiceCt
         if( !bGo && pCur == pStart )
             bGo = sal_True;
 
-        //SvIcnVwDataEntry* pViewData = ICNVIEWDATA(pCur);
-        // Massgebend (fuer unser Auge) ist die Bitmap, da sonst
-        // durch lange Texte der Eintrag stark springen kann
+        // SvIcnVwDataEntry* pViewData = ICNVIEWDATA(pCur);
+        // Decisive (for our eye) is the bitmap, else, the entry might jump too
+        // much within long texts.
         const Rectangle& rBoundRect = GetEntryBoundRect( pCur );
         Rectangle aCenterRect( CalcBmpRect( pCur, 0 ));
         if( bGo && !pCur->IsPosLocked() )
@@ -3044,10 +3040,10 @@ void SvxIconChoiceCtrl_Impl::AdjustAtGrid( const SvPtrarr& rRow, SvxIconChoiceCt
     }
 }
 
-// Richtet Rect am Grid aus, garantiert jedoch nicht, dass die
-// neue Pos. frei ist. Die Pos. kann fuer SetEntryPos verwendet werden.
-// Das CenterRect beschreibt den Teil des BoundRects, der fuer
-// die Berechnung des Ziel-Rechtecks verwendet wird.
+// Aligns a rectangle to the grid, but doesn't guarantee that the new position
+// is vacant. The position can be used for SetEntryPos. The CenterRect describes
+// a part of the bounding rectangle that is used for calculating the target
+// rectangle.
 Point SvxIconChoiceCtrl_Impl::AdjustAtGrid( const Rectangle& rCenterRect,
     const Rectangle& rBoundRect ) const
 {
@@ -3057,12 +3053,12 @@ Point SvxIconChoiceCtrl_Impl::AdjustAtGrid( const Rectangle& rCenterRect,
     aPos.X() -= LROFFS_WINBORDER;
     aPos.Y() -= TBOFFS_WINBORDER;
 
-    // align (ref ist mitte des rects)
+    // align (the center of the rectangle is the reference)
     short nGridX = (short)((aPos.X()+(aSize.Width()/2)) / nGridDX);
     short nGridY = (short)((aPos.Y()+(aSize.Height()/2)) / nGridDY);
     aPos.X() = nGridX * nGridDX;
     aPos.Y() = nGridY * nGridDY;
-    // hor. center
+    // horizontal center
     aPos.X() += (nGridDX - rBoundRect.GetSize().Width() ) / 2;
 
     aPos.X() += LROFFS_WINBORDER;
@@ -3261,8 +3257,8 @@ IMPL_LINK_NOARG(SvxIconChoiceCtrl_Impl, TextEditEndedHdl)
     pEdit->Hide();
     if( pEdit->IsGrabFocus() )
         pView->GrabFocus();
-    // Das Edit kann nicht hier geloescht werden, weil es noch in einem
-    // Handler steht. Es wird im Dtor oder im naechsten EditEntry geloescht.
+    // The edit can not be deleted here, because it is not within a handler. It
+    // will be deleted in the dtor or in the next EditEntry.
     pCurEditedEntry = 0;
     return 0;
 }
@@ -3310,7 +3306,7 @@ SvxIconChoiceCtrlEntry* SvxIconChoiceCtrl_Impl::GetFirstSelectedEntry( sal_uLong
             pEntry = pEntry->pflink;
             if( nCount && pEntry == pHead )
             {
-                OSL_FAIL("SvxIconChoiceCtrl_Impl::GetFirstSelectedEntry > Endlosschleife!");
+                OSL_FAIL("SvxIconChoiceCtrl_Impl::GetFirstSelectedEntry > infinite loop!");
                 return 0;
             }
         }
@@ -3473,7 +3469,7 @@ void SvxIconChoiceCtrl_Impl::InitSettings()
 
     if( !pView->HasFont() )
     {
-        // Unit aus den Settings ist Point
+        // unit (from settings) is Point
         Font aFont( rStyleSettings.GetFieldFont() );
         //const Font& rFont = pView->GetFont();
         //if( pView->HasFontTextColor() )
@@ -3552,9 +3548,9 @@ void SvxIconChoiceCtrl_Impl::SetPositionMode( SvxIconChoiceCtrlPositionMode eMod
 
     if( eOldMode == IcnViewPositionModeAutoArrange )
     {
-        // positionieren wir verschobene Eintraege 'hart' gibts noch Probleme
-        // mit ungewollten Ueberlappungen, da diese Eintrage im Arrange
-        // nicht beruecksichtigt werden.
+        // when positioning moved entries "hard", there are problems with
+        // unwanted overlaps, as these entries aren't taken into account in
+        // Arrange.
         if( aEntries.size() )
             aAutoArrangeTimer.Start();
         return;
@@ -3606,7 +3602,7 @@ void SvxIconChoiceCtrl_Impl::SetEntryPredecessor( SvxIconChoiceCtrlEntry* pEntry
         {
             sal_uLong nPos2 = GetEntryListPos( pPredecessor );
             if( nPos1 == (nPos2 + 1) )
-                return; // ist schon Vorgaenger
+                return; // is already the predecessor
         }
         else if( !nPos1 )
             return;
@@ -3616,7 +3612,7 @@ void SvxIconChoiceCtrl_Impl::SetEntryPredecessor( SvxIconChoiceCtrlEntry* pEntry
         InitPredecessors();
 
     if( !pPredecessor && pHead == pEntry )
-        return; // ist schon der Erste
+        return; // is already the first one
 
     sal_Bool bSetHead = sal_False;
     if( !pPredecessor )
@@ -3656,7 +3652,7 @@ SvxIconChoiceCtrlEntry* SvxIconChoiceCtrl_Impl::FindEntryPredecessor( SvxIconCho
         return aEntries[ nGrid ];
 
     SvxIconChoiceCtrlEntry* pCur = pHead; // Grid 0
-    // todo: Liste von hinten aufrollen wenn nGrid > nCount/2
+    // TODO: go through list from the end if nGrid > nCount/2
     for( sal_uLong nCur = 0; nCur < nGrid; nCur++ )
         pCur = pCur->pflink;
 
@@ -3717,7 +3713,7 @@ sal_Bool SvxIconChoiceCtrl_Impl::RequestHelp( const HelpEvent& rHEvt )
         Point aPt( aOptTextRect.TopLeft() );
         aPt += pView->GetMapMode().GetOrigin();
         aPt = pView->OutputToScreenPixel( aPt );
-        // Border der Tiphilfe abziehen
+        // subtract border of tooltip help
         aPt.Y() -= 1;
         aPt.X() -= 3;
         aOptTextRect.SetPos( aPt );
@@ -3768,8 +3764,8 @@ void SvxIconChoiceCtrl_Impl::SetColumn( sal_uInt16 nIndex, const SvxIconChoiceCt
         pColumns->Replace( pInfo, nIndex );
     }
 
-    // HACK(Detail-Modus ist noch nicht vollstaendig implementiert!)
-    // dieses Workaround bringts mit einer Spalte zum Fliegen
+    // HACK: Detail mode is not yet fully implemented, this workaround makes it
+    // fly with a single column
     if( !nIndex && (nWinBits & WB_DETAILS) )
         nGridDX = pInfo->GetWidth();
 
@@ -3841,15 +3837,14 @@ void SvxIconChoiceCtrl_Impl::HideEntryHighlightFrame()
 
 void SvxIconChoiceCtrl_Impl::CallSelectHandler( SvxIconChoiceCtrlEntry* )
 {
-    // Bei aktiviertem Single-Click-Modus sollte der Selektionshandler
-    // synchron gerufen werden, weil die Selektion automatisch
-    // weggenommen wird, wenn der Mauszeiger nicht mehr das Objekt
-    // beruehrt. Es kann sonst zu fehlenden Select-Aufrufen kommen,
-    // wenn das Objekt aus einer Mausbewegung heraus selektiert wird,
-    // weil beim Ausloesen des Timers der Mauszeiger das Objekt u.U.
-    // schon verlassen hat.
-    // Fuer spezielle Faelle (=>SfxFileDialog!) koennen synchrone
-    // Aufrufe auch per WB_NOASYNCSELECTHDL erzwungen werden.
+    // When single-click mode is active, the selection handler should be called
+    // synchronously, as the selection is automatically taken away once the
+    // mouse cursor doesn't touch the object any more. Else, we might run into
+    // missing calls to Select if the object is selected from a mouse movement,
+    // because when starting the timer, the mouse cursor might have already left
+    // the object.
+    // In special cases (=>SfxFileDialog!), synchronous calls can be forced via
+    // WB_NOASYNCSELECTHDL.
     if( nWinBits & (WB_NOASYNCSELECTHDL | WB_HIGHLIGHTFRAME) )
     {
         pHdlEntry = 0;
diff --git a/svtools/source/contnr/imivctl2.cxx b/svtools/source/contnr/imivctl2.cxx
index 887b9c8..0bb77a9 100644
--- a/svtools/source/contnr/imivctl2.cxx
+++ b/svtools/source/contnr/imivctl2.cxx
@@ -92,7 +92,7 @@ void IcnCursor_Impl::ImplCreate()
         short nY = (short)( ((rRect.Top()+rRect.Bottom())/2) / nDeltaHeight );
         short nX = (short)( ((rRect.Left()+rRect.Right())/2) / nDeltaWidth );
 
-        // Rundungsfehler abfangen
+        // capture rounding errors
         if( nY >= nRows )
             nY = sal::static_int_cast< short >(nRows - 1);
         if( nX >= nCols )
@@ -279,20 +279,20 @@ SvxIconChoiceCtrlEntry* IcnCursor_Impl::SearchRow(sal_uInt16 nRow,sal_uInt16 nLe
 
 
 /*
-    Sucht ab dem uebergebenen Eintrag den naechsten rechts- bzw.
-    linksstehenden. Suchverfahren am Beispiel bRight = sal_True:
+    Searches, starting from the passed value, the next entry to the left/to the
+    right. Example for bRight = sal_True:
 
                   c
                 b c
               a b c
-            S 1 1 1      ====> Suchrichtung
+            S 1 1 1      ====> search direction
               a b c
                 b c
                   c
 
-    S : Startposition
-    1 : erstes Suchrechteck
-    a,b,c : 2., 3., 4. Suchrechteck
+    S : starting position
+    1 : first searched rectangle
+    a,b,c : 2nd, 3rd, 4th searched rectangle
 */
 
 SvxIconChoiceCtrlEntry* IcnCursor_Impl::GoLeftRight( SvxIconChoiceCtrlEntry* pCtrlEntry, sal_Bool bRight )
@@ -304,7 +304,7 @@ SvxIconChoiceCtrlEntry* IcnCursor_Impl::GoLeftRight( SvxIconChoiceCtrlEntry* pCt
     sal_uInt16 nX = pCtrlEntry->nX;
     DBG_ASSERT(nY< nRows,"GoLeftRight:Bad column");
     DBG_ASSERT(nX< nCols,"GoLeftRight:Bad row");
-    // Nachbar auf gleicher Zeile ?
+    // neighbor in same row?
     if( bRight )
         pResult = SearchRow(
             nY, nX, sal::static_int_cast< sal_uInt16 >(nCols-1), nX, sal_True, sal_True );
@@ -423,7 +423,7 @@ SvxIconChoiceCtrlEntry* IcnCursor_Impl::GoUpDown( SvxIconChoiceCtrlEntry* pCtrlE
     DBG_ASSERT(nY<nRows,"GoUpDown:Bad column");
     DBG_ASSERT(nX<nCols,"GoUpDown:Bad row");
 
-    // Nachbar in gleicher Spalte ?
+    // neighbor in same column?
     if( bDown )
         pResult = SearchCol(
             nX, nY, sal::static_int_cast< sal_uInt16 >(nRows-1), nY, sal_True, sal_True );
@@ -493,7 +493,7 @@ void IcnCursor_Impl::CreateGridAjustData( SvPtrarr& rLists, SvxIconChoiceCtrlEnt
     if( !pRefEntry )
     {
         sal_uInt16 nGridRows = (sal_uInt16)(pView->aVirtOutputSize.Height() / pView->nGridDY);
-        nGridRows++; // wg. Abrundung!
+        nGridRows++; // because we round down later!
 
         if( !nGridRows )
             return;
@@ -514,8 +514,8 @@ void IcnCursor_Impl::CreateGridAjustData( SvPtrarr& rLists, SvxIconChoiceCtrlEnt
     }
     else
     {
-        // Aufbau eines hor. "Schlauchs" auf der RefEntry-Zeile
-        // UEBERLEGEN: BoundingRect nehmen wg. Ueberlappungen???
+        // build a horizontal "tube" in the RefEntry line
+        // STOP AND THINK: maybe use bounding rectangle because of overlaps?
         Rectangle rRefRect( pView->CalcBmpRect( pRefEntry ) );
         //const Rectangle& rRefRect = pView->GetEntryBoundRect( pRefEntry );
         short nRefRow = (short)( ((rRefRect.Top()+rRefRect.Bottom())/2) / pView->nGridDY );
@@ -723,9 +723,9 @@ GridId IcnGridMap_Impl::GetUnoccupiedGrid( sal_Bool bOccupyFound )
     }
 }
 
-// ein Eintrag belegt nur das unter seinem Zentrum liegende GridRect
-// diese Variante ist bedeutend schneller als die Belegung ueber das
-// Bounding-Rect, kann aber zu kleinen Ueberlappungen fuehren
+// An entry only means that there's a GridRect lying under its center. This
+// variant is much faster than allocating via the bounding rectangle but can
+// lead to small overlaps.
 void IcnGridMap_Impl::OccupyGrids( const SvxIconChoiceCtrlEntry* pEntry, sal_Bool bOccupy )
 {
     if( !_pGridMap || !_pView->IsBoundingRectValid( pEntry->aRect ))
@@ -776,8 +776,8 @@ void IcnGridMap_Impl::OutputSizeChanged()
     }
 }
 
-// Independendly of the views alignment (TOP or LEFT) the gridmap
-// should contain the data in a continues region, to make it possible
+// Independently of the view's alignment (TOP or LEFT), the gridmap
+// should contain the data in a continuous region, to make it possible
 // to copy the whole block if the gridmap needs to be expanded.
 void IcnGridMap_Impl::GetGridCoord( GridId nId, sal_uInt16& rGridX, sal_uInt16& rGridY )
 {
diff --git a/svtools/source/contnr/ivctrl.cxx b/svtools/source/contnr/ivctrl.cxx
index 9d7a6d5..62628d7 100644
--- a/svtools/source/contnr/ivctrl.cxx
+++ b/svtools/source/contnr/ivctrl.cxx
@@ -75,7 +75,7 @@ SvxIconChoiceCtrlColumnInfo::SvxIconChoiceCtrlColumnInfo( const SvxIconChoiceCtr
 
 SvtIconChoiceCtrl::SvtIconChoiceCtrl( Window* pParent, WinBits nWinStyle ) :
 
-     // WB_CLIPCHILDREN an, da ScrollBars auf dem Fenster liegen!
+     // WB_CLIPCHILDREN on, as ScrollBars lie on the window!
     Control( pParent, nWinStyle | WB_CLIPCHILDREN ),
 
     _pCurKeyEvent   ( NULL ),
@@ -339,7 +339,7 @@ void SvtIconChoiceCtrl::KeyInput( const KeyEvent& rKEvt )
 }
 sal_Bool SvtIconChoiceCtrl::DoKeyInput( const KeyEvent& rKEvt )
 {
-    // unter OS/2 bekommen wir auch beim Editieren Key-Up/Down
+    // under OS/2, we get key up/down even while editing
     if( IsEntryEditing() )
         return sal_True;
     _pCurKeyEvent = (KeyEvent*)&rKEvt;
@@ -395,7 +395,7 @@ void SvtIconChoiceCtrl::SetBackground( const Wallpaper& rPaper )
         else
         {
             Wallpaper aBackground( rPaper );
-            // HACK, da Hintergrund sonst transparent sein koennte
+            // HACK, as background might be transparent!
             if( !aBackground.IsBitmap() )
                 aBackground.SetStyle( WALLPAPER_TILE );
 
@@ -423,8 +423,8 @@ void SvtIconChoiceCtrl::SetBackground( const Wallpaper& rPaper )
             Control::SetBackground( aBackground );
         }
 
-        // bei hart attributierter Textfarbe keine 'Automatik', die eine
-        // lesbare Textfarbe einstellt.
+        // If text colors are attributed "hard," don't use automatism to select
+        // a readable text color.
         Font aFont( GetFont() );
         aFont.SetColor( rStyleSettings.GetFieldTextColor() );
         SetFont( aFont );
diff --git a/svtools/source/contnr/svimpbox.cxx b/svtools/source/contnr/svimpbox.cxx
index e1fdab3..ce2214d 100644
--- a/svtools/source/contnr/svimpbox.cxx
+++ b/svtools/source/contnr/svimpbox.cxx
@@ -81,8 +81,8 @@ SvImpLBox::SvImpLBox( SvTreeListBox* pLBView, SvLBoxTreeList* pLBTree, WinBits n
     aVerSBar.SetRange( Range(0,0) );
     aVerSBar.Hide();
     aHorSBar.SetRange( Range(0,0) );
-    aHorSBar.SetPageSize( 24 ); // Pixel
-    aHorSBar.SetLineSize( 8 ); // Pixel
+    aHorSBar.SetPageSize( 24 ); // pixels
+    aHorSBar.SetLineSize( 8 ); // pixels
 
     nHorSBarHeight = (short)aHorSBar.GetSizePixel().Height();
     nVerSBarWidth = (short)aVerSBar.GetSizePixel().Width();
@@ -90,7 +90,7 @@ SvImpLBox::SvImpLBox( SvTreeListBox* pLBView, SvLBoxTreeList* pLBTree, WinBits n
     pStartEntry = 0;
     pCursor             = 0;
     pAnchor             = 0;
-    nVisibleCount       = 0;    // Anzahl Daten-Zeilen im Control
+    nVisibleCount       = 0;    // number of rows of data in control
     nNodeBmpTabDistance = NODE_BMP_TABDIST_NOTVALID;
     nYoffsNodeBmp       = 0;
     nNodeBmpWidth       = 0;
@@ -98,7 +98,7 @@ SvImpLBox::SvImpLBox( SvTreeListBox* pLBView, SvLBoxTreeList* pLBTree, WinBits n
     bAsyncBeginDrag     = sal_False;
     aAsyncBeginDragTimer.SetTimeout( 0 );
     aAsyncBeginDragTimer.SetTimeoutHdl( LINK(this,SvImpLBox,BeginDragHdl));
-    // Button-Animation in Listbox
+    // button animation in listbox
     pActiveButton = 0;
     pActiveEntry = 0;
     pActiveTab = 0;
@@ -254,7 +254,7 @@ void SvImpLBox::SetExtendedWindowBits( ExtendedWinBits _nBits )
     nExtendedWinBits = _nBits;
 }
 
-// Das Model darf hier nicht mehr angefasst werden
+// don't touch the model any more
 void SvImpLBox::Clear()
 {
     StopUserEvent();
@@ -268,7 +268,7 @@ void SvImpLBox::Clear()
     nMostRight = -1;
     pMostRightEntry = 0;
 
-    // Der Cursor darf hier nicht mehr angefasst werden!
+    // don't touch the cursor any more
     if( pCursor )
     {
         if( pView->HasFocus() )
@@ -301,12 +301,11 @@ void SvImpLBox::Clear()
     if( !aHorSBar.IsVisible() && !aVerSBar.IsVisible() )
         aScrBarBox.Hide();
 
-    // #97680# ---------
     aContextBmpWidthVector.clear();
 }
 
 // *********************************************************************
-// Painten, Navigieren, Scrollen
+// Paint, navigate, scroll
 // *********************************************************************
 
 IMPL_LINK_NOARG_INLINE_START(SvImpLBox, EndScrollHdl)
@@ -322,11 +321,11 @@ IMPL_LINK_NOARG_INLINE_START(SvImpLBox, EndScrollHdl)
 IMPL_LINK_NOARG_INLINE_END(SvImpLBox, EndScrollHdl)
 
 
-// Handler vertikale ScrollBar
+// handler for vertical scrollbar
 
 IMPL_LINK( SvImpLBox, ScrollUpDownHdl, ScrollBar *, pScrollBar )
 {
-    DBG_ASSERT(!bInVScrollHdl,"Scroll-Handler ueberholt sich!");
+    DBG_ASSERT(!bInVScrollHdl,"Scroll handler out-paces itself!");
     long nDelta = pScrollBar->GetDelta();
     if( !nDelta )
         return 0;
@@ -612,7 +611,7 @@ void SvImpLBox::RecalcFocusRect()
 }
 
 //
-//  Setzt Cursor. Passt bei SingleSelection die Selektion an
+//  Sets cursor. When using SingleSelection, the selection is adjusted.
 //
 
 void SvImpLBox::SetCursor( SvLBoxEntry* pEntry, sal_Bool bForceNoSelect )
@@ -651,8 +650,8 @@ void SvImpLBox::SetCursor( SvLBoxEntry* pEntry, sal_Bool bForceNoSelect )
         {
             pView->Select( pCursor, sal_True );
         }
-        // Mehrfachselektion: Im Cursor-Move selektieren, wenn
-        // nicht im Add-Mode (Ctrl-F8)
+        // multiple selection: select in cursor move if we're not in
+        // Add mode (Ctrl-F8)
         else if( GetUpdateMode() &&
                  pView->GetSelectionMode() == MULTIPLE_SELECTION &&
                  !(nFlags & F_DESEL_ALL) && !aSelEng.IsAddMode() &&
@@ -742,7 +741,7 @@ void SvImpLBox::KeyLeftRight( long nDelta )
         pView->Update();
     BeginScroll();
     nFlags &= (~F_FILLING);
-    pView->NotifyScrolling( 0 ); // 0 == horizontales Scrolling
+    pView->NotifyScrolling( 0 ); // 0 == horizontal scrolling
     ShowCursor( sal_False );
 
     // neuen Origin berechnen
@@ -766,8 +765,7 @@ void SvImpLBox::KeyLeftRight( long nDelta )
 }
 
 
-// gibt letzten Eintrag zurueck, wenn Position unter
-// dem letzten Eintrag ist
+// returns the last entry if position is just past the last entry
 SvLBoxEntry* SvImpLBox::GetClickedEntry( const Point& rPoint ) const
 {
     DBG_ASSERT( pView->GetModel(), "SvImpLBox::GetClickedEntry: how can this ever happen? Please tell me (frank.schoenheit at sun.com) how to reproduce!" );
@@ -787,14 +785,14 @@ SvLBoxEntry* SvImpLBox::GetClickedEntry( const Point& rPoint ) const
 }
 
 //
-//  prueft, ob der Eintrag "richtig" getroffen wurde
+//  checks if the entry was hit "the right way"
 //  (Focusrect+ ContextBitmap bei TreeListBox)
 //
 sal_Bool SvImpLBox::EntryReallyHit(SvLBoxEntry* pEntry,const Point& rPosPixel,long nLine)
 {
     sal_Bool bRet;
-    // bei "besonderen" Entries (mit CheckButtons usw.) sind wir
-    // nicht so pingelig
+    // we are not too exact when it comes to "special" entries
+    // (with CheckButtons etc.)
     if( pEntry->ItemCount() >= 3 )
         return sal_True;
 
@@ -804,7 +802,7 @@ sal_Bool SvImpLBox::EntryReallyHit(SvLBoxEntry* pEntry,const Point& rPosPixel,lo
     {
         SvLBoxContextBmp* pBmp = (SvLBoxContextBmp*)(pEntry->GetFirstItem(SV_ITEM_ID_LBOXCONTEXTBMP));
         aRect.Left() -= pBmp->GetSize(pView,pEntry).Width();
-        aRect.Left() -= 4; // etwas Speilraum lassen
+        aRect.Left() -= 4; // a little tolerance
     }
     Point aPos( rPosPixel );
     aPos -= pView->GetMapMode().GetOrigin();
@@ -816,7 +814,7 @@ sal_Bool SvImpLBox::EntryReallyHit(SvLBoxEntry* pEntry,const Point& rPosPixel,lo
 }
 
 
-// gibt 0 zurueck, wenn Position unter dem letzten Eintrag ist
+// returns 0 if position is just past the last entry
 SvLBoxEntry* SvImpLBox::GetEntry( const Point& rPoint ) const
 {
     if( (pView->GetEntryCount() == 0) || !pStartEntry ||
@@ -861,7 +859,7 @@ SvLBoxEntry* SvImpLBox::MakePointVisible(const Point& rPoint,sal_Bool bNotifyScr
         if( !pEntry )
         {
             sal_uInt16 nSteps = 0xFFFF;
-            // LastVisible ist noch nicht implementiert!
+            // TODO: LastVisible is not yet implemented!
             pEntry = (SvLBoxEntry*)(pView->NextVisible( pStartEntry, nSteps ));
         }
         if( pEntry )
@@ -878,7 +876,7 @@ SvLBoxEntry* SvImpLBox::MakePointVisible(const Point& rPoint,sal_Bool bNotifyScr
 Rectangle SvImpLBox::GetClipRegionRect() const
 {
     Point aOrigin( pView->GetMapMode().GetOrigin() );
-    aOrigin.X() *= -1; // Umrechnung Dokumentkoord.
+    aOrigin.X() *= -1; // conversion document coordinates
     Rectangle aClipRect( aOrigin, aOutputSize );
     aClipRect.Bottom()++;
     return aClipRect;
@@ -918,10 +916,10 @@ void SvImpLBox::Paint( const Rectangle& rRect )
     long nRectHeight = rRect.GetHeight();
     long nEntryHeight = pView->GetEntryHeight();
 
-    // Bereich der zu zeichnenden Entries berechnen
+    // calculate area for the entries we want to draw
     sal_uInt16 nStartLine = (sal_uInt16)( rRect.Top() / nEntryHeight );
     sal_uInt16 nCount = (sal_uInt16)( nRectHeight / nEntryHeight );
-        nCount += 2; // keine Zeile vergessen
+        nCount += 2; // don't miss a row
 
     long nY = nStartLine * nEntryHeight;
     SvLBoxEntry* pEntry = pStartEntry;
@@ -933,7 +931,7 @@ void SvImpLBox::Paint( const Rectangle& rRect )
 
     Region aClipRegion( GetClipRegionRect() );
 
-    // erst die Linien Zeichnen, dann clippen!
+    // first draw the lines, then clip them!
     pView->SetClipRegion();
     if( m_nStyle & ( WB_HASLINES | WB_HASLINESATROOT ) )
         DrawNet();
@@ -975,13 +973,13 @@ void SvImpLBox::MakeVisible( SvLBoxEntry* pEntry, sal_Bool bMoveToTop )
     sal_Bool bInView = IsEntryInView( pEntry );
 
     if( bInView && (!bMoveToTop || pStartEntry == pEntry) )
-        return;  // ist schon sichtbar
+        return;  // is already visible
 
     if( pStartEntry || (m_nStyle & WB_FORCE_MAKEVISIBLE) )
         nFlags &= (~F_FILLING);
     if( !bInView )
     {
-        if( !pView->IsEntryVisible(pEntry) )  // Parent(s) zugeklappt ?
+        if( !pView->IsEntryVisible(pEntry) )  // Parent(s) collapsed?
         {
             SvLBoxEntry* pParent = pView->GetParent( pEntry );
             while( pParent )
@@ -996,9 +994,9 @@ void SvImpLBox::MakeVisible( SvLBoxEntry* pEntry, sal_Bool bMoveToTop )
                 }
                 pParent = pView->GetParent( pParent );
             }
-            // Passen Children der Parents in View oder muessen wir scrollen ?
+            // do the parent's children fit into the view or do we have to scroll?
             if( IsEntryInView( pEntry ) && !bMoveToTop )
-                return;  // Scrollen nicht noetig -> tschuess
+                return;  // no need to scroll
         }
     }
 
@@ -1045,8 +1043,8 @@ void SvImpLBox::DrawNet()
         !pStartEntry->HasChildren() )
         return;
 
-    //for platforms who don't have nets, DrawNativeControl does nothing and return true
-    //so that SvImpLBox::DrawNet() doesn't draw anything too
+    // for platforms that don't have nets, DrawNativeControl does nothing and returns true
+    // so that SvImpLBox::DrawNet() doesn't draw anything either
      if(pView->IsNativeControlSupported( CTRL_LISTNET, PART_ENTIRE_CONTROL)) {
         ImplControlValue    aControlValue;
         Point  aTemp(0,0);   // temporary needed for g++ 3.3.5
@@ -1096,8 +1094,8 @@ void SvImpLBox::DrawNet()
         if( pView->IsExpanded(pEntry) )
         {
             aPos1.X() = pView->GetTabPos(pEntry, pFirstDynamicTab);
-            // wenn keine ContextBitmap, dann etwas nach rechts
-            // unter den ersten Text (Node.Bmp ebenfalls
+            // if it is not a context bitmap, go a little to the right below the
+            // first text (node bitmap, too)
             if( !pView->nContextBmpWidthMax )
                 aPos1.X() += rExpandedNodeBitmap.GetSizePixel().Width() / 2;
 
@@ -1113,16 +1111,16 @@ void SvImpLBox::DrawNet()
             aPos2.Y() += nDistance * nEntryHeight;
             pView->DrawLine( aPos1, aPos2 );
         }
-        // Sichtbar im Control ?
+        // visible in control?
         if( n>= nOffs && ((m_nStyle & WB_HASLINESATROOT) || !pTree->IsAtRootDepth(pEntry)))
         {
-            // kann aPos1 recyclet werden ?
+            // can we recycle aPos1?
             if( !pView->IsExpanded(pEntry) )
             {
-                // njet
+                // nope
                 aPos1.X() = pView->GetTabPos(pEntry, pFirstDynamicTab);
-                // wenn keine ContextBitmap, dann etwas nach rechts
-                // unter den ersten Text (Node.Bmp ebenfalls
+                // if it is not a context bitmap, go a little to the right below
+                // the first text (node bitmap, too)
                 if( !pView->nContextBmpWidthMax )
                     aPos1.X() += rExpandedNodeBitmap.GetSizePixel().Width() / 2;
                 aPos1.Y() = nY;
@@ -1140,8 +1138,8 @@ void SvImpLBox::DrawNet()
     {
         pEntry = pView->First();
         aPos1.X() = pView->GetTabPos( pEntry, pFirstDynamicTab);
-        // wenn keine ContextBitmap, dann etwas nach rechts
-        // unter den ersten Text (Node.Bmp ebenfalls
+        // if it is not a context bitmap, go a little to the right below the
+        // first text (node bitmap, too)
         if( !pView->nContextBmpWidthMax )
             aPos1.X() += rExpandedNodeBitmap.GetSizePixel().Width() / 2;
         aPos1.X() -=  pView->GetIndent();
@@ -1243,13 +1241,13 @@ sal_uInt16 SvImpLBox::AdjustScrollBars( Size& rSize )
         (nVis < nMostRight || nMaxRight < nMostRight) ))
         bHorBar = sal_True;
 
-    // Anzahl aller nicht eingeklappten Eintraege
+    // number of entries that are not collapsed
     sal_uLong nTotalCount = pView->GetVisibleCount();
 
-    // Anzahl in der View sichtbarer Eintraege
+    // number of entries visible within the view
     nVisibleCount = aOSize.Height() / nEntryHeight;
 
-    // muessen wir eine vertikale Scrollbar einblenden?
+    // do we need a vertical scrollbar?
     if( bVerSBar || nTotalCount > nVisibleCount )
     {
         nResult = 1;
@@ -1263,15 +1261,14 @@ sal_uInt16 SvImpLBox::AdjustScrollBars( Size& rSize )
         }
     }
 
-    // muessen wir eine horizontale Scrollbar einblenden?
+    // do we need a horizontal scrollbar?
     if( bHorBar )
     {
         nResult |= 0x0002;
-        // die Anzahl der in der View sichtbaren Eintraege
-        // muss neu berechnet werden, da die horizontale
-        // ScrollBar eingeblendet wird
+        // the number of entries visible within the view has to be recalculated
+        // because the horizontal scrollbar is now visible.
         nVisibleCount =  (aOSize.Height() - nHorSBarHeight) / nEntryHeight;
-        // eventuell brauchen wir jetzt doch eine vertikale ScrollBar
+        // we might actually need a vertical scrollbar now
         if( !(nResult & 0x0001) &&
             ((nTotalCount > nVisibleCount) || bVerSBar) )
         {
@@ -1282,14 +1279,14 @@ sal_uInt16 SvImpLBox::AdjustScrollBars( Size& rSize )
 
     PositionScrollBars( aOSize, nResult );
 
-    // Range, VisibleRange usw. anpassen
+    // adapt Range, VisibleRange etc.
 
-    // Output-Size aktualisieren, falls wir scrollen muessen
+    // refresh output size, in case we have to scroll
     Rectangle aRect;
     aRect.SetSize( aOSize );
     aSelEng.SetVisibleArea( aRect );
 
-    // Vertikale ScrollBar
+    // vertical scrollbar
     long nTemp = (long)nVisibleCount;
     nTemp--;
     if( nTemp != aVerSBar.GetVisibleSize() )
@@ -1306,7 +1303,7 @@ sal_uInt16 SvImpLBox::AdjustScrollBars( Size& rSize )
         }
     }
 
-    // Horizontale ScrollBar
+    // horizontal scrollbar
     nTemp = aHorSBar.GetThumbPos();
     aHorSBar.SetVisibleSize( aOSize.Width() );
     long nNewThumbPos = aHorSBar.GetThumbPos();
@@ -1375,8 +1372,8 @@ void SvImpLBox::Resize()
         AdjustScrollBars( aOutputSize );
         FillView();
     }
-    // !!!HACK, da in Floating- & Docking-Windows nach Resizes
-    // die Scrollbars nicht richtig, bzw. ueberhaupt nicht gezeichnet werden
+    // HACK, as in floating and docked windows the scrollbars might not be drawn
+    // correctly/not be drawn at all after resizing!
     if( aHorSBar.IsVisible())
         aHorSBar.Invalidate();
     if( aVerSBar.IsVisible())
@@ -1402,8 +1399,7 @@ void SvImpLBox::FillView()
         if( nCurDispEntries <  nVisibleCount )
         {
             ShowCursor( sal_False );
-            // Fenster fuellen, indem der Thumb schrittweise
-            // nach oben bewegt wird
+            // fill window by moving the thumb up incrementally
             sal_Bool bFound = sal_False;
             SvLBoxEntry* pTemp = pStartEntry;
             while( nCurDispEntries < nVisibleCount && pTemp )
@@ -1420,7 +1416,7 @@ void SvImpLBox::FillView()
             if( bFound )
             {
                 aVerSBar.SetThumbPos( nThumb );
-                ShowCursor( sal_True ); // Focusrect neu berechnen
+                ShowCursor( sal_True ); // recalculate focus rectangle
                 pView->Invalidate();
             }
         }
@@ -1457,7 +1453,7 @@ void SvImpLBox::ShowVerSBar()
 
     long nMaxRight = GetOutputSize().Width();
     Point aPos( pView->GetMapMode().GetOrigin() );
-    aPos.X() *= -1; // Umrechnung Dokumentkoord.
+    aPos.X() *= -1; // convert document coordinates
     nMaxRight = nMaxRight + aPos.X() - 1;
     if( nMaxRight < nMostRight  )
     {
@@ -1507,7 +1503,7 @@ void SvImpLBox::SyncVerThumb()
 
 sal_Bool SvImpLBox::IsEntryInView( SvLBoxEntry* pEntry ) const
 {
-    // Parent eingeklappt
+    // parent collapsed
     if( !pView->IsEntryVisible(pEntry) )
         return sal_False;
     long nY = GetEntryLine( pEntry );
@@ -1523,7 +1519,7 @@ sal_Bool SvImpLBox::IsEntryInView( SvLBoxEntry* pEntry ) const
 long SvImpLBox::GetEntryLine( SvLBoxEntry* pEntry ) const
 {
     if(!pStartEntry )
-        return -1; // unsichtbare Position
+        return -1; // invisible position
 
     long nFirstVisPos = pView->GetVisiblePos( pStartEntry );
     long nEntryVisPos = pView->GetVisiblePos( pEntry );
@@ -1536,7 +1532,7 @@ void SvImpLBox::SetEntryHeight( short /* nHeight */ )
 {
     SetNodeBmpYOffset( GetExpandedNodeBmp() );
     SetNodeBmpYOffset( GetCollapsedNodeBmp() );
-    if(!pView->HasViewData()) // stehen wir im Clear?
+    if(!pView->HasViewData()) // are we within the Clear?
     {
         Size aSize = pView->Control::GetOutputSizePixel();
         AdjustScrollBars( aSize );
@@ -1552,7 +1548,7 @@ void SvImpLBox::SetEntryHeight( short /* nHeight */ )
 
 
 // ***********************************************************************
-// Callback-Functions
+// Callback Functions
 // ***********************************************************************
 
 void SvImpLBox::EntryExpanded( SvLBoxEntry* pEntry )
@@ -1568,8 +1564,8 @@ void SvImpLBox::EntryExpanded( SvLBoxEntry* pEntry )
             FindMostRight( pEntry, 0  );
         }
         aVerSBar.SetRange( Range(0, pView->GetVisibleCount()-1 ) );
-        // falls vor dem Thumb expandiert wurde, muss
-        // die Thumb-Position korrigiert werden.
+        // if we expanded before the thumb, the thumb's position has to be
+        // corrected
         SyncVerThumb();
         ShowVerSBar();
         ShowCursor( sal_True );
@@ -1608,7 +1604,7 @@ void SvImpLBox::EntryCollapsed( SvLBoxEntry* pEntry )
             SyncVerThumb();
         ShowVerSBar();
     }
-    // wurde Cursor eingeklappt ?
+    // has the cursor been collapsed?
     if( pTree->IsChild( pEntry, pCursor ) )
         SetCursor( pEntry );
     if( GetUpdateMode() )
@@ -1623,9 +1619,9 @@ void SvImpLBox::CollapsingEntry( SvLBoxEntry* pEntry )
     if( !pView->IsEntryVisible( pEntry ) || !pStartEntry )
         return;
 
-    SelAllDestrAnch( sal_False, sal_True ); // deselectall
+    SelAllDestrAnch( sal_False, sal_True ); // deselect all
 
-    // ist der eingeklappte Parent sichtbar ?
+    // is the collapsed cursor visible?
     long nY = GetEntryLine( pEntry );
     if( IsLineVisible(nY) )
     {
@@ -1656,15 +1652,14 @@ void SvImpLBox::SetNodeBmpTabDistance()
     nNodeBmpTabDistance = -pView->GetIndent();
     if( pView->nContextBmpWidthMax )
     {
-        // nur, wenn der erste dynamische Tab zentriert ist
-        // (setze ich momentan voraus)
+        // only if the first dynamic tab is centered (we currently assume that)
         Size aSize = GetExpandedNodeBmp().GetSizePixel();
         nNodeBmpTabDistance -= aSize.Width() / 2;
     }
 }
 
 //
-// korrigiert bei SingleSelection den Cursor
+// corrects the cursor when using SingleSelection
 //
 void SvImpLBox::EntrySelected( SvLBoxEntry* pEntry, sal_Bool bSelect )
 {
@@ -1694,7 +1689,7 @@ void SvImpLBox::EntrySelected( SvLBoxEntry* pEntry, sal_Bool bSelect )
         if( IsLineVisible( nY ) )
         {
             ShowCursor( sal_False );
-            pView->PaintEntry1( pEntry, nY, 0xffff ); // wg. ItemsetBrowser SV_LBOXTAB_SHOW_SELECTION );
+            pView->PaintEntry1( pEntry, nY, 0xffff ); // because of ItemsetBrowser SV_LBOXTAB_SHOW_SELECTION );
             ShowCursor( sal_True );
         }
     }
@@ -1707,7 +1702,7 @@ void SvImpLBox::RemovingEntry( SvLBoxEntry* pEntry )
 
     if( !pView->IsEntryVisible( pEntry ) )
     {
-        // wenn Parent eingeklappt, dann tschuess
+        // if parent is collapsed => bye!
         nFlags |= F_REMOVED_ENTRY_INVISIBLE;
         return;
     }
@@ -1740,8 +1735,8 @@ void SvImpLBox::RemovingEntry( SvLBoxEntry* pEntry )
     {
         if( bSimpleTravel )
             pView->Select( pCursor, sal_False );
-        ShowCursor( sal_False );    // Focus-Rect weg
-        // NextSibling, weil auch Children des Cursors geloescht werden
+        ShowCursor( sal_False );    // focus rectangle gone
+        // NextSibling, because we also delete the children of the cursor
         pTemp = pView->NextSibling( pCursor );
         if( !pTemp )
             pTemp = (SvLBoxEntry*)(pView->PrevVisible( pCursor ));
@@ -1757,8 +1752,8 @@ void SvImpLBox::RemovingEntry( SvLBoxEntry* pEntry )
     }
     if( GetUpdateMode())
     {
-        // wenns der letzte ist, muss invalidiert werden, damit die Linien
-        // richtig gezeichnet (in diesem Fall geloescht) werden.
+        // if it is the last one, we have to invalidate it, so the lines are
+        // drawn correctly (in this case they're deleted)
         if( pStartEntry && (pStartEntry != pOldStartEntry || pEntry == (SvLBoxEntry*)pView->GetModel()->Last()) )
         {
             aVerSBar.SetThumbPos( pView->GetVisiblePos( pStartEntry ));
@@ -1791,7 +1786,7 @@ void SvImpLBox::EntryRemoved()
         aVerSBar.SetRange( Range(0, pView->GetVisibleCount()-1 ) );
         FillView();
         if( pStartEntry )
-            // falls ueber dem Thumb geloescht wurde
+            // if something above the thumb was deleted
             aVerSBar.SetThumbPos( pView->GetVisiblePos( pStartEntry) );
 
         ShowVerSBar();
@@ -1799,12 +1794,12 @@ void SvImpLBox::EntryRemoved()
         {
             if( pView->GetSelectionCount() )
             {
-                // ist ein benachbarter Eintrag selektiert?
+                // is a neighboring entry selected?
                 SvLBoxEntry* pNextCursor = (SvLBoxEntry*)pView->PrevVisible( pCursor );
                 if( !pNextCursor || !pView->IsSelected( pNextCursor ))
                     pNextCursor = (SvLBoxEntry*)pView->NextVisible( pCursor );
                 if( !pNextCursor || !pView->IsSelected( pNextCursor ))
-                    // kein Nachbar selektiert: Ersten selektierten nehmen
+                    // no neighbor selected: use first selected
                     pNextCursor = pView->FirstSelected();
                 SetCursor( pNextCursor );
                 MakeVisible( pCursor );
@@ -1850,7 +1845,6 @@ void SvImpLBox::MovingEntry( SvLBoxEntry* pEntry )
 
 void SvImpLBox::EntryMoved( SvLBoxEntry* pEntry )
 {
-    // #97680# --------------
     UpdateContextBmpWidthVectorFromMovedEntry( pEntry );
 
     if ( !pStartEntry )
@@ -1862,9 +1856,8 @@ void SvImpLBox::EntryMoved( SvLBoxEntry* pEntry )
     sal_uInt16 nFirstPos = (sal_uInt16)pTree->GetAbsPos( pStartEntry );
     sal_uInt16 nNewPos = (sal_uInt16)pTree->GetAbsPos( pEntry );
     FindMostRight(0);
-    if( nNewPos < nFirstPos ) //!!!Notloesung
+    if( nNewPos < nFirstPos ) // HACK!
         pStartEntry = pEntry;
-    // #97702# ---------------
     SyncVerThumb();
     if( pEntry == pCursor )
     {
@@ -1892,7 +1885,7 @@ void SvImpLBox::EntryInserted( SvLBoxEntry* pEntry )
     {
         SvLBoxEntry* pParent = (SvLBoxEntry*)pTree->GetParent(pEntry);
         if( pParent && pTree->GetChildList(pParent)->size() == 1 )
-            // Pluszeichen zeichnen
+            // draw plus sign
             pTree->InvalidateEntry( pParent );
 
         if( !pView->IsEntryVisible( pEntry ) )
@@ -1903,26 +1896,25 @@ void SvImpLBox::EntryInserted( SvLBoxEntry* pEntry )
         else
             DestroyAnchor();
         //  nFlags &= (~F_DESEL_ALL);
-//      ShowCursor( sal_False ); // falls sich Cursor nach unten verschiebt
+//      ShowCursor( sal_False ); // if cursor is moved lower
         long nY = GetEntryLine( pEntry );
         sal_Bool bEntryVisible = IsLineVisible( nY );
         if( bEntryVisible )
         {
-            ShowCursor( sal_False ); // falls sich Cursor nach unten verschiebt
-            nY -= pView->GetEntryHeight(); // wg. Linien
+            ShowCursor( sal_False ); // if cursor is moved lower
+            nY -= pView->GetEntryHeight(); // because of lines
             InvalidateEntriesFrom( nY );
         }
         else if( pStartEntry && nY < GetEntryLine(pStartEntry) )
         {
-            // pruefen, ob die View komplett gefuellt ist. Wenn
-            // nicht, dann pStartEntry und den Cursor anpassen
-            // (automatisches scrollen)
+            // Check if the view is filled completely. If not, then adjust
+            // pStartEntry and the Cursor (automatic scrolling).
             sal_uInt16 nLast = (sal_uInt16)(pView->GetVisiblePos( (SvLBoxEntry*)(pView->LastVisible())));
             sal_uInt16 nThumb = (sal_uInt16)(pView->GetVisiblePos( pStartEntry ));
             sal_uInt16 nCurDispEntries = nLast-nThumb+1;
             if( nCurDispEntries < nVisibleCount )
             {
-                // beim naechsten Paint-Event setzen
+                // set at the next paint event
                 pStartEntry = 0;
                 SetCursor( 0 );
                 pView->Invalidate();
@@ -1931,7 +1923,7 @@ void SvImpLBox::EntryInserted( SvLBoxEntry* pEntry )
         else if( !pStartEntry )
             pView->Invalidate();
 
-        // die Linien invalidieren
+        // invalidate the lines
         /*
         if( (bEntryVisible || bPrevEntryVisible) &&
             (m_nStyle & ( WB_HASLINES | WB_HASLINESATROOT )) )
@@ -1950,7 +1942,7 @@ void SvImpLBox::EntryInserted( SvLBoxEntry* pEntry )
 
         SetMostRight( pEntry );
         aVerSBar.SetRange( Range(0, pView->GetVisibleCount()-1));
-        SyncVerThumb(); // falls vor Thumb eingefuegt wurde
+        SyncVerThumb(); // if something was inserted before the thumb
         ShowVerSBar();
         ShowCursor( sal_True );
         if( pStartEntry != pView->First() && (nFlags & F_FILLING) )
@@ -1961,11 +1953,11 @@ void SvImpLBox::EntryInserted( SvLBoxEntry* pEntry )
 
 
 // ********************************************************************
-// Eventhandler
+// Event handler
 // ********************************************************************
 
 
-// ****** Steuerung der Controlanimation
+// ****** Control the control animation
 
 sal_Bool SvImpLBox::ButtonDownCheckCtrl(const MouseEvent& rMEvt, SvLBoxEntry* pEntry,
                                    long nY  )
@@ -2046,9 +2038,9 @@ sal_Bool SvImpLBox::ButtonUpCheckCtrl( const MouseEvent& rMEvt )
     return sal_False;
 }
 
-// ******* Steuerung Plus/Minus-Button zum Expandieren/Kollabieren
+// ******* Control plus/minus button for expanding/collapsing
 
-// sal_False == kein Expand/Collapse-Button getroffen
+// sal_False == no expand/collapse button hit
 sal_Bool SvImpLBox::IsNodeButton( const Point& rPosPixel, SvLBoxEntry* pEntry ) const
 {
     if( !pEntry->HasChildren() && !pEntry->HasChildrenOnDemand() )
@@ -2059,7 +2051,7 @@ sal_Bool SvImpLBox::IsNodeButton( const Point& rPosPixel, SvLBoxEntry* pEntry )
         return sal_False;
 
     long nMouseX = rPosPixel.X();
-    // in Doc-Koords umrechnen
+    // convert to document coordinates
     Point aOrigin( pView->GetMapMode().GetOrigin() );
     nMouseX -= aOrigin.X();
 
@@ -2116,7 +2108,7 @@ void SvImpLBox::MouseButtonDown( const MouseEvent& rMEvt )
         nCurTabPos = FIRST_ENTRY_TAB;
     nFlags &= (~F_FILLING);
     pView->GrabFocus();
-    // #120417# the entry can still be invalid!
+    // the entry can still be invalid!
     if( !pEntry || !pView->GetViewData( pEntry ))
         return;
 
@@ -2147,13 +2139,13 @@ void SvImpLBox::MouseButtonDown( const MouseEvent& rMEvt )
         pView->pHdlEntry = pEntry;
         if( pView->DoubleClickHdl() )
         {
-            // falls im Handler der Eintrag geloescht wurde
+            // if the entry was deleted within the handler
             pEntry = GetClickedEntry( aPos );
             if( !pEntry )
                 return;
             if( pEntry != pView->pHdlEntry )
             {
-                // neu selektieren & tschuess
+                // select anew & bye
                 if( !bSimpleTravel && !aSelEng.IsAlwaysAdding())
                     SelAllDestrAnch( sal_False, sal_True ); // DeselectAll();
                 SetCursor( pEntry );
@@ -2166,8 +2158,8 @@ void SvImpLBox::MouseButtonDown( const MouseEvent& rMEvt )
                     pView->Collapse( pEntry );
                 else
                     pView->Expand( pEntry );
-                if( pEntry == pCursor )  // nur wenn Entryitem angeklickt wurde
-                                          // (Nodebutton ist kein Entryitem!)
+                if( pEntry == pCursor )  // only if Entryitem was clicked
+                                          // (Nodebutton is not an Entryitem!)
                     pView->Select( pCursor, sal_True );
                 return;
             }
@@ -2213,7 +2205,7 @@ sal_Bool SvImpLBox::KeyInput( const KeyEvent& rKEvt)
     const KeyCode&  rKeyCode = rKEvt.GetKeyCode();
 
     if( rKeyCode.IsMod2() )
-        return sal_False; // Alt-Taste nicht auswerten
+        return sal_False; // don't evaluate Alt key
 
     nFlags &= (~F_FILLING);
 
@@ -2298,8 +2290,8 @@ sal_Bool SvImpLBox::KeyInput( const KeyEvent& rKEvt)
                 }
             }
             else
-                KeyDown( sal_False ); // weil ScrollBar-Range evtl. noch
-                                  // scrollen erlaubt
+                KeyDown( sal_False );   // because scrollbar range might still
+                                        // allow scrolling
             break;
 
         case KEY_RIGHT:
@@ -2430,7 +2422,7 @@ sal_Bool SvImpLBox::KeyInput( const KeyEvent& rKEvt)
                     }
                 }
                 else
-                    KeyDown( sal_False ); // siehe KEY_DOWN
+                    KeyDown( sal_False ); // see also: KEY_DOWN
             }
             else
                 bKeyUsed = sal_False;
@@ -2537,14 +2529,13 @@ sal_Bool SvImpLBox::KeyInput( const KeyEvent& rKEvt)
                     pView->Collapse( pCursor );
                 if( bMod1 )
                 {
-                    // bis zur Root alle Parents einklappen
+                    // collapse all parents until we get to the root
                     SvLBoxEntry* pParentToCollapse = (SvLBoxEntry*)pTree->GetRootLevelParent(pCursor);
                     if( pParentToCollapse )
                     {
                         sal_uInt16 nRefDepth;
-                        // Sonderbehandlung Explorer: Befindet sich auf der
-                        // Root nur ein Eintrag,dann den Root-Entry nicht
-                        // einklappen
+                        // special case explorer: if the root only has a single
+                        // entry, don't collapse the root entry
                         if( pTree->GetChildList(0)->size() < 2 )
                         {
                             nRefDepth = 1;
@@ -2632,7 +2623,7 @@ sal_Bool SvImpLBox::KeyInput( const KeyEvent& rKEvt)
         case KEY_TAB:
         case KEY_DELETE:
         case KEY_BACKSPACE:
-            // #105907# must not be handled because this quits dialogs and does other magic things...
+            // must not be handled because this quits dialogs and does other magic things...
             // if there are other single keys which should not be handled, they can be added here
             bKeyUsed = sal_False;
             break;
@@ -2766,8 +2757,8 @@ sal_Bool ImpLBSelEng::SetCursorAtPoint(const Point& rPoint, sal_Bool bDontSelect
 
     if( pNewCursor )
     {
-        // bei SimpleTravel wird in SetCursor selektiert und
-        // der Select-Handler gerufen
+        // at SimpleTravel, the SetCursor is selected and the select handler is
+        // called
         //if( !bDontSelectAtCursor && !pImp->bSimpleTravel )
         //  pImp->SelectEntry( pNewCursor, sal_True );
         pImp->SetCursor( pNewCursor, bDontSelectAtCursor );
@@ -2804,12 +2795,12 @@ void ImpLBSelEng::SelectAtPoint( const Point& rPoint )
 
 void ImpLBSelEng::DeselectAll()
 {
-    pImp->SelAllDestrAnch( sal_False, sal_False ); // SelectionEngine nicht resetten!
+    pImp->SelAllDestrAnch( sal_False, sal_False ); // don't reset SelectionEngine!
     pImp->nFlags &= (~F_DESEL_ALL);
 }
 
 // ***********************************************************************
-// Selektion
+// Selection
 // ***********************************************************************
 
 void SvImpLBox::SetAnchorSelection(SvLBoxEntry* pOldCursor,SvLBoxEntry* pNewCursor)
@@ -2873,7 +2864,7 @@ void SvImpLBox::SetAnchorSelection(SvLBoxEntry* pOldCursor,SvLBoxEntry* pNewCurs
     }
     else
     {
-        if( nNewVisPos < nOldVisPos )  // Vergroessern der Selektion
+        if( nNewVisPos < nOldVisPos )  // enlarge selection
         {
             pEntry = pNewCursor;
             while( pEntry && pEntry != pOldCursor )
@@ -2949,9 +2940,9 @@ void SvImpLBox::SelAllDestrAnch( sal_Bool bSelect, sal_Bool bDestroyAnchor,
     {
         pView->Select( pCursor, sal_False );
         if( bDestroyAnchor )
-            DestroyAnchor(); // Anker loeschen & SelectionEngine zuruecksetzen
+            DestroyAnchor(); // delete anchor & reset SelectionEngine
         else
-            pAnchor = 0; // internen Anker immer loeschen
+            pAnchor = 0; // always delete internal anchor
         return;
     }
 
@@ -2961,7 +2952,7 @@ void SvImpLBox::SelAllDestrAnch( sal_Bool bSelect, sal_Bool bDestroyAnchor,
     ShowCursor( sal_False );
     sal_Bool bUpdate = GetUpdateMode();
 
-    nFlags |= F_IGNORE_SELECT; // EntryInserted soll nix tun
+    nFlags |= F_IGNORE_SELECT; // EntryInserted should not do anything
     pEntry = pTree->First();
     while( pEntry )
     {
@@ -2971,7 +2962,7 @@ void SvImpLBox::SelAllDestrAnch( sal_Bool bSelect, sal_Bool bDestroyAnchor,
             {
                 long nY = GetEntryLine( pEntry );
                 if( IsLineVisible( nY ) )
-                    pView->PaintEntry1( pEntry, nY, 0xffff ); // wg. ItemsetBrowser SV_LBOXTAB_SHOW_SELECTION );
+                    pView->PaintEntry1( pEntry, nY, 0xffff ); // because of ItemsetBrowser SV_LBOXTAB_SHOW_SELECTION );
             }
         }
         pEntry = pTree->Next( pEntry );
@@ -2979,9 +2970,9 @@ void SvImpLBox::SelAllDestrAnch( sal_Bool bSelect, sal_Bool bDestroyAnchor,
     nFlags &= ~F_IGNORE_SELECT;
 
     if( bDestroyAnchor )
-        DestroyAnchor(); // Anker loeschen & SelectionEngine zuruecksetzen
+        DestroyAnchor(); // delete anchor & reset SelectionEngine
     else
-        pAnchor = 0; // internen Anker immer loeschen
+        pAnchor = 0; // always delete internal anchor
     ShowCursor( sal_True );
 }
 
@@ -3076,7 +3067,7 @@ void SvImpLBox::Command( const CommandEvent& rCEvt )
     if( nCommand == COMMAND_CONTEXTMENU )
         aEditTimer.Stop();
 
-    // Rollmaus-Event?
+    // scroll mouse event?
     if( ( ( nCommand == COMMAND_WHEEL ) || ( nCommand == COMMAND_STARTAUTOSCROLL ) || ( nCommand == COMMAND_AUTOSCROLL ) )
         && pView->HandleScrollCommand( rCEvt, &aHorSBar, &aVerSBar ) )
             return;
@@ -3088,7 +3079,7 @@ void SvImpLBox::Command( const CommandEvent& rCEvt )
         std::stack<SvLBoxEntry*> aSelRestore;
 
         if( rCEvt.IsMouseEvent() )
-        {   // change selection, if mouse pos doesn't fit to selection
+        {   // change selection, if mouse position doesn't fit to selection
 
             aPopupPos = rCEvt.GetMousePosPixel();
 
@@ -3113,7 +3104,7 @@ void SvImpLBox::Command( const CommandEvent& rCEvt )
                 }
             }
             else if( aSelEng.GetSelectionMode() == SINGLE_SELECTION )
-            {//modified by BerryJia for fixing Bug102739 2002-9-9 17:00(Beijing Time)
+            {
                 bClickedIsFreePlace = sal_True;
                 sal_Int32               nSelectedEntries = pView->GetSelectionCount();
                 SvLBoxEntry*        pSelected = pView->FirstSelected();
@@ -3136,7 +3127,7 @@ void SvImpLBox::Command( const CommandEvent& rCEvt )
             sal_Int32   nSelectionCount = pView->GetSelectionCount();
 
             if( nSelectionCount )
-            {   // now allways take first visible as base for positioning the menu
+            {   // now always take first visible as base for positioning the menu
                 SvLBoxEntry*    pSelected = pView->FirstSelected();
                 while( pSelected )
                 {
@@ -3170,7 +3161,7 @@ void SvImpLBox::Command( const CommandEvent& rCEvt )
             lcl_DeleteSubPopups(pPopup);
             delete pPopup;
         }
-        //added by BerryJia for fixing Bug102739 2002-9-9 17:00(Beijing Time)
+
         if( bClickedIsFreePlace )
         {
             while(!aSelRestore.empty())
@@ -3283,7 +3274,7 @@ sal_Bool SvImpLBox::RequestHelp( const HelpEvent& rHEvt )
         SvLBoxEntry* pEntry = GetEntry( aPos );
         if( pEntry )
         {
-            // Rechteck des Textes berechnen
+            // recalculate text rectangle
             SvLBoxTab* pTab;
             SvLBoxString* pItem = (SvLBoxString*)(pView->GetItem( pEntry, aPos.X(), &pTab ));
             if( !pItem || pItem->IsA() != SV_ITEM_ID_LBOXSTRING )
@@ -3294,7 +3285,7 @@ sal_Bool SvImpLBox::RequestHelp( const HelpEvent& rHEvt )
             Size aSize( pItem->GetSize( pView, pEntry ) );
             SvLBoxTab* pNextTab = NextTab( pTab );
             sal_Bool bItemClipped = sal_False;
-            // wurde das Item von seinem rechten Nachbarn abgeschnitten?
+            // is the item cut off by its right neighbor?
             if( pNextTab && pView->GetTabPos(pEntry,pNextTab) < aPos.X()+aSize.Width() )
             {
                 aSize.Width() = pNextTab->GetPos() - pTab->GetPos();
@@ -3306,7 +3297,7 @@ sal_Bool SvImpLBox::RequestHelp( const HelpEvent& rHEvt )
 
             if( bItemClipped || !aViewRect.IsInside( aItemRect ) )
             {
-                // rechten Item-Rand am View-Rand clippen
+                // clip the right edge of the item at the edge of the view
                 //if( aItemRect.Right() > aViewRect.Right() )
                 //  aItemRect.Right() = aViewRect.Right();
 
@@ -3382,7 +3373,7 @@ sal_Bool SvImpLBox::SetMostRight( SvLBoxEntry* pEntry )
 
         long nMaxRight = GetOutputSize().Width();
         Point aPos( pView->GetMapMode().GetOrigin() );
-        aPos.X() *= -1; // Umrechnung Dokumentkoord.
+        aPos.X() *= -1; // conversion document coordinates
         nMaxRight = nMaxRight + aPos.X() - 1;
 
         long nNextTab = nTabPos < nMaxRight ? nMaxRight : nMaxRight + 50;
diff --git a/svtools/source/contnr/svlbitm.cxx b/svtools/source/contnr/svlbitm.cxx
index 18adbef..54241b5 100644
--- a/svtools/source/contnr/svlbitm.cxx
+++ b/svtools/source/contnr/svlbitm.cxx
@@ -478,7 +478,7 @@ void SvLBoxButton::ImplAdjustBoxSize( Size& io_rSize, ControlType i_eType, Windo
         if( bNativeOK )
         {
             Size aContentSize( aNativeContent.GetSize() );
-            // leave a little space around the box image (looks better
+            // leave a little space around the box image (looks better)
             if( aContentSize.Height() + 2 > io_rSize.Height() )
                 io_rSize.Height() = aContentSize.Height() + 2;
         }
diff --git a/svtools/source/contnr/svlbox.cxx b/svtools/source/contnr/svlbox.cxx
index f212136..22a2c95 100644
--- a/svtools/source/contnr/svlbox.cxx
+++ b/svtools/source/contnr/svlbox.cxx
@@ -28,9 +28,9 @@
 
 
 /*
-    Todo:
-        - Anker loeschen in SelectionEngine bei manuellem Selektieren
-        - SelectAll( sal_False ), nur die deselektierten Entries repainten
+    TODO:
+        - delete anchor in SelectionEngine when selecting manually
+        - SelectAll( sal_False ) => only repaint the delselected entries
 */
 
 #include <string.h>
@@ -328,15 +328,15 @@ long SvLBoxTab::CalcOffset( long nItemWidth, long nTabWidth )
     {
         if( nFlags & SV_LBOXTAB_FORCE )
         {
-            //richtige Implementierung der Zentrierung
+            // correct implementation of centering
             nOffset = ( nTabWidth - nItemWidth ) / 2;
             if( nOffset < 0 )
                 nOffset = 0;
         }
         else
         {
-            // historisch gewachsene falsche Berechnung des Tabs, auf die sich
-            // Abo-Tabbox, Extras/Optionen/Anpassen etc. verlassen
+            // historically grown, wrong calculation of tabs which is needed by
+            // Abo-Tabbox, Tools/Options/Customize etc.
             nItemWidth++;
             nOffset = -( nItemWidth / 2 );
         }
@@ -562,7 +562,7 @@ SvLBox::SvLBox( Window* pParent, WinBits nWinStyle  ) :
     pModel->InsertView( this );
     pHdlEntry = 0;
     pEdCtrl = 0;
-    SetSelectionMode( SINGLE_SELECTION );  // pruefen ob TreeListBox gecallt wird
+    SetSelectionMode( SINGLE_SELECTION );  // check if TreeListBox is called
     SetDragDropMode( SV_DRAGDROP_NONE );
     SetType(WINDOW_TREELISTBOX);
 }
@@ -612,7 +612,7 @@ SvLBox::~SvLBox()
 void SvLBox::SetModel( SvLBoxTreeList* pNewModel )
 {
     DBG_CHKTHIS(SvLBox,0);
-    // erledigt das ganz CleanUp
+    // does the CleanUp
     SvListView::SetModel( pNewModel );
     pModel->SetCloneLink( LINK(this, SvLBox, CloneHdl_Impl ));
     SvLBoxEntry* pEntry = First();
@@ -634,7 +634,7 @@ void SvLBox::DisconnectFromModel()
 void SvLBox::Clear()
 {
     DBG_CHKTHIS(SvLBox,0);
-    pModel->Clear();  // Model ruft SvLBox::ModelHasCleared() auf
+    pModel->Clear();  // Model calls SvLBox::ModelHasCleared()
 }
 
 void SvLBox::EnableEntryMnemonics( bool _bEnable )
@@ -716,31 +716,31 @@ sal_Bool SvLBox::CheckDragAndDropMode( SvLBox* pSource, sal_Int8 nAction )
     if ( pSource == this )
     {
         if ( !(nDragDropMode & (SV_DRAGDROP_CTRL_MOVE | SV_DRAGDROP_CTRL_COPY) ) )
-            return sal_False; // D&D innerhalb der Liste gesperrt
+            return sal_False; // D&D locked within list
         if( DND_ACTION_MOVE == nAction )
         {
             if ( !(nDragDropMode & SV_DRAGDROP_CTRL_MOVE) )
-                 return sal_False; // kein lokales Move
+                 return sal_False; // no local move
         }
         else
         {
             if ( !(nDragDropMode & SV_DRAGDROP_CTRL_COPY))
-                return sal_False; // kein lokales Copy
+                return sal_False; // no local copy
         }
     }
     else
     {
         if ( !(nDragDropMode & SV_DRAGDROP_APP_DROP ) )
-            return sal_False; // kein Drop
+            return sal_False; // no drop
         if ( DND_ACTION_MOVE == nAction )
         {
             if ( !(nDragDropMode & SV_DRAGDROP_APP_MOVE) )
-                return sal_False; // kein globales Move
+                return sal_False; // no global move
         }
         else
         {
             if ( !(nDragDropMode & SV_DRAGDROP_APP_COPY))
-                return sal_False; // kein globales Copy
+                return sal_False; // no global copy
         }
     }
     return sal_True;
@@ -758,30 +758,30 @@ void SvLBox::NotifyRemoving( SvLBoxEntry* )
     NotifyMoving/Copying
     ====================
 
-    Standard-Verhalten:

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list