| /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
| /* |
| * This file is part of the Collabora Office project. |
| * |
| * This Source Code Form is subject to the terms of the Mozilla Public |
| * License, v. 2.0. If a copy of the MPL was not distributed with this |
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| * |
| */ |
| |
| #pragma once |
| |
| #include "scdllapi.h" |
| #include <memory> |
| #include <map> |
| |
| #include "Sparkline.hxx" |
| #include "SparklineGroup.hxx" |
| |
| namespace sc |
| { |
| /** Tracks and gathers all created sparklines and sparkline groups. |
| * |
| * All the collections of sparkline groups and sparklines don't take |
| * the ownership of the pointers. |
| */ |
| class SC_DLLPUBLIC SparklineList |
| { |
| private: |
| std::vector<std::weak_ptr<SparklineGroup>> m_aSparklineGroups; |
| std::map<std::weak_ptr<SparklineGroup>, std::vector<std::weak_ptr<Sparkline>>, |
| std::owner_less<>> |
| m_aSparklineGroupMap; |
| |
| public: |
| SparklineList(); |
| |
| void addSparkline(std::shared_ptr<Sparkline> const& pSparkline); |
| void removeSparkline(std::shared_ptr<Sparkline> const& pSparkline); |
| |
| std::vector<std::shared_ptr<SparklineGroup>> getSparklineGroups(); |
| |
| std::vector<std::shared_ptr<Sparkline>> |
| getSparklinesFor(std::shared_ptr<SparklineGroup> const& pSparklineGroup); |
| }; |
| |
| } // end sc |
| |
| /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |