KiCad PCB EDA Suite
Loading...
Searching...
No Matches
DRC_RE_CONDITION_ROW_PANEL Class Reference

A single condition row in the condition group panel. More...

#include <drc_re_condition_row_panel.h>

Inheritance diagram for DRC_RE_CONDITION_ROW_PANEL:

Public Types

enum class  OBJECT_TARGET { OBJECT_A , OBJECT_B }
 
enum class  CONDITION_TYPE {
  ANY = 0 , NET , NETCLASS , WITHIN_AREA ,
  CUSTOM
}
 

Public Member Functions

 DRC_RE_CONDITION_ROW_PANEL (wxWindow *aParent, BOARD *aBoard, bool aShowObjectSelector)
 
void SetObjectTarget (OBJECT_TARGET aTarget)
 
OBJECT_TARGET GetObjectTarget () const
 
void SetConditionType (CONDITION_TYPE aType)
 
CONDITION_TYPE GetConditionType () const
 
void SetValue (const wxString &aValue)
 
wxString GetValue () const
 
bool ParseExpression (const wxString &aExpr)
 Parse a condition expression and set the row's state.
 
wxString BuildExpression () const
 Build a condition expression from the row's current state.
 
void SetDeleteCallback (std::function< void()> aCallback)
 
void SetChangeCallback (std::function< void()> aCallback)
 
void ShowDeleteButton (bool aShow)
 
bool HasCustomQuerySelected () const
 

Private Member Functions

void onObjectChoice (wxCommandEvent &aEvent)
 
void onConditionChoice (wxCommandEvent &aEvent)
 
void onDeleteClicked (wxCommandEvent &aEvent)
 
void updateVisibility ()
 

Private Attributes

bool m_showObjectSelector
 
wxChoice * m_objectChoice
 
wxChoice * m_conditionChoice
 
NET_SELECTORm_netSelector
 
NETCLASS_SELECTORm_netclassSelector
 
AREA_SELECTORm_areaSelector
 
wxStyledTextCtrl * m_customQueryCtrl
 
wxBitmapButton * m_deleteBtn
 
wxBoxSizer * m_mainSizer
 
wxBoxSizer * m_contentSizer
 
wxBoxSizer * m_rowSizer
 
std::function< void()> m_deleteCallback
 
std::function< void()> m_changeCallback
 

Detailed Description

A single condition row in the condition group panel.

Each row contains:

  • Object selector (A/B) for two-object constraints
  • Condition type dropdown (Any, Net, Netclass, Area, Custom)
  • Value selector appropriate for the condition type
  • Delete button

Definition at line 47 of file drc_re_condition_row_panel.h.

Member Enumeration Documentation

◆ CONDITION_TYPE

Enumerator
ANY 
NET 
NETCLASS 
WITHIN_AREA 
CUSTOM 

Definition at line 56 of file drc_re_condition_row_panel.h.

◆ OBJECT_TARGET

Enumerator
OBJECT_A 
OBJECT_B 

Definition at line 50 of file drc_re_condition_row_panel.h.

Constructor & Destructor Documentation

◆ DRC_RE_CONDITION_ROW_PANEL()

DRC_RE_CONDITION_ROW_PANEL::DRC_RE_CONDITION_ROW_PANEL ( wxWindow * aParent,
BOARD * aBoard,
bool aShowObjectSelector )

Member Function Documentation

◆ BuildExpression()

wxString DRC_RE_CONDITION_ROW_PANEL::BuildExpression ( ) const

Build a condition expression from the row's current state.

Returns
The condition expression (e.g., "A.NetName == 'VCC'")

Definition at line 276 of file drc_re_condition_row_panel.cpp.

References CUSTOM, GetConditionType(), GetObjectTarget(), m_areaSelector, m_customQueryCtrl, m_netclassSelector, m_netSelector, m_showObjectSelector, NET, NETCLASS, OBJECT_A, and WITHIN_AREA.

◆ GetConditionType()

DRC_RE_CONDITION_ROW_PANEL::CONDITION_TYPE DRC_RE_CONDITION_ROW_PANEL::GetConditionType ( ) const

◆ GetObjectTarget()

DRC_RE_CONDITION_ROW_PANEL::OBJECT_TARGET DRC_RE_CONDITION_ROW_PANEL::GetObjectTarget ( ) const

Definition at line 140 of file drc_re_condition_row_panel.cpp.

References m_objectChoice.

Referenced by BuildExpression().

◆ GetValue()

wxString DRC_RE_CONDITION_ROW_PANEL::GetValue ( ) const

◆ HasCustomQuerySelected()

bool DRC_RE_CONDITION_ROW_PANEL::HasCustomQuerySelected ( ) const

Definition at line 330 of file drc_re_condition_row_panel.cpp.

References CUSTOM, and GetConditionType().

◆ onConditionChoice()

void DRC_RE_CONDITION_ROW_PANEL::onConditionChoice ( wxCommandEvent & aEvent)
private

Definition at line 343 of file drc_re_condition_row_panel.cpp.

References m_changeCallback, and updateVisibility().

Referenced by DRC_RE_CONDITION_ROW_PANEL().

◆ onDeleteClicked()

