1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: poolhelp.cxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 // MARKER(update_precomp.py): autogen include statement, do not remove
32 #include "precompiled_sc.hxx"
36 // INCLUDE ---------------------------------------------------------------
38 #include <svtools/zforlist.hxx>
39 #include <svx/editeng.hxx>
41 #include "poolhelp.hxx"
42 #include "document.hxx"
43 #include "docpool.hxx"
44 #include "stlpool.hxx"
46 // -----------------------------------------------------------------------
48 ScPoolHelper::ScPoolHelper( ScDocument
* pSourceDoc
)
52 ,m_pSourceDoc(pSourceDoc
)
54 DBG_ASSERT( pSourceDoc
, "ScPoolHelper: no document" );
55 pDocPool
= new ScDocumentPool
;
56 pDocPool
->FreezeIdRanges();
58 mxStylePool
= new ScStyleSheetPool( *pDocPool
, pSourceDoc
);
61 ScPoolHelper::~ScPoolHelper()
63 SfxItemPool::Free(pEnginePool
);
64 SfxItemPool::Free(pEditPool
);
67 SfxItemPool::Free(pDocPool
);
69 SfxItemPool
* ScPoolHelper::GetEditPool() const
73 pEditPool
= EditEngine::CreatePool();
74 pEditPool
->SetDefaultMetric( SFX_MAPUNIT_100TH_MM
);
75 pEditPool
->FreezeIdRanges();
76 pEditPool
->SetFileFormatVersion( SOFFICE_FILEFORMAT_50
); // used in ScGlobal::EETextObjEqual
80 SfxItemPool
* ScPoolHelper::GetEnginePool() const
84 pEnginePool
= EditEngine::CreatePool();
85 pEnginePool
->SetDefaultMetric( SFX_MAPUNIT_100TH_MM
);
86 pEnginePool
->FreezeIdRanges();
87 } // ifg ( pEnginePool )
90 SvNumberFormatter
* ScPoolHelper::GetFormTable() const
94 pFormTable
= new SvNumberFormatter( m_pSourceDoc
->GetServiceManager(), ScGlobal::eLnge
);
95 pFormTable
->SetColorLink( LINK( m_pSourceDoc
, ScDocument
, GetUserDefinedColor
) );
96 pFormTable
->SetEvalDateFormat( NF_EVALDATEFORMAT_INTL_FORMAT
);
99 aOpt
.GetDate( d
,m
,y
);
100 pFormTable
->ChangeNullDate( d
,m
,y
);
101 pFormTable
->ChangeStandardPrec( (USHORT
)aOpt
.GetStdPrecision() );
102 pFormTable
->SetYear2000( aOpt
.GetYear2000() );
106 void ScPoolHelper::SourceDocumentGone()
108 // reset all pointers to the source document
109 mxStylePool
->SetDocument( NULL
);
111 pFormTable
->SetColorLink( Link() );
114 // -----------------------------------------------------------------------