diff options
author | Dennis Francis <dennis.francis@collabora.com> | 2019-03-12 18:21:34 +0530 |
---|---|---|
committer | Dennis Francis <dennis.francis@collabora.com> | 2019-03-26 14:33:23 +0100 |
commit | 1b9f0e99f3ab0deb8ee2291b34c5c2e6a31de2d1 (patch) | |
tree | 9701e7e2174cc2b65344452703ad474d65614398 /sc/source/ui/inc | |
parent | 88b52d4ecc908a817211a5beb908df378cbf5fae (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.hxx | 60 | ||||
-rw-r--r-- | sc/source/ui/inc/StatisticsInputOutputDialog.hxx | 2 | ||||
-rw-r--r-- | sc/source/ui/inc/reffact.hxx | 7 |
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: |