|
KiCad PCB EDA Suite
|
Specialization for wxPropertyGrid, where we have no labels and units are displayed in the editor. More...
#include <unit_binder.h>
Public Member Functions | |
| PROPERTY_EDITOR_UNIT_BINDER (EDA_DRAW_FRAME *aParent) | |
| virtual | ~PROPERTY_EDITOR_UNIT_BINDER () |
| void | SetControl (wxWindow *aControl) |
| virtual void | SetUnits (EDA_UNITS aUnits) |
| Normally not needed (as the UNIT_BINDER inherits from the parent frame), but can be used to set to DEGREES for angular controls. | |
| bool | UnitsInvariant () const |
| virtual void | SetNegativeZero () |
| virtual void | SetPrecision (int aLength) |
| Normally not needed, but can be used to set the precision when using internal units that are floats (not integers) like DEGREES or PERCENT. | |
| void | SetDataType (EDA_DATA_TYPE aDataType) |
| Used to override the datatype of the displayed property (default is DISTANCE) | |
| virtual void | SetValue (long long int aValue) |
| Set new value (in Internal Units) for the text field, taking care of units conversion. | |
| void | SetValue (const wxString &aValue) |
| virtual void | SetDoubleValue (double aValue) |
| Set new value (in Internal Units) for the text field, taking care of units conversion. | |
| virtual void | SetAngleValue (const EDA_ANGLE &aValue) |
| virtual void | ChangeValue (int aValue) |
| Set new value (in Internal Units) for the text field, taking care of units conversion WITHOUT triggering the update routine. | |
| void | ChangeValue (const wxString &aValue) |
| virtual void | ChangeDoubleValue (double aValue) |
| Set new value (in Internal Units) for the text field, taking care of units conversion WITHOUT triggering the update routine. | |
| virtual void | ChangeAngleValue (const EDA_ANGLE &aValue) |
| virtual long long int | GetValue () const |
| Return the current value in Internal Units. | |
| int | GetIntValue () const |
| virtual double | GetDoubleValue () const |
| Return the current value in Internal Units. | |
| virtual EDA_ANGLE | GetAngleValue () |
| virtual void | SetOptionsList (std::span< const long long int > aOptions) |
| Set the list of options for a combobox control. | |
| virtual void | SetDoubleOptionsList (std::span< const double > aOptions) |
| bool | IsIndeterminate () const |
| Return true if the control holds the indeterminate value (for instance, if it represents a multiple selection of differing values). | |
| bool | IsNull () const |
| Return true if the control holds no value (ie: empty string, not 0). | |
| void | SetNull () |
| virtual bool | Validate (double aMin, double aMax, EDA_UNITS aUnits=EDA_UNITS::UNSCALED) |
| Validate the control against the given range, informing the user of any errors found. | |
| void | SetLabel (const wxString &aLabel) |
| void | Enable (bool aEnable) |
| Enable/disable the label, widget and units label. | |
| void | Show (bool aShow, bool aResize=false) |
| Show/hide the label, widget and units label. | |
| ORIGIN_TRANSFORMS::COORD_TYPES_T | GetCoordType () const |
| Get the origin transforms coordinate type. | |
| void | SetCoordType (ORIGIN_TRANSFORMS::COORD_TYPES_T aCoordType) |
| Set the current origin transform mode. | |
| void | RequireEval () |
| Force the binder to evaluate the text. | |
| void | DetachFromDialogShim () |
| Sever the back-reference to the owning dialog. | |
Static Public Member Functions | |
| static RANGE_BOUND | ConvertRangeBound (const EDA_IU_SCALE &aIuScale, EDA_UNITS aBoundUnits, double aBound, EDA_UNITS aDisplayUnits, EDA_DATA_TYPE aDataType) |
Convert a range bound and format its display string honoring aDataType. | |
Protected Member Functions | |
| void | onClick (wxMouseEvent &aEvent) |
| void | onComboBox (wxCommandEvent &aEvent) |
| void | onSetFocus (wxFocusEvent &aEvent) |
| void | onKillFocus (wxFocusEvent &aEvent) |
| void | delayedFocusHandler (wxCommandEvent &aEvent) |
| void | onValueCtrlDestroyed (wxWindowDestroyEvent &aEvent) |
| void | onUnitsChanged (wxCommandEvent &aEvent) |
| double | setPrecision (double aValue, bool aValueUsesUserUnits) const |
| When m_precision > 0 truncate the value aValue to show only m_precision digits in mantissa. | |
| wxString | getTextForValue (long long int aValue) const |
| wxString | getTextForDoubleValue (double aValue) const |
Protected Attributes | |
| bool | m_bindFocusEvent |
| wxStaticText * | m_label |
| The bound widgets. | |
| wxWindow * | m_valueCtrl |
| wxWindow * | m_eventSource |
| wxStaticText * | m_unitLabel |
| Can be nullptr. | |
| const EDA_IU_SCALE * | m_iuScale |
| Currently used units. | |
| EDA_UNITS | m_units |
| bool | m_negativeZero |
| Indicates "-0" should be displayed for 0. | |
| EDA_DATA_TYPE | m_dataType |
| int | m_precision |
| 0 to 6. | |
| wxString | m_errorMessage |
| NUMERIC_EVALUATOR | m_eval |
| bool | m_allowEval |
| bool | m_needsEval |
| long | m_selStart |
| Selection start and end of the original text. | |
| long | m_selEnd |
| bool | m_unitsInValue |
| Units label should be included in value text. | |
| ORIGIN_TRANSFORMS & | m_originTransforms |
| A reference to an ORIGIN_TRANSFORMS object. | |
| ORIGIN_TRANSFORMS::COORD_TYPES_T | m_coordType |
| Type of coordinate for display origin transforms. | |
| DIALOG_SHIM * | m_dialogShim |
| The dialog this binder registered itself with, or nullptr if it isn't owned by a dialog. | |
Specialization for wxPropertyGrid, where we have no labels and units are displayed in the editor.
Definition at line 328 of file unit_binder.h.
| PROPERTY_EDITOR_UNIT_BINDER::PROPERTY_EDITOR_UNIT_BINDER | ( | EDA_DRAW_FRAME * | aParent | ) |
Definition at line 765 of file unit_binder.cpp.
References UNIT_BINDER::m_unitsInValue, and UNIT_BINDER::UNIT_BINDER().
|
virtual |
Definition at line 772 of file unit_binder.cpp.
|
virtualinherited |
Definition at line 546 of file unit_binder.cpp.
References ChangeDoubleValue(), m_coordType, and m_originTransforms.
|
virtualinherited |
Set new value (in Internal Units) for the text field, taking care of units conversion WITHOUT triggering the update routine.
The value will be truncated according to the precision set by SetPrecision() (if not <= 0).
Definition at line 540 of file unit_binder.cpp.
References ChangeValue(), and getTextForDoubleValue().
Referenced by ChangeAngleValue().
|
inherited |
Definition at line 552 of file unit_binder.cpp.
References DEGREES, EDA_UNIT_UTILS::GetLabel(), m_allowEval, m_dataType, m_eval, m_unitLabel, m_units, m_unitsInValue, m_valueCtrl, and PERCENT.
|
virtualinherited |
Set new value (in Internal Units) for the text field, taking care of units conversion WITHOUT triggering the update routine.
Definition at line 534 of file unit_binder.cpp.
References ChangeValue(), and getTextForValue().
Referenced by ChangeDoubleValue(), and ChangeValue().
|
staticinherited |
Convert a range bound and format its display string honoring aDataType.
Area and volume bounds scale by the square and cube of the unit factor respectively, and the display string carries the matching data type (so it reads "mm²" rather than "mm"). Kept static and free of any control state so the range validation math can be exercised without constructing wx widgets.
| aIuScale | the internal units scale. |
| aBoundUnits | the units the bound is expressed in (UNSCALED for internal units). |
| aBound | the bound value in aBoundUnits. |
| aDisplayUnits | the units the display string should be rendered in. |
| aDataType | the measurement type governing conversion power and units label. |
Definition at line 371 of file unit_binder.cpp.
References AREA, EDA_UNIT_UTILS::UI::FromUserUnit(), EDA_UNIT_UTILS::UI::StringFromValue(), UNITLESS, and VOLUME.
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and Validate().
|
protectedinherited |
Definition at line 361 of file unit_binder.cpp.
References DisplayErrorMessage(), m_errorMessage, and m_valueCtrl.
Referenced by UNIT_BINDER(), and ~UNIT_BINDER().
|
inlineinherited |
Sever the back-reference to the owning dialog.
Called by DIALOG_SHIM while it is being destroyed so that this binder, which outlives the dialog's member teardown, does not call back into the half-destroyed dialog.
Definition at line 321 of file unit_binder.h.
References m_dialogShim.
|
inherited |
Enable/disable the label, widget and units label.
Definition at line 723 of file unit_binder.cpp.
References m_label, m_unitLabel, and m_valueCtrl.
|
virtualinherited |
Definition at line 660 of file unit_binder.cpp.
References DEGREES_T, GetDoubleValue(), m_coordType, and m_originTransforms.
|
inlineinherited |
Get the origin transforms coordinate type.
Definition at line 229 of file unit_binder.h.
References m_coordType.
|
virtualinherited |
Return the current value in Internal Units.
The returned value will be truncated according to the precision set by SetPrecision() (if not <= 0).
Definition at line 629 of file unit_binder.cpp.
References EDA_UNIT_UTILS::UI::DoubleValueFromString(), m_coordType, m_dataType, m_eval, m_iuScale, m_needsEval, m_originTransforms, m_units, m_valueCtrl, and setPrecision().
Referenced by GetAngleValue().
|
inlineinherited |
Definition at line 131 of file unit_binder.h.
References GetValue().
Referenced by onUnitsChanged().
|
protectedinherited |
Definition at line 521 of file unit_binder.cpp.
References m_coordType, m_dataType, m_iuScale, m_negativeZero, m_originTransforms, m_units, setPrecision(), and EDA_UNIT_UTILS::UI::StringFromValue().
Referenced by ChangeDoubleValue(), and SetDoubleOptionsList().
|
protectedinherited |
Definition at line 508 of file unit_binder.cpp.
References m_coordType, m_dataType, m_iuScale, m_negativeZero, m_originTransforms, m_units, setPrecision(), and EDA_UNIT_UTILS::UI::StringFromValue().
Referenced by ChangeValue(), and SetOptionsList().
|
virtualinherited |
Return the current value in Internal Units.
Definition at line 580 of file unit_binder.cpp.
References m_coordType, m_dataType, m_eval, m_iuScale, m_needsEval, m_originTransforms, m_units, m_valueCtrl, and EDA_UNIT_UTILS::UI::ValueFromString().
Referenced by GetIntValue(), WX_MULTI_ENTRY_DIALOG::GetValues(), and Validate().
|
inherited |
Return true if the control holds the indeterminate value (for instance, if it represents a multiple selection of differing values).
Definition at line 690 of file unit_binder.cpp.
References INDETERMINATE_ACTION, INDETERMINATE_STATE, and m_valueCtrl.
Referenced by onUnitsChanged().
|
inherited |
Return true if the control holds no value (ie: empty string, not 0).
Definition at line 701 of file unit_binder.cpp.
References m_valueCtrl.
|
protectedinherited |
Definition at line 221 of file unit_binder.cpp.
References INDETERMINATE_ACTION, INDETERMINATE_STATE, and m_valueCtrl.
Referenced by PROPERTY_EDITOR_UNIT_BINDER::SetControl(), and ~UNIT_BINDER().
|
protectedinherited |
Definition at line 237 of file unit_binder.cpp.
References m_dataType, m_iuScale, m_units, m_valueCtrl, SetValue(), and EDA_UNIT_UTILS::UI::ValueFromString().
Referenced by ~UNIT_BINDER().
|
protectedinherited |
Definition at line 306 of file unit_binder.cpp.
References DEGREES, EDA_UNIT_UTILS::GetLabel(), m_allowEval, m_dataType, m_eval, m_needsEval, m_selEnd, m_selStart, m_units, m_unitsInValue, m_valueCtrl, and PERCENT.
Referenced by PROPERTY_EDITOR_UNIT_BINDER::SetControl(), and ~UNIT_BINDER().
|
protectedinherited |
Definition at line 275 of file unit_binder.cpp.
References INDETERMINATE_ACTION, INDETERMINATE_STATE, m_allowEval, m_eval, m_needsEval, m_selEnd, m_selStart, and m_valueCtrl.
Referenced by PROPERTY_EDITOR_UNIT_BINDER::SetControl(), and ~UNIT_BINDER().
|
protectedinherited |
Definition at line 182 of file unit_binder.cpp.
References GetIntValue(), UNITS_PROVIDER::GetIuScale(), UNITS_PROVIDER::GetUserUnits(), IsIndeterminate(), m_dataType, m_iuScale, m_units, m_valueCtrl, SetOptionsList(), SetUnits(), SetValue(), UnitsInvariant(), and EDA_UNIT_UTILS::UI::ValueFromString().
Referenced by UNIT_BINDER(), and ~UNIT_BINDER().
|
protectedinherited |
Definition at line 255 of file unit_binder.cpp.
References m_dialogShim, and m_valueCtrl.
Referenced by ~UNIT_BINDER().
|
inlineinherited |
Force the binder to evaluate the text.
Definition at line 245 of file unit_binder.h.
References m_needsEval.
|
virtualinherited |
Definition at line 473 of file unit_binder.cpp.
References m_coordType, m_originTransforms, and SetDoubleValue().
| void PROPERTY_EDITOR_UNIT_BINDER::SetControl | ( | wxWindow * | aControl | ) |
Definition at line 776 of file unit_binder.cpp.
References UNIT_BINDER::m_valueCtrl, UNIT_BINDER::onClick(), UNIT_BINDER::onKillFocus(), UNIT_BINDER::onSetFocus(), and SetControl().
Referenced by SetControl().
|
inlineinherited |
Set the current origin transform mode.
Definition at line 237 of file unit_binder.h.
References m_coordType.
|
inherited |
Used to override the datatype of the displayed property (default is DISTANCE)
| aDataType | is the datatype to use for the units text display |
Definition at line 173 of file unit_binder.cpp.
References EDA_UNIT_UTILS::GetLabel(), m_dataType, m_unitLabel, and m_units.
|
virtualinherited |
Definition at line 678 of file unit_binder.cpp.
References getTextForDoubleValue(), and m_valueCtrl.
|
virtualinherited |
Set new value (in Internal Units) for the text field, taking care of units conversion.
The value will be truncated according to the precision set by SetPrecision() (if not <= 0).
Definition at line 460 of file unit_binder.cpp.
References m_coordType, m_dataType, m_iuScale, m_negativeZero, m_originTransforms, m_units, setPrecision(), SetValue(), and EDA_UNIT_UTILS::UI::StringFromValue().
Referenced by SetAngleValue().
|
inherited |
Definition at line 717 of file unit_binder.cpp.
References m_label.
|
inlinevirtualinherited |
Definition at line 75 of file unit_binder.h.
References m_negativeZero.
|
inherited |
Definition at line 710 of file unit_binder.cpp.
References m_valueCtrl.
|
virtualinherited |
Set the list of options for a combobox control.
Doesn't affect the value of the control.
Definition at line 666 of file unit_binder.cpp.
References getTextForValue(), and m_valueCtrl.
Referenced by DIALOG_OUTSET_ITEMS::DIALOG_OUTSET_ITEMS(), and onUnitsChanged().
|
virtualinherited |
Normally not needed, but can be used to set the precision when using internal units that are floats (not integers) like DEGREES or PERCENT.
Not used for integer values in IU
| aLength | is the number of digits for mantissa (0 = no truncation) must be <= 6 |
Definition at line 167 of file unit_binder.cpp.
References m_precision.
|
protectedinherited |
When m_precision > 0 truncate the value aValue to show only m_precision digits in mantissa.
used in GetDoubleValue to return a rounded value. Mainly for units set to DEGREES.
| aValue | is the value to modify. |
| aValueUsesUserUnits | must be set to true if aValue is a user value, and set to false if aValue is a internal unit value. |
Definition at line 609 of file unit_binder.cpp.
References EDA_UNIT_UTILS::UI::FromUserUnit(), m_iuScale, m_precision, m_units, scale, and EDA_UNIT_UTILS::UI::ToUserUnit().
Referenced by GetDoubleValue(), getTextForDoubleValue(), getTextForValue(), and SetDoubleValue().
|
virtualinherited |
Normally not needed (as the UNIT_BINDER inherits from the parent frame), but can be used to set to DEGREES for angular controls.
Definition at line 155 of file unit_binder.cpp.
References EDA_UNIT_UTILS::GetLabel(), m_dataType, m_eval, m_unitLabel, and m_units.
Referenced by onUnitsChanged().
|
inherited |
Definition at line 479 of file unit_binder.cpp.
References DEGREES, EDA_UNIT_UTILS::GetLabel(), m_allowEval, m_dataType, m_eval, m_unitLabel, m_units, m_unitsInValue, m_valueCtrl, and PERCENT.
|
virtualinherited |
Set new value (in Internal Units) for the text field, taking care of units conversion.
Definition at line 448 of file unit_binder.cpp.
References m_coordType, m_dataType, m_iuScale, m_negativeZero, m_originTransforms, m_units, SetValue(), and EDA_UNIT_UTILS::UI::StringFromValue().
Referenced by onComboBox(), onUnitsChanged(), SetDoubleValue(), and SetValue().
|
inherited |
Show/hide the label, widget and units label.
| aShow | called for the Show() routine in wx. |
| aResize | if true, the element will be sized to 0 on hide and -1 on show. |
Definition at line 735 of file unit_binder.cpp.
References m_label, m_unitLabel, and m_valueCtrl.
|
inlineinherited |
Definition at line 70 of file unit_binder.h.
References DEGREES, m_units, PERCENT, and UNSCALED.
Referenced by onUnitsChanged().
|
virtualinherited |
Validate the control against the given range, informing the user of any errors found.
| aMin | a minimum value for validation. |
| aMax | a maximum value for validation. |
| aUnits | the units of the min/max parameters (use UNSCALED for internal units). |
Definition at line 401 of file unit_binder.cpp.
References _, ConvertRangeBound(), UNIT_BINDER::RANGE_BOUND::displayText, GetValue(), INDETERMINATE_ACTION, INDETERMINATE_STATE, UNIT_BINDER::RANGE_BOUND::internalUnits, m_dataType, m_errorMessage, m_iuScale, m_label, m_units, m_valueCtrl, and valueDescriptionFromLabel().
Referenced by validateMM().
|
protectedinherited |
Definition at line 297 of file unit_binder.h.
Referenced by ChangeValue(), onKillFocus(), onSetFocus(), SetValue(), and UNIT_BINDER().
|
protectedinherited |
Definition at line 279 of file unit_binder.h.
Referenced by UNIT_BINDER(), and ~UNIT_BINDER().
|
protectedinherited |
Type of coordinate for display origin transforms.
Definition at line 309 of file unit_binder.h.
Referenced by ChangeAngleValue(), GetAngleValue(), GetCoordType(), GetDoubleValue(), getTextForDoubleValue(), getTextForValue(), GetValue(), SetAngleValue(), SetCoordType(), SetDoubleValue(), SetValue(), and UNIT_BINDER().
|
protectedinherited |
Definition at line 291 of file unit_binder.h.
Referenced by ChangeValue(), GetDoubleValue(), getTextForDoubleValue(), getTextForValue(), GetValue(), onComboBox(), onKillFocus(), onUnitsChanged(), SetDataType(), SetDoubleValue(), SetUnits(), SetValue(), SetValue(), UNIT_BINDER(), and Validate().
|
protectedinherited |
The dialog this binder registered itself with, or nullptr if it isn't owned by a dialog.
Definition at line 312 of file unit_binder.h.
Referenced by DetachFromDialogShim(), onValueCtrlDestroyed(), UNIT_BINDER(), and ~UNIT_BINDER().
|
protectedinherited |
Definition at line 294 of file unit_binder.h.
Referenced by delayedFocusHandler(), and Validate().
|
mutableprotectedinherited |
Definition at line 296 of file unit_binder.h.
Referenced by ChangeValue(), GetDoubleValue(), GetValue(), onKillFocus(), onSetFocus(), SetUnits(), SetValue(), and UNIT_BINDER().
|
protectedinherited |
Definition at line 284 of file unit_binder.h.
Referenced by UNIT_BINDER(), and ~UNIT_BINDER().
|
protectedinherited |
Currently used units.
Definition at line 288 of file unit_binder.h.
Referenced by GetDoubleValue(), getTextForDoubleValue(), getTextForValue(), GetValue(), onComboBox(), onUnitsChanged(), SetDoubleValue(), setPrecision(), SetValue(), UNIT_BINDER(), and Validate().
|
protectedinherited |
The bound widgets.
Definition at line 282 of file unit_binder.h.
Referenced by Enable(), SetLabel(), Show(), UNIT_BINDER(), and Validate().
|
protectedinherited |
Definition at line 298 of file unit_binder.h.
Referenced by GetDoubleValue(), GetValue(), onKillFocus(), onSetFocus(), RequireEval(), and UNIT_BINDER().
|
protectedinherited |
Indicates "-0" should be displayed for 0.
Definition at line 290 of file unit_binder.h.
Referenced by getTextForDoubleValue(), getTextForValue(), SetDoubleValue(), SetNegativeZero(), SetValue(), and UNIT_BINDER().
|
protectedinherited |
A reference to an ORIGIN_TRANSFORMS object.
Definition at line 306 of file unit_binder.h.
Referenced by ChangeAngleValue(), GetAngleValue(), GetDoubleValue(), getTextForDoubleValue(), getTextForValue(), GetValue(), SetAngleValue(), SetDoubleValue(), SetValue(), and UNIT_BINDER().
|
protectedinherited |
0 to 6.
Definition at line 292 of file unit_binder.h.
Referenced by SetPrecision(), setPrecision(), and UNIT_BINDER().
|
protectedinherited |
Definition at line 301 of file unit_binder.h.
Referenced by onKillFocus(), onSetFocus(), and UNIT_BINDER().
|
protectedinherited |
Selection start and end of the original text.
Definition at line 300 of file unit_binder.h.
Referenced by onKillFocus(), onSetFocus(), and UNIT_BINDER().
|
protectedinherited |
Can be nullptr.
Definition at line 285 of file unit_binder.h.
Referenced by ChangeValue(), Enable(), SetDataType(), SetUnits(), SetValue(), Show(), and UNIT_BINDER().
|
protectedinherited |
Definition at line 289 of file unit_binder.h.
Referenced by ChangeValue(), GetDoubleValue(), getTextForDoubleValue(), getTextForValue(), GetValue(), onComboBox(), onKillFocus(), onUnitsChanged(), SetDataType(), SetDoubleValue(), setPrecision(), SetUnits(), SetValue(), SetValue(), UNIT_BINDER(), UnitsInvariant(), and Validate().
|
protectedinherited |
Units label should be included in value text.
Definition at line 303 of file unit_binder.h.
Referenced by ChangeValue(), onKillFocus(), PROPERTY_EDITOR_UNIT_BINDER::PROPERTY_EDITOR_UNIT_BINDER(), SetValue(), and UNIT_BINDER().
|
protectedinherited |
Definition at line 283 of file unit_binder.h.
Referenced by ChangeValue(), delayedFocusHandler(), Enable(), GetDoubleValue(), GetValue(), IsIndeterminate(), IsNull(), onClick(), onComboBox(), onKillFocus(), onSetFocus(), onUnitsChanged(), onValueCtrlDestroyed(), PROPERTY_EDITOR_UNIT_BINDER::SetControl(), SetDoubleOptionsList(), SetNull(), SetOptionsList(), SetValue(), Show(), UNIT_BINDER(), Validate(), and ~UNIT_BINDER().