summaryrefslogtreecommitdiff
path: root/svtools/source/syslocale/syslocale.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svtools/source/syslocale/syslocale.cxx')
-rw-r--r--svtools/source/syslocale/syslocale.cxx176
1 files changed, 0 insertions, 176 deletions
diff --git a/svtools/source/syslocale/syslocale.cxx b/svtools/source/syslocale/syslocale.cxx
deleted file mode 100644
index 9811d97fd964..000000000000
--- a/svtools/source/syslocale/syslocale.cxx
+++ /dev/null
@@ -1,176 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: syslocale.cxx,v $
- * $Revision: 1.11 $
- *
- * 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_svtools.hxx"
-#ifndef GCC
-#endif
-
-#include <svtools/syslocale.hxx>
-#include <broadcast.hxx>
-#include <listener.hxx>
-#include <svtools/smplhint.hxx>
-#include <vcl/svapp.hxx>
-#include <tools/string.hxx>
-#include <svtools/syslocaleoptions.hxx>
-#include <unotools/localedatawrapper.hxx>
-#include <comphelper/processfactory.hxx>
-
-
-using namespace osl;
-using namespace com::sun::star;
-
-
-SvtSysLocale_Impl* SvtSysLocale::pImpl = NULL;
-sal_Int32 SvtSysLocale::nRefCount = 0;
-
-
-class SvtSysLocale_Impl : public SvtListener
-{
- friend class SvtSysLocale;
-
- SvtSysLocaleOptions aSysLocaleOptions;
- LocaleDataWrapper* pLocaleData;
- CharClass* pCharClass;
-
-public:
- SvtSysLocale_Impl();
- virtual ~SvtSysLocale_Impl();
-
- virtual void Notify( SvtBroadcaster& rBC, const SfxHint& rHint );
-
- CharClass* GetCharClass();
-
-};
-
-
-// -----------------------------------------------------------------------
-
-SvtSysLocale_Impl::SvtSysLocale_Impl() : pCharClass(NULL)
-{
- const lang::Locale& rLocale = Application::GetSettings().GetLocale();
- pLocaleData = new LocaleDataWrapper(
- ::comphelper::getProcessServiceFactory(), rLocale );
- aSysLocaleOptions.AddListener( *this );
-}
-
-
-SvtSysLocale_Impl::~SvtSysLocale_Impl()
-{
- aSysLocaleOptions.RemoveListener( *this );
- delete pCharClass;
- delete pLocaleData;
-}
-
-CharClass* SvtSysLocale_Impl::GetCharClass()
-{
- if ( !pCharClass )
- {
- const lang::Locale& rLocale = Application::GetSettings().GetLocale();
- pCharClass = new CharClass(::comphelper::getProcessServiceFactory(), rLocale );
- }
- return pCharClass;
-}
-void SvtSysLocale_Impl::Notify( SvtBroadcaster&, const SfxHint& rHint )
-{
- const SfxSimpleHint* p = PTR_CAST( SfxSimpleHint, &rHint );
- if( p && (p->GetId() & SYSLOCALEOPTIONS_HINT_LOCALE) )
- {
- MutexGuard aGuard( SvtSysLocale::GetMutex() );
- const lang::Locale& rLocale = Application::GetSettings().GetLocale();
- pLocaleData->setLocale( rLocale );
- GetCharClass()->setLocale( rLocale );
- }
-}
-
-
-// ====================================================================
-
-SvtSysLocale::SvtSysLocale()
-{
- MutexGuard aGuard( GetMutex() );
- if ( !pImpl )
- pImpl = new SvtSysLocale_Impl;
- ++nRefCount;
-}
-
-
-SvtSysLocale::~SvtSysLocale()
-{
- MutexGuard aGuard( GetMutex() );
- if ( !--nRefCount )
- {
- delete pImpl;
- pImpl = NULL;
- }
-}
-
-
-// static
-Mutex& SvtSysLocale::GetMutex()
-{
- static Mutex* pMutex = NULL;
- if( !pMutex )
- {
- MutexGuard aGuard( Mutex::getGlobalMutex() );
- if( !pMutex )
- {
- // #i77768# Due to a static reference in the toolkit lib
- // we need a mutex that lives longer than the svtools library.
- // Otherwise the dtor would use a destructed mutex!!
- pMutex = new Mutex;
- }
- }
- return *pMutex;
-}
-
-
-const LocaleDataWrapper& SvtSysLocale::GetLocaleData() const
-{
- return *(pImpl->pLocaleData);
-}
-
-
-const LocaleDataWrapper* SvtSysLocale::GetLocaleDataPtr() const
-{
- return pImpl->pLocaleData;
-}
-
-
-const CharClass& SvtSysLocale::GetCharClass() const
-{
- return *(pImpl->GetCharClass());
-}
-
-
-const CharClass* SvtSysLocale::GetCharClassPtr() const
-{
- return pImpl->GetCharClass();
-}