diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2015-07-15 17:44:56 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2015-07-16 08:15:18 +0200 |
commit | c296eec2927cb2eb5959f6de0ceee66cc4295e83 (patch) | |
tree | fa664564a0677e1570418a4aa74a0b166d58c8c2 /chart2 | |
parent | d380dbbc2bad8d370550d7f985379502e84fd2e3 (diff) |
react to changing the checkboxes: axis
Change-Id: Ic1296b9035dce00837b8e8d24cc63e1d9bda0b88
Diffstat (limited to 'chart2')
-rw-r--r-- | chart2/source/controller/sidebar/ChartElementsPanel.cxx | 55 | ||||
-rw-r--r-- | chart2/source/controller/sidebar/ChartElementsPanel.hxx | 2 |
2 files changed, 57 insertions, 0 deletions
diff --git a/chart2/source/controller/sidebar/ChartElementsPanel.cxx b/chart2/source/controller/sidebar/ChartElementsPanel.cxx index 29c311be6aeb..4cfccf7c19c6 100644 --- a/chart2/source/controller/sidebar/ChartElementsPanel.cxx +++ b/chart2/source/controller/sidebar/ChartElementsPanel.cxx @@ -31,6 +31,7 @@ #include <vcl/toolbox.hxx> #include <svl/intitem.hxx> #include <svl/stritem.hxx> +#include <comphelper/processfactory.hxx> #include "LegendHelper.hxx" #include "TitleHelper.hxx" @@ -174,7 +175,26 @@ bool isAxisVisible(css::uno::Reference<css::frame::XModel> xModel, AxisType eTyp return bHasAxis; } return false; +} + +void setAxisVisible(css::uno::Reference<css::frame::XModel> xModel, AxisType eType, bool bVisible) +{ + Reference< chart2::XDiagram > xDiagram(ChartModelHelper::findDiagram(xModel)); + if(xDiagram.is()) + { + sal_Int32 nDimensionIndex = 0; + if (eType == AxisType::Y_MAIN || eType == AxisType::Y_SECOND) + nDimensionIndex = 1; + else if (eType == AxisType::Z_MAIN) + nDimensionIndex = 2; + + bool bMajor = !(eType == AxisType::X_SECOND || eType == AxisType::Y_SECOND); + if (bVisible) + AxisHelper::showAxis(nDimensionIndex, bMajor, xDiagram, comphelper::getProcessComponentContext()); + else + AxisHelper::hideAxis(nDimensionIndex, bMajor, xDiagram); + } } } @@ -246,6 +266,23 @@ void ChartElementsPanel::Initialize() css::uno::Reference<css::util::XModifyBroadcaster> xBroadcaster(mxModel, css::uno::UNO_QUERY_THROW); xBroadcaster->addModifyListener(mxListener); updateData(); + + Link<> aLink = LINK(this, ChartElementsPanel, CheckBoxHdl); + mpCBTitle->SetClickHdl(aLink); + mpCBSubtitle->SetClickHdl(aLink); + mpCBXAxis->SetClickHdl(aLink); + mpCBXAxisTitle->SetClickHdl(aLink); + mpCBYAxis->SetClickHdl(aLink); + mpCBYAxisTitle->SetClickHdl(aLink); + mpCBZAxis->SetClickHdl(aLink); + mpCBZAxisTitle->SetClickHdl(aLink); + mpCB2ndXAxis->SetClickHdl(aLink); + mpCB2ndXAxisTitle->SetClickHdl(aLink); + mpCB2ndYAxis->SetClickHdl(aLink); + mpCB2ndYAxisTitle->SetClickHdl(aLink); + mpCBLegend->SetClickHdl(aLink); + mpCBGridVertical->SetClickHdl(aLink); + mpCBGridHorizontal->SetClickHdl(aLink); } void ChartElementsPanel::updateData() @@ -317,6 +354,24 @@ void ChartElementsPanel::modelInvalid() } +IMPL_LINK(ChartElementsPanel, CheckBoxHdl, CheckBox*, pCheckBox) +{ + bool bChecked = pCheckBox->IsChecked(); + if (pCheckBox == mpCBTitle.get()) + { + } + else if (pCheckBox == mpCBXAxis.get()) + setAxisVisible(mxModel, AxisType::X_MAIN, bChecked); + else if (pCheckBox == mpCBYAxis.get()) + setAxisVisible(mxModel, AxisType::Y_MAIN, bChecked); + else if (pCheckBox == mpCB2ndXAxis.get()) + setAxisVisible(mxModel, AxisType::X_SECOND, bChecked); + else if (pCheckBox == mpCB2ndYAxis.get()) + setAxisVisible(mxModel, AxisType::Y_SECOND, bChecked); + + return 0; +} + }} // end of namespace ::chart::sidebar /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/controller/sidebar/ChartElementsPanel.hxx b/chart2/source/controller/sidebar/ChartElementsPanel.hxx index 297f1575a2a6..dd68f79265fc 100644 --- a/chart2/source/controller/sidebar/ChartElementsPanel.hxx +++ b/chart2/source/controller/sidebar/ChartElementsPanel.hxx @@ -98,6 +98,8 @@ private: css::uno::Reference<css::util::XModifyListener> mxListener; void Initialize(); + + DECL_LINK(CheckBoxHdl, CheckBox*); }; } } // end of namespace ::chart::sidebar |