xref: /trunk/main/sw/source/core/txtnode/swfntcch.cxx (revision efeef26f)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_sw.hxx"
26 
27 
28 #include <viewsh.hxx>
29 #include "swfntcch.hxx"
30 #include "fmtcol.hxx"
31 #include "swfont.hxx"
32 
33 // aus atrstck.cxx
34 extern const sal_uInt8 StackPos[];
35 
36 // globale Variablen, werden in SwFntCch.Hxx bekanntgegeben
37 // Der FontCache wird in TxtInit.Cxx _TXTINIT erzeugt und in _TXTEXIT geloescht
38 SwFontCache *pSwFontCache = NULL;
39 
40 /*************************************************************************
41 |*
42 |*	SwFontObj::SwFontObj(), ~SwFontObj()
43 |*
44 |*	Ersterstellung		AMA 25. Jun. 95
45 |*	Letzte Aenderung	AMA 25. Jun. 95
46 |*
47 |*************************************************************************/
48 
SwFontObj(const void * pOwn,ViewShell * pSh)49 SwFontObj::SwFontObj( const void *pOwn, ViewShell *pSh ) :
50     SwCacheObj( (void*)pOwn ),
51     aSwFont( &((SwTxtFmtColl *)pOwn)->GetAttrSet(), pSh ? pSh->getIDocumentSettingAccess() : 0 )
52 {
53 	aSwFont.GoMagic( pSh, aSwFont.GetActual() );
54     const SwAttrSet& rAttrSet = ((SwTxtFmtColl *)pOwn)->GetAttrSet();
55     for (sal_uInt16 i = RES_CHRATR_BEGIN; i < RES_CHRATR_END; i++)
56         pDefaultArray[ StackPos[ i ] ] = &rAttrSet.Get( i, sal_True );
57 }
58 
~SwFontObj()59 SwFontObj::~SwFontObj()
60 {
61 }
62 
63 /*************************************************************************
64 |*
65 |*	SwFontAccess::SwFontAccess()
66 |*
67 |*	Ersterstellung		AMA 25. Jun. 95
68 |*	Letzte Aenderung	AMA 25. Jun. 95
69 |*
70 |*************************************************************************/
71 
SwFontAccess(const void * pOwn,ViewShell * pSh)72 SwFontAccess::SwFontAccess( const void *pOwn, ViewShell *pSh ) :
73     SwCacheAccess( *pSwFontCache, pOwn,
74             ((SwTxtFmtColl*)pOwn)->IsInSwFntCache() ),
75 	pShell( pSh )
76 {
77 }
78 
Get()79 SwFontObj *SwFontAccess::Get( )
80 {
81 	return (SwFontObj *) SwCacheAccess::Get( );
82 }
83 
NewObj()84 SwCacheObj *SwFontAccess::NewObj( )
85 {
86 	((SwTxtFmtColl*)pOwner)->SetInSwFntCache( sal_True );
87 	return new SwFontObj( pOwner, pShell );
88 }
89 
90 
91