LibreOffice Module sc (master) 1
solvrdlg.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
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/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#pragma once
21
22#include <address.hxx>
23#include "anyrefdg.hxx"
24
26 {
31 };
32
34{
35public:
37 ScDocument* pDocument,
38 const ScAddress& aCursorPos );
39 virtual ~ScSolverDlg() override;
40
41 virtual void SetReference( const ScRange& rRef, ScDocument& rDoc ) override;
42 virtual bool IsRefInputMode() const override;
43 virtual void SetActive() override;
44 virtual void Close() override;
45
46private:
50
54 const OUString errMsgInvalidVar;
55 const OUString errMsgInvalidForm;
56 const OUString errMsgNoFormula;
57 const OUString errMsgInvalidVal;
58
60
61 std::unique_ptr<weld::Label> m_xFtFormulaCell;
62 std::unique_ptr<formula::RefEdit> m_xEdFormulaCell;
63 std::unique_ptr<formula::RefButton> m_xRBFormulaCell;
64
65 std::unique_ptr<weld::Entry> m_xEdTargetVal;
66
67 std::unique_ptr<weld::Label> m_xFtVariableCell;
68 std::unique_ptr<formula::RefEdit> m_xEdVariableCell;
69 std::unique_ptr<formula::RefButton> m_xRBVariableCell;
70
71 std::unique_ptr<weld::Button> m_xBtnOk;
72 std::unique_ptr<weld::Button> m_xBtnCancel;
73
74 std::shared_ptr<weld::MessageDialog> m_xMessageBox;
75
76 void Init();
77 bool CheckTargetValue( const OUString& rStrVal );
78 void RaiseError( ScSolverErr eError );
79
80 DECL_LINK( BtnHdl, weld::Button&, void );
81 DECL_LINK( GetEditFocusHdl, formula::RefEdit&, void );
82 DECL_LINK( LoseEditFocusHdl, formula::RefEdit&, void );
83
84 DECL_LINK( GetButtonFocusHdl, formula::RefButton&, void );
85 DECL_LINK( LoseButtonFocusHdl, formula::RefButton&, void );
86
87 DECL_LINK( GetFocusHdl, weld::Widget&, void );
88};
89
90/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
void Init()
Definition: solvrdlg.cxx:73
const SCTAB nCurTab
Definition: solvrdlg.hxx:52
formula::RefEdit * m_pEdActive
Definition: solvrdlg.hxx:59
const OUString errMsgInvalidVar
Definition: solvrdlg.hxx:54
std::unique_ptr< formula::RefEdit > m_xEdFormulaCell
Definition: solvrdlg.hxx:62
std::unique_ptr< weld::Button > m_xBtnCancel
Definition: solvrdlg.hxx:72
OUString theTargetValStr
Definition: solvrdlg.hxx:49
DECL_LINK(LoseEditFocusHdl, formula::RefEdit &, void)
ScDocument * pDoc
Definition: solvrdlg.hxx:51
virtual ~ScSolverDlg() override
Definition: solvrdlg.cxx:66
std::shared_ptr< weld::MessageDialog > m_xMessageBox
Definition: solvrdlg.hxx:74
ScAddress theFormulaCell
Definition: solvrdlg.hxx:47
DECL_LINK(GetButtonFocusHdl, formula::RefButton &, void)
virtual bool IsRefInputMode() const override
Definition: solvrdlg.cxx:174
std::unique_ptr< weld::Button > m_xBtnOk
Definition: solvrdlg.hxx:71
std::unique_ptr< formula::RefEdit > m_xEdVariableCell
Definition: solvrdlg.hxx:68
DECL_LINK(BtnHdl, weld::Button &, void)
std::unique_ptr< formula::RefButton > m_xRBVariableCell
Definition: solvrdlg.hxx:69
const OUString errMsgInvalidVal
Definition: solvrdlg.hxx:57
const OUString errMsgNoFormula
Definition: solvrdlg.hxx:56
bool bDlgLostFocus
Definition: solvrdlg.hxx:53
std::unique_ptr< weld::Label > m_xFtFormulaCell
Definition: solvrdlg.hxx:61
virtual void SetReference(const ScRange &rRef, ScDocument &rDoc) override
Definition: solvrdlg.cxx:123
virtual void Close() override
Definition: solvrdlg.cxx:103
DECL_LINK(GetFocusHdl, weld::Widget &, void)
std::unique_ptr< weld::Entry > m_xEdTargetVal
Definition: solvrdlg.hxx:65
virtual void SetActive() override
Definition: solvrdlg.cxx:108
ScAddress theVariableCell
Definition: solvrdlg.hxx:48
bool CheckTargetValue(const OUString &rStrVal)
Definition: solvrdlg.cxx:179
std::unique_ptr< formula::RefButton > m_xRBFormulaCell
Definition: solvrdlg.hxx:63
ScSolverDlg(SfxBindings *pB, SfxChildWindow *pCW, weld::Window *pParent, ScDocument *pDocument, const ScAddress &aCursorPos)
Definition: solvrdlg.cxx:34
const OUString errMsgInvalidForm
Definition: solvrdlg.hxx:55
std::unique_ptr< weld::Label > m_xFtVariableCell
Definition: solvrdlg.hxx:67
DECL_LINK(LoseButtonFocusHdl, formula::RefButton &, void)
DECL_LINK(GetEditFocusHdl, formula::RefEdit &, void)
void RaiseError(ScSolverErr eError)
Definition: solvrdlg.cxx:145
ScSolverErr
Definition: solvrdlg.hxx:26
@ SOLVERR_NOFORMULA
Definition: solvrdlg.hxx:27
@ SOLVERR_INVALID_VARIABLE
Definition: solvrdlg.hxx:29
@ SOLVERR_INVALID_FORMULA
Definition: solvrdlg.hxx:28
@ SOLVERR_INVALID_TARGETVALUE
Definition: solvrdlg.hxx:30
sal_Int16 SCTAB
Definition: types.hxx:22