void DRC_RE_CONDITION_ROW_PANEL::onDeleteClicked ( wxCommandEvent & aEvent)
private

Definition at line 352 of file drc_re_condition_row_panel.cpp.

References m_deleteCallback.

Referenced by DRC_RE_CONDITION_ROW_PANEL().

◆ onObjectChoice()

void DRC_RE_CONDITION_ROW_PANEL::onObjectChoice ( wxCommandEvent & aEvent)
private

Definition at line 336 of file drc_re_condition_row_panel.cpp.

References m_changeCallback.

Referenced by DRC_RE_CONDITION_ROW_PANEL().

◆ ParseExpression()

bool DRC_RE_CONDITION_ROW_PANEL::ParseExpression ( const wxString & aExpr)

Parse a condition expression and set the row's state.

Parameters
aExprThe expression to parse (e.g., "A.NetName == 'VCC'")
Returns
true if the expression was successfully parsed

Definition at line 207 of file drc_re_condition_row_panel.cpp.

References ANY, CUSTOM, m_areaSelector, m_customQueryCtrl, m_netclassSelector, m_netSelector, NET, NETCLASS, OBJECT_A, OBJECT_B, SetConditionType(), SetObjectTarget(), TRACE_COND, and WITHIN_AREA.

◆ SetChangeCallback()

void DRC_RE_CONDITION_ROW_PANEL::SetChangeCallback ( std::function< void()> aCallback)
inline

◆ SetConditionType()

void DRC_RE_CONDITION_ROW_PANEL::SetConditionType ( CONDITION_TYPE aType)

Definition at line 146 of file drc_re_condition_row_panel.cpp.

References m_conditionChoice, and updateVisibility().

Referenced by ParseExpression().

◆ SetDeleteCallback()

void DRC_RE_CONDITION_ROW_PANEL::SetDeleteCallback ( std::function< void()> aCallback)
inline

◆ SetObjectTarget()

void DRC_RE_CONDITION_ROW_PANEL::SetObjectTarget ( OBJECT_TARGET aTarget)

Definition at line 134 of file drc_re_condition_row_panel.cpp.

References m_objectChoice.

Referenced by ParseExpression().

◆ SetValue()

void DRC_RE_CONDITION_ROW_PANEL::SetValue ( const wxString & aValue)

◆ ShowDeleteButton()

void DRC_RE_CONDITION_ROW_PANEL::ShowDeleteButton ( bool aShow)

Definition at line 323 of file drc_re_condition_row_panel.cpp.

References m_deleteBtn.

◆ updateVisibility()

void DRC_RE_CONDITION_ROW_PANEL::updateVisibility ( )
private

Member Data Documentation

◆ m_areaSelector

AREA_SELECTOR* DRC_RE_CONDITION_ROW_PANEL::m_areaSelector
private

◆ m_changeCallback

std::function<void()> DRC_RE_CONDITION_ROW_PANEL::m_changeCallback
private

◆ m_conditionChoice

wxChoice* DRC_RE_CONDITION_ROW_PANEL::m_conditionChoice
private

◆ m_contentSizer

wxBoxSizer* DRC_RE_CONDITION_ROW_PANEL::m_contentSizer
private

Definition at line 113 of file drc_re_condition_row_panel.h.

Referenced by DRC_RE_CONDITION_ROW_PANEL().

◆ m_customQueryCtrl

wxStyledTextCtrl* DRC_RE_CONDITION_ROW_PANEL::m_customQueryCtrl
private

◆ m_deleteBtn

wxBitmapButton* DRC_RE_CONDITION_ROW_PANEL::m_deleteBtn
private

Definition at line 111 of file drc_re_condition_row_panel.h.

Referenced by DRC_RE_CONDITION_ROW_PANEL(), and ShowDeleteButton().

◆ m_deleteCallback

std::function<void()> DRC_RE_CONDITION_ROW_PANEL::m_deleteCallback
private

Definition at line 116 of file drc_re_condition_row_panel.h.

Referenced by onDeleteClicked(), and SetDeleteCallback().

◆ m_mainSizer

wxBoxSizer* DRC_RE_CONDITION_ROW_PANEL::m_mainSizer
private

Definition at line 112 of file drc_re_condition_row_panel.h.

Referenced by DRC_RE_CONDITION_ROW_PANEL().

◆ m_netclassSelector

NETCLASS_SELECTOR* DRC_RE_CONDITION_ROW_PANEL::m_netclassSelector
private

◆ m_netSelector

NET_SELECTOR* DRC_RE_CONDITION_ROW_PANEL::m_netSelector
private

◆ m_objectChoice

wxChoice* DRC_RE_CONDITION_ROW_PANEL::m_objectChoice
private

◆ m_rowSizer

wxBoxSizer* DRC_RE_CONDITION_ROW_PANEL::m_rowSizer
private

Definition at line 114 of file drc_re_condition_row_panel.h.

Referenced by DRC_RE_CONDITION_ROW_PANEL().

◆ m_showObjectSelector

bool DRC_RE_CONDITION_ROW_PANEL::m_showObjectSelector
private

Definition at line 103 of file drc_re_condition_row_panel.h.

Referenced by BuildExpression(), and DRC_RE_CONDITION_ROW_PANEL().


The documentation for this class was generated from the following files: