summaryrefslogtreecommitdiff
path: root/dtrans/source/aqua/DataFlavorMapping.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'dtrans/source/aqua/DataFlavorMapping.cxx')
-rw-r--r--dtrans/source/aqua/DataFlavorMapping.cxx710
1 files changed, 0 insertions, 710 deletions
diff --git a/dtrans/source/aqua/DataFlavorMapping.cxx b/dtrans/source/aqua/DataFlavorMapping.cxx
deleted file mode 100644
index ce042e15b4d8..000000000000
--- a/dtrans/source/aqua/DataFlavorMapping.cxx
+++ /dev/null
@@ -1,710 +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: DataFlavorMapping.cxx,v $
- * $Revision: 1.6 $
- *
- * 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.
- *
- ************************************************************************/
-
-#include <DataFlavorMapping.hxx>
-#include "HtmlFmtFlt.hxx"
-#include "PictToBmpFlt.hxx"
-#include <com/sun/star/datatransfer/UnsupportedFlavorException.hpp>
-#include <com/sun/star/datatransfer/XMimeContentType.hpp>
-#include "com/sun/star/uno/Sequence.hxx"
-
-#include <rtl/ustring.hxx>
-#include <rtl/memory.h>
-#include <osl/endian.h>
-
-#include <vector>
-#include <stdio.h>
-
-#include <premac.h>
-#include <QuickTime/QuickTime.h>
-#include <postmac.h>
-
-using namespace ::com::sun::star::datatransfer;
-using namespace rtl;
-using namespace ::com::sun::star::uno;
-using namespace com::sun::star::lang;
-using namespace cppu;
-using namespace std;
-
-namespace // private
-{
- const Type CPPUTYPE_SEQINT8 = getCppuType((Sequence<sal_Int8>*)0);
- const Type CPPUTYPE_OUSTRING = getCppuType( (OUString*)0 );
-
- /* Determine whether or not a DataFlavor is valid.
- */
- bool isValidFlavor(const DataFlavor& aFlavor)
- {
- size_t len = aFlavor.MimeType.getLength();
- Type dtype = aFlavor.DataType;
- return ((len > 0) && ((dtype == CPPUTYPE_SEQINT8) || (dtype == CPPUTYPE_OUSTRING)));
- }
-
- typedef vector<sal_Unicode> UnicodeBuffer;
-
- OUString NSStringToOUString(NSString* cfString)
- {
- BOOST_ASSERT(cfString && "Invalid parameter");
-
- const char* utf8Str = [cfString UTF8String];
- unsigned int len = rtl_str_getLength(utf8Str);
-
- return OUString(utf8Str, len, RTL_TEXTENCODING_UTF8);
- }
-
- NSString* OUStringToNSString(const OUString& ustring)
- {
- OString utf8Str = OUStringToOString(ustring, RTL_TEXTENCODING_UTF8);
- return [NSString stringWithCString: utf8Str.getStr() encoding: NSUTF8StringEncoding];
- }
-
-
- const NSString* PBTYPE_UT16 = @"CorePasteboardFlavorType 0x75743136";
- const NSString* PBTYPE_PICT = @"CorePasteboardFlavorType 0x50494354";
- const NSString* PBTYPE_HTML = @"CorePasteboardFlavorType 0x48544D4C";
- const NSString* PBTYPE_SODX = @"application/x-openoffice-objectdescriptor-xml;windows_formatname=\"Star Object Descriptor (XML)\"";
- const NSString* PBTYPE_SESX = @"application/x-openoffice-embed-source-xml;windows_formatname=\"Star Embed Source (XML)\"";
- const NSString* PBTYPE_SLSDX = @"application/x-openoffice-linksrcdescriptor-xml;windows_formatname=\"Star Link Source Descriptor (XML)\"";
- const NSString* PBTYPE_ESX = @"application/x-openoffice-embed-source-xml;windows_formatname=\"Star Embed Source (XML)\"";
- const NSString* PBTYPE_LSX = @"application/x-openoffice-link-source-xml;windows_formatname=\"Star Link Source (XML)\"";
- const NSString* PBTYPE_EOX = @"application/x-openoffice-embedded-obj-xml;windows_formatname=\"Star Embedded Object (XML)\"";
- const NSString* PBTYPE_SVXB = @"application/x-openoffice-svbx;windows_formatname=\"SVXB (StarView Bitmap/Animation)\"";
- const NSString* PBTYPE_GDIMF = @"application/x-openoffice-gdimetafile;windows_formatname=\"GDIMetaFile\"";
- const NSString* PBTYPE_WMF = @"application/x-openoffice-wmf;windows_formatname=\"Image WMF\"";
- const NSString* PBTYPE_EMF = @"application/x-openoffice-emf;windows_formatname=\"Image EMF\"";
-
- const NSString* PBTYPE_DUMMY_INTERNAL = @"application/x-openoffice-internal";
-
- const char* FLAVOR_SODX = "application/x-openoffice-objectdescriptor-xml;windows_formatname=\"Star Object Descriptor (XML)\"";
- const char* FLAVOR_SESX = "application/x-openoffice-embed-source-xml;windows_formatname=\"Star Embed Source (XML)\"";
- const char* FLAVOR_SLSDX = "application/x-openoffice-linksrcdescriptor-xml;windows_formatname=\"Star Link Source Descriptor (XML)\"";
- const char* FLAVOR_ESX = "application/x-openoffice-embed-source-xml;windows_formatname=\"Star Embed Source (XML)\"";
- const char* FLAVOR_LSX = "application/x-openoffice-link-source-xml;windows_formatname=\"Star Link Source (XML)\"";
- const char* FLAVOR_EOX = "application/x-openoffice-embedded-obj-xml;windows_formatname=\"Star Embedded Object (XML)\"";
- const char* FLAVOR_SVXB = "application/x-openoffice-svbx;windows_formatname=\"SVXB (StarView Bitmap/Animation)\"";
- const char* FLAVOR_GDIMF = "application/x-openoffice-gdimetafile;windows_formatname=\"GDIMetaFile\"";
- const char* FLAVOR_WMF = "application/x-openoffice-wmf;windows_formatname=\"Image WMF\"";
- const char* FLAVOR_EMF = "application/x-openoffice-emf;windows_formatname=\"Image EMF\"";
-
- const char* FLAVOR_DUMMY_INTERNAL = "application/x-openoffice-internal";
-
-
- struct FlavorMap
- {
- NSString* SystemFlavor;
- const char* OOoFlavor;
- const char* HumanPresentableName;
- Type DataType;
- };
-
- /* At the moment it appears as if only MS Office pastes "public.html" to the clipboard.
- */
- FlavorMap flavorMap[] =
- {
- { NSStringPboardType, "text/plain;charset=utf-16", "Unicode Text (UTF-16)", CPPUTYPE_OUSTRING },
- { NSRTFPboardType, "text/richtext", "Rich Text Format", CPPUTYPE_SEQINT8 },
- { NSPICTPboardType, "image/bmp", "Windows Bitmap", CPPUTYPE_SEQINT8 },
- { NSHTMLPboardType, "text/html", "Plain Html", CPPUTYPE_SEQINT8 },
- { NSFilenamesPboardType, "application/x-openoffice-filelist;windows_formatname=\"FileList\"", "FileList", CPPUTYPE_SEQINT8 },
- { PBTYPE_SESX, FLAVOR_SESX, "Star Embed Source (XML)", CPPUTYPE_SEQINT8 },
- { PBTYPE_SLSDX, FLAVOR_SLSDX, "Star Link Source Descriptor (XML)", CPPUTYPE_SEQINT8 },
- { PBTYPE_ESX, FLAVOR_ESX, "Star Embed Source (XML)", CPPUTYPE_SEQINT8 },
- { PBTYPE_LSX, FLAVOR_LSX, "Star Link Source (XML)", CPPUTYPE_SEQINT8 },
- { PBTYPE_EOX, FLAVOR_EOX, "Star Embedded Object (XML)", CPPUTYPE_SEQINT8 },
- { PBTYPE_SVXB, FLAVOR_SVXB, "SVXB (StarView Bitmap/Animation", CPPUTYPE_SEQINT8 },
- { PBTYPE_GDIMF, FLAVOR_GDIMF, "GDIMetaFile", CPPUTYPE_SEQINT8 },
- { PBTYPE_WMF, FLAVOR_WMF, "Windows MetaFile", CPPUTYPE_SEQINT8 },
- { PBTYPE_EMF, FLAVOR_EMF, "Windows Enhanced MetaFile", CPPUTYPE_SEQINT8 },
- { PBTYPE_SODX, FLAVOR_SODX, "Star Object Descriptor (XML)", CPPUTYPE_SEQINT8 },
- { PBTYPE_DUMMY_INTERNAL, FLAVOR_DUMMY_INTERNAL, "internal data",CPPUTYPE_SEQINT8 }
- // { PBTYPE_UT16, "text/plain;charset=utf-16", "Unicode Text (UTF-16)", CPPUTYPE_OUSTRING }
- // { kUTTypePICT, @"PICT", "image/x-macpict;windows_formatname=\"Mac Pict\"", "Mac Pict", CPPUTYPE_SEQINT8 }
- // { kUTTypeHTML, @"HTML", "text/html", "Plain Html", CPPUTYPE_SEQINT8 }
- };
-
-
- #define SIZE_FLAVOR_MAP (sizeof(flavorMap)/sizeof(FlavorMap))
-
-
- inline bool isByteSequenceType(const Type& theType)
- {
- return (theType == CPPUTYPE_SEQINT8);
- }
-
- inline bool isOUStringType(const Type& theType)
- {
- return (theType == CPPUTYPE_OUSTRING);
- }
-
-} // namespace private
-
-
-//###########################
-
-/* A base class for other data provider.
- */
-class DataProviderBaseImpl : public DataProvider
-{
-public:
- DataProviderBaseImpl(const Any& data);
- DataProviderBaseImpl(id data);
- virtual ~DataProviderBaseImpl();
-
-protected:
- Any mData;
- //NSData* mSystemData;
- id mSystemData;
-};
-
-DataProviderBaseImpl::DataProviderBaseImpl(const Any& data) :
- mData(data),
- mSystemData(nil)
-{
-}
-
-DataProviderBaseImpl::DataProviderBaseImpl(id data) :
- mSystemData(data)
-{
- [mSystemData retain];
-}
-
-
-DataProviderBaseImpl::~DataProviderBaseImpl()
-{
- if (mSystemData)
- {
- [mSystemData release];
- }
-}
-
-//#################################
-
-class UniDataProvider : public DataProviderBaseImpl
-{
-public:
- UniDataProvider(const Any& data);
-
- UniDataProvider(NSData* data);
-
- virtual NSData* getSystemData();
-
- virtual Any getOOoData();
-};
-
-UniDataProvider::UniDataProvider(const Any& data) :
- DataProviderBaseImpl(data)
-{
-}
-
-UniDataProvider::UniDataProvider(NSData* data) :
- DataProviderBaseImpl(data)
-{
-}
-
-NSData* UniDataProvider::getSystemData()
-{
- OUString ustr;
- mData >>= ustr;
-
- OString strUtf8;
- ustr.convertToString(&strUtf8, RTL_TEXTENCODING_UTF8, OUSTRING_TO_OSTRING_CVTFLAGS);
-
- return [NSData dataWithBytes: strUtf8.getStr() length: strUtf8.getLength()];
-}
-
-Any UniDataProvider::getOOoData()
-{
- Any oOOData;
-
- if (mSystemData)
- {
- oOOData = makeAny(OUString(reinterpret_cast<const sal_Char*>([mSystemData bytes]),
- [mSystemData length],
- RTL_TEXTENCODING_UTF8));
- }
- else
- {
- oOOData = mData;
- }
-
- return oOOData;
-}
-
-//###########################
-
-class ByteSequenceDataProvider : public DataProviderBaseImpl
-{
-public:
- ByteSequenceDataProvider(const Any& data);
-
- ByteSequenceDataProvider(NSData* data);
-
- virtual NSData* getSystemData();
-
- virtual Any getOOoData();
-};
-
-ByteSequenceDataProvider::ByteSequenceDataProvider(const Any& data) :
- DataProviderBaseImpl(data)
-{
-}
-
-ByteSequenceDataProvider::ByteSequenceDataProvider(NSData* data) :
- DataProviderBaseImpl(data)
-{
-}
-
-
-NSData* ByteSequenceDataProvider::getSystemData()
-{
- Sequence<sal_Int8> rawData;
- mData >>= rawData;
-
- return [NSData dataWithBytes: rawData.getArray() length: rawData.getLength()];
-}
-
-Any ByteSequenceDataProvider::getOOoData()
-{
- Any oOOData;
-
- if (mSystemData)
- {
- unsigned int flavorDataLength = [mSystemData length];
- Sequence<sal_Int8> byteSequence;
- byteSequence.realloc(flavorDataLength);
- memcpy(byteSequence.getArray(), [mSystemData bytes], flavorDataLength);
- oOOData = makeAny(byteSequence);
- }
- else
- {
- oOOData = mData;
- }
-
- return oOOData;
-}
-
-
-//###########################
-
-class HTMLFormatDataProvider : public DataProviderBaseImpl
-{
-public:
- HTMLFormatDataProvider(const Any& data);
-
- HTMLFormatDataProvider(NSData* data);
-
- virtual NSData* getSystemData();
-
- virtual Any getOOoData();
-};
-
-HTMLFormatDataProvider::HTMLFormatDataProvider(const Any& data) :
- DataProviderBaseImpl(data)
-{
-}
-
-HTMLFormatDataProvider::HTMLFormatDataProvider(NSData* data) :
- DataProviderBaseImpl(data)
-{
-}
-
-NSData* HTMLFormatDataProvider::getSystemData()
-{
- Sequence<sal_Int8> textHtmlData;
- mData >>= textHtmlData;
-
- Sequence<sal_Int8> htmlFormatData = TextHtmlToHTMLFormat(textHtmlData);
-
- return [NSData dataWithBytes: htmlFormatData.getArray() length: htmlFormatData.getLength()];
-}
-
-Any HTMLFormatDataProvider::getOOoData()
-{
- Any oOOData;
-
- if (mSystemData)
- {
- unsigned int flavorDataLength = [mSystemData length];
- Sequence<sal_Int8> unkHtmlData;
-
- unkHtmlData.realloc(flavorDataLength);
- memcpy(unkHtmlData.getArray(), [mSystemData bytes], flavorDataLength);
-
- Sequence<sal_Int8>* pPlainHtml = &unkHtmlData;
- Sequence<sal_Int8> plainHtml;
-
- if (isHTMLFormat(unkHtmlData))
- {
- plainHtml = HTMLFormatToTextHtml(unkHtmlData);
- pPlainHtml = &plainHtml;
- }
-
- oOOData = makeAny(*pPlainHtml);
- }
- else
- {
- oOOData = mData;
- }
-
- return oOOData;
-}
-
-//###########################
-
-class BMPDataProvider : public DataProviderBaseImpl
-{
-public:
- BMPDataProvider(const Any& data);
-
- BMPDataProvider(NSData* data);
-
- virtual NSData* getSystemData();
-
- virtual Any getOOoData();
-};
-
-BMPDataProvider::BMPDataProvider(const Any& data) :
- DataProviderBaseImpl(data)
-{
-}
-
-BMPDataProvider::BMPDataProvider(NSData* data) :
- DataProviderBaseImpl(data)
-{
-}
-
-NSData* BMPDataProvider::getSystemData()
-{
- Sequence<sal_Int8> bmpData;
- mData >>= bmpData;
-
- Sequence<sal_Int8> pictData;
- NSData* sysData = NULL;
-
- if (BMPtoPICT(bmpData, pictData))
- {
- sysData = [NSData dataWithBytes: pictData.getArray() length: pictData.getLength()];
- }
-
- return sysData;
-}
-
-/* At the moment the OOo 'PCT' filter is not good enough to be used
- and there is no flavor defined for exchanging 'PCT' with OOo so
- we will at the moment convert 'PCT' to a Windows BMP and provide
- this to OOo
-*/
-Any BMPDataProvider::getOOoData()
-{
- Any oOOData;
-
- if (mSystemData)
- {
- unsigned int flavorDataLength = [mSystemData length];
- Sequence<sal_Int8> pictData(flavorDataLength);
-
- memcpy(pictData.getArray(), [mSystemData bytes], flavorDataLength);
-
- Sequence<sal_Int8> bmpData;
-
- if (PICTtoBMP(pictData, bmpData))
- {
- oOOData = makeAny(bmpData);
- }
- }
- else
- {
- oOOData = mData;
- }
-
- return oOOData;
-}
-
-//######################
-
-class FileListDataProvider : public DataProviderBaseImpl
-{
-public:
- FileListDataProvider(const Any& data);
- FileListDataProvider(NSArray* data);
-
- virtual NSData* getSystemData();
- virtual Any getOOoData();
-};
-
-FileListDataProvider::FileListDataProvider(const Any& data) :
- DataProviderBaseImpl(data)
-{
-}
-
-FileListDataProvider::FileListDataProvider(NSArray* data) :
- DataProviderBaseImpl(data)
-{
-}
-
-NSData* FileListDataProvider::getSystemData()
-{
- return [NSData data];
-}
-
-Any FileListDataProvider::getOOoData()
-{
- Any oOOData;
-
- if (mSystemData)
- {
- size_t length = [mSystemData count];
- size_t lenSeqRequired = 0;
-
- for (size_t i = 0; i < length; i++)
- {
- NSString* fname = [mSystemData objectAtIndex: i];
- lenSeqRequired += [fname maximumLengthOfBytesUsingEncoding: NSUnicodeStringEncoding] + sizeof(unichar);
- }
-
- Sequence<sal_Int8> oOOFileList(lenSeqRequired);
- unichar* pBuffer = reinterpret_cast<unichar*>(oOOFileList.getArray());
- rtl_zeroMemory(pBuffer, lenSeqRequired);
-
- for (size_t i = 0; i < length; i++)
- {
- NSString* fname = [mSystemData objectAtIndex: i];
- [fname getCharacters: pBuffer];
- size_t l = [fname length];
- pBuffer += l + 1;
- }
-
- oOOData = makeAny(oOOFileList);
- }
- else
- {
- oOOData = mData;
- }
-
- return oOOData;
-}
-
-//###########################
-
-DataFlavorMapper::DataFlavorMapper(const Reference<XComponentContext>& context) :
- mXComponentContext(context)
-{
- Reference<XMultiComponentFactory> mrServiceManager = mXComponentContext->getServiceManager();
- mrXMimeCntFactory = Reference<XMimeContentTypeFactory>(mrServiceManager->createInstanceWithContext(
- OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.datatransfer.MimeContentTypeFactory")), mXComponentContext), UNO_QUERY);
-
- if (!mrXMimeCntFactory.is())
- throw RuntimeException(OUString(RTL_CONSTASCII_USTRINGPARAM("AquaClipboard: Cannot create com.sun.star.datatransfer.MimeContentTypeFactory")), NULL);
-}
-
-DataFlavor DataFlavorMapper::systemToOpenOfficeFlavor(NSString* systemDataFlavor) const
-{
- DataFlavor oOOFlavor;
-
- for (size_t i = 0; i < SIZE_FLAVOR_MAP; i++)
- {
- if ([systemDataFlavor caseInsensitiveCompare: flavorMap[i].SystemFlavor] == NSOrderedSame)
- {
- oOOFlavor.MimeType = OUString::createFromAscii(flavorMap[i].OOoFlavor);
- oOOFlavor.HumanPresentableName = OUString(RTL_CONSTASCII_USTRINGPARAM(flavorMap[i].HumanPresentableName));
- oOOFlavor.DataType = flavorMap[i].DataType;
- return oOOFlavor;
- }
- } // for
-
- return oOOFlavor;
-}
-
-NSString* DataFlavorMapper::openOfficeToSystemFlavor(const DataFlavor& oOOFlavor) const
-{
- NSString* sysFlavor = NULL;
-
- for (size_t i = 0; i < SIZE_FLAVOR_MAP; i++)
- {
- if (oOOFlavor.MimeType.compareToAscii(flavorMap[i].OOoFlavor, strlen(flavorMap[i].OOoFlavor)) == 0)
- {
- sysFlavor = flavorMap[i].SystemFlavor;
- }
- }
-
- return sysFlavor;
-}
-
-DataProviderPtr_t DataFlavorMapper::getDataProvider(NSString* systemFlavor, Reference<XTransferable> rTransferable) const
-{
- DataProviderPtr_t dp;
-
- try
- {
- DataFlavor oOOFlavor = systemToOpenOfficeFlavor(systemFlavor);
-
- Any data = rTransferable->getTransferData(oOOFlavor);
-
- if (isByteSequenceType(data.getValueType()))
- {
- if ([systemFlavor caseInsensitiveCompare: NSHTMLPboardType] == NSOrderedSame)
- {
- dp = DataProviderPtr_t(new HTMLFormatDataProvider(data));
- }
- else if ([systemFlavor caseInsensitiveCompare: NSPICTPboardType] == NSOrderedSame)
- {
- dp = DataProviderPtr_t(new BMPDataProvider(data));
- }
- else if ([systemFlavor caseInsensitiveCompare: NSFilenamesPboardType] == NSOrderedSame)
- {
- dp = DataProviderPtr_t(new FileListDataProvider(data));
- }
- else
- {
- dp = DataProviderPtr_t(new ByteSequenceDataProvider(data));
- }
- }
- else // Must be OUString type
- {
- BOOST_ASSERT(isOUStringType(data.getValueType()));
- dp = DataProviderPtr_t(new UniDataProvider(data));
- }
- }
- catch(UnsupportedFlavorException&)
- {
- // Somebody violates the contract of the clipboard
- // interface @see XTransferable
- }
-
- return dp;
-}
-
-DataProviderPtr_t DataFlavorMapper::getDataProvider(const NSString* systemFlavor, NSArray* systemData) const
-{
- return DataProviderPtr_t(new FileListDataProvider(systemData));
-}
-
-DataProviderPtr_t DataFlavorMapper::getDataProvider(const NSString* systemFlavor, NSData* systemData) const
-{
- DataProviderPtr_t dp;
-
- if ([systemFlavor caseInsensitiveCompare: NSStringPboardType] == NSOrderedSame)
- {
- dp = DataProviderPtr_t(new UniDataProvider(systemData));
- }
- else if ([systemFlavor caseInsensitiveCompare: NSHTMLPboardType] == NSOrderedSame)
- {
- dp = DataProviderPtr_t(new HTMLFormatDataProvider(systemData));
- }
- else if ([systemFlavor caseInsensitiveCompare: NSPICTPboardType] == NSOrderedSame)
- {
- dp = DataProviderPtr_t(new BMPDataProvider(systemData));
- }
- else if ([systemFlavor caseInsensitiveCompare: NSFilenamesPboardType] == NSOrderedSame)
- {
- //dp = DataProviderPtr_t(new FileListDataProvider(systemData));
- }
- else
- {
- dp = DataProviderPtr_t(new ByteSequenceDataProvider(systemData));
- }
-
- return dp;
-}
-
-bool DataFlavorMapper::isValidMimeContentType(const rtl::OUString& contentType) const
-{
- bool result = true;
-
- try
- {
- Reference<XMimeContentType> xCntType(mrXMimeCntFactory->createMimeContentType(contentType));
- }
- catch( IllegalArgumentException& )
- {
- result = false;
- }
-
- return result;
-}
-
-NSArray* DataFlavorMapper::flavorSequenceToTypesArray(const com::sun::star::uno::Sequence<com::sun::star::datatransfer::DataFlavor>& flavors) const
-{
- sal_uInt32 nFlavors = flavors.getLength();
- NSMutableArray* array = [[NSMutableArray alloc] initWithCapacity: 1];
-
- for (sal_uInt32 i = 0; i < nFlavors; i++)
- {
- NSString* str = openOfficeToSystemFlavor(flavors[i]);
-
- if (str != NULL)
- {
- [array addObject: str];
- }
- }
-
- // #i89462# #i90747#
- // in case no system flavor was found to report
- // report at least one so D&D between OOo targets works
- if( [array count] == 0 )
- {
- [array addObject: PBTYPE_DUMMY_INTERNAL];
- }
-
- return [array autorelease];
-}
-
-com::sun::star::uno::Sequence<com::sun::star::datatransfer::DataFlavor> DataFlavorMapper::typesArrayToFlavorSequence(NSArray* types) const
-{
- int nFormats = [types count];
- Sequence<DataFlavor> flavors;
-
- for (int i = 0; i < nFormats; i++)
- {
- NSString* sysFormat = [types objectAtIndex: i];
- DataFlavor oOOFlavor = systemToOpenOfficeFlavor(sysFormat);
-
- if (isValidFlavor(oOOFlavor))
- {
- flavors.realloc(flavors.getLength() + 1);
- flavors[flavors.getLength() - 1] = oOOFlavor;
- }
- }
-
- return flavors;
-}
-
-
-NSArray* DataFlavorMapper::getAllSupportedPboardTypes() const
-{
- NSMutableArray* array = [[NSMutableArray alloc] initWithCapacity: SIZE_FLAVOR_MAP];
-
- for (sal_uInt32 i = 0; i < SIZE_FLAVOR_MAP; i++)
- {
- [array addObject: flavorMap[i].SystemFlavor];
- }
-
- return [array autorelease];
-}