summaryrefslogtreecommitdiff
path: root/sc/source/ui/inc
diff options
context:
space:
mode:
authorDennis Francis <dennis.francis@collabora.com>2019-03-12 18:21:34 +0530
committerDennis Francis <dennis.francis@collabora.com>2019-03-26 14:33:23 +0100
commit1b9f0e99f3ab0deb8ee2291b34c5c2e6a31de2d1 (patch)
tree9701e7e2174cc2b65344452703ad474d65614398 /sc/source/ui/inc
parent88b52d4ecc908a817211a5beb908df378cbf5fae (diff)
tdf#74664 : add Fourier analysis tool
Add Fourier analysis tool to Statistics submenu. Use FOURIER() formula to do all the work here. Change-Id: Ifdaa79d8ee367f1c1f5054248e01853ffe4c6823 Reviewed-on: https://gerrit.libreoffice.org/69472 Tested-by: Jenkins Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
Diffstat (limited to 'sc/source/ui/inc')
-rw-r--r--sc/source/ui/inc/FourierAnalysisDialog.hxx60
-rw-r--r--sc/source/ui/inc/StatisticsInputOutputDialog.hxx2
-rw-r--r--sc/source/ui/inc/reffact.hxx7
3 files changed, 69 insertions, 0 deletions
diff --git a/sc/source/ui/inc/FourierAnalysisDialog.hxx b/sc/source/ui/inc/FourierAnalysisDialog.hxx
new file mode 100644
index 000000000000..14e0dbf83be4
--- /dev/null
+++ b/sc/source/ui/inc/FourierAnalysisDialog.hxx
@@ -0,0 +1,60 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice 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/.
+ *
+ */
+
+#ifndef INCLUDED_SC_SOURCE_UI_INC_FOURIERANALYSISDIALOG_HXX
+#define INCLUDED_SC_SOURCE_UI_INC_FOURIERANALYSISDIALOG_HXX
+
+#include "StatisticsInputOutputDialog.hxx"
+
+class ScFourierAnalysisDialog : public ScStatisticsInputOutputDialog
+{
+ VclPtr<CheckBox> mpWithLabelsCheckBox;
+ VclPtr<CheckBox> mpInverseCheckBox;
+ VclPtr<CheckBox> mpPolarCheckBox;
+ VclPtr<NumericField> mpMinMagnitudeField;
+ VclPtr<FixedText> mpErrorMessage;
+
+ ScAddress maLabelAddr;
+ ScRange maActualInputRange;
+ SCSIZE mnLen;
+
+ double mfMinMag;
+
+ bool mbUse3DAddresses : 1;
+ bool mbGroupedByColumn : 1;
+ bool mbWithLabels : 1;
+ bool mbInverse : 1;
+ bool mbPolar : 1;
+
+public:
+ ScFourierAnalysisDialog(SfxBindings* pB, SfxChildWindow* pCW, vcl::Window* pParent,
+ ScViewData* pViewData);
+
+ virtual ~ScFourierAnalysisDialog() override;
+
+ virtual bool Close() override;
+
+protected:
+ void dispose() override;
+ virtual const char* GetUndoNameId() override;
+ virtual ScRange ApplyOutput(ScDocShell* pDocShell) override;
+ virtual bool InputRangesValid() override;
+
+private:
+ void getOptions();
+ void getDataLabel(OUString& rLabel);
+ void genFormula(OUString& rFormula);
+
+ DECL_LINK(CheckBoxHdl, CheckBox&, void);
+};
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/StatisticsInputOutputDialog.hxx b/sc/source/ui/inc/StatisticsInputOutputDialog.hxx
index 849197e34eb5..b63ccd35c78e 100644
--- a/sc/source/ui/inc/StatisticsInputOutputDialog.hxx
+++ b/sc/source/ui/inc/StatisticsInputOutputDialog.hxx
@@ -41,6 +41,8 @@ protected:
virtual ScRange ApplyOutput(ScDocShell* pDocShell) = 0;
virtual const char* GetUndoNameId() = 0;
+ virtual bool InputRangesValid();
+ void ValidateDialogInput();
// Widgets
VclPtr<FixedText> mpInputRangeLabel;
diff --git a/sc/source/ui/inc/reffact.hxx b/sc/source/ui/inc/reffact.hxx
index 9165fc22e62c..a49f80c0de97 100644
--- a/sc/source/ui/inc/reffact.hxx
+++ b/sc/source/ui/inc/reffact.hxx
@@ -141,6 +141,13 @@ private:
ScChiSquareTestDialogWrapper() = delete;
};
+class ScFourierAnalysisDialogWrapper :
+ public ChildWindowWrapper<SID_FOURIER_ANALYSIS_DIALOG>
+{
+private:
+ ScFourierAnalysisDialogWrapper() = delete;
+};
+
class ScAcceptChgDlgWrapper: public SfxChildWindow
{
public: