xref: /AOO41X/main/sw/source/ui/utlui/initui.cxx (revision efeef26f81c84063fb0a91bde3856d4a51172d90)
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 <unotools/localedatawrapper.hxx>
29 #include <viewsh.hxx>
30 #include <initui.hxx>
31 #include <edtwin.hxx>
32 #include <shellres.hxx>
33 #include <fldbas.hxx>
34 #include <glosdoc.hxx>
35 #include <gloslst.hxx>
36 
37 #ifndef _UTLUI_HRC
38 #include <utlui.hrc>
39 #endif
40 #ifndef _INITUI_HRC
41 #include <initui.hrc>
42 #endif
43 #ifndef _COMCORE_HRC
44 #include <comcore.hrc>
45 #endif
46 #include <authfld.hxx>
47 #ifndef _DBMGR_HXX
48 #include <dbmgr.hxx>
49 #endif
50 #include <unotools/syslocale.hxx>
51 
52 #include <unomid.h>
53 
54 /*--------------------------------------------------------------------
55     Beschreibung:   globale Pointer
56  --------------------------------------------------------------------*/
57 
58 SwGlossaries*       pGlossaries = 0;
59 
60 // Liefert alle benoetigten Pfade. Wird durch UI initialisiert
61 SwGlossaryList*     pGlossaryList = 0;
62 
63 String* pOldGrfCat = 0;
64 String* pOldTabCat = 0;
65 String* pOldFrmCat = 0;
66 String* pOldDrwCat = 0;
67 String* pCurrGlosGroup = 0;
68 
GetOldGrfCat()69 String* GetOldGrfCat()
70 {
71     return pOldGrfCat;
72 }
GetOldTabCat()73 String* GetOldTabCat()
74 {
75     return pOldTabCat;
76 }
GetOldFrmCat()77 String* GetOldFrmCat()
78 {
79     return pOldFrmCat;
80 }
GetOldDrwCat()81 String* GetOldDrwCat()
82 {
83     return pOldDrwCat;
84 }
GetCurrGlosGroup()85 String* GetCurrGlosGroup()
86 {
87     return pCurrGlosGroup;
88 }
SetCurrGlosGroup(String * pStr)89 void SetCurrGlosGroup(String* pStr)
90 {
91     pCurrGlosGroup = pStr;
92 }
93 
94 SvStringsDtor* pDBNameList = 0;
95 
96 SvStringsDtor*  pAuthFieldNameList = 0;
97 SvStringsDtor*  pAuthFieldTypeList = 0;
98 
99 /*--------------------------------------------------------------------
100     Beschreibung:   UI beenden
101  --------------------------------------------------------------------*/
102 
_FinitUI()103 void _FinitUI()
104 {
105     SwNewDBMgr::RemoveDbtoolsClient();
106     delete ViewShell::GetShellRes();
107     ViewShell::SetShellRes( 0 );
108 
109     SwEditWin::_FinitStaticData();
110 
111     DELETEZ(pGlossaries);
112 
113     delete SwFieldType::pFldNames;
114 
115     delete pOldGrfCat;
116     delete pOldTabCat;
117     delete pOldFrmCat;
118     delete pOldDrwCat;
119     delete pCurrGlosGroup;
120     delete pDBNameList;
121     delete pGlossaryList;
122     delete pAuthFieldNameList;
123     delete pAuthFieldTypeList;
124 
125 
126 }
127 /*--------------------------------------------------------------------
128     Beschreibung:   Initialisierung
129  --------------------------------------------------------------------*/
130 
131 
_InitUI()132 void _InitUI()
133 {
134     // ShellResource gibt der CORE die Moeglichkeit mit Resourcen zu arbeiten
135     ViewShell::SetShellRes( new ShellResource );
136     pDBNameList = new SvStringsDtor( 5, 5 );
137     SwEditWin::_InitStaticData();
138 }
139 
140 
ShellResource()141 ShellResource::ShellResource()
142     : Resource( SW_RES(RID_SW_SHELLRES) ),
143     aPostItAuthor( SW_RES( STR_POSTIT_AUTHOR ) ),
144     aPostItPage( SW_RES( STR_POSTIT_PAGE ) ),
145     aPostItLine( SW_RES( STR_POSTIT_LINE ) ),
146 
147     aCalc_Syntax( SW_RES( STR_CALC_SYNTAX ) ),
148     aCalc_ZeroDiv( SW_RES( STR_CALC_ZERODIV ) ),
149     aCalc_Brack( SW_RES( STR_CALC_BRACK ) ),
150     aCalc_Pow( SW_RES( STR_CALC_POW ) ),
151     aCalc_VarNFnd( SW_RES( STR_CALC_VARNFND ) ),
152     aCalc_Overflow( SW_RES( STR_CALC_OVERFLOW ) ),
153     aCalc_WrongTime( SW_RES( STR_CALC_WRONGTIME ) ),
154     aCalc_Default( SW_RES( STR_CALC_DEFAULT ) ),
155     aCalc_Error( SW_RES( STR_CALC_ERROR ) ),
156 
157     aGetRefFld_Up( SW_RES( STR_GETREFFLD_UP ) ),
158     aGetRefFld_Down( SW_RES( STR_GETREFFLD_DOWN ) ),
159     // --> OD 2007-09-13 #i81002#
160     aGetRefFld_RefItemNotFound( SW_RES( STR_GETREFFLD_REFITEMNOTFOUND ) ),
161     // <--
162     aStrAllPageHeadFoot( SW_RES( STR_ALLPAGE_HEADFOOT ) ),
163     aStrNone( SW_RES( STR_TEMPLATE_NONE )),
164     aFixedStr( SW_RES( STR_FIELD_FIXED )),
165     sDurationFormat( SW_RES( STR_DURATION_FORMAT )),
166 
167     aTOXIndexName(          SW_RES(STR_TOI)),
168     aTOXUserName(           SW_RES(STR_TOU)),
169     aTOXContentName(        SW_RES(STR_TOC)),
170     aTOXIllustrationsName(  SW_RES(STR_TOX_ILL)),
171     aTOXObjectsName(        SW_RES(STR_TOX_OBJ)),
172     aTOXTablesName(         SW_RES(STR_TOX_TBL)),
173     aTOXAuthoritiesName(    SW_RES(STR_TOX_AUTH)),
174     aHyperlinkClick( SW_RES( STR_HYPERLINK_CLICK)),
175     pAutoFmtNameLst(0),
176     sPageDescFirstName(     SW_RES(STR_PAGEDESC_FIRSTNAME)),
177     sPageDescFollowName(    SW_RES(STR_PAGEDESC_FOLLOWNAME)),
178     sPageDescName(          SW_RES(STR_PAGEDESC_NAME))
179 {
180     const sal_uInt16 nCount = FLD_DOCINFO_END - FLD_DOCINFO_BEGIN;
181 
182     KeyCode aCode( KEY_SPACE );
183     KeyCode aModifiedCode( KEY_SPACE, KEY_MOD1 );
184     String aModStr( aModifiedCode.GetName() );
185     aModStr.SearchAndReplace( aCode.GetName(), String() );
186     aModStr.SearchAndReplaceAllAscii( "+", String() );
187     aHyperlinkClick.SearchAndReplaceAllAscii( "%s", aModStr );
188 
189     for(sal_uInt16 i = 0; i < nCount; ++i)
190     {
191         String* pNew = new SW_RESSTR(FLD_DOCINFO_BEGIN + i);
192         aDocInfoLst.Insert(pNew, aDocInfoLst.Count());
193     }
194 
195     FreeResource();
196 }
197 
~ShellResource()198 ShellResource::~ShellResource()
199 {
200     if( pAutoFmtNameLst )
201         delete pAutoFmtNameLst, pAutoFmtNameLst = 0;
202 }
203 
GetPageDescName(sal_uInt16 nNo,sal_Bool bIsFirst,sal_Bool bFollow)204 String ShellResource::GetPageDescName( sal_uInt16 nNo, sal_Bool bIsFirst, sal_Bool bFollow )
205 {
206     String sRet( bIsFirst ? sPageDescFirstName
207                           : bFollow ? sPageDescFollowName
208                                     : sPageDescName );
209     sRet.SearchAndReplaceAscii( "$(ARG1)", String::CreateFromInt32( nNo ));
210     return sRet;
211 }
212 
213 
GetGlossaries()214 SwGlossaries* GetGlossaries()
215 {
216     if (!pGlossaries)
217         pGlossaries = new SwGlossaries;
218     return (pGlossaries);
219 }
220 
HasGlossaryList()221 sal_Bool HasGlossaryList()
222 {
223     return pGlossaryList != 0;
224 }
225 
GetGlossaryList()226 SwGlossaryList* GetGlossaryList()
227 {
228     if(!pGlossaryList)
229         pGlossaryList = new SwGlossaryList();
230 
231     return pGlossaryList;
232 }
233 
234 struct ImpAutoFmtNameListLoader : public Resource
235 {
236     ImpAutoFmtNameListLoader( SvStringsDtor& rLst );
237 };
238 
_GetAutoFmtNameLst() const239 void ShellResource::_GetAutoFmtNameLst() const
240 {
241     SvStringsDtor** ppLst = (SvStringsDtor**)&pAutoFmtNameLst;
242     *ppLst = new SvStringsDtor( STR_AUTOFMTREDL_END );
243     ImpAutoFmtNameListLoader aTmp( **ppLst );
244 }
245 
ImpAutoFmtNameListLoader(SvStringsDtor & rLst)246 ImpAutoFmtNameListLoader::ImpAutoFmtNameListLoader( SvStringsDtor& rLst )
247     : Resource( ResId(RID_SHELLRES_AUTOFMTSTRS, *pSwResMgr) )
248 {
249     for( sal_uInt16 n = 0; n < STR_AUTOFMTREDL_END; ++n )
250     {
251         String* p = new String( ResId( n + 1, *pSwResMgr) );
252         if(STR_AUTOFMTREDL_TYPO == n)
253         {
254 #ifdef WNT
255             //fuer Windows Sonderbehandlung, da MS hier ein paar Zeichen im Dialogfont vergessen hat
256             p->SearchAndReplace(C2S("%1"), C2S(",,"));
257             p->SearchAndReplace(C2S("%2"), C2S("''"));
258 #else
259             const SvtSysLocale aSysLocale;
260             const LocaleDataWrapper& rLclD = aSysLocale.GetLocaleData();
261             //unter richtigen Betriebssystemen funktioniert es auch so
262             p->SearchAndReplace(C2S("%1"), rLclD.getDoubleQuotationMarkStart());
263             p->SearchAndReplace(C2S("%2"), rLclD.getDoubleQuotationMarkEnd());
264 #endif
265         }
266         rLst.Insert( p, n );
267     }
268     FreeResource();
269 }
270 /* -----------------16.09.99 12:28-------------------
271 
272  --------------------------------------------------*/
GetAuthFieldName(ToxAuthorityField eType)273 const String&   SwAuthorityFieldType::GetAuthFieldName(ToxAuthorityField eType)
274 {
275     if(!pAuthFieldNameList)
276     {
277         pAuthFieldNameList = new SvStringsDtor(AUTH_FIELD_END, 1);
278         for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
279         {
280             String*  pTmp = new String(SW_RES(STR_AUTH_FIELD_START + i));
281             pAuthFieldNameList->Insert(pTmp, pAuthFieldNameList->Count());
282         }
283     }
284     return *pAuthFieldNameList->GetObject( static_cast< sal_uInt16 >(eType) );
285 }
286 /* -----------------16.09.99 12:29-------------------
287 
288  --------------------------------------------------*/
GetAuthTypeName(ToxAuthorityType eType)289 const String&   SwAuthorityFieldType::GetAuthTypeName(ToxAuthorityType eType)
290 {
291     if(!pAuthFieldTypeList)
292     {
293         pAuthFieldTypeList = new SvStringsDtor(AUTH_TYPE_END, 1);
294         for(sal_uInt16 i = 0; i < AUTH_TYPE_END; i++)
295             pAuthFieldTypeList->Insert(
296                 new String(SW_RES(STR_AUTH_TYPE_START + i)),
297                                     pAuthFieldTypeList->Count());
298     }
299     return *pAuthFieldTypeList->GetObject( static_cast< sal_uInt16 >(eType) );
300 }
301 
302 
303 
304