diff options
Diffstat (limited to 'sc/source/core/data/fillinfo.cxx')
-rw-r--r-- | sc/source/core/data/fillinfo.cxx | 178 |
1 files changed, 89 insertions, 89 deletions
diff --git a/sc/source/core/data/fillinfo.cxx b/sc/source/core/data/fillinfo.cxx index 99da4979a1b6..280b777738d8 100644 --- a/sc/source/core/data/fillinfo.cxx +++ b/sc/source/core/data/fillinfo.cxx @@ -1,7 +1,7 @@ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * + * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite @@ -35,7 +35,7 @@ #include "scitems.hxx" #include <editeng/boxitem.hxx> #include <editeng/bolnitem.hxx> -#include <editeng/editdata.hxx> // can be removed if table has a bLayoutRTL flag +#include <editeng/editdata.hxx> // can be removed if table has a bLayoutRTL flag #include <editeng/shaditem.hxx> #include "fillinfo.hxx" @@ -83,7 +83,7 @@ inline const SvxBorderLine* GetNullOrLine( const SvxBoxItem* pBox, FillInfoLineP return NULL; } -// aehnlich wie in output.cxx +// aehnlich wie in output.cxx void lcl_GetMergeRange( SCsCOL nX, SCsROW nY, SCSIZE nArrY, ScDocument* pDoc, RowInfo* pRowInfo, @@ -99,7 +99,7 @@ void lcl_GetMergeRange( SCsCOL nX, SCsROW nY, SCSIZE nArrY, SCCOL nLastCol; SCROW nLastRow; - while (bHOver) // nY konstant + while (bHOver) // nY konstant { --rStartX; if (rStartX >= (SCsCOL) nX1 && !pDoc->ColHidden(rStartX, nTab, nLastCol)) @@ -121,7 +121,7 @@ void lcl_GetMergeRange( SCsCOL nX, SCsROW nY, SCSIZE nArrY, --rStartY; if (nArrY>0) - --nArrY; // lokale Kopie ! + --nArrY; // lokale Kopie ! if (rStartX >= (SCsCOL) nX1 && rStartY >= (SCsROW) nY1 && !pDoc->ColHidden(rStartX, nTab, nLastCol) && @@ -207,7 +207,7 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX nBlockStartY = aTmpRange.aStart.Row(); nBlockEndX = aTmpRange.aEnd.Col(); nBlockEndY = aTmpRange.aEnd.Row(); - ExtendHidden( nBlockStartX, nBlockStartY, nBlockEndX, nBlockEndY, nTab ); //? noetig ? + ExtendHidden( nBlockStartX, nBlockStartY, nBlockEndX, nBlockEndY, nTab ); //? noetig ? if (pMarkData->IsMarkNegative()) bSkipMarks = TRUE; else @@ -215,7 +215,7 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX } } - // zuerst nur die Eintraege fuer die ganze Spalte + // zuerst nur die Eintraege fuer die ganze Spalte nArrY=0; SCROW nYExtra = nY2+1; @@ -226,7 +226,7 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX if (nSignedY >= 0) nY = (SCROW) nSignedY; else - nY = MAXROW+1; // ungueltig + nY = MAXROW+1; // ungueltig if (nY > nDocHeightEndRow) { @@ -239,38 +239,38 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX if ( nArrY==0 || nDocHeight || nY > MAXROW ) { RowInfo* pThisRowInfo = &pRowInfo[nArrY]; - pThisRowInfo->pCellInfo = NULL; // wird unten belegt + pThisRowInfo->pCellInfo = NULL; // wird unten belegt USHORT nHeight = (USHORT) ( nDocHeight * nScaleY ); if (!nHeight) nHeight = 1; - pThisRowInfo->nRowNo = nY; //! Fall < 0 ? - pThisRowInfo->nHeight = nHeight; - pThisRowInfo->bEmptyBack = TRUE; - pThisRowInfo->bEmptyText = TRUE; - pThisRowInfo->bChanged = TRUE; - pThisRowInfo->bAutoFilter = FALSE; - pThisRowInfo->bPushButton = FALSE; - pThisRowInfo->nRotMaxCol = SC_ROTMAX_NONE; + pThisRowInfo->nRowNo = nY; //! Fall < 0 ? + pThisRowInfo->nHeight = nHeight; + pThisRowInfo->bEmptyBack = TRUE; + pThisRowInfo->bEmptyText = TRUE; + pThisRowInfo->bChanged = TRUE; + pThisRowInfo->bAutoFilter = FALSE; + pThisRowInfo->bPushButton = FALSE; + pThisRowInfo->nRotMaxCol = SC_ROTMAX_NONE; ++nArrY; if (nArrY >= ROWINFO_MAX) { DBG_ERROR("Zu grosser Bereich bei FillInfo" ); - nYExtra = nSignedY; // Ende - nY2 = nYExtra - 1; // Bereich anpassen + nYExtra = nSignedY; // Ende + nY2 = nYExtra - 1; // Bereich anpassen } } else - if (nSignedY==(SCsROW) nYExtra) // zusaetzliche Zeile verdeckt ? + if (nSignedY==(SCsROW) nYExtra) // zusaetzliche Zeile verdeckt ? ++nYExtra; } - nArrCount = nArrY; // incl. Dummys + nArrCount = nArrY; // incl. Dummys - // rotierter Text... + // rotierter Text... - // Attribut im Dokument ueberhaupt verwendet? + // Attribut im Dokument ueberhaupt verwendet? BOOL bAnyItem = FALSE; USHORT nRotCount = pPool->GetItemCount( ATTR_ROTATE_VALUE ); for (USHORT nItem=0; nItem<nRotCount; nItem++) @@ -284,33 +284,33 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX if ( bAnyItem && HasAttrib( 0,nY1,nTab, MAXCOL,nY2+1,nTab, HASATTR_ROTATE | HASATTR_CONDITIONAL ) ) { - //! Conditionals auch bei HASATTR_ROTATE abfragen ???? + //! Conditionals auch bei HASATTR_ROTATE abfragen ???? DBG_ASSERT( nArrCount>2, "nArrCount zu klein" ); -// FindMaxRotCol( nTab, &pRowInfo[1], nArrCount-2, nX1, nX2 ); +// FindMaxRotCol( nTab, &pRowInfo[1], nArrCount-2, nX1, nX2 ); FindMaxRotCol( nTab, &pRowInfo[1], nArrCount-1, nX1, nX2 ); - // FindMaxRotCol setzt nRotMaxCol + // FindMaxRotCol setzt nRotMaxCol for (nArrY=0; nArrY<nArrCount; nArrY++) if (pRowInfo[nArrY].nRotMaxCol != SC_ROTMAX_NONE && pRowInfo[nArrY].nRotMaxCol > nRotMax) nRotMax = pRowInfo[nArrY].nRotMaxCol; } - // Zell-Infos erst nach dem Test auf gedrehte allozieren - // bis nRotMax wegen nRotateDir Flag + // Zell-Infos erst nach dem Test auf gedrehte allozieren + // bis nRotMax wegen nRotateDir Flag for (nArrY=0; nArrY<nArrCount; nArrY++) { RowInfo* pThisRowInfo = &pRowInfo[nArrY]; nY = pThisRowInfo->nRowNo; - pThisRowInfo->pCellInfo = new CellInfo[ nRotMax+1+2 ]; // vom Aufrufer zu loeschen ! + pThisRowInfo->pCellInfo = new CellInfo[ nRotMax+1+2 ]; // vom Aufrufer zu loeschen ! - for (nArrX=0; nArrX<=nRotMax+2; nArrX++) // Zell-Infos vorbelegen + for (nArrX=0; nArrX<=nRotMax+2; nArrX++) // Zell-Infos vorbelegen { if (nArrX>0) nX = nArrX-1; else - nX = MAXCOL+1; // ungueltig + nX = MAXCOL+1; // ungueltig CellInfo* pInfo = &pThisRowInfo->pCellInfo[nArrX]; pInfo->bEmptyCellText = TRUE; @@ -322,21 +322,21 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX pInfo->bMarked = FALSE; pInfo->nWidth = 0; - pInfo->nClipMark = SC_CLIPMARK_NONE; - pInfo->bMerged = FALSE; + pInfo->nClipMark = SC_CLIPMARK_NONE; + pInfo->bMerged = FALSE; pInfo->bHOverlapped = FALSE; pInfo->bVOverlapped = FALSE; - pInfo->bAutoFilter = FALSE; - pInfo->bPushButton = FALSE; + pInfo->bAutoFilter = FALSE; + pInfo->bPushButton = FALSE; pInfo->bPopupButton = false; pInfo->bFilterActive = false; - pInfo->nRotateDir = SC_ROTDIR_NONE; + pInfo->nRotateDir = SC_ROTDIR_NONE; - pInfo->bPrinted = FALSE; // view-intern - pInfo->bHideGrid = FALSE; // view-intern - pInfo->bEditEngine = FALSE; // view-intern + pInfo->bPrinted = FALSE; // view-intern + pInfo->bHideGrid = FALSE; // view-intern + pInfo->bEditEngine = FALSE; // view-intern - pInfo->pBackground = NULL; //! weglassen? + pInfo->pBackground = NULL; //! weglassen? pInfo->pPatternAttr = NULL; pInfo->pConditionSet= NULL; @@ -344,13 +344,13 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX pInfo->mpTLBRLine = NULL; pInfo->mpBLTRLine = NULL; - pInfo->pShadowAttr = pDefShadow; + pInfo->pShadowAttr = pDefShadow; pInfo->pHShadowOrigin = NULL; pInfo->pVShadowOrigin = NULL; } } - for (nArrX=nX2+3; nArrX<=nRotMax+2; nArrX++) // restliche Breiten eintragen + for (nArrX=nX2+3; nArrX<=nRotMax+2; nArrX++) // restliche Breiten eintragen { nX = nArrX-1; if ( ValidCol(nX) ) @@ -366,9 +366,9 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX } } - for (nArrX=0; nArrX<=nX2+2; nArrX++) // links & rechts + 1 + for (nArrX=0; nArrX<=nX2+2; nArrX++) // links & rechts + 1 { - nX = (nArrX>0) ? nArrX-1 : MAXCOL+1; // negativ -> ungueltig + nX = (nArrX>0) ? nArrX-1 : MAXCOL+1; // negativ -> ungueltig if ( ValidCol(nX) ) { @@ -382,9 +382,9 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX if (!nThisWidth) nThisWidth = 1; - pRowInfo[0].pCellInfo[nArrX].nWidth = nThisWidth; //! dies sollte reichen + pRowInfo[0].pCellInfo[nArrX].nWidth = nThisWidth; //! dies sollte reichen - ScColumn* pThisCol = &pTab[nTab]->aCol[nX]; // Spalten-Daten + ScColumn* pThisCol = &pTab[nTab]->aCol[nX]; // Spalten-Daten nArrY = 1; SCSIZE nUIndex; @@ -415,25 +415,25 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX ++nUIndex; } - if (nX+1 >= nX1) // Attribute/Blockmarken ab nX1-1 + if (nX+1 >= nX1) // Attribute/Blockmarken ab nX1-1 { - ScAttrArray* pThisAttrArr = pThisCol->pAttrArray; // Attribute + ScAttrArray* pThisAttrArr = pThisCol->pAttrArray; // Attribute nArrY = 0; const ScPatternAttr* pPattern; - SCROW nCurRow=nY1; // einzelne Zeile + SCROW nCurRow=nY1; // einzelne Zeile if (nCurRow>0) - --nCurRow; // oben 1 mehr + --nCurRow; // oben 1 mehr else nArrY = 1; - nThisRow=nCurRow; // Ende des Bereichs + nThisRow=nCurRow; // Ende des Bereichs SCSIZE nIndex; (void) pThisAttrArr->Search( nCurRow, nIndex ); do { - nThisRow=pThisAttrArr->pData[nIndex].nRow; // Ende des Bereichs + nThisRow=pThisAttrArr->pData[nIndex].nRow; // Ende des Bereichs pPattern=pThisAttrArr->pData[nIndex].pPattern; const SvxBrushItem* pBackground = (const SvxBrushItem*) @@ -460,11 +460,11 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX BOOL bVOverlapped = ((nOverlap & SC_MF_VER) != 0); BOOL bAutoFilter = ((nOverlap & SC_MF_AUTO) != 0); BOOL bPushButton = ((nOverlap & SC_MF_BUTTON) != 0); - BOOL bScenario = ((nOverlap & SC_MF_SCENARIO) != 0); + BOOL bScenario = ((nOverlap & SC_MF_SCENARIO) != 0); bool bPopupButton = ((nOverlap & SC_MF_BUTTON_POPUP) != 0); bool bFilterActive = ((nOverlap & SC_MF_HIDDEN_MEMBER) != 0); if (bMerged||bHOverlapped||bVOverlapped) - bAnyMerged = TRUE; // intern + bAnyMerged = TRUE; // intern BOOL bHidden, bHideFormula; if (bTabProtect) @@ -490,7 +490,7 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX if ( nArrY==0 || !bRowHidden ) { RowInfo* pThisRowInfo = &pRowInfo[nArrY]; - if (pBackground != pDefBackground) // Spalten-HG == Standard ? + if (pBackground != pDefBackground) // Spalten-HG == Standard ? pThisRowInfo->bEmptyBack = FALSE; if (bAutoFilter) pThisRowInfo->bAutoFilter = TRUE; @@ -498,26 +498,26 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX pThisRowInfo->bPushButton = TRUE; CellInfo* pInfo = &pThisRowInfo->pCellInfo[nArrX]; - pInfo->pBackground = pBackground; - pInfo->pPatternAttr = pPattern; - pInfo->bMerged = bMerged; - pInfo->bHOverlapped = bHOverlapped; - pInfo->bVOverlapped = bVOverlapped; - pInfo->bAutoFilter = bAutoFilter; - pInfo->bPushButton = bPushButton; + pInfo->pBackground = pBackground; + pInfo->pPatternAttr = pPattern; + pInfo->bMerged = bMerged; + pInfo->bHOverlapped = bHOverlapped; + pInfo->bVOverlapped = bVOverlapped; + pInfo->bAutoFilter = bAutoFilter; + pInfo->bPushButton = bPushButton; pInfo->bPopupButton = bPopupButton; pInfo->bFilterActive = bFilterActive; - pInfo->pLinesAttr = pLinesAttr; + pInfo->pLinesAttr = pLinesAttr; pInfo->mpTLBRLine = pTLBRLine; pInfo->mpBLTRLine = pBLTRLine; - pInfo->pShadowAttr = pShadowAttr; - // nWidth wird nicht mehr einzeln gesetzt + pInfo->pShadowAttr = pShadowAttr; + // nWidth wird nicht mehr einzeln gesetzt BOOL bEmbed = FALSE; //bIsEmbedded && - nTab >= aEmbedRange.aStart.Tab() && + nTab >= aEmbedRange.aStart.Tab() && nTab <= aEmbedRange.aEnd.Tab() && - nX >= aEmbedRange.aStart.Col() && - nX <= aEmbedRange.aEnd.Col() && + nX >= aEmbedRange.aStart.Col() && + nX <= aEmbedRange.aEnd.Col() && nCurRow >= aEmbedRange.aStart.Row() && nCurRow <= aEmbedRange.aEnd.Row(); @@ -547,7 +547,7 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX pStlPool->Find( aStyle, SFX_STYLE_FAMILY_PARA ); if ( pStyleSheet ) { - //! Style-Sets cachen !!! + //! Style-Sets cachen !!! pInfo->pConditionSet = &pStyleSheet->GetItemSet(); bAnyCondition = TRUE; } @@ -573,12 +573,12 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX if (pMarkData && pMarkData->IsMultiMarked()) { - // Blockmarken + // Blockmarken const ScMarkArray* pThisMarkArr = pMarkData->GetArray()+nX; BOOL bThisMarked; nArrY = 1; - nCurRow = nY1; // einzelne Zeile - nThisRow = nY1; // Ende des Bereichs + nCurRow = nY1; // einzelne Zeile + nThisRow = nY1; // Ende des Bereichs if ( pThisMarkArr->Search( nY1, nIndex ) ) { @@ -616,14 +616,14 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX } } } - else // vordere Spalten + else // vordere Spalten { for (nArrY=1; nArrY+1<nArrCount; nArrY++) { RowInfo* pThisRowInfo = &pRowInfo[nArrY]; CellInfo* pInfo = &pThisRowInfo->pCellInfo[nArrX]; - pInfo->nWidth = nThisWidth; //! oder nur 0 abfragen ?? + pInfo->nWidth = nThisWidth; //! oder nur 0 abfragen ?? } } } @@ -634,13 +634,13 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX } //------------------------------------------------------------------------- - // bedingte Formatierung auswerten + // bedingte Formatierung auswerten if (bAnyCondition) { for (nArrY=0; nArrY<nArrCount; nArrY++) { - for (nArrX=nX1; nArrX<=nX2+2; nArrX++) // links und rechts einer mehr + for (nArrX=nX1; nArrX<=nX2+2; nArrX++) // links und rechts einer mehr { CellInfo* pInfo = &pRowInfo[nArrY].pCellInfo[nArrX]; const SfxItemSet* pCondSet = pInfo->pConditionSet; @@ -648,14 +648,14 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX { const SfxPoolItem* pItem; - // Hintergrund + // Hintergrund if ( pCondSet->GetItemState( ATTR_BACKGROUND, TRUE, &pItem ) == SFX_ITEM_SET ) { pInfo->pBackground = (const SvxBrushItem*) pItem; pRowInfo[nArrY].bEmptyBack = FALSE; } - // Umrandung + // Umrandung if ( pCondSet->GetItemState( ATTR_BORDER, TRUE, &pItem ) == SFX_ITEM_SET ) pInfo->pLinesAttr = (const SvxBoxItem*) pItem; @@ -664,7 +664,7 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX if ( pCondSet->GetItemState( ATTR_BORDER_BLTR, TRUE, &pItem ) == SFX_ITEM_SET ) pInfo->mpBLTRLine = static_cast< const SvxLineItem* >( pItem ); - // Schatten + // Schatten if ( pCondSet->GetItemState( ATTR_SHADOW, TRUE, &pItem ) == SFX_ITEM_SET ) { pInfo->pShadowAttr = (const SvxShadowItem*) pItem; @@ -675,11 +675,11 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX } } - // bedingte Formatierung Ende + // bedingte Formatierung Ende //------------------------------------------------------------------------- // - // Daten von zusammengefassten Zellen anpassen + // Daten von zusammengefassten Zellen anpassen // if (bAnyMerged) @@ -689,7 +689,7 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX RowInfo* pThisRowInfo = &pRowInfo[nArrY]; nSignedY = nArrY ? pThisRowInfo->nRowNo : ((SCsROW)nY1)-1; - for (nArrX=nX1; nArrX<=nX2+2; nArrX++) // links und rechts einer mehr + for (nArrX=nX1; nArrX<=nX2+2; nArrX++) // links und rechts einer mehr { SCsCOL nSignedX = ((SCsCOL) nArrX) - 1; CellInfo* pInfo = &pThisRowInfo->pCellInfo[nArrX]; @@ -745,14 +745,14 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX } } - if (bAnyShadow) // Schatten verteilen + if (bAnyShadow) // Schatten verteilen { for (nArrY=0; nArrY<nArrCount; nArrY++) { BOOL bTop = ( nArrY == 0 ); BOOL bBottom = ( nArrY+1 == nArrCount ); - for (nArrX=nX1; nArrX<=nX2+2; nArrX++) // links und rechts einer mehr + for (nArrX=nX1; nArrX<=nX2+2; nArrX++) // links und rechts einer mehr { BOOL bLeft = ( nArrX == nX1 ); BOOL bRight = ( nArrX == nX2+2 ); @@ -762,7 +762,7 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX SvxShadowLocation eLoc = pThisAttr ? pThisAttr->GetLocation() : SVX_SHADOW_NONE; if (eLoc != SVX_SHADOW_NONE) { - // oder Test auf != eLoc + // oder Test auf != eLoc SCsCOL nDxPos = 1; SCsCOL nDxNeg = -1; @@ -785,10 +785,10 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX { switch (eLoc) { - case SVX_SHADOW_BOTTOMRIGHT: eLoc = SVX_SHADOW_BOTTOMLEFT; break; - case SVX_SHADOW_BOTTOMLEFT: eLoc = SVX_SHADOW_BOTTOMRIGHT; break; - case SVX_SHADOW_TOPRIGHT: eLoc = SVX_SHADOW_TOPLEFT; break; - case SVX_SHADOW_TOPLEFT: eLoc = SVX_SHADOW_TOPRIGHT; break; + case SVX_SHADOW_BOTTOMRIGHT: eLoc = SVX_SHADOW_BOTTOMLEFT; break; + case SVX_SHADOW_BOTTOMLEFT: eLoc = SVX_SHADOW_BOTTOMRIGHT; break; + case SVX_SHADOW_TOPRIGHT: eLoc = SVX_SHADOW_TOPLEFT; break; + case SVX_SHADOW_TOPLEFT: eLoc = SVX_SHADOW_TOPRIGHT; break; default: { // added to avoid warnings |