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