From 7ad94be86589406aba5216a6a5a76f3f920083ed Mon Sep 17 00:00:00 2001 From: RĂ¼diger Timm Date: Mon, 18 Feb 2008 13:49:24 +0000 Subject: INTEGRATION: CWS macosxdnd (1.2.4); FILE MERGED 2007/12/04 21:22:50 tra 1.2.4.2: Clipboard transition to Cocoa 2007/11/13 10:11:19 tra 1.2.4.1: #i79620# experimental Carbon based D&D implementation, no need to optimize - will be replaced by Cocoa version --- dtrans/source/aqua/OSXTransferable.hxx | 61 +++++++++++----------------------- 1 file changed, 19 insertions(+), 42 deletions(-) diff --git a/dtrans/source/aqua/OSXTransferable.hxx b/dtrans/source/aqua/OSXTransferable.hxx index 8417482410b9..d9d8000dfe56 100644 --- a/dtrans/source/aqua/OSXTransferable.hxx +++ b/dtrans/source/aqua/OSXTransferable.hxx @@ -4,9 +4,9 @@ * * $RCSfile: OSXTransferable.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: rt $ $Date: 2007-07-05 09:10:32 $ + * last change: $Author: rt $ $Date: 2008-02-18 14:49:24 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -60,38 +60,24 @@ #include "DataFlavorMapping.hxx" #include - #include - #include +#import #include #include +#include #include -struct ClipboardItem -{ - ClipboardItem(PasteboardItemID id, - CFStringRef systemFlavor, - const com::sun::star::datatransfer::DataFlavor& oOOFlavor); - - ~ClipboardItem(); - - PasteboardItemID mId; - CFStringRef mSystemDataFlavor; - com::sun::star::datatransfer::DataFlavor mOOoDataFlavor; -}; -typedef boost::shared_ptr ClipboardItemPtr_t; -typedef std::vector ClipboardItemContainer_t; - - -class OSXTransferable : public ::cppu::WeakImplHelper1 +class OSXTransferable : public ::cppu::WeakImplHelper1, + private ::boost::noncopyable { public: typedef com::sun::star::uno::Sequence< sal_Int8 > ByteSequence_t; - explicit OSXTransferable(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > ServiceManager, + explicit OSXTransferable(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& context, ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::XMimeContentTypeFactory> rXMimeCntFactory, - DataFlavorMapperPtr_t pDataFlavorMapper); + DataFlavorMapperPtr_t pDataFlavorMapper, + NSPasteboard* pasteboard); virtual ~OSXTransferable(); @@ -108,37 +94,28 @@ public: virtual sal_Bool SAL_CALL isDataFlavorSupported( const ::com::sun::star::datatransfer::DataFlavor& aFlavor ) throw( ::com::sun::star::uno::RuntimeException ); - void addClipboardItemFlavors(PasteboardItemID clipboardItemId); - - ClipboardItemPtr_t findMatchingClipboardItem(const com::sun::star::datatransfer::DataFlavor& aFlavor); + //------------------------------------------------------------------------ + // Helper functions not part of the XTransferable interface + //------------------------------------------------------------------------ void initClipboardItemList(); - com::sun::star::uno::Any getClipboardItemData(ClipboardItemPtr_t clipboardItem); + //com::sun::star::uno::Any getClipboardItemData(ClipboardItemPtr_t clipboardItem); - bool isUnicodeText(ClipboardItemPtr_t clipboardItem); + bool isUnicodeText(const com::sun::star::datatransfer::DataFlavor& flavor); bool compareDataFlavors( const com::sun::star::datatransfer::DataFlavor& lhs, - const com::sun::star::datatransfer::DataFlavor& rhs ); - + const com::sun::star::datatransfer::DataFlavor& rhs ); bool cmpAllContentTypeParameter( const com::sun::star::uno::Reference< com::sun::star::datatransfer::XMimeContentType > xLhs, const com::sun::star::uno::Reference< com::sun::star::datatransfer::XMimeContentType > xRhs ) const; - private: - ClipboardItemContainer_t mClipboardItems; - com::sun::star::uno::Sequence< com::sun::star::datatransfer::DataFlavor > m_FlavorList; - const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > mrSrvMgr; + com::sun::star::uno::Sequence< com::sun::star::datatransfer::DataFlavor > mFlavorList; + const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > mXComponentContext; ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::XMimeContentTypeFactory> mrXMimeCntFactory; - DataFlavorMapperPtr_t mpDataFlavorMapper; - osl::Mutex m_aMutex; - PasteboardRef mrClipboard; - - // prevent copy and assignment -private: - OSXTransferable( const OSXTransferable& ); - OSXTransferable& operator=( const OSXTransferable& ); + DataFlavorMapperPtr_t mDataFlavorMapper; + NSPasteboard* mPasteboard; }; #endif -- cgit v1.2.3