14 #include <rtl/ref.hxx>
17 #include <com/sun/star/lang/XServiceInfo.hpp>
18 #include <com/sun/star/lang/XSingleServiceFactory.hpp>
19 #include <com/sun/star/datatransfer/clipboard/XSystemClipboard.hpp>
25 :
public cppu::WeakComponentImplHelper<css::datatransfer::clipboard::XSystemClipboard,
26 css::lang::XServiceInfo>
30 css::uno::Reference<css::datatransfer::clipboard::XClipboardOwner>
m_aOwner;
31 std::vector<css::uno::Reference<css::datatransfer::clipboard::XClipboardListener>>
m_aListeners;
37 css::uno::Reference<css::uno::XInterface>
getXI()
39 return css::uno::Reference<css::uno::XInterface>(
static_cast<cppu::OWeakObject*
>(
this));
49 css::uno::Reference<css::datatransfer::XTransferable> SAL_CALL getContents()
override;
50 void SAL_CALL setContents(
51 const css::uno::Reference<css::datatransfer::XTransferable>& xTransferable,
52 const css::uno::Reference<css::datatransfer::clipboard::XClipboardOwner>& xClipboardOwner)
54 OUString SAL_CALL
getName()
override {
return "CLIPBOARD"; }
60 void SAL_CALL addClipboardListener(
61 const css::uno::Reference<css::datatransfer::clipboard::XClipboardListener>& listener)
63 void SAL_CALL removeClipboardListener(
64 const css::uno::Reference<css::datatransfer::clipboard::XClipboardListener>& listener)
69 class LOKTransferable :
public cppu::WeakImplHelper<css::datatransfer::XTransferable>
71 css::uno::Sequence<css::datatransfer::DataFlavor>
m_aFlavors;
74 static void initFlavourFromMime(css::datatransfer::DataFlavor& rFlavor, OUString aMimeType);
78 LOKTransferable(
size_t nInCount,
const char** pInMimeTypes,
const size_t* pInSizes,
79 const char** pInStreams);
80 LOKTransferable(
const OUString& sMimeType,
const css::uno::Sequence<sal_Int8>& aSequence);
82 css::uno::Any SAL_CALL getTransferData(
const css::datatransfer::DataFlavor& rFlavor)
override;
84 css::uno::Sequence<css::datatransfer::DataFlavor> SAL_CALL getTransferDataFlavors()
override;
86 sal_Bool SAL_CALL isDataFlavorSupported(
const css::datatransfer::DataFlavor& rFlavor)
override;
96 :
cppu::WeakComponentImplHelper<
css::
lang::XSingleServiceFactory>(gMutex)
102 return createInstanceWithArguments(css::uno::Sequence<css::uno::Any>());
104 css::uno::Reference<css::uno::XInterface> SAL_CALL
105 createInstanceWithArguments(
const css::uno::Sequence<css::uno::Any>& )
override;
111 static void releaseClipboardForView(
int nViewId);
css::uno::Reference< css::datatransfer::clipboard::XClipboardOwner > m_aOwner
css::uno::Reference< css::uno::XInterface > getXI()
get an XInterface easily.
css::uno::Sequence< OUString > getSupportedServiceNames()
OUString getImplementationName()
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
css::uno::Reference< css::uno::XInterface > SAL_CALL createInstance() override
OUString SAL_CALL getName() override
css::uno::Sequence< css::datatransfer::DataFlavor > m_aFlavors
std::vector< css::uno::Reference< css::datatransfer::clipboard::XClipboardListener > > m_aListeners
Theoretically to hook into the (horrible) vcl dtranscomp.cxx code.
A clipboard implementation for LibreOfficeKit.
css::uno::Reference< css::datatransfer::XTransferable > m_xTransferable
std::vector< css::uno::Any > m_aContent
sal_Int8 SAL_CALL getRenderingCapabilities() override
Represents the contents of LOKClipboard.