diff options
Diffstat (limited to 'dtrans/source/win32/dtobj/FetcList.cxx')
-rw-r--r-- | dtrans/source/win32/dtobj/FetcList.cxx | 180 |
1 files changed, 90 insertions, 90 deletions
diff --git a/dtrans/source/win32/dtobj/FetcList.cxx b/dtrans/source/win32/dtobj/FetcList.cxx index 2364a0a14341..00cd28c2a279 100644 --- a/dtrans/source/win32/dtobj/FetcList.cxx +++ b/dtrans/source/win32/dtobj/FetcList.cxx @@ -2,7 +2,7 @@ /************************************************************************* * * 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 @@ -58,14 +58,14 @@ using namespace rtl; using namespace std; //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ LCID CFormatRegistrar::m_TxtLocale = 0; sal_uInt32 CFormatRegistrar::m_TxtCodePage = GetACP( ); //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ CFormatEtcContainer::CFormatEtcContainer( ) @@ -74,29 +74,29 @@ CFormatEtcContainer::CFormatEtcContainer( ) } //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ void CFormatEtcContainer::addFormatEtc( const CFormatEtc& fetc ) { - m_FormatMap.push_back( CFormatEtc( fetc ) ); + m_FormatMap.push_back( CFormatEtc( fetc ) ); } //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ void SAL_CALL CFormatEtcContainer::removeFormatEtc( const CFormatEtc& fetc ) { - FormatEtcMap_t::iterator iter = + FormatEtcMap_t::iterator iter = find( m_FormatMap.begin(), m_FormatMap.end(), fetc ); - + if ( iter != m_FormatMap.end( ) ) m_FormatMap.erase( iter ); } //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ void SAL_CALL CFormatEtcContainer::removeAllFormatEtc( ) @@ -105,40 +105,40 @@ void SAL_CALL CFormatEtcContainer::removeAllFormatEtc( ) } //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ sal_Bool CFormatEtcContainer::hasFormatEtc( const CFormatEtc& fetc ) const -{ - FormatEtcMap_t::const_iterator iter = +{ + FormatEtcMap_t::const_iterator iter = find( m_FormatMap.begin(), m_FormatMap.end(), fetc ); - + return ( iter != m_FormatMap.end( ) ); } //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ - + sal_Bool CFormatEtcContainer::hasElements( ) const { return ( m_FormatMap.size( ) > 0 ); } - + //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ void CFormatEtcContainer::beginEnumFormatEtc( ) { m_EnumIterator = m_FormatMap.begin( ); } - + //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ -sal_uInt32 SAL_CALL CFormatEtcContainer::nextFormatEtc( LPFORMATETC lpFetc, +sal_uInt32 SAL_CALL CFormatEtcContainer::nextFormatEtc( LPFORMATETC lpFetc, sal_uInt32 aNum ) { OSL_ASSERT( lpFetc ); @@ -157,15 +157,15 @@ sal_uInt32 SAL_CALL CFormatEtcContainer::nextFormatEtc( LPFORMATETC lpFetc, //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ sal_Bool SAL_CALL CFormatEtcContainer::skipFormatEtc( sal_uInt32 aNum ) { FormatEtcMap_t::const_iterator iter_end = m_FormatMap.end( ); - for ( sal_uInt32 i = 0; - (i < aNum) && (m_EnumIterator != iter_end); - i++, ++m_EnumIterator ) + for ( sal_uInt32 i = 0; + (i < aNum) && (m_EnumIterator != iter_end); + i++, ++m_EnumIterator ) ;/* intentionally left empty */ return ( m_EnumIterator != m_FormatMap.end( ) ); @@ -176,15 +176,15 @@ sal_Bool SAL_CALL CFormatEtcContainer::skipFormatEtc( sal_uInt32 aNum ) //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ CFormatRegistrar::CFormatRegistrar( const Reference< XMultiServiceFactory >& ServiceManager, - const CDataFormatTranslator& aDataFormatTranslator ) : + const CDataFormatTranslator& aDataFormatTranslator ) : m_DataFormatTranslator( aDataFormatTranslator ), m_bHasSynthesizedLocale( sal_False ), m_SrvMgr( ServiceManager ) -{ +{ } // ---------------------------------------------------------------------------------------- @@ -192,26 +192,26 @@ CFormatRegistrar::CFormatRegistrar( const Reference< XMultiServiceFactory >& Ser // an appropriate FORMATETC structure, for some formats like unicodetext, // text and text/html we will offer an accompany format e.g.: // -// DataFlavor | Registered Clipformat | Registered accompany clipformat +// DataFlavor | Registered Clipformat | Registered accompany clipformat // -------------------------|---------------------------|----------------------------------- -// text/plain;charset=ansi | CF_TEXT | CF_UNICODETEXT -// | | CF_LOCALE (if charset != GetACP() -// | | -// text/plain;charset=oem | CF_OEMTEXT | CF_UNICODETEXT -// | | CF_LOCALE (if charset != GetOEMCP() -// | | -// text/plain;charset=utf-16| CF_UNICODETEXT | CF_TEXT -// | | -// text/html | HTML (Hypertext ...) | HTML Format -// | | +// text/plain;charset=ansi | CF_TEXT | CF_UNICODETEXT +// | | CF_LOCALE (if charset != GetACP() +// | | +// text/plain;charset=oem | CF_OEMTEXT | CF_UNICODETEXT +// | | CF_LOCALE (if charset != GetOEMCP() +// | | +// text/plain;charset=utf-16| CF_UNICODETEXT | CF_TEXT +// | | +// text/html | HTML (Hypertext ...) | HTML Format +// | | // -// if some tries to register different text formats with different charsets the last +// if some tries to register different text formats with different charsets the last // registered wins and the others are ignored // ---------------------------------------------------------------------------------------- -void SAL_CALL CFormatRegistrar::RegisterFormats( +void SAL_CALL CFormatRegistrar::RegisterFormats( const Reference< XTransferable >& aXTransferable, CFormatEtcContainer& aFormatEtcContainer ) -{ +{ Sequence< DataFlavor > aFlavorList = aXTransferable->getTransferDataFlavors( ); sal_Int32 nFlavors = aFlavorList.getLength( ); sal_Bool bUnicodeRegistered = sal_False; @@ -221,7 +221,7 @@ void SAL_CALL CFormatRegistrar::RegisterFormats( { aFlavor = aFlavorList[i]; CFormatEtc fetc = m_DataFormatTranslator.getFormatEtcFromDataFlavor( aFlavor ); - + // maybe an internal format so we ignore it if ( CF_INVALID == fetc.getClipformat( ) ) continue; @@ -239,52 +239,52 @@ void SAL_CALL CFormatRegistrar::RegisterFormats( // we register CF_TEXT for non unicode clients if ( m_DataFormatTranslator.isUnicodeTextFormat( fetc.getClipformat() ) ) { - aFormatEtcContainer.addFormatEtc( fetc ); // add CF_UNICODE - aFormatEtcContainer.addFormatEtc( + aFormatEtcContainer.addFormatEtc( fetc ); // add CF_UNICODE + aFormatEtcContainer.addFormatEtc( m_DataFormatTranslator.getFormatEtcForClipformat( CF_TEXT ) ); // add CF_TEXT bUnicodeRegistered = sal_True; } - else if ( !hasUnicodeFlavor( aXTransferable ) ) + else if ( !hasUnicodeFlavor( aXTransferable ) ) { // we try to investigate the charset and make a valid // windows codepage from this charset the default // return value is the result of GetACP( ) OUString charset = getCharsetFromDataFlavor( aFlavor ); - sal_uInt32 txtCP = getWinCPFromMimeCharset( charset ); - + sal_uInt32 txtCP = getWinCPFromMimeCharset( charset ); + // we try to get a Locale appropriate for this codepage if ( findLocaleForTextCodePage( ) ) { m_TxtCodePage = txtCP; - aFormatEtcContainer.addFormatEtc( + aFormatEtcContainer.addFormatEtc( m_DataFormatTranslator.getFormatEtcForClipformat( CF_UNICODETEXT ) ); - + if ( !IsOEMCP( m_TxtCodePage ) ) - aFormatEtcContainer.addFormatEtc( + aFormatEtcContainer.addFormatEtc( m_DataFormatTranslator.getFormatEtcForClipformat( CF_TEXT ) ); else - aFormatEtcContainer.addFormatEtc( + aFormatEtcContainer.addFormatEtc( m_DataFormatTranslator.getFormatEtcForClipformat( CF_OEMTEXT ) ); - aFormatEtcContainer.addFormatEtc( + aFormatEtcContainer.addFormatEtc( m_DataFormatTranslator.getFormatEtcForClipformat( CF_LOCALE ) ); - - // we save the flavor so it's easier when + + // we save the flavor so it's easier when // queried for it in XTDataObject::GetData(...) m_RegisteredTextFlavor = aFlavor; m_bHasSynthesizedLocale = sal_True; - } + } } } else if ( m_DataFormatTranslator.isTextHtmlFormat( fetc.getClipformat( ) ) ) // Html (Hyper Text...) { // we add text/html ( HTML (HyperText Markup Language) ) aFormatEtcContainer.addFormatEtc( fetc ); - + // and HTML Format OUString htmlFormat( OUString::createFromAscii( "HTML Format" ) ); - aFormatEtcContainer.addFormatEtc( + aFormatEtcContainer.addFormatEtc( m_DataFormatTranslator.getFormatEtcForClipformatName( htmlFormat ) ); } } @@ -292,7 +292,7 @@ void SAL_CALL CFormatRegistrar::RegisterFormats( } //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ sal_Bool SAL_CALL CFormatRegistrar::hasSynthesizedLocale( ) const @@ -301,7 +301,7 @@ sal_Bool SAL_CALL CFormatRegistrar::hasSynthesizedLocale( ) const } //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ LCID SAL_CALL CFormatRegistrar::getSynthesizedLocale( ) const @@ -310,7 +310,7 @@ LCID SAL_CALL CFormatRegistrar::getSynthesizedLocale( ) const } //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ sal_uInt32 SAL_CALL CFormatRegistrar::getRegisteredTextCodePage( ) const @@ -319,7 +319,7 @@ sal_uInt32 SAL_CALL CFormatRegistrar::getRegisteredTextCodePage( ) const } //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ DataFlavor SAL_CALL CFormatRegistrar::getRegisteredTextFlavor( ) const @@ -328,7 +328,7 @@ DataFlavor SAL_CALL CFormatRegistrar::getRegisteredTextFlavor( ) const } //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ sal_Bool SAL_CALL CFormatRegistrar::isSynthesizeableFormat( const CFormatEtc& aFormatEtc ) const @@ -339,7 +339,7 @@ sal_Bool SAL_CALL CFormatRegistrar::isSynthesizeableFormat( const CFormatEtc& aF } //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ inline @@ -351,7 +351,7 @@ sal_Bool SAL_CALL CFormatRegistrar::needsToSynthesizeAccompanyFormats( const CFo } //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ OUString SAL_CALL CFormatRegistrar::getCharsetFromDataFlavor( const DataFlavor& aFlavor ) @@ -360,22 +360,22 @@ OUString SAL_CALL CFormatRegistrar::getCharsetFromDataFlavor( const DataFlavor& try { - Reference< XMimeContentTypeFactory > xMimeFac( + Reference< XMimeContentTypeFactory > xMimeFac( m_SrvMgr->createInstance( OUString::createFromAscii( \ "com.sun.star.datatransfer.MimeContentTypeFactory" ) ), UNO_QUERY ); - + if( xMimeFac.is( ) ) { Reference< XMimeContentType > xMimeType( xMimeFac->createMimeContentType( aFlavor.MimeType ) ); if ( xMimeType->hasParameter( TEXTPLAIN_PARAM_CHARSET ) ) charset = xMimeType->getParameterValue( TEXTPLAIN_PARAM_CHARSET ); - else + else charset = getMimeCharsetFromWinCP( GetACP( ), PRE_WINDOWS_CODEPAGE ); } } catch(NoSuchElementException&) { - OSL_ENSURE( sal_False, "Unexpected" ); + OSL_ENSURE( sal_False, "Unexpected" ); } catch(...) { @@ -386,21 +386,21 @@ OUString SAL_CALL CFormatRegistrar::getCharsetFromDataFlavor( const DataFlavor& } //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ sal_Bool SAL_CALL CFormatRegistrar::hasUnicodeFlavor( const Reference< XTransferable >& aXTransferable ) const { CFormatEtc fetc( CF_UNICODETEXT ); - DataFlavor aFlavor = + DataFlavor aFlavor = m_DataFormatTranslator.getDataFlavorFromFormatEtc( fetc ); - + return aXTransferable->isDataFlavorSupported( aFlavor ); -} +} //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ inline @@ -410,7 +410,7 @@ sal_Bool CFormatRegistrar::isEqualCurrentSystemCodePage( sal_uInt32 aCodePage ) } //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ sal_Bool SAL_CALL CFormatRegistrar::findLocaleForTextCodePage( ) @@ -421,59 +421,59 @@ sal_Bool SAL_CALL CFormatRegistrar::findLocaleForTextCodePage( ) } //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ sal_Bool SAL_CALL CFormatRegistrar::isLocaleCodePage( LCID lcid, LCTYPE lctype, sal_uInt32 codepage ) -{ - char buff[6]; +{ + char buff[6]; sal_uInt32 localeCodePage; - + OSL_ASSERT( IsValidLocale( lcid, LCID_INSTALLED ) ); // get the ansi codepage of the current locale - GetLocaleInfoA( lcid, lctype, buff, sizeof( buff ) ); + GetLocaleInfoA( lcid, lctype, buff, sizeof( buff ) ); localeCodePage = atol( buff ); return ( localeCodePage == codepage ); } //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ inline -sal_Bool SAL_CALL CFormatRegistrar::isLocaleOemCodePage( LCID lcid, sal_uInt32 codepage ) +sal_Bool SAL_CALL CFormatRegistrar::isLocaleOemCodePage( LCID lcid, sal_uInt32 codepage ) { return isLocaleCodePage( lcid, LOCALE_IDEFAULTCODEPAGE, codepage ); } //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ inline sal_Bool SAL_CALL CFormatRegistrar::isLocaleAnsiCodePage( LCID lcid, sal_uInt32 codepage ) { - return isLocaleCodePage( lcid, LOCALE_IDEFAULTANSICODEPAGE, codepage ); -} + return isLocaleCodePage( lcid, LOCALE_IDEFAULTANSICODEPAGE, codepage ); +} //------------------------------------------------------------------------ -// +// //------------------------------------------------------------------------ BOOL CALLBACK CFormatRegistrar::EnumLocalesProc( LPSTR lpLocaleStr ) { // the lpLocaleStr parametere is hexadecimal LCID lcid = strtol( lpLocaleStr, NULL, 16 ); - - if ( isLocaleAnsiCodePage( lcid, CFormatRegistrar::m_TxtCodePage ) || + + if ( isLocaleAnsiCodePage( lcid, CFormatRegistrar::m_TxtCodePage ) || isLocaleOemCodePage( lcid, CFormatRegistrar::m_TxtCodePage ) ) - { - CFormatRegistrar::m_TxtLocale = lcid; + { + CFormatRegistrar::m_TxtLocale = lcid; return sal_False; // stop enumerating } - + return sal_True; } |