|
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 67 of file pcbnew/dialogs/dialog_shape_properties.cpp.
|
inline |
Definition at line 70 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 76 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 126 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::updateCSA(), and LINE_GEOM_SYNCER::updatePolar().
|
inlineprotected |
Definition at line 120 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::updateCSA(), LINE_GEOM_SYNCER::updateEnds(), LINE_GEOM_SYNCER::updatePolar(), ARC_GEOM_SYNCER::updateSME(), and LINE_GEOM_SYNCER::updateStartMidpoint().
|
inlineprotected |
Definition at line 114 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::OnCSAChange(), LINE_GEOM_SYNCER::OnPolarChange(), and ARC_GEOM_SYNCER::Validate().
|
inlineprotected |
Definition at line 102 of file pcbnew/dialogs/dialog_shape_properties.cpp.
References m_boundCtrls.
|
inlineprotected |
Definition at line 108 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::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 132 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::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::updateCSA(), LINE_GEOM_SYNCER::updateEnds(), LINE_GEOM_SYNCER::updatePolar(), ARC_GEOM_SYNCER::updateSME(), and LINE_GEOM_SYNCER::updateStartMidpoint().
|
inlineprotected |
Definition at line 134 of file pcbnew/dialogs/dialog_shape_properties.cpp.
References m_shape.
|
inline |
Definition at line 91 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 97 of file pcbnew/dialogs/dialog_shape_properties.cpp.
|
private |
Definition at line 138 of file pcbnew/dialogs/dialog_shape_properties.cpp.
Referenced by BindCtrls(), ChangeAngleValue(), ChangeValue(), GEOM_SYNCER(), GetAngleValue(), GetCtrl(), and GetIntValue().
|
private |
Definition at line 137 of file pcbnew/dialogs/dialog_shape_properties.cpp.
Referenced by GEOM_SYNCER(), GetShape(), GetShape(), and SetShape().