1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 #ifndef SC_VBA_CHARTOBJECTS_HXX 28 #define SC_VBA_CHARTOBJECTS_HXX 29 #include <ooo/vba/excel/XChartObjects.hpp> 30 #include <ooo/vba/excel/XChartObject.hpp> 31 #include <cppuhelper/implbase1.hxx> 32 #include <com/sun/star/uno/XComponentContext.hpp> 33 #include <com/sun/star/table/XTableCharts.hpp> 34 #include <com/sun/star/drawing/XDrawPageSupplier.hpp> 35 #include <com/sun/star/container/XEnumerationAccess.hpp> 36 #include <vbahelper/vbacollectionimpl.hxx> 37 #include "excelvbahelper.hxx" 38 #include <hash_map> 39 40 typedef CollTestImplHelper< ov::excel::XChartObjects > ChartObjects_BASE; 41 /* #TODO see if this hash table is 'really' necessary 42 typedef ::std::hash_map< ::rtl::OUString, 43 css::uno::Reference< ov::excel::XChartObject >, 44 ::rtl::OUStringHash, 45 ::std::equal_to< ::rtl::OUString > > aHashTable; 46 */ 47 48 class ScVbaChartObjects : public ChartObjects_BASE 49 { 50 51 css::uno::Reference< css::table::XTableCharts > xTableCharts; 52 css::uno::Reference< css::drawing::XDrawPageSupplier > xDrawPageSupplier; 53 // method associated with populating the hashmap ( I'm not convinced this is necessary ) 54 //css::uno::Reference< ov::excel::XChartObject > putByPersistName( const rtl:::OUString& _sPersistChartName ); 55 public: 56 ScVbaChartObjects( const css::uno::Reference< ov::XHelperInterface >& _xParent, const css::uno::Reference< css::uno::XComponentContext >& _xContext, const css::uno::Reference< css::table::XTableCharts >& _xTableCharts, const css::uno::Reference< css::drawing::XDrawPageSupplier >& _xDrawPageSupplier ); 57 58 css::uno::Sequence< rtl::OUString > getChartObjectNames() throw( css::script::BasicErrorException ); 59 void removeByName(const rtl::OUString& _sChartName); 60 61 // XChartObjects 62 virtual ::com::sun::star::uno::Any SAL_CALL Add( double Left, double Top, double Width, double Height ) throw (::com::sun::star::script::BasicErrorException); 63 virtual void SAL_CALL Delete( ) throw (::com::sun::star::script::BasicErrorException); 64 // XEnumerationAccess 65 virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException); 66 // XElementAccess 67 virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException); 68 // ScVbaCollectionBaseImpl 69 virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource ); 70 // ChartObjects_BASE 71 virtual rtl::OUString& getServiceImplName(); 72 virtual css::uno::Sequence<rtl::OUString> getServiceNames(); 73 }; 74 75 #endif //SC_VBA_WINDOW_HXX 76