merge the formfield patch from ooo-build
[ooovba.git] / chart2 / source / controller / main / ChartTransferable.cxx
blob0e5ab43a32d64ff4feb680710d57c0af3f9a3e77
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: ChartTransferable.cxx,v $
10 * $Revision: 1.3 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 // MARKER(update_precomp.py): autogen include statement, do not remove
32 #include "precompiled_chart2.hxx"
34 #include "ChartTransferable.hxx"
36 #include <vcl/graph.hxx>
37 #include <svx/svdmodel.hxx>
39 // header for class SdrView
40 #include <svx/svdview.hxx>
42 using namespace ::com::sun::star;
44 using ::com::sun::star::uno::Reference;
45 using ::com::sun::star::uno::Sequence;
46 using ::rtl::OUString;
48 namespace chart
51 ChartTransferable::ChartTransferable( SdrModel * pDrawModel, SdrObject * pSelectedObj )
53 SdrExchangeView * pExchgView( new SdrView( pDrawModel ));
54 SdrPageView* pPv = pExchgView->ShowSdrPage( pDrawModel->GetPage( 0 ));
55 if( pSelectedObj )
56 pExchgView->MarkObj( pSelectedObj, pPv );
57 else
58 pExchgView->MarkAllObj( pPv );
59 Graphic aGraphic( pExchgView->GetMarkedObjMetaFile( TRUE ));
60 m_xMetaFileGraphic.set( aGraphic.GetXGraphic());
61 delete pExchgView;
64 ChartTransferable::~ChartTransferable()
67 void ChartTransferable::AddSupportedFormats()
69 AddFormat( SOT_FORMAT_GDIMETAFILE );
70 AddFormat( SOT_FORMAT_BITMAP );
73 sal_Bool ChartTransferable::GetData( const ::com::sun::star::datatransfer::DataFlavor& rFlavor )
75 sal_uInt32 nFormat = SotExchange::GetFormat( rFlavor );
76 sal_Bool bResult = sal_False;
78 if( HasFormat( nFormat ))
80 if( nFormat == FORMAT_GDIMETAFILE )
82 Graphic aGraphic( m_xMetaFileGraphic );
83 bResult = SetGDIMetaFile( aGraphic.GetGDIMetaFile(), rFlavor );
85 else if( nFormat == FORMAT_BITMAP )
87 Graphic aGraphic( m_xMetaFileGraphic );
88 bResult = SetBitmap( aGraphic.GetBitmap(), rFlavor );
92 return bResult;
96 } // namespace chart