1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 /* 3 * This file is part of the LibreOffice project. 4 * 5 * This Source Code Form is subject to the terms of the Mozilla Public 6 * License, v. 2.0. If a copy of the MPL was not distributed with this 7 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 8 * 9 * This file incorporates work covered by the following license notice: 10 * 11 * Licensed to the Apache Software Foundation (ASF) under one or more 12 * contributor license agreements. See the NOTICE file distributed 13 * with this work for additional information regarding copyright 14 * ownership. The ASF licenses this file to you under the Apache 15 * License, Version 2.0 (the "License"); you may not use this file 16 * except in compliance with the License. You may obtain a copy of 17 * the License at http://www.apache.org/licenses/LICENSE-2.0 . 18 */ 19 #include "GroupExchange.hxx" 20 #include <sot/formats.hxx> 21 #include <sot/storage.hxx> 22 23 namespace rptui 24 { 25 using namespace ::com::sun::star; 26 using namespace ::com::sun::star::uno; 27 using namespace ::com::sun::star::beans; 28 getReportGroupId()29 SotClipboardFormatId OGroupExchange::getReportGroupId() 30 { 31 static SotClipboardFormatId s_nReportFormat = static_cast<SotClipboardFormatId>(-1); 32 if ( static_cast<SotClipboardFormatId>(-1) == s_nReportFormat ) 33 { 34 s_nReportFormat = SotExchange::RegisterFormatName("application/x-openoffice;windows_formatname=\"reportdesign.GroupFormat\""); 35 OSL_ENSURE(static_cast<SotClipboardFormatId>(-1) != s_nReportFormat, "Bad exchange id!"); 36 } 37 return s_nReportFormat; 38 } OGroupExchange(const uno::Sequence<uno::Any> & _aGroupRow)39 OGroupExchange::OGroupExchange(const uno::Sequence< uno::Any >& _aGroupRow) 40 : m_aGroupRow(_aGroupRow) 41 { 42 } 43 AddSupportedFormats()44 void OGroupExchange::AddSupportedFormats() 45 { 46 if ( m_aGroupRow.hasElements() ) 47 { 48 AddFormat(OGroupExchange::getReportGroupId()); 49 } 50 } 51 GetData(const css::datatransfer::DataFlavor & rFlavor,const OUString &)52 bool OGroupExchange::GetData( const css::datatransfer::DataFlavor& rFlavor, const OUString& /*rDestDoc*/ ) 53 { 54 SotClipboardFormatId nFormat = SotExchange::GetFormat(rFlavor); 55 if(nFormat == OGroupExchange::getReportGroupId() ) 56 { 57 return SetAny(uno::makeAny(m_aGroupRow)); 58 } 59 return false; 60 } 61 ObjectReleased()62 void OGroupExchange::ObjectReleased() 63 { 64 m_aGroupRow.realloc(0); 65 } 66 67 } 68 69 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 70