|
KiCad PCB EDA Suite
|
A class that operates over a list of BOUND_CONTROLs and keeps them in sync with a PCB_SHAPE. More...
Public Member Functions | |
| GEOM_SYNCER (PCB_SHAPE &aShape, std::vector< BOUND_CONTROL > &aBoundCtrls) | |
| void | BindCtrls (size_t aFrom, size_t aTo, std::function< void()> aCb) |
| void | SetShape (PCB_SHAPE &aShape) |
| virtual bool | Validate (wxArrayString &aErrs) const |
Protected Member Functions | |
| virtual void | updateAll ()=0 |
| wxTextCtrl * | GetCtrl (size_t aIndex) const |
| int | GetIntValue (size_t aIndex) const |
| EDA_ANGLE | GetAngleValue (size_t aIndex) const |
| void | ChangeValue (size_t aIndex, int aValue) |
| void | ChangeAngleValue (size_t aIndex, const EDA_ANGLE &aValue) |
| PCB_SHAPE & | GetShape () |
| const PCB_SHAPE & | GetShape () const |
Private Attributes | |
| PCB_SHAPE & | m_shape |
| std::vector< BOUND_CONTROL > & | m_boundCtrls |
A class that operates over a list of BOUND_CONTROLs and keeps them in sync with a PCB_SHAPE.
Exactly how that is done depends on the kind of shape.
Inherit from this class and implement the relvant update functions and listen for changes on the right controls for each mode (e.g. edit line segment by endpoints).
Definition at line 59 of file pcbnew/dialogs/dialog_shape_properties.cpp.
|
inline |
Definition at line 62 of file pcbnew/dialogs/dialog_shape_properties.cpp.
References m_boundCtrls, and m_shape.
Referenced by ARC_GEOM_SYNCER::ARC_GEOM_SYNCER(), BEZIER_GEOM_SYNCER::BEZIER_GEOM_SYNCER(), CIRCLE_GEOM_SYNCER::CIRCLE_GEOM_SYNCER(), ELLIPSE_ARC_GEOM_SYNCER::ELLIPSE_ARC_GEOM_SYNCER(), ELLIPSE_GEOM_SYNCER::ELLIPSE_GEOM_SYNCER(), LINE_GEOM_SYNCER::LINE_GEOM_SYNCER(), and RECTANGLE_GEOM_SYNCER::RECTANGLE_GEOM_SYNCER().
|
inline |
Definition at line 68 of file pcbnew/dialogs/dialog_shape_properties.cpp.
References m_boundCtrls.
Referenced by ARC_GEOM_SYNCER::ARC_GEOM_SYNCER(), BEZIER_GEOM_SYNCER::BEZIER_GEOM_SYNCER(), CIRCLE_GEOM_SYNCER::CIRCLE_GEOM_SYNCER(), ELLIPSE_ARC_GEOM_SYNCER::ELLIPSE_ARC_GEOM_SYNCER(), ELLIPSE_GEOM_SYNCER::ELLIPSE_GEOM_SYNCER(), LINE_GEOM_SYNCER::LINE_GEOM_SYNCER(), and RECTANGLE_GEOM_SYNCER::RECTANGLE_GEOM_SYNCER().
|
inlineprotected |
Definition at line 118 of file pcbnew/dialogs/dialog_shape_properties.cpp.
References m_boundCtrls.
Referenced by ELLIPSE_ARC_GEOM_SYNCER::updateAll(), ELLIPSE_GEOM_SYNCER::updateAll(), ARC_GEOM_SYNCER::updateCRAA(), ARC_GEOM_SYNCER::updateCSA(), and LINE_GEOM_SYNCER::updatePolar().
|
inlineprotected |
Definition at line 112 of file pcbnew/dialogs/dialog_shape_properties.cpp.
References m_boundCtrls.
Referenced by ELLIPSE_ARC_GEOM_SYNCER::updateAll(), ELLIPSE_GEOM_SYNCER::updateAll(), BEZIER_GEOM_SYNCER::updateBezier(), CIRCLE_GEOM_SYNCER::updateCenterPoint(), CIRCLE_GEOM_SYNCER::updateCenterRadius(), RECTANGLE_GEOM_SYNCER::updateCenterSize(), RECTANGLE_GEOM_SYNCER::updateCorners(), RECTANGLE_GEOM_SYNCER::updateCornerSize(), ARC_GEOM_SYNCER::updateCRAA(), ARC_GEOM_SYNCER::updateCSA(), LINE_GEOM_SYNCER::updateEnds(), LINE_GEOM_SYNCER::updatePolar(), ARC_GEOM_SYNCER::updateSME(), and LINE_GEOM_SYNCER::updateStartMidpoint().
|
inlineprotected |
Definition at line 106 of file pcbnew/dialogs/dialog_shape_properties.cpp.
References m_boundCtrls.
Referenced by ELLIPSE_ARC_GEOM_SYNCER::OnChange(), ELLIPSE_GEOM_SYNCER::OnChange(), ARC_GEOM_SYNCER::OnCRAAChange(), ARC_GEOM_SYNCER::OnCSAChange(), LINE_GEOM_SYNCER::OnPolarChange(), and ARC_GEOM_SYNCER::Validate().
|
inlineprotected |
Definition at line 94 of file pcbnew/dialogs/dialog_shape_properties.cpp.
References m_boundCtrls.
|
inlineprotected |
Definition at line 100 of file pcbnew/dialogs/dialog_shape_properties.cpp.
References m_boundCtrls.
Referenced by RECTANGLE_GEOM_SYNCER::GetRectangleHeight(), RECTANGLE_GEOM_SYNCER::GetRectangleWidth(), BEZIER_GEOM_SYNCER::OnBezierChange(), CIRCLE_GEOM_SYNCER::OnCenterPointChange(), CIRCLE_GEOM_SYNCER::OnCenterRadiusChange(), RECTANGLE_GEOM_SYNCER::OnCenterSizeChange(), ELLIPSE_ARC_GEOM_SYNCER::OnChange(), ELLIPSE_GEOM_SYNCER::OnChange(), RECTANGLE_GEOM_SYNCER::OnCornersChange(), RECTANGLE_GEOM_SYNCER::OnCornerSizeChange(), ARC_GEOM_SYNCER::OnCRAAChange(), ARC_GEOM_SYNCER::OnCSAChange(), LINE_GEOM_SYNCER::OnEndsChange(), LINE_GEOM_SYNCER::OnPolarChange(), ARC_GEOM_SYNCER::OnSMEChange(), LINE_GEOM_SYNCER::OnStartMidpointChange(), ARC_GEOM_SYNCER::Validate(), CIRCLE_GEOM_SYNCER::Validate(), ELLIPSE_ARC_GEOM_SYNCER::Validate(), ELLIPSE_GEOM_SYNCER::Validate(), and RECTANGLE_GEOM_SYNCER::Validate().
|
inlineprotected |
Definition at line 124 of file pcbnew/dialogs/dialog_shape_properties.cpp.
References m_shape.
Referenced by ARC_GEOM_SYNCER::ARC_GEOM_SYNCER(), BEZIER_GEOM_SYNCER::BEZIER_GEOM_SYNCER(), CIRCLE_GEOM_SYNCER::CIRCLE_GEOM_SYNCER(), ELLIPSE_ARC_GEOM_SYNCER::ELLIPSE_ARC_GEOM_SYNCER(), ELLIPSE_GEOM_SYNCER::ELLIPSE_GEOM_SYNCER(), LINE_GEOM_SYNCER::LINE_GEOM_SYNCER(), BEZIER_GEOM_SYNCER::OnBezierChange(), CIRCLE_GEOM_SYNCER::OnCenterPointChange(), CIRCLE_GEOM_SYNCER::OnCenterRadiusChange(), RECTANGLE_GEOM_SYNCER::OnCenterSizeChange(), ELLIPSE_ARC_GEOM_SYNCER::OnChange(), ELLIPSE_GEOM_SYNCER::OnChange(), RECTANGLE_GEOM_SYNCER::OnCornersChange(), RECTANGLE_GEOM_SYNCER::OnCornerSizeChange(), ARC_GEOM_SYNCER::OnCRAAChange(), ARC_GEOM_SYNCER::OnCSAChange(), LINE_GEOM_SYNCER::OnEndsChange(), LINE_GEOM_SYNCER::OnPolarChange(), ARC_GEOM_SYNCER::OnSMEChange(), LINE_GEOM_SYNCER::OnStartMidpointChange(), RECTANGLE_GEOM_SYNCER::RECTANGLE_GEOM_SYNCER(), ELLIPSE_ARC_GEOM_SYNCER::updateAll(), ELLIPSE_GEOM_SYNCER::updateAll(), BEZIER_GEOM_SYNCER::updateBezier(), CIRCLE_GEOM_SYNCER::updateCenterPoint(), CIRCLE_GEOM_SYNCER::updateCenterRadius(), RECTANGLE_GEOM_SYNCER::updateCenterSize(), RECTANGLE_GEOM_SYNCER::updateCorners(), RECTANGLE_GEOM_SYNCER::updateCornerSize(), ARC_GEOM_SYNCER::updateCRAA(), ARC_GEOM_SYNCER::updateCSA(), LINE_GEOM_SYNCER::updateEnds(), LINE_GEOM_SYNCER::updatePolar(), ARC_GEOM_SYNCER::updateSME(), and LINE_GEOM_SYNCER::updateStartMidpoint().
|
inlineprotected |
Definition at line 126 of file pcbnew/dialogs/dialog_shape_properties.cpp.
References m_shape.
|
inline |
Definition at line 83 of file pcbnew/dialogs/dialog_shape_properties.cpp.
References m_shape, and updateAll().
|
protectedpure virtual |
Implemented in ARC_GEOM_SYNCER, BEZIER_GEOM_SYNCER, CIRCLE_GEOM_SYNCER, ELLIPSE_ARC_GEOM_SYNCER, ELLIPSE_GEOM_SYNCER, LINE_GEOM_SYNCER, and RECTANGLE_GEOM_SYNCER.
Referenced by SetShape().
|
inlinevirtual |
Reimplemented in ARC_GEOM_SYNCER, CIRCLE_GEOM_SYNCER, ELLIPSE_ARC_GEOM_SYNCER, ELLIPSE_GEOM_SYNCER, and RECTANGLE_GEOM_SYNCER.
Definition at line 89 of file pcbnew/dialogs/dialog_shape_properties.cpp.
|
private |
Definition at line 130 of file pcbnew/dialogs/dialog_shape_properties.cpp.
Referenced by BindCtrls(), ChangeAngleValue(), ChangeValue(), GEOM_SYNCER(), GetAngleValue(), GetCtrl(), and GetIntValue().
|
private |
Definition at line 129 of file pcbnew/dialogs/dialog_shape_properties.cpp.
Referenced by GEOM_SYNCER(), GetShape(), GetShape(), and SetShape().