From 6dbb9564f92a2dce9f632b69834a534bd5f65bdf Mon Sep 17 00:00:00 2001 From: Markus Mohrhard Date: Wed, 15 Jul 2015 13:03:02 +0200 Subject: wire title and legend checkboxes Change-Id: I4c6d5e213f44588cf2d53d9c12ed8033307fd863 --- .../controller/sidebar/ChartElementsPanel.cxx | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'chart2/source/controller/sidebar/ChartElementsPanel.cxx') diff --git a/chart2/source/controller/sidebar/ChartElementsPanel.cxx b/chart2/source/controller/sidebar/ChartElementsPanel.cxx index 658df2a6de6c..396416ac31b0 100644 --- a/chart2/source/controller/sidebar/ChartElementsPanel.cxx +++ b/chart2/source/controller/sidebar/ChartElementsPanel.cxx @@ -32,12 +32,58 @@ #include #include +#include "LegendHelper.hxx" +#include "TitleHelper.hxx" + +#include "ChartModel.hxx" + using namespace css; using namespace css::uno; using ::sfx2::sidebar::Theme; namespace chart { namespace sidebar { +namespace { + +ChartModel* getChartModel(css::uno::Reference xModel) +{ + ChartModel* pModel = dynamic_cast(xModel.get()); + + return pModel; +} + +bool isLegendVisible(css::uno::Reference xModel) +{ + ChartModel* pModel = getChartModel(xModel); + if (!pModel) + return false; + + Reference< beans::XPropertySet > xLegendProp( LegendHelper::getLegend(*pModel), uno::UNO_QUERY ); + if( xLegendProp.is()) + { + try + { + bool bShow = false; + if( xLegendProp->getPropertyValue( "Show") >>= bShow ) + { + return bShow; + } + } + catch(const uno::Exception &) + { + } + } + + return false; +} + +bool isTitleVisisble(css::uno::Reference xModel, TitleHelper::eTitleType eTitle) +{ + return TitleHelper::getTitle(eTitle, xModel).is(); +} + +} + ChartElementsPanel::ChartElementsPanel( vcl::Window* pParent, const css::uno::Reference& rxFrame, @@ -132,6 +178,7 @@ VclPtr ChartElementsPanel::Create ( void ChartElementsPanel::DataChanged( const DataChangedEvent& ) { + updateData(); } void ChartElementsPanel::HandleContextChange( @@ -144,6 +191,7 @@ void ChartElementsPanel::HandleContextChange( } maContext = rContext; + updateData(); } void ChartElementsPanel::NotifyItemUpdate( -- cgit