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