diff options
author | Joseph Powers <jpowers27@cox.net> | 2011-07-14 18:09:42 -0700 |
---|---|---|
committer | Joseph Powers <jpowers27@cox.net> | 2011-07-14 18:12:21 -0700 |
commit | 99a8c8dac8929dc83db36162e14932d3468b1330 (patch) | |
tree | 10dff1c6ba236c353ba898ba4f912fd0b0a0f3ee /svl | |
parent | e5e19089a22a71ea27164e7a9f74fa5a33cfa1f4 (diff) |
Replace List with std::vector< SvNumberFormatter* >
Diffstat (limited to 'svl')
-rw-r--r-- | svl/source/numbers/zforlist.cxx | 57 |
1 files changed, 35 insertions, 22 deletions
diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx index 933c1b2df4db..8ff4867274c0 100644 --- a/svl/source/numbers/zforlist.cxx +++ b/svl/source/numbers/zforlist.cxx @@ -100,26 +100,28 @@ static sal_uInt32 theIndexTable[NF_INDEX_TABLE_ENTRIES]; also handles one instance of the SysLocale options */ +typedef ::std::vector< SvNumberFormatter* > SvNumberFormatterList_impl; + class SvNumberFormatterRegistry_Impl : public utl::ConfigurationListener { - List aFormatters; - SvtSysLocaleOptions aSysLocaleOptions; - LanguageType eSysLanguage; + SvNumberFormatterList_impl aFormatters; + SvtSysLocaleOptions aSysLocaleOptions; + LanguageType eSysLanguage; public: SvNumberFormatterRegistry_Impl(); virtual ~SvNumberFormatterRegistry_Impl(); - void Insert( SvNumberFormatter* pThis ) - { aFormatters.Insert( pThis, LIST_APPEND ); } - SvNumberFormatter* Remove( SvNumberFormatter* pThis ) - { return (SvNumberFormatter*)aFormatters.Remove( pThis ); } - sal_uInt32 Count() - { return aFormatters.Count(); } + void Insert( SvNumberFormatter* pThis ) + { aFormatters.push_back( pThis ); } - virtual void ConfigurationChanged( utl::ConfigurationBroadcaster*, sal_uInt32 ); -}; + SvNumberFormatter* Remove( SvNumberFormatter* pThis ); + size_t Count() + { return aFormatters.size(); } + + virtual void ConfigurationChanged( utl::ConfigurationBroadcaster*, sal_uInt32 ); +}; SvNumberFormatterRegistry_Impl::SvNumberFormatterRegistry_Impl() { @@ -134,26 +136,37 @@ SvNumberFormatterRegistry_Impl::~SvNumberFormatterRegistry_Impl() } -void SvNumberFormatterRegistry_Impl::ConfigurationChanged( utl::ConfigurationBroadcaster*, sal_uInt32 nHint ) +SvNumberFormatter* SvNumberFormatterRegistry_Impl::Remove( SvNumberFormatter* pThis ) { + for( + SvNumberFormatterList_impl::iterator it = aFormatters.begin(); + it < aFormatters.end(); + ++it + ) { + if ( *it == pThis ) { + aFormatters.erase( it ); + break; + } + } + return pThis; +} + +void SvNumberFormatterRegistry_Impl::ConfigurationChanged( + utl::ConfigurationBroadcaster*, + sal_uInt32 nHint +) { if ( nHint & SYSLOCALEOPTIONS_HINT_LOCALE ) { ::osl::MutexGuard aGuard( SvNumberFormatter::GetMutex() ); - for ( SvNumberFormatter* p = (SvNumberFormatter*)aFormatters.First(); - p; p = (SvNumberFormatter*)aFormatters.Next() ) - { - p->ReplaceSystemCL( eSysLanguage ); - } + for( size_t i = 0, n = aFormatters.size(); i < n; ++i ) + aFormatters[ i ]->ReplaceSystemCL( eSysLanguage ); eSysLanguage = MsLangId::getRealLanguage( LANGUAGE_SYSTEM ); } if ( nHint & SYSLOCALEOPTIONS_HINT_CURRENCY ) { ::osl::MutexGuard aGuard( SvNumberFormatter::GetMutex() ); - for ( SvNumberFormatter* p = (SvNumberFormatter*)aFormatters.First(); - p; p = (SvNumberFormatter*)aFormatters.Next() ) - { - p->ResetDefaultSystemCurrency(); - } + for( size_t i = 0, n = aFormatters.size(); i < n; ++i ) + aFormatters[ i ]->ResetDefaultSystemCurrency(); } } |