summaryrefslogtreecommitdiff
path: root/sc/source/filter/lotus/lotattr.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/filter/lotus/lotattr.cxx')
-rw-r--r--sc/source/filter/lotus/lotattr.cxx273
1 files changed, 0 insertions, 273 deletions
diff --git a/sc/source/filter/lotus/lotattr.cxx b/sc/source/filter/lotus/lotattr.cxx
deleted file mode 100644
index cd1823172..000000000
--- a/sc/source/filter/lotus/lotattr.cxx
+++ /dev/null
@@ -1,273 +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 "lotattr.hxx"
-
-#include <boost/bind.hpp>
-
-#include <editeng/boxitem.hxx>
-#include <editeng/brshitem.hxx>
-#include <editeng/justifyitem.hxx>
-#include <svx/algitem.hxx>
-
-#include "attrib.hxx"
-#include "docpool.hxx"
-#include "document.hxx"
-#include "lotfntbf.hxx"
-#include "patattr.hxx"
-#include "root.hxx"
-#include "scitems.hxx"
-
-LotAttrCache::ENTRY::ENTRY (const ScPatternAttr &r)
- : pPattAttr(new ScPatternAttr(r))
-{
-}
-
-LotAttrCache::ENTRY::ENTRY (ScPatternAttr* p)
- : pPattAttr(p)
-{
-}
-
-LotAttrCache::ENTRY::~ENTRY ()
-{
- delete pPattAttr;
-}
-
-LotAttrCache::LotAttrCache ()
-{
- pDocPool = pLotusRoot->pDoc->GetPool();
-
- pColTab = new Color [ 8 ];
- pColTab[ 0 ] = Color( COL_WHITE );
- pColTab[ 1 ] = Color( COL_LIGHTBLUE );
- pColTab[ 2 ] = Color( COL_LIGHTGREEN );
- pColTab[ 3 ] = Color( COL_LIGHTCYAN );
- pColTab[ 4 ] = Color( COL_LIGHTRED );
- pColTab[ 5 ] = Color( COL_LIGHTMAGENTA );
- pColTab[ 6 ] = Color( COL_YELLOW );
- pColTab[ 7 ] = Color( COL_BLACK );
-
- ppColorItems[ 0 ] = new SvxColorItem( GetColor( 1 ), ATTR_FONT_COLOR ); // 1
- ppColorItems[ 1 ] = new SvxColorItem( GetColor( 2 ), ATTR_FONT_COLOR );
- ppColorItems[ 2 ] = new SvxColorItem( GetColor( 3 ), ATTR_FONT_COLOR );
- ppColorItems[ 3 ] = new SvxColorItem( GetColor( 4 ), ATTR_FONT_COLOR );
- ppColorItems[ 4 ] = new SvxColorItem( GetColor( 5 ), ATTR_FONT_COLOR );
- ppColorItems[ 5 ] = new SvxColorItem( GetColor( 6 ), ATTR_FONT_COLOR ); // 6
-
- pBlack = new SvxColorItem( Color( COL_BLACK ), ATTR_FONT_COLOR );
- pWhite = new SvxColorItem( Color( COL_WHITE ), ATTR_FONT_COLOR );
-}
-
-
-LotAttrCache::~LotAttrCache()
-{
- for( sal_uInt16 nCnt = 0 ; nCnt < 6 ; nCnt++ )
- delete ppColorItems[ nCnt ];
-
- delete pBlack;
- delete pWhite;
-
- delete[] pColTab;
-}
-
-
-const ScPatternAttr& LotAttrCache::GetPattAttr( const LotAttrWK3& rAttr )
-{
- sal_uInt32 nRefHash;
- MakeHash( rAttr, nRefHash );
-
- boost::ptr_vector<ENTRY>::const_iterator iter = std::find_if(aEntries.begin(),aEntries.end(),
- boost::bind(&ENTRY::nHash0,_1) == nRefHash);
-
- if (iter != aEntries.end())
- return *(iter->pPattAttr);
-
- // neues PatternAttribute erzeugen
- ScPatternAttr* pNewPatt = new ScPatternAttr(pDocPool);
-
- SfxItemSet& rItemSet = pNewPatt->GetItemSet();
- ENTRY *pAkt = new ENTRY( pNewPatt );
-
- pAkt->nHash0 = nRefHash;
-
- pLotusRoot->pFontBuff->Fill( rAttr.nFont, rItemSet );
-
- sal_uInt8 nLine = rAttr.nLineStyle;
- if( nLine )
- {
- SvxBoxItem aBox( ATTR_BORDER );
- ::editeng::SvxBorderLine aTop, aLeft, aBottom, aRight;
-
- LotusToScBorderLine( nLine, aLeft );
- nLine >>= 2;
- LotusToScBorderLine( nLine, aRight );
- nLine >>= 2;
- LotusToScBorderLine( nLine, aTop );
- nLine >>= 2;
- LotusToScBorderLine( nLine, aBottom );
-
- aBox.SetLine( &aTop, BOX_LINE_TOP );
- aBox.SetLine( &aLeft, BOX_LINE_LEFT );
- aBox.SetLine( &aBottom, BOX_LINE_BOTTOM );
- aBox.SetLine( &aRight, BOX_LINE_RIGHT );
-
- rItemSet.Put( aBox );
- }
-
- sal_uInt8 nFontCol = rAttr.nFontCol & 0x07;
- if( nFontCol )
- {
- // nFontCol > 0
- if( nFontCol < 7 )
- rItemSet.Put( GetColorItem( nFontCol ) );
- else
- rItemSet.Put( *pWhite );
- }
-
- sal_uInt8 nBack = rAttr.nBack & 0x1F;
- if( nBack )
- rItemSet.Put( SvxBrushItem( GetColor( nBack & 0x07 ), ATTR_BACKGROUND ) );
-
- if( rAttr.nBack & 0x80 )
- {
- SvxHorJustifyItem aHorJustify(SVX_HOR_JUSTIFY_CENTER, ATTR_HOR_JUSTIFY );
- rItemSet.Put( aHorJustify );
- }
-
- aEntries.push_back(pAkt);
-
- return *pNewPatt;
-}
-
-
-void LotAttrCache::LotusToScBorderLine( sal_uInt8 nLine, ::editeng::SvxBorderLine& aBL )
-{
- nLine &= 0x03;
-
- switch ( nLine )
- {
- default:
- case 0: aBL.SetStyle( ::editeng::NO_STYLE ); break;
- case 1: aBL.SetWidth( DEF_LINE_WIDTH_1 ); break;
- case 2: aBL.SetWidth( DEF_LINE_WIDTH_2 ); break;
- case 3:
- {
- aBL.SetStyle( ::editeng::DOUBLE );
- aBL.SetWidth( DEF_LINE_WIDTH_1 );
- }
- break;
- }
-}
-
-const SvxColorItem& LotAttrCache::GetColorItem( const sal_uInt8 nLotIndex ) const
-{
- OSL_ENSURE( nLotIndex > 0 && nLotIndex < 7,
- "-LotAttrCache::GetColorItem(): so nicht!" );
-
- return *ppColorItems[ nLotIndex - 1 ];
-}
-
-const Color& LotAttrCache::GetColor( const sal_uInt8 nLotIndex ) const
-{
- // Farbe <-> Index passt fuer Background, nicht aber fuer Fonts (0 <-> 7)!
- OSL_ENSURE( nLotIndex < 8, "*LotAttrCache::GetColor(): Index > 7!" );
-
- return pColTab[ nLotIndex ];
-}
-
-void LotAttrCol::SetAttr( const SCROW nRow, const ScPatternAttr& rAttr )
-{
- OSL_ENSURE( ValidRow(nRow), "*LotAttrCol::SetAttr(): ... und rums?!" );
-
- boost::ptr_vector<ENTRY>::reverse_iterator iterLast = aEntries.rbegin();
-
- if(iterLast != aEntries.rend())
- {
- if( ( iterLast->nLastRow == nRow - 1 ) && ( &rAttr == iterLast->pPattAttr ) )
- iterLast->nLastRow = nRow;
- else
- {
- ENTRY *pAkt = new ENTRY;
-
- pAkt->pPattAttr = &rAttr;
- pAkt->nFirstRow = pAkt->nLastRow = nRow;
-
- aEntries.push_back(pAkt);
- }
- }
- else
- { // erster Eintrag
- ENTRY *pAkt = new ENTRY;
- pAkt->pPattAttr = &rAttr;
- pAkt->nFirstRow = pAkt->nLastRow = nRow;
-
- aEntries.push_back(pAkt);
- }
-}
-
-
-void LotAttrCol::Apply( const SCCOL nColNum, const SCTAB nTabNum, const sal_Bool /*bClear*/ )
-{
- ScDocument* pDoc = pLotusRoot->pDoc;
-
- boost::ptr_vector<ENTRY>::iterator iter;
- for (iter = aEntries.begin(); iter != aEntries.end(); ++iter)
- {
- pDoc->ApplyPatternAreaTab(nColNum,iter->nFirstRow,nColNum,iter->nLastRow,
- nTabNum, *(iter->pPattAttr));
- }
-}
-
-
-void LotAttrCol::Clear ()
-{
- aEntries.clear();
-}
-
-void LotAttrTable::SetAttr( const SCCOL nColFirst, const SCCOL nColLast, const SCROW nRow,
- const LotAttrWK3& rAttr )
-{
- const ScPatternAttr &rPattAttr = aAttrCache.GetPattAttr( rAttr );
- SCCOL nColCnt;
-
- for( nColCnt = nColFirst ; nColCnt <= nColLast ; nColCnt++ )
- pCols[ nColCnt ].SetAttr( nRow, rPattAttr );
-}
-
-
-void LotAttrTable::Apply( const SCTAB nTabNum )
-{
- SCCOL nColCnt;
- for( nColCnt = 0 ; nColCnt <= MAXCOL ; nColCnt++ )
- pCols[ nColCnt ].Apply( nColCnt, nTabNum ); // macht auch gleich ein Clear() am Ende
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */