summaryrefslogtreecommitdiff
path: root/chart2
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2015-07-15 17:44:56 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2015-07-16 08:15:18 +0200
commitc296eec2927cb2eb5959f6de0ceee66cc4295e83 (patch)
treefa664564a0677e1570418a4aa74a0b166d58c8c2 /chart2
parentd380dbbc2bad8d370550d7f985379502e84fd2e3 (diff)
react to changing the checkboxes: axis
Change-Id: Ic1296b9035dce00837b8e8d24cc63e1d9bda0b88
Diffstat (limited to 'chart2')
-rw-r--r--chart2/source/controller/sidebar/ChartElementsPanel.cxx55
-rw-r--r--chart2/source/controller/sidebar/ChartElementsPanel.hxx2
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