KiCad PCB EDA Suite
Loading...
Searching...
No Matches
drc_re_validator_numeric_ctrl.cpp
Go to the documentation of this file.
1
/*
2
* This program source code file is part of KiCad, a free EDA CAD application.
3
*
4
* Copyright (C) 2024 KiCad Developers, see AUTHORS.txt for contributors.
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, you may find one here:
18
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
19
* or you may search the http://www.gnu.org website for the version 2 license,
20
* or you may write to the Free Software Foundation, Inc.,
21
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
22
*/
23
24
#include "
drc_re_validator_numeric_ctrl.h
"
25
26
27
VALIDATOR_NUMERIC_CTRL::VALIDATOR_NUMERIC_CTRL
(
bool
aCanBeZero,
bool
aIntegerOnly ) :
28
m_isIntegerOnly
( aIntegerOnly ),
29
m_canBeZero
( aCanBeZero ),
30
m_validationState
(
VALIDATION_STATE
::
Valid
)
31
{
32
}
33
34
35
wxObject*
VALIDATOR_NUMERIC_CTRL::Clone
()
const
36
{
37
return
new
VALIDATOR_NUMERIC_CTRL
();
38
}
39
40
41
bool
VALIDATOR_NUMERIC_CTRL::Validate
( wxWindow* aParent )
42
{
43
wxTextCtrl* textCtrl = wxDynamicCast( GetWindow(), wxTextCtrl );
44
45
if
( !textCtrl )
46
{
47
m_validationState
=
VALIDATION_STATE::InValidCtrl
;
48
return
false
;
49
}
50
51
wxString value = textCtrl->GetValue();
52
53
if
( value.IsEmpty() )
54
{
55
m_validationState
=
VALIDATION_STATE::Empty
;
56
return
false
;
57
}
58
59
long
intVal;
60
double
floatVal;
61
62
if
(
m_isIntegerOnly
&& !value.ToLong( &intVal ) )
63
{
64
m_validationState
=
VALIDATION_STATE::NotInteger
;
65
return
false
;
66
}
67
else
if
( !
m_isIntegerOnly
&& !value.ToDouble( &floatVal ) )
68
{
69
m_validationState
=
VALIDATION_STATE::NotNumeric
;
70
return
false
;
71
}
72
73
if
(
m_isIntegerOnly
&& !
m_canBeZero
&& value.ToLong( &intVal ) && intVal <= 0 )
74
{
75
m_validationState
=
VALIDATION_STATE::NotGreaterThanZero
;
76
return
false
;
77
}
78
else
if
( !
m_isIntegerOnly
&& !
m_canBeZero
&& value.ToDouble( &floatVal ) && floatVal <= 0.0 )
79
{
80
m_validationState
=
VALIDATION_STATE::NotGreaterThanZero
;
81
return
false
;
82
}
83
84
m_validationState
=
VALIDATION_STATE::Valid
;
85
return
true
;
86
}
87
88
89
VALIDATOR_NUMERIC_CTRL::VALIDATION_STATE
VALIDATOR_NUMERIC_CTRL::GetValidationState
()
const
90
{
91
return
m_validationState
;
92
}
VALIDATOR_NUMERIC_CTRL::Validate
virtual bool Validate(wxWindow *aParent) override
Definition
drc_re_validator_numeric_ctrl.cpp:41
VALIDATOR_NUMERIC_CTRL::VALIDATOR_NUMERIC_CTRL
VALIDATOR_NUMERIC_CTRL(bool aCanBeZero=false, bool aIntegerOnly=false)
Definition
drc_re_validator_numeric_ctrl.cpp:27
VALIDATOR_NUMERIC_CTRL::VALIDATION_STATE
VALIDATION_STATE
Definition
drc_re_validator_numeric_ctrl.h:39
VALIDATOR_NUMERIC_CTRL::VALIDATION_STATE::Valid
@ Valid
Definition
drc_re_validator_numeric_ctrl.h:41
VALIDATOR_NUMERIC_CTRL::VALIDATION_STATE::NotInteger
@ NotInteger
Definition
drc_re_validator_numeric_ctrl.h:44
VALIDATOR_NUMERIC_CTRL::VALIDATION_STATE::NotGreaterThanZero
@ NotGreaterThanZero
Definition
drc_re_validator_numeric_ctrl.h:45
VALIDATOR_NUMERIC_CTRL::VALIDATION_STATE::NotNumeric
@ NotNumeric
Definition
drc_re_validator_numeric_ctrl.h:43
VALIDATOR_NUMERIC_CTRL::VALIDATION_STATE::Empty
@ Empty
Definition
drc_re_validator_numeric_ctrl.h:42
VALIDATOR_NUMERIC_CTRL::VALIDATION_STATE::InValidCtrl
@ InValidCtrl
Definition
drc_re_validator_numeric_ctrl.h:40
VALIDATOR_NUMERIC_CTRL::m_isIntegerOnly
bool m_isIntegerOnly
Definition
drc_re_validator_numeric_ctrl.h:57
VALIDATOR_NUMERIC_CTRL::m_canBeZero
bool m_canBeZero
Definition
drc_re_validator_numeric_ctrl.h:58
VALIDATOR_NUMERIC_CTRL::GetValidationState
VALIDATION_STATE GetValidationState() const
Definition
drc_re_validator_numeric_ctrl.cpp:89
VALIDATOR_NUMERIC_CTRL::Clone
virtual wxObject * Clone() const override
Definition
drc_re_validator_numeric_ctrl.cpp:35
VALIDATOR_NUMERIC_CTRL::m_validationState
VALIDATION_STATE m_validationState
Definition
drc_re_validator_numeric_ctrl.h:59
drc_re_validator_numeric_ctrl.h
src
pcbnew
drc
rule_editor
drc_re_validator_numeric_ctrl.cpp
Generated on Sun Feb 1 2026 00:08:31 for KiCad PCB EDA Suite by
1.13.2