1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
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/.
10 #include "ChartSidebarSelectionListener.hxx"
12 #include <com/sun/star/view/XSelectionSupplier.hpp>
13 #include <com/sun/star/frame/XController.hpp>
15 #include <ObjectIdentifier.hxx>
20 ChartSidebarSelectionListenerParent::~ChartSidebarSelectionListenerParent()
24 ChartSidebarSelectionListener::ChartSidebarSelectionListener(
25 ChartSidebarSelectionListenerParent
* pParent
):
30 ChartSidebarSelectionListener::ChartSidebarSelectionListener(
31 ChartSidebarSelectionListenerParent
* pParent
,
35 maTypes
.push_back(eType
);
38 ChartSidebarSelectionListener::~ChartSidebarSelectionListener()
42 void ChartSidebarSelectionListener::selectionChanged(const css::lang::EventObject
& rEvent
)
44 bool bCorrectObjectSelected
= false;
46 css::uno::Reference
<css::frame::XController
> xController(rEvent
.Source
, css::uno::UNO_QUERY
);
49 css::uno::Reference
<css::view::XSelectionSupplier
> xSelectionSupplier(xController
, css::uno::UNO_QUERY
);
50 if (xSelectionSupplier
.is())
52 css::uno::Any aAny
= xSelectionSupplier
->getSelection();
57 ObjectType eType
= ObjectIdentifier::getObjectType(aCID
);
58 bCorrectObjectSelected
= std::any_of(maTypes
.begin(), maTypes
.end(),
59 [eType
](const ObjectType
& eTypeInVector
) { return eType
== eTypeInVector
; });
64 mpParent
->selectionChanged(bCorrectObjectSelected
);
67 void ChartSidebarSelectionListener::disposing(const css::lang::EventObject
& /*rEvent*/)
69 mpParent
->SelectionInvalid();
72 void ChartSidebarSelectionListener::setAcceptedTypes(const std::vector
<ObjectType
>& aTypes
)
79 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */