diff options
Diffstat (limited to 'sc/source/ui/view/tabview4.cxx')
-rw-r--r-- | sc/source/ui/view/tabview4.cxx | 565 |
1 files changed, 0 insertions, 565 deletions
diff --git a/sc/source/ui/view/tabview4.cxx b/sc/source/ui/view/tabview4.cxx deleted file mode 100644 index 48a84c16e..000000000 --- a/sc/source/ui/view/tabview4.cxx +++ /dev/null @@ -1,565 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_sc.hxx" - - - -//------------------------------------------------------------------ - -// INCLUDE --------------------------------------------------------------- - -#include <vcl/help.hxx> -#include <vcl/svapp.hxx> - -#include "tabview.hxx" -#include "document.hxx" -#include "docsh.hxx" -#include "scmod.hxx" -#include "gridwin.hxx" -#include "globstr.hrc" -#include "cell.hxx" -#include "dociter.hxx" - -extern sal_uInt16 nScFillModeMouseModifier; // global.cxx - -// STATIC DATA ----------------------------------------------------------- - -//================================================================== - -// -// --- Referenz-Eingabe / Fill-Cursor -// - -void ScTabView::HideTip() -{ - if ( nTipVisible ) - { - Help::HideTip( nTipVisible ); - nTipVisible = 0; - } -} - -void ScTabView::ShowRefTip() -{ - sal_Bool bDone = false; - if ( aViewData.GetRefType() == SC_REFTYPE_REF && Help::IsQuickHelpEnabled() ) - { - SCCOL nStartX = aViewData.GetRefStartX(); - SCROW nStartY = aViewData.GetRefStartY(); - SCCOL nEndX = aViewData.GetRefEndX(); - SCROW nEndY = aViewData.GetRefEndY(); - if ( nEndX != nStartX || nEndY != nStartY ) // nicht fuer einzelne Zelle - { - sal_Bool bLeft = ( nEndX < nStartX ); - sal_Bool bTop = ( nEndY < nStartY ); - PutInOrder( nStartX, nEndX ); - PutInOrder( nStartY, nEndY ); - SCCOL nCols = nEndX+1-nStartX; - SCROW nRows = nEndY+1-nStartY; - - String aHelp = ScGlobal::GetRscString( STR_QUICKHELP_REF ); - aHelp.SearchAndReplace( String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("%1")), - String::CreateFromInt32(nRows) ); - aHelp.SearchAndReplace( String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("%2")), - String::CreateFromInt32(nCols) ); - - ScSplitPos eWhich = aViewData.GetActivePart(); - Window* pWin = pGridWin[eWhich]; - if ( pWin ) - { - Point aStart = aViewData.GetScrPos( nStartX, nStartY, eWhich ); - Point aEnd = aViewData.GetScrPos( nEndX+1, nEndY+1, eWhich ); - - Point aPos( bLeft ? aStart.X() : ( aEnd.X() + 3 ), - bTop ? aStart.Y() : ( aEnd.Y() + 3 ) ); - sal_uInt16 nFlags = ( bLeft ? QUICKHELP_RIGHT : QUICKHELP_LEFT ) | - ( bTop ? QUICKHELP_BOTTOM : QUICKHELP_TOP ); - - // nicht ueber die editierte Formel - if ( !bTop && aViewData.HasEditView( eWhich ) && - nEndY+1 == aViewData.GetEditViewRow() ) - { - // dann an der oberen Kante der editierten Zelle ausrichten - aPos.Y() -= 2; // die 3 von oben - nFlags = ( nFlags & ~QUICKHELP_TOP ) | QUICKHELP_BOTTOM; - } - - Rectangle aRect( pWin->OutputToScreenPixel( aPos ), Size(1,1) ); - - //! Test, ob geaendert ?? - - HideTip(); - nTipVisible = Help::ShowTip( pWin, aRect, aHelp, nFlags ); - bDone = sal_True; - } - } - } - - if (!bDone) - HideTip(); -} - -void ScTabView::StopRefMode() -{ - if (aViewData.IsRefMode()) - { - aViewData.SetRefMode( false, SC_REFTYPE_NONE ); - - HideTip(); - UpdateShrinkOverlay(); - - if ( aViewData.GetTabNo() >= aViewData.GetRefStartZ() && - aViewData.GetTabNo() <= aViewData.GetRefEndZ() ) - { - ScDocument* pDoc = aViewData.GetDocument(); - SCCOL nStartX = aViewData.GetRefStartX(); - SCROW nStartY = aViewData.GetRefStartY(); - SCCOL nEndX = aViewData.GetRefEndX(); - SCROW nEndY = aViewData.GetRefEndY(); - if ( nStartX == nEndX && nStartY == nEndY ) - pDoc->ExtendMerge( nStartX, nStartY, nEndX, nEndY, aViewData.GetTabNo() ); - - PaintArea( nStartX,nStartY,nEndX,nEndY, SC_UPDATE_MARKS ); - } - - pSelEngine->Reset(); - pSelEngine->SetAddMode( false ); //! sollte das nicht bei Reset passieren? - - ScSplitPos eOld = pSelEngine->GetWhich(); - ScSplitPos eNew = aViewData.GetActivePart(); - if ( eNew != eOld ) - { - pSelEngine->SetWindow( pGridWin[ eNew ] ); - pSelEngine->SetWhich( eNew ); - pSelEngine->SetVisibleArea( Rectangle(Point(), - pGridWin[eNew]->GetOutputSizePixel()) ); - pGridWin[eOld]->MoveMouseStatus(*pGridWin[eNew]); - } - } - - // AlignToCursor(SC_FOLLOW_NONE): Only switch active part. - // This must also be done if no RefMode was active (for RangeFinder dragging), - // but if RefMode was set, AlignToCursor must be after SelectionEngine reset, - // so the SelectionEngine SetWindow call from AlignToCursor doesn't capture - // the mouse again when called from Tracking/MouseButtonUp (#94562#). - AlignToCursor( aViewData.GetCurX(), aViewData.GetCurY(), SC_FOLLOW_NONE ); -} - -void ScTabView::DoneRefMode( bool bContinue ) -{ - ScDocument* pDoc = aViewData.GetDocument(); - if ( aViewData.GetRefType() == SC_REFTYPE_REF && bContinue ) - SC_MOD()->AddRefEntry(); - - sal_Bool bWasRef = aViewData.IsRefMode(); - aViewData.SetRefMode( false, SC_REFTYPE_NONE ); - - HideTip(); - UpdateShrinkOverlay(); - - // Paint: - if ( bWasRef && aViewData.GetTabNo() >= aViewData.GetRefStartZ() && - aViewData.GetTabNo() <= aViewData.GetRefEndZ() ) - { - SCCOL nStartX = aViewData.GetRefStartX(); - SCROW nStartY = aViewData.GetRefStartY(); - SCCOL nEndX = aViewData.GetRefEndX(); - SCROW nEndY = aViewData.GetRefEndY(); - if ( nStartX == nEndX && nStartY == nEndY ) - pDoc->ExtendMerge( nStartX, nStartY, nEndX, nEndY, aViewData.GetTabNo() ); - - PaintArea( nStartX,nStartY,nEndX,nEndY, SC_UPDATE_MARKS ); - } -} - -void ScTabView::UpdateRef( SCCOL nCurX, SCROW nCurY, SCTAB nCurZ ) -{ - ScDocument* pDoc = aViewData.GetDocument(); - - if (!aViewData.IsRefMode()) - { - // Das kommt vor, wenn bei einem Referenz-Dialog als erstes mit Control in die - // die Tabelle geklickt wird. Dann die neue Referenz an den alten Inhalt anhaengen: - - ScModule* pScMod = SC_MOD(); - if (pScMod->IsFormulaMode()) - pScMod->AddRefEntry(); - - InitRefMode( nCurX, nCurY, nCurZ, SC_REFTYPE_REF ); - } - - if ( nCurX != aViewData.GetRefEndX() || nCurY != aViewData.GetRefEndY() || - nCurZ != aViewData.GetRefEndZ() ) - { - ScMarkData& rMark = aViewData.GetMarkData(); - SCTAB nTab = aViewData.GetTabNo(); - - SCCOL nStartX = aViewData.GetRefStartX(); - SCROW nStartY = aViewData.GetRefStartY(); - SCCOL nEndX = aViewData.GetRefEndX(); - SCROW nEndY = aViewData.GetRefEndY(); - if ( nStartX == nEndX && nStartY == nEndY ) - pDoc->ExtendMerge( nStartX, nStartY, nEndX, nEndY, nTab ); - ScUpdateRect aRect( nStartX, nStartY, nEndX, nEndY ); - - aViewData.SetRefEnd( nCurX, nCurY, nCurZ ); - - nStartX = aViewData.GetRefStartX(); - nStartY = aViewData.GetRefStartY(); - nEndX = aViewData.GetRefEndX(); - nEndY = aViewData.GetRefEndY(); - if ( nStartX == nEndX && nStartY == nEndY ) - pDoc->ExtendMerge( nStartX, nStartY, nEndX, nEndY, nTab ); - aRect.SetNew( nStartX, nStartY, nEndX, nEndY ); - - ScRefType eType = aViewData.GetRefType(); - if ( eType == SC_REFTYPE_REF ) - { - ScRange aRef( - aViewData.GetRefStartX(), aViewData.GetRefStartY(), aViewData.GetRefStartZ(), - aViewData.GetRefEndX(), aViewData.GetRefEndY(), aViewData.GetRefEndZ() ); - SC_MOD()->SetReference( aRef, pDoc, &rMark ); - ShowRefTip(); - } - else if ( eType == SC_REFTYPE_EMBED_LT || eType == SC_REFTYPE_EMBED_RB ) - { - PutInOrder(nStartX,nEndX); - PutInOrder(nStartY,nEndY); - pDoc->SetEmbedded( ScRange(nStartX,nStartY,nTab, nEndX,nEndY,nTab) ); - ScDocShell* pDocSh = aViewData.GetDocShell(); - pDocSh->UpdateOle( &aViewData, sal_True ); - pDocSh->SetDocumentModified(); - } - - SCCOL nPaintStartX; - SCROW nPaintStartY; - SCCOL nPaintEndX; - SCROW nPaintEndY; - if (aRect.GetDiff( nPaintStartX, nPaintStartY, nPaintEndX, nPaintEndY )) - PaintArea( nPaintStartX, nPaintStartY, nPaintEndX, nPaintEndY, SC_UPDATE_MARKS ); - } - - // Tip-Hilfe fuer Auto-Fill - - if ( aViewData.GetRefType() == SC_REFTYPE_FILL && Help::IsQuickHelpEnabled() ) - { - String aHelpStr; - ScRange aMarkRange; - aViewData.GetSimpleArea( aMarkRange ); - SCCOL nEndX = aViewData.GetRefEndX(); - SCROW nEndY = aViewData.GetRefEndY(); - ScRange aDelRange; - if ( aViewData.GetFillMode() == SC_FILL_MATRIX && !(nScFillModeMouseModifier & KEY_MOD1) ) - { - aHelpStr = ScGlobal::GetRscString( STR_TIP_RESIZEMATRIX ); - SCCOL nCols = nEndX + 1 - aViewData.GetRefStartX(); // Reihenfolge ist richtig - SCROW nRows = nEndY + 1 - aViewData.GetRefStartY(); - aHelpStr.SearchAndReplace( String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("%1")), - String::CreateFromInt32(nRows) ); - aHelpStr.SearchAndReplace( String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("%2")), - String::CreateFromInt32(nCols) ); - } - else if ( aViewData.GetDelMark( aDelRange ) ) - aHelpStr = ScGlobal::GetRscString( STR_QUICKHELP_DELETE ); - else if ( nEndX != aMarkRange.aEnd.Col() || nEndY != aMarkRange.aEnd.Row() ) - aHelpStr = pDoc->GetAutoFillPreview( aMarkRange, nEndX, nEndY ); - - // je nach Richtung die obere oder untere Ecke: - SCCOL nAddX = ( nEndX >= aMarkRange.aEnd.Col() ) ? 1 : 0; - SCROW nAddY = ( nEndY >= aMarkRange.aEnd.Row() ) ? 1 : 0; - Point aPos = aViewData.GetScrPos( nEndX+nAddX, nEndY+nAddY, aViewData.GetActivePart() ); - aPos.X() += 8; - aPos.Y() += 4; - Window* pWin = GetActiveWin(); - if ( pWin ) - aPos = pWin->OutputToScreenPixel( aPos ); - Rectangle aRect( aPos, aPos ); - sal_uInt16 nAlign = QUICKHELP_LEFT|QUICKHELP_TOP; - Help::ShowQuickHelp(pWin, aRect, aHelpStr, nAlign); - } -} - -void ScTabView::InitRefMode( SCCOL nCurX, SCROW nCurY, SCTAB nCurZ, ScRefType eType, bool bPaint ) -{ - ScDocument* pDoc = aViewData.GetDocument(); - ScMarkData& rMark = aViewData.GetMarkData(); - if (!aViewData.IsRefMode()) - { - aViewData.SetRefMode( sal_True, eType ); - aViewData.SetRefStart( nCurX, nCurY, nCurZ ); - aViewData.SetRefEnd( nCurX, nCurY, nCurZ ); - - if (nCurZ == aViewData.GetTabNo() && bPaint) - { - SCCOL nStartX = nCurX; - SCROW nStartY = nCurY; - SCCOL nEndX = nCurX; - SCROW nEndY = nCurY; - pDoc->ExtendMerge( nStartX, nStartY, nEndX, nEndY, aViewData.GetTabNo() ); - - //! nur Markierung ueber Inhalte zeichnen! - PaintArea( nStartX,nStartY,nEndX,nEndY, SC_UPDATE_MARKS ); - - // SetReference ohne Merge-Anpassung - ScRange aRef( nCurX,nCurY,nCurZ, nCurX,nCurY,nCurZ ); - SC_MOD()->SetReference( aRef, pDoc, &rMark ); - } - } -} - -void ScTabView::SetScrollBar( ScrollBar& rScroll, long nRangeMax, long nVisible, long nPos, bool bLayoutRTL ) -{ - if ( nVisible == 0 ) - nVisible = 1; // #i59893# don't use visible size 0 - - // RTL layout uses a negative range to simulate a mirrored scroll bar. - // SetScrollBar/GetScrollBarPos hide this so outside of these functions normal cell - // addresses can be used. - - if ( bLayoutRTL ) - { - rScroll.SetRange( Range( -nRangeMax, 0 ) ); - rScroll.SetVisibleSize( nVisible ); - rScroll.SetThumbPos( -nPos - nVisible ); - } - else - { - rScroll.SetRange( Range( 0, nRangeMax ) ); - rScroll.SetVisibleSize( nVisible ); - rScroll.SetThumbPos( nPos ); - } -} - -long ScTabView::GetScrollBarPos( ScrollBar& rScroll, bool bLayoutRTL ) -{ - if ( bLayoutRTL ) - return -rScroll.GetThumbPos() - rScroll.GetVisibleSize(); - else - return rScroll.GetThumbPos(); -} - -// UpdateScrollBars - sichtbaren Bereich und Scrollweite der Scrollbars einstellen - -long lcl_UpdateBar( ScrollBar& rScroll, SCCOLROW nSize ) // Size = (komplette) Zellen -{ - long nOldPos; - long nNewPos; - - nOldPos = rScroll.GetThumbPos(); - rScroll.SetPageSize( static_cast<long>(nSize) ); - nNewPos = rScroll.GetThumbPos(); -#ifndef UNX - rScroll.SetPageSize( 1 ); // immer moeglich ! -#endif - - return nNewPos - nOldPos; -} - -long lcl_GetScrollRange( SCCOLROW nDocEnd, SCCOLROW nPos, SCCOLROW nVis, SCCOLROW nMax, SCCOLROW nStart ) -{ - // get the end (positive) of a scroll bar range that always starts at 0 - - ++nVis; - ++nMax; // for partially visible cells - SCCOLROW nEnd = Max(nDocEnd, (SCCOLROW)(nPos+nVis)) + nVis; - if (nEnd > nMax) - nEnd = nMax; - - return ( nEnd - nStart ); // for range starting at 0 -} - -void ScTabView::UpdateScrollBars() -{ - long nDiff; - sal_Bool bTop = ( aViewData.GetVSplitMode() != SC_SPLIT_NONE ); - sal_Bool bRight = ( aViewData.GetHSplitMode() != SC_SPLIT_NONE ); - ScDocument* pDoc = aViewData.GetDocument(); - SCTAB nTab = aViewData.GetTabNo(); - sal_Bool bMirror = pDoc->IsLayoutRTL( nTab ) != Application::GetSettings().GetLayoutRTL(); - SCCOL nUsedX; - SCROW nUsedY; - pDoc->GetTableArea( nTab, nUsedX, nUsedY ); //! cachen !!!!!!!!!!!!!!! - - SCCOL nVisXL = 0; - SCCOL nVisXR = 0; - SCROW nVisYB = 0; - SCROW nVisYT = 0; - - SCCOL nStartX = 0; - SCROW nStartY = 0; - if (aViewData.GetHSplitMode()==SC_SPLIT_FIX) - nStartX = aViewData.GetFixPosX(); - if (aViewData.GetVSplitMode()==SC_SPLIT_FIX) - nStartY = aViewData.GetFixPosY(); - - nVisXL = aViewData.VisibleCellsX( SC_SPLIT_LEFT ); - long nMaxXL = lcl_GetScrollRange( nUsedX, aViewData.GetPosX(SC_SPLIT_LEFT), nVisXL, MAXCOL, 0 ); - SetScrollBar( aHScrollLeft, nMaxXL, nVisXL, aViewData.GetPosX( SC_SPLIT_LEFT ), bMirror ); - - nVisYB = aViewData.VisibleCellsY( SC_SPLIT_BOTTOM ); - long nMaxYB = lcl_GetScrollRange( nUsedY, aViewData.GetPosY(SC_SPLIT_BOTTOM), nVisYB, MAXROW, nStartY ); - SetScrollBar( aVScrollBottom, nMaxYB, nVisYB, aViewData.GetPosY( SC_SPLIT_BOTTOM ) - nStartY, false ); - - if (bRight) - { - nVisXR = aViewData.VisibleCellsX( SC_SPLIT_RIGHT ); - long nMaxXR = lcl_GetScrollRange( nUsedX, aViewData.GetPosX(SC_SPLIT_RIGHT), nVisXR, MAXCOL, nStartX ); - SetScrollBar( aHScrollRight, nMaxXR, nVisXR, aViewData.GetPosX( SC_SPLIT_RIGHT ) - nStartX, bMirror ); - } - - if (bTop) - { - nVisYT = aViewData.VisibleCellsY( SC_SPLIT_TOP ); - long nMaxYT = lcl_GetScrollRange( nUsedY, aViewData.GetPosY(SC_SPLIT_TOP), nVisYT, MAXROW, 0 ); - SetScrollBar( aVScrollTop, nMaxYT, nVisYT, aViewData.GetPosY( SC_SPLIT_TOP ), false ); - } - - // Bereich testen - - nDiff = lcl_UpdateBar( aHScrollLeft, nVisXL ); - if (nDiff) ScrollX( nDiff, SC_SPLIT_LEFT ); - if (bRight) - { - nDiff = lcl_UpdateBar( aHScrollRight, nVisXR ); - if (nDiff) ScrollX( nDiff, SC_SPLIT_RIGHT ); - } - - nDiff = lcl_UpdateBar( aVScrollBottom, nVisYB ); - if (nDiff) ScrollY( nDiff, SC_SPLIT_BOTTOM ); - if (bTop) - { - nDiff = lcl_UpdateBar( aVScrollTop, nVisYT ); - if (nDiff) ScrollY( nDiff, SC_SPLIT_TOP ); - } - - // set visible area for online spelling - - if ( aViewData.IsActive() ) - { - ScSplitPos eActive = aViewData.GetActivePart(); - ScHSplitPos eHWhich = WhichH( eActive ); - ScVSplitPos eVWhich = WhichV( eActive ); - SCCOL nPosX = aViewData.GetPosX(eHWhich); - SCROW nPosY = aViewData.GetPosY(eVWhich); - SCCOL nEndX = nPosX + ( ( eHWhich == SC_SPLIT_LEFT ) ? nVisXL : nVisXR ); - SCROW nEndY = nPosY + ( ( eVWhich == SC_SPLIT_TOP ) ? nVisYT : nVisYB ); - if ( nEndX > MAXCOL ) nEndX = MAXCOL; - if ( nEndY > MAXROW ) nEndY = MAXROW; - ScRange aVisible( nPosX, nPosY, nTab, nEndX, nEndY, nTab ); - if ( pDoc->SetVisibleSpellRange( aVisible ) ) - SC_MOD()->AnythingChanged(); // if visible area has changed - } -} - -#ifndef HDR_SLIDERSIZE -#define HDR_SLIDERSIZE 2 -#endif - -void ScTabView::InvertHorizontal( ScVSplitPos eWhich, long nDragPos ) -{ - for (sal_uInt16 i=0; i<4; i++) - if (WhichV((ScSplitPos)i)==eWhich) - { - ScGridWindow* pWin = pGridWin[i]; - if (pWin) - { - Rectangle aRect( 0,nDragPos, pWin->GetOutputSizePixel().Width()-1,nDragPos+HDR_SLIDERSIZE-1 ); - pWin->Update(); - pWin->DoInvertRect( aRect ); // Pixel - } - } -} - -void ScTabView::InvertVertical( ScHSplitPos eWhich, long nDragPos ) -{ - for (sal_uInt16 i=0; i<4; i++) - if (WhichH((ScSplitPos)i)==eWhich) - { - ScGridWindow* pWin = pGridWin[i]; - if (pWin) - { - Rectangle aRect( nDragPos,0, nDragPos+HDR_SLIDERSIZE-1,pWin->GetOutputSizePixel().Height()-1 ); - pWin->Update(); - pWin->DoInvertRect( aRect ); // Pixel - } - } -} - -//================================================================== - -void ScTabView::InterpretVisible() -{ - // make sure all visible cells are interpreted, - // so the next paint will not execute a macro function - - ScDocument* pDoc = aViewData.GetDocument(); - if ( !pDoc->GetAutoCalc() ) - return; - - SCTAB nTab = aViewData.GetTabNo(); - for (sal_uInt16 i=0; i<4; i++) - { - // rely on gridwin pointers to find used panes - // no IsVisible test in case the whole view is not yet shown - - if (pGridWin[i]) - { - ScHSplitPos eHWhich = WhichH( ScSplitPos(i) ); - ScVSplitPos eVWhich = WhichV( ScSplitPos(i) ); - - SCCOL nX1 = aViewData.GetPosX( eHWhich ); - SCROW nY1 = aViewData.GetPosY( eVWhich ); - SCCOL nX2 = nX1 + aViewData.VisibleCellsX( eHWhich ); - SCROW nY2 = nY1 + aViewData.VisibleCellsY( eVWhich ); - - if (nX2 > MAXCOL) nX2 = MAXCOL; - if (nY2 > MAXROW) nY2 = MAXROW; - - ScCellIterator aIter( pDoc, nX1, nY1, nTab, nX2, nY2, nTab ); - ScBaseCell* pCell = aIter.GetFirst(); - while ( pCell ) - { - if ( pCell->GetCellType() == CELLTYPE_FORMULA && ((ScFormulaCell*)pCell)->GetDirty() ) - ((ScFormulaCell*)pCell)->Interpret(); - - pCell = aIter.GetNext(); - } - } - } - - // #i65047# repaint during the above loop may have set the bNeedsRepaint flag - CheckNeedsRepaint(); -} - - - - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |