25#ifndef PANEL_ASSIGN_COMPONENT_CLASSES_H 
   26#define PANEL_ASSIGN_COMPONENT_CLASSES_H 
   31#include <unordered_set> 
   55                                    std::shared_ptr<COMPONENT_CLASS_SETTINGS> aSettings,
 
   67    void ImportSettingsFrom( 
const std::shared_ptr<COMPONENT_CLASS_SETTINGS>& aOtherSettings );
 
 
  137                    wxTextEntry* aPrimary, wxTextEntry* aSecondary = 
nullptr ) :
 
 
 
  240    void onMenu( wxCommandEvent& aEvent );
 
 
  288    void onMenu( wxCommandEvent& aEvent );
 
 
CONDITION_TYPE
A condition match type.
 
CONDITIONS_OPERATOR
Whether conditions are applied with OR or AND logic.
 
Class used to provide a unified interface from condition panels Handles determining the type of condi...
 
virtual void SetSecondaryField(const wxString &aVal)
Sets the primary data member for the condition (e.g.
 
CONDITION_DATA(const COMPONENT_CLASS_ASSIGNMENT_DATA::CONDITION_TYPE aCondition, wxTextEntry *aPrimary, wxTextEntry *aSecondary=nullptr)
 
virtual wxString GetPrimaryField() const
Gets the primary data member for the condition (e.g. Reference, Side)
 
COMPONENT_CLASS_ASSIGNMENT_DATA::CONDITION_TYPE m_conditionType
The type of condition being referenced.
 
virtual COMPONENT_CLASS_ASSIGNMENT_DATA::CONDITION_TYPE GetConditionType() const
Gets the type of condition (e.g. Reference, Side) this data represents.
 
virtual ~CONDITION_DATA()
 
virtual wxString GetSecondaryField() const
Gets the primary data member for the condition (e.g. FOOTPRITNT field value)
 
wxTextEntry * m_secondaryCtrl
The Secondary data field in the condition panel.
 
wxTextEntry * m_primaryCtrl
The primary data field in the condition panel.
 
virtual void SetPrimaryField(const wxString &aVal)
Sets the primary data member for the condition (e.g. Reference, Side)
 
Dialog helper object to sit in the inheritance tree between wxDialog and any class written by wxFormB...
 
PANEL_ASSIGN_COMPONENT_CLASSES_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
 
wxBoxSizer * m_assignmentsList
The list of all currently present component class assignments.
 
bool Validate() override
Validates that all assignment rules can compile successfully.
 
std::vector< wxString > m_sheetNames
All sheet names present on the board.
 
std::vector< wxString > m_fieldNames
All footprint fields names present on the board.
 
const std::vector< wxString > & GetFieldNames() const
Returns names of all fields present in footprints.
 
std::vector< PANEL_COMPONENT_CLASS_ASSIGNMENT * > m_assignments
Vector of all currently displayed assignment rules.
 
void OnAddAssignmentClick(wxCommandEvent &event) override
Adds a new component class assignment rule.
 
void RemoveAssignment(PANEL_COMPONENT_CLASS_ASSIGNMENT *aPanel)
Removes a given component class assignment rule.
 
PCB_EDIT_FRAME * m_frame
The active edit frame.
 
PANEL_COMPONENT_CLASS_ASSIGNMENT * addAssignment()
Adds a new component class assignment rule.
 
bool TransferDataFromWindow() override
Saves the component class assignments to the board settings.
 
const std::vector< wxString > & GetSelectionRefs() const
Returns references for all currently selected footprints.
 
DIALOG_SHIM * m_dlg
The parent dialog.
 
std::shared_ptr< COMPONENT_CLASS_SETTINGS > m_componentClassSettings
The active settings object.
 
PCB_EDIT_FRAME * GetFrame() const
Gets the active edit frame.
 
PANEL_ASSIGN_COMPONENT_CLASSES(wxWindow *aParentWindow, PCB_EDIT_FRAME *aFrame, std::shared_ptr< COMPONENT_CLASS_SETTINGS > aSettings, DIALOG_SHIM *aDlg)
 
~PANEL_ASSIGN_COMPONENT_CLASSES() override
 
const std::vector< wxString > & GetSheetNames() const
Returns names of all sheets present in footprints.
 
std::vector< wxString > m_selectionRefs
All currently selected footprint references.
 
void ImportSettingsFrom(const std::shared_ptr< COMPONENT_CLASS_SETTINGS > &aOtherSettings)
Loads component class assignments from the given settings object.
 
bool TransferDataToWindow() override
Loads current component class assignments from the board settings.
 
void scrollToAssignment(const PANEL_COMPONENT_CLASS_ASSIGNMENT *aAssignment) const
Scrolls the panel to specified assignment rule.
 
PANEL_COMPONENT_CLASS_ASSIGNMENT_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxBORDER_SUNKEN|wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
 
Panel which configures a set of conditions for a component class assignment rule.
 
void OnDeleteAssignmentClick(wxCommandEvent &event) override
Deletes this component class assignment rule.
 
std::vector< CONDITION_DATA * > m_matches
All match conditions for this component class assignment rule.
 
COMPONENT_CLASS_ASSIGNMENT_DATA GenerateAssignmentData() const
Converts the UI representation in to the internal assignment data representation.
 
void SetComponentClass(const wxString &aComponentClass) const
Sets the resulting component class for this assignment.
 
void OnHighlightItemsClick(wxCommandEvent &event) override
Highlights footprints matching this set of conditions.
 
COMPONENT_CLASS_ASSIGNMENT_DATA::CONDITIONS_OPERATOR GetConditionsOperator() const
Gets the boolean operator applied to all assignment conditions.
 
PANEL_ASSIGN_COMPONENT_CLASSES * m_parentPanel
The top-level configuration panel which owns this assignment rule.
 
const std::vector< CONDITION_DATA * > & GetConditions() const
 
CONDITION_DATA * AddCondition(COMPONENT_CLASS_ASSIGNMENT_DATA::CONDITION_TYPE aCondition)
Adds a condition to this component class assignment rule.
 
void SetConditionsOperator(COMPONENT_CLASS_ASSIGNMENT_DATA::CONDITIONS_OPERATOR aCondition) const
Sets the boolean operator applied to all assignment conditions.
 
wxStaticBoxSizer * m_matchesList
The sizer containing match condition panels.
 
const wxString GetComponentClass() const
Gets the resulting component class for this assignment.
 
PANEL_COMPONENT_CLASS_ASSIGNMENT(wxWindow *aParent, PANEL_ASSIGN_COMPONENT_CLASSES *aPanelParent, DIALOG_SHIM *aDlg)
 
void RemoveCondition(wxPanel *aMatch)
Removes a given condition from this component class assignment rule (note: called from the child cond...
 
void OnAddConditionClick(wxCommandEvent &event) override
Adds a match condition to this component class assignment rule.
 
void onMenu(wxCommandEvent &aEvent)
Handles add match condition popup menu selections.
 
ADD_MATCH_POPUP
IDs for match type popup menu.
 
DIALOG_SHIM * m_dlg
The parent configuration dialog.
 
~PANEL_COMPONENT_CLASS_ASSIGNMENT()
 
std::unordered_set< COMPONENT_CLASS_ASSIGNMENT_DATA::CONDITION_TYPE > m_conditionTypes
Set containing all currently configured match condition types.
 
PANEL_COMPONENT_CLASS_CONDITION_CUSTOM_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxBORDER_SUNKEN|wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
 
PANEL_COMPONENT_CLASS_ASSIGNMENT * m_panelParent
 
void OnDeleteConditionClick(wxCommandEvent &event) override
 
PANEL_COMPONENT_CLASS_CONDITION_CUSTOM(wxWindow *aParent)
 
PANEL_COMPONENT_CLASS_CONDITION_FIELD_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxBORDER_SUNKEN|wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
 
PANEL_COMPONENT_CLASS_ASSIGNMENT * m_panelParent
 
PANEL_COMPONENT_CLASS_CONDITION_FIELD(wxWindow *aParent)
 
void OnDeleteConditionClick(wxCommandEvent &event) override
 
void SetFieldsList(const std::vector< wxString > &aFields)
 
PANEL_COMPONENT_CLASS_CONDITION_REFERENCE_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxBORDER_SUNKEN|wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
 
std::vector< wxString > m_selectionRefs
 
void OnDeleteConditionClick(wxCommandEvent &event) override
 
PANEL_COMPONENT_CLASS_CONDITION_REFERENCE(wxWindow *aParent)
 
void onMenu(wxCommandEvent &aEvent)
Handles import references popup menu selections.
 
PANEL_COMPONENT_CLASS_ASSIGNMENT * m_panelParent
 
void SetSelectionRefs(const std::vector< wxString > &aRefs)
 
IMPORT_POPUP_IDS
IDs for match type popup menu.
 
void OnImportRefsClick(wxCommandEvent &event) override
 
PANEL_COMPONENT_CLASS_CONDITION_ROTATION_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxBORDER_SUNKEN|wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
 
void OnDeleteConditionClick(wxCommandEvent &event) override
 
PANEL_COMPONENT_CLASS_ASSIGNMENT * m_panelParent
 
PANEL_COMPONENT_CLASS_CONDITION_ROTATION(wxWindow *aParent)
 
PANEL_COMPONENT_CLASS_CONDITION_SHEET_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxBORDER_SUNKEN|wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
 
void OnDeleteConditionClick(wxCommandEvent &event) override
 
void SetSheetsList(const std::vector< wxString > &aSheets)
 
PANEL_COMPONENT_CLASS_CONDITION_SHEET(wxWindow *aParent)
 
PANEL_COMPONENT_CLASS_ASSIGNMENT * m_panelParent
 
PANEL_COMPONENT_CLASS_CONDITION_SIDE_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxBORDER_SUNKEN|wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
 
PANEL_COMPONENT_CLASS_CONDITION_SIDE(wxWindow *aParent)
 
void OnDeleteConditionClick(wxCommandEvent &event) override
 
PANEL_COMPONENT_CLASS_ASSIGNMENT * m_panelParent
 
The main frame for Pcbnew.