1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
10 #ifndef INCLUDED_SC_SOURCE_UI_OPTDLG_CALCOPTIONSDLG_HXX
11 #define INCLUDED_SC_SOURCE_UI_OPTDLG_CALCOPTIONSDLG_HXX
13 #include <config_features.h>
15 #include <vcl/dialog.hxx>
16 #include <vcl/button.hxx>
17 #include <vcl/edit.hxx>
18 #include <vcl/field.hxx>
19 #include <vcl/fixed.hxx>
20 #include <vcl/layout.hxx>
21 #include <vcl/lstbox.hxx>
23 #include <svx/checklbx.hxx>
25 #include <svtools/treelistbox.hxx>
27 #include "calcconfig.hxx"
29 #if HAVE_FEATURE_OPENCL
30 #include <opencl/openclconfig.hxx>
31 #include <opencl/platforminfo.hxx>
34 class ScCalcOptionsDialog
: public ModalDialog
37 ScCalcOptionsDialog(vcl::Window
* pParent
, const ScCalcConfig
& rConfig
);
38 virtual ~ScCalcOptionsDialog();
39 virtual void dispose() SAL_OVERRIDE
;
41 DECL_LINK( BtnAutomaticSelectHdl
, void* );
42 DECL_LINK( DeviceSelHdl
, void* );
43 DECL_LINK( NumModifiedHdl
, void * );
44 DECL_LINK( EditModifiedHdl
, Edit
* );
45 DECL_STATIC_LINK( ScCalcOptionsDialog
, TestClickHdl
, PushButton
* );
46 DECL_LINK( AsZeroModifiedHdl
, CheckBox
*);
47 DECL_LINK( ConversionModifiedHdl
, ListBox
*);
48 DECL_LINK( SyntaxModifiedHdl
, ListBox
*);
49 DECL_LINK( CBUseOpenCLHdl
, CheckBox
*);
50 DECL_LINK( SpinOpenCLMinSizeHdl
, NumericField
*);
52 const ScCalcConfig
& GetConfig() const { return maConfig
;}
55 void OpenCLAutomaticSelectionChanged();
56 void SelectedDeviceChanged();
57 void CoupleEmptyAsZeroToStringConversion();
59 SvTreeListEntry
*createItem(const OUString
&rCaption
, const OUString
& sValue
) const;
60 void setValueAt(size_t nPos
, const OUString
&rString
);
61 #if HAVE_FEATURE_OPENCL
62 OpenCLConfig::ImplMatcherSet
& CurrentWhiteOrBlackList();
63 const OpenCLConfig::ImplMatcher
& CurrentWhiteOrBlackListEntry();
67 VclPtr
<CheckBox
> mpEmptyAsZero
;
68 VclPtr
<ListBox
> mpConversion
;
69 VclPtr
<ListBox
> mpSyntax
;
71 VclPtr
<CheckBox
> mpUseOpenCL
;
72 VclPtr
<NumericField
> mpSpinButton
;
73 VclPtr
<VclMultiLineEdit
> mpEditField
;
74 VclPtr
<PushButton
> mpTestButton
;
76 VclPtr
<FixedText
> mpFtFrequency
;
77 VclPtr
<FixedText
> mpFtComputeUnits
;
78 VclPtr
<FixedText
> mpFtMemory
;
80 VclPtr
<SvTreeListBox
> mpOpenclInfoList
;
81 VclPtr
<RadioButton
> mpBtnAutomaticSelectionTrue
;
82 VclPtr
<RadioButton
> mpBtnAutomaticSelectionFalse
;
86 ScCalcConfig maConfig
;
87 #if HAVE_FEATURE_OPENCL
88 std::vector
<OpenCLPlatformInfo
> maPlatformInfo
;
91 bool mbSelectedEmptyStringAsZero
;
96 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */