summaryrefslogtreecommitdiff
path: root/sw/source/ui/utlui/initui.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/ui/utlui/initui.cxx')
-rw-r--r--sw/source/ui/utlui/initui.cxx310
1 files changed, 310 insertions, 0 deletions
diff --git a/sw/source/ui/utlui/initui.cxx b/sw/source/ui/utlui/initui.cxx
new file mode 100644
index 000000000000..8e8a833c66d0
--- /dev/null
+++ b/sw/source/ui/utlui/initui.cxx
@@ -0,0 +1,310 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_sw.hxx"
+
+
+#include <unotools/localedatawrapper.hxx>
+#include <viewsh.hxx>
+#include <initui.hxx>
+#include <edtwin.hxx>
+#include <shellres.hxx>
+#include <fldbas.hxx>
+#include <glosdoc.hxx>
+#include <gloslst.hxx>
+
+#include <utlui.hrc>
+#include <initui.hrc>
+#include <comcore.hrc>
+#include <authfld.hxx>
+#include <dbmgr.hxx>
+#include <unotools/syslocale.hxx>
+
+#include <unomid.h>
+
+/*--------------------------------------------------------------------
+ Beschreibung: globale Pointer
+ --------------------------------------------------------------------*/
+
+SwGlossaries* pGlossaries = 0;
+
+// Liefert alle benoetigten Pfade. Wird durch UI initialisiert
+SwGlossaryList* pGlossaryList = 0;
+
+String* pOldGrfCat = 0;
+String* pOldTabCat = 0;
+String* pOldFrmCat = 0;
+String* pOldDrwCat = 0;
+String* pCurrGlosGroup = 0;
+
+String* GetOldGrfCat()
+{
+ return pOldGrfCat;
+}
+String* GetOldTabCat()
+{
+ return pOldTabCat;
+}
+String* GetOldFrmCat()
+{
+ return pOldFrmCat;
+}
+String* GetOldDrwCat()
+{
+ return pOldDrwCat;
+}
+String* GetCurrGlosGroup()
+{
+ return pCurrGlosGroup;
+}
+void SetCurrGlosGroup(String* pStr)
+{
+ pCurrGlosGroup = pStr;
+}
+
+SvStringsDtor* pDBNameList = 0;
+
+SvStringsDtor* pAuthFieldNameList = 0;
+SvStringsDtor* pAuthFieldTypeList = 0;
+
+/*--------------------------------------------------------------------
+ Beschreibung: UI beenden
+ --------------------------------------------------------------------*/
+
+void _FinitUI()
+{
+ SwNewDBMgr::RemoveDbtoolsClient();
+ delete ViewShell::GetShellRes();
+ ViewShell::SetShellRes( 0 );
+
+ SwEditWin::_FinitStaticData();
+
+ DELETEZ(pGlossaries);
+
+ delete SwFieldType::pFldNames;
+
+ delete pOldGrfCat;
+ delete pOldTabCat;
+ delete pOldFrmCat;
+ delete pOldDrwCat;
+ delete pCurrGlosGroup;
+ delete pDBNameList;
+ delete pGlossaryList;
+ delete pAuthFieldNameList;
+ delete pAuthFieldTypeList;
+
+
+}
+/*--------------------------------------------------------------------
+ Beschreibung: Initialisierung
+ --------------------------------------------------------------------*/
+
+
+void _InitUI()
+{
+ // ShellResource gibt der CORE die Moeglichkeit mit Resourcen zu arbeiten
+ ViewShell::SetShellRes( new ShellResource );
+ pDBNameList = new SvStringsDtor( 5, 5 );
+ SwEditWin::_InitStaticData();
+}
+
+
+ShellResource::ShellResource()
+ : Resource( SW_RES(RID_SW_SHELLRES) ),
+ aPostItAuthor( SW_RES( STR_POSTIT_AUTHOR ) ),
+ aPostItPage( SW_RES( STR_POSTIT_PAGE ) ),
+ aPostItLine( SW_RES( STR_POSTIT_LINE ) ),
+
+ aCalc_Syntax( SW_RES( STR_CALC_SYNTAX ) ),
+ aCalc_ZeroDiv( SW_RES( STR_CALC_ZERODIV ) ),
+ aCalc_Brack( SW_RES( STR_CALC_BRACK ) ),
+ aCalc_Pow( SW_RES( STR_CALC_POW ) ),
+ aCalc_VarNFnd( SW_RES( STR_CALC_VARNFND ) ),
+ aCalc_Overflow( SW_RES( STR_CALC_OVERFLOW ) ),
+ aCalc_WrongTime( SW_RES( STR_CALC_WRONGTIME ) ),
+ aCalc_Default( SW_RES( STR_CALC_DEFAULT ) ),
+ aCalc_Error( SW_RES( STR_CALC_ERROR ) ),
+
+ aGetRefFld_Up( SW_RES( STR_GETREFFLD_UP ) ),
+ aGetRefFld_Down( SW_RES( STR_GETREFFLD_DOWN ) ),
+ // --> OD 2007-09-13 #i81002#
+ aGetRefFld_RefItemNotFound( SW_RES( STR_GETREFFLD_REFITEMNOTFOUND ) ),
+ // <--
+ aStrAllPageHeadFoot( SW_RES( STR_ALLPAGE_HEADFOOT ) ),
+ aStrNone( SW_RES( STR_TEMPLATE_NONE )),
+ aFixedStr( SW_RES( STR_FIELD_FIXED )),
+ sDurationFormat( SW_RES( STR_DURATION_FORMAT )),
+
+ aTOXIndexName( SW_RES(STR_TOI)),
+ aTOXUserName( SW_RES(STR_TOU)),
+ aTOXContentName( SW_RES(STR_TOC)),
+ aTOXIllustrationsName( SW_RES(STR_TOX_ILL)),
+ aTOXObjectsName( SW_RES(STR_TOX_OBJ)),
+ aTOXTablesName( SW_RES(STR_TOX_TBL)),
+ aTOXAuthoritiesName( SW_RES(STR_TOX_AUTH)),
+ aHyperlinkClick( SW_RES( STR_HYPERLINK_CLICK)),
+ pAutoFmtNameLst(0),
+ sPageDescFirstName( SW_RES(STR_PAGEDESC_FIRSTNAME)),
+ sPageDescFollowName( SW_RES(STR_PAGEDESC_FOLLOWNAME)),
+ sPageDescName( SW_RES(STR_PAGEDESC_NAME))
+{
+ const sal_uInt16 nCount = FLD_DOCINFO_END - FLD_DOCINFO_BEGIN;
+
+ KeyCode aCode( KEY_SPACE );
+ KeyCode aModifiedCode( KEY_SPACE, KEY_MOD1 );
+ String aModStr( aModifiedCode.GetName() );
+ aModStr.SearchAndReplace( aCode.GetName(), String() );
+ aModStr.SearchAndReplaceAllAscii( "+", String() );
+ aHyperlinkClick.SearchAndReplaceAllAscii( "%s", aModStr );
+
+ for(sal_uInt16 i = 0; i < nCount; ++i)
+ {
+ String* pNew = new SW_RESSTR(FLD_DOCINFO_BEGIN + i);
+ aDocInfoLst.Insert(pNew, aDocInfoLst.Count());
+ }
+
+ FreeResource();
+}
+
+ShellResource::~ShellResource()
+{
+ if( pAutoFmtNameLst )
+ delete pAutoFmtNameLst, pAutoFmtNameLst = 0;
+}
+
+String ShellResource::GetPageDescName( sal_uInt16 nNo, PageNameMode eMode )
+{
+ String sRet;
+
+ switch (eMode)
+ {
+ case NORMAL_PAGE:
+ sRet = sPageDescName;
+ break;
+ break;
+ case FIRST_PAGE:
+ sRet = sPageDescFirstName;
+ break;
+ case FOLLOW_PAGE:
+ sRet = sPageDescFollowName;
+ break;
+ }
+
+ sRet.SearchAndReplaceAscii( "$(ARG1)", String::CreateFromInt32( nNo ));
+ return sRet;
+}
+
+
+SwGlossaries* GetGlossaries()
+{
+ if (!pGlossaries)
+ pGlossaries = new SwGlossaries;
+ return (pGlossaries);
+}
+
+sal_Bool HasGlossaryList()
+{
+ return pGlossaryList != 0;
+}
+
+SwGlossaryList* GetGlossaryList()
+{
+ if(!pGlossaryList)
+ pGlossaryList = new SwGlossaryList();
+
+ return pGlossaryList;
+}
+
+struct ImpAutoFmtNameListLoader : public Resource
+{
+ ImpAutoFmtNameListLoader( SvStringsDtor& rLst );
+};
+
+void ShellResource::_GetAutoFmtNameLst() const
+{
+ SvStringsDtor** ppLst = (SvStringsDtor**)&pAutoFmtNameLst;
+ *ppLst = new SvStringsDtor( STR_AUTOFMTREDL_END );
+ ImpAutoFmtNameListLoader aTmp( **ppLst );
+}
+
+ImpAutoFmtNameListLoader::ImpAutoFmtNameListLoader( SvStringsDtor& rLst )
+ : Resource( ResId(RID_SHELLRES_AUTOFMTSTRS, *pSwResMgr) )
+{
+ for( sal_uInt16 n = 0; n < STR_AUTOFMTREDL_END; ++n )
+ {
+ String* p = new String( ResId( n + 1, *pSwResMgr) );
+ if(STR_AUTOFMTREDL_TYPO == n)
+ {
+#ifdef WNT
+ //fuer Windows Sonderbehandlung, da MS hier ein paar Zeichen im Dialogfont vergessen hat
+ p->SearchAndReplace(C2S("%1"), C2S(",,"));
+ p->SearchAndReplace(C2S("%2"), C2S("''"));
+#else
+ const SvtSysLocale aSysLocale;
+ const LocaleDataWrapper& rLclD = aSysLocale.GetLocaleData();
+ //unter richtigen Betriebssystemen funktioniert es auch so
+ p->SearchAndReplace(C2S("%1"), rLclD.getDoubleQuotationMarkStart());
+ p->SearchAndReplace(C2S("%2"), rLclD.getDoubleQuotationMarkEnd());
+#endif
+ }
+ rLst.Insert( p, n );
+ }
+ FreeResource();
+}
+
+const String& SwAuthorityFieldType::GetAuthFieldName(ToxAuthorityField eType)
+{
+ if(!pAuthFieldNameList)
+ {
+ pAuthFieldNameList = new SvStringsDtor(AUTH_FIELD_END, 1);
+ for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
+ {
+ String* pTmp = new String(SW_RES(STR_AUTH_FIELD_START + i));
+ pAuthFieldNameList->Insert(pTmp, pAuthFieldNameList->Count());
+ }
+ }
+ return *pAuthFieldNameList->GetObject( static_cast< sal_uInt16 >(eType) );
+}
+
+const String& SwAuthorityFieldType::GetAuthTypeName(ToxAuthorityType eType)
+{
+ if(!pAuthFieldTypeList)
+ {
+ pAuthFieldTypeList = new SvStringsDtor(AUTH_TYPE_END, 1);
+ for(sal_uInt16 i = 0; i < AUTH_TYPE_END; i++)
+ pAuthFieldTypeList->Insert(
+ new String(SW_RES(STR_AUTH_TYPE_START + i)),
+ pAuthFieldTypeList->Count());
+ }
+ return *pAuthFieldTypeList->GetObject( static_cast< sal_uInt16 >(eType) );
+}
+
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */