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 */ 10 11 #pragma once 12 13 #include <memory> 14 #include <vector> 15 16 #include <svx/svditer.hxx> 17 #include <rtl/ustring.hxx> 18 #include <tools/long.hxx> 19 20 #include "types.hxx" 21 22 class ScDocShell; 23 class SdrOle2Obj; 24 25 namespace sc::tools { 26 27 enum class ChartSourceType 28 { 29 CELL_RANGE, 30 PIVOT_TABLE 31 }; 32 33 class ChartIterator 34 { 35 private: 36 std::unique_ptr<SdrObjListIter> m_pIterator; 37 ChartSourceType m_eChartSourceType; 38 public: 39 ChartIterator(ScDocShell* pDocShell, SCTAB nTab, ChartSourceType eChartSourceType); 40 SdrOle2Obj* next(); 41 }; 42 43 SdrOle2Obj* findChartsByName(ScDocShell* pDocShell, SCTAB nTab, 44 std::u16string_view rName, 45 ChartSourceType eChartSourceType); 46 47 SdrOle2Obj* getChartByIndex(ScDocShell* pDocShell, SCTAB nTab, 48 ::tools::Long nIndex, ChartSourceType eChartSourceType); 49 50 std::vector<SdrOle2Obj*> getAllPivotChartsConnectedTo(std::u16string_view sPivotTableName, ScDocShell* pDocShell); 51 52 } // end sc::tools 53 54 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 55