KiCad PCB EDA Suite
Loading...
Searching...
No Matches
DRC_RE_BITMAP_OVERLAY_PANEL Class Referenceabstract

Base class for DRC rule editor panels that display input fields overlaid on a bitmap. More...

#include <drc_re_bitmap_overlay_panel.h>

Inheritance diagram for DRC_RE_BITMAP_OVERLAY_PANEL:
DRC_RULE_EDITOR_CONTENT_PANEL_BASE DRC_RE_ABS_LENGTH_TWO_OVERLAY_PANEL DRC_RE_ALLOWED_ORIENTATION_OVERLAY_PANEL DRC_RE_BOOL_INPUT_OVERLAY_PANEL DRC_RE_MATCHED_LENGTH_DIFF_PAIR_OVERLAY_PANEL DRC_RE_MIN_TXT_HT_TH_OVERLAY_PANEL DRC_RE_NUMERIC_INPUT_OVERLAY_PANEL DRC_RE_PERMITTED_LAYERS_OVERLAY_PANEL DRC_RE_ROUTING_DIFF_PAIR_OVERLAY_PANEL DRC_RE_ROUTING_WIDTH_OVERLAY_PANEL DRC_RE_VIAS_UNDER_SMD_OVERLAY_PANEL DRC_RE_VIA_STYLE_OVERLAY_PANEL

Public Member Functions

 DRC_RE_BITMAP_OVERLAY_PANEL (wxWindow *aParent, wxWindowID aId=wxID_ANY)
 
virtual ~DRC_RE_BITMAP_OVERLAY_PANEL ()
 
void SetBackgroundBitmap (BITMAPS aBitmap)
 Set the background bitmap for this panel.
 
bool TransferDataToWindow () override
 
bool TransferDataFromWindow () override
 
void ClearFieldErrors ()
 Clear error indicators from all fields.
 
void ShowFieldError (const wxString &aFieldId)
 Show an error indicator on the specified field.
 
virtual bool ValidateInputs (int *aErrorCount, wxString *aValidationMessage)=0
 
virtual wxString GenerateRule (const RULE_GENERATION_CONTEXT &aContext)=0
 

Protected Member Functions

template<typename T>
DRC_RE_OVERLAY_FIELDAddControl (const wxString &aId, const DRC_RE_FIELD_POSITION &aPosition, T *aControl)
 Position a control on the bitmap overlay.
 
template<typename T>
DRC_RE_OVERLAY_FIELDAddField (const wxString &aId, const DRC_RE_FIELD_POSITION &aPosition, long aStyle=0)
 Create and position a field control on the bitmap overlay.
 
template<typename T>
DRC_RE_OVERLAY_FIELDAddFieldWithUnits (const wxString &aId, const DRC_RE_FIELD_POSITION &aPosition, UNIT_BINDER *aUnitBinder, long aStyle=0)
 Create and position a field control with unit binding.
 
DRC_RE_OVERLAY_FIELDAddCheckbox (const wxString &aId, const DRC_RE_FIELD_POSITION &aPosition)
 Create and position a checkbox control on the bitmap overlay.
 
void LoadBitmap ()
 Load the appropriate bitmap variant for the current theme and DPI.
 
void PositionFields ()
 Position all fields based on the current scale factor.
 
void SetupFieldStyling (wxControl *aControl)
 Apply transparent styling to a field control.
 

Protected Attributes

wxBitmap m_bitmap
 Current background bitmap.
 
BITMAPS m_bitmapId
 BITMAPS enum value.
 
wxSize m_logicalBitmapSize
 Bitmap size in logical pixels.
 
std::vector< std::unique_ptr< DRC_RE_OVERLAY_FIELD > > m_fields
 All overlay fields.
 
std::map< wxString, DRC_RE_OVERLAY_FIELD * > m_fieldIdMap
 Field ID to field lookup.
 

Private Member Functions

void OnPaint (wxPaintEvent &aEvent)
 
void OnDPIChanged (wxDPIChangedEvent &aEvent)
 
void OnThemeChange (wxSysColourChangedEvent &aEvent)
 
void OnFieldFocus (wxFocusEvent &aEvent)
 
void OnFieldBlur (wxFocusEvent &aEvent)
 
void PositionLabel (DRC_RE_OVERLAY_FIELD *aField)
 Position a label relative to its field control based on the label position setting.
 
void PositionPrefixLabel (DRC_RE_OVERLAY_FIELD *aField)
 Position a prefix label to the left of its field control.
 

Detailed Description

Base class for DRC rule editor panels that display input fields overlaid on a bitmap.

This class provides infrastructure for creating constraint editor panels where input fields are precisely positioned over explanatory constraint diagrams. The bitmap serves as a visual guide showing what each field value represents.

Derived classes should:

Definition at line 56 of file drc_re_bitmap_overlay_panel.h.

Constructor & Destructor Documentation

◆ DRC_RE_BITMAP_OVERLAY_PANEL()

◆ ~DRC_RE_BITMAP_OVERLAY_PANEL()

DRC_RE_BITMAP_OVERLAY_PANEL::~DRC_RE_BITMAP_OVERLAY_PANEL ( )
virtual

Definition at line 47 of file drc_re_bitmap_overlay_panel.cpp.

Member Function Documentation

◆ AddCheckbox()

DRC_RE_OVERLAY_FIELD * DRC_RE_BITMAP_OVERLAY_PANEL::AddCheckbox ( const wxString & aId,
const DRC_RE_FIELD_POSITION & aPosition )
protected

Create and position a checkbox control on the bitmap overlay.

Checkbox label is set to label text specified in aPosition

Parameters
aIdString identifier for this checkbox.
aPositionPosition specification in 1x bitmap coordinates.
Returns
Pointer to the created field wrapper.

Definition at line 262 of file drc_re_bitmap_overlay_panel.cpp.

References AddControl(), DRC_RE_FIELD_POSITION::labelPosition, DRC_RE_FIELD_POSITION::labelText, and LEFT.

Referenced by DRC_RE_ALLOWED_ORIENTATION_OVERLAY_PANEL::DRC_RE_ALLOWED_ORIENTATION_OVERLAY_PANEL(), DRC_RE_BOOL_INPUT_OVERLAY_PANEL::DRC_RE_BOOL_INPUT_OVERLAY_PANEL(), DRC_RE_MATCHED_LENGTH_DIFF_PAIR_OVERLAY_PANEL::DRC_RE_MATCHED_LENGTH_DIFF_PAIR_OVERLAY_PANEL(), DRC_RE_PERMITTED_LAYERS_OVERLAY_PANEL::DRC_RE_PERMITTED_LAYERS_OVERLAY_PANEL(), and DRC_RE_VIAS_UNDER_SMD_OVERLAY_PANEL::DRC_RE_VIAS_UNDER_SMD_OVERLAY_PANEL().

◆ AddControl()

template<typename T>
DRC_RE_OVERLAY_FIELD * DRC_RE_BITMAP_OVERLAY_PANEL::AddControl ( const wxString & aId,
const DRC_RE_FIELD_POSITION & aPosition,
T * aControl )
protected

Position a control on the bitmap overlay.

Parameters
aIdString identifier for this field (used for error display and lookup).
aPositionPosition specification in 1x bitmap coordinates.
aControlThe control to use
Returns
Pointer to the created field wrapper.

Definition at line 185 of file drc_re_bitmap_overlay_panel.h.

References DRC_RE_OVERLAY_FIELD::CreateLabels(), DRC_RE_OVERLAY_FIELD::HasLabel(), DRC_RE_OVERLAY_FIELD::HasPrefixLabel(), m_fieldIdMap, m_fields, PositionLabel(), PositionPrefixLabel(), SetupFieldStyling(), T, DRC_RE_FIELD_POSITION::xEnd, DRC_RE_FIELD_POSITION::xStart, and DRC_RE_FIELD_POSITION::yCenter.

Referenced by AddCheckbox(), AddField(), and DRC_RE_VIA_STYLE_OVERLAY_PANEL::DRC_RE_VIA_STYLE_OVERLAY_PANEL().

◆ AddField()

template<typename T>
DRC_RE_OVERLAY_FIELD * DRC_RE_BITMAP_OVERLAY_PANEL::AddField ( const wxString & aId,
const DRC_RE_FIELD_POSITION & aPosition,
long aStyle = 0 )
protected

Create and position a field control on the bitmap overlay.

Template Parameters
TThe wxWindow-derived control type to create.
Parameters
aIdString identifier for this field (used for error display and lookup).
aPositionPosition specification in 1x bitmap coordinates.
aStyleWindow style flags passed to the control constructor
Returns
Pointer to the created field wrapper.

Definition at line 221 of file drc_re_bitmap_overlay_panel.h.

References AddControl(), and T.

Referenced by AddFieldWithUnits(), DRC_RE_ABS_LENGTH_TWO_OVERLAY_PANEL::DRC_RE_ABS_LENGTH_TWO_OVERLAY_PANEL(), DRC_RE_MATCHED_LENGTH_DIFF_PAIR_OVERLAY_PANEL::DRC_RE_MATCHED_LENGTH_DIFF_PAIR_OVERLAY_PANEL(), DRC_RE_MIN_TXT_HT_TH_OVERLAY_PANEL::DRC_RE_MIN_TXT_HT_TH_OVERLAY_PANEL(), DRC_RE_NUMERIC_INPUT_OVERLAY_PANEL::DRC_RE_NUMERIC_INPUT_OVERLAY_PANEL(), DRC_RE_ROUTING_DIFF_PAIR_OVERLAY_PANEL::DRC_RE_ROUTING_DIFF_PAIR_OVERLAY_PANEL(), DRC_RE_ROUTING_WIDTH_OVERLAY_PANEL::DRC_RE_ROUTING_WIDTH_OVERLAY_PANEL(), and DRC_RE_VIA_STYLE_OVERLAY_PANEL::DRC_RE_VIA_STYLE_OVERLAY_PANEL().

◆ AddFieldWithUnits()

template<typename T>
DRC_RE_OVERLAY_FIELD * DRC_RE_BITMAP_OVERLAY_PANEL::AddFieldWithUnits ( const wxString & aId,
const DRC_RE_FIELD_POSITION & aPosition,
UNIT_BINDER * aUnitBinder,
long aStyle = 0 )
protected

Create and position a field control with unit binding.

Template Parameters
TThe wxWindow-derived control type to create.
Parameters
aIdString identifier for this field.
aPositionPosition specification in 1x bitmap coordinates.
aUnitBinderUNIT_BINDER to associate with this field for unit conversion.
aStyleWindow style flags passed to the control constructor
Returns
Pointer to the created field wrapper.

Definition at line 232 of file drc_re_bitmap_overlay_panel.h.

References AddField(), and DRC_RE_OVERLAY_FIELD::SetUnitBinder().

◆ ClearFieldErrors()

void DRC_RE_BITMAP_OVERLAY_PANEL::ClearFieldErrors ( )

Clear error indicators from all fields.

Definition at line 246 of file drc_re_bitmap_overlay_panel.cpp.

References m_fields.

Referenced by DRC_RE_NUMERIC_INPUT_OVERLAY_PANEL::ValidateInputs().

◆ GenerateRule()

◆ LoadBitmap()

void DRC_RE_BITMAP_OVERLAY_PANEL::LoadBitmap ( )
protected

Load the appropriate bitmap variant for the current theme and DPI.

Definition at line 109 of file drc_re_bitmap_overlay_panel.cpp.

References INVALID_BITMAP, KiBitmapBundle(), m_bitmap, m_bitmapId, and m_logicalBitmapSize.

Referenced by OnDPIChanged(), OnThemeChange(), and SetBackgroundBitmap().

◆ OnDPIChanged()

void DRC_RE_BITMAP_OVERLAY_PANEL::OnDPIChanged ( wxDPIChangedEvent & aEvent)
private

Definition at line 66 of file drc_re_bitmap_overlay_panel.cpp.

References LoadBitmap(), and PositionFields().

Referenced by DRC_RE_BITMAP_OVERLAY_PANEL().

◆ OnFieldBlur()

void DRC_RE_BITMAP_OVERLAY_PANEL::OnFieldBlur ( wxFocusEvent & aEvent)
private

Definition at line 91 of file drc_re_bitmap_overlay_panel.cpp.

Referenced by SetupFieldStyling().

◆ OnFieldFocus()

void DRC_RE_BITMAP_OVERLAY_PANEL::OnFieldFocus ( wxFocusEvent & aEvent)
private

Definition at line 83 of file drc_re_bitmap_overlay_panel.cpp.

Referenced by SetupFieldStyling().

◆ OnPaint()

void DRC_RE_BITMAP_OVERLAY_PANEL::OnPaint ( wxPaintEvent & aEvent)
private

Definition at line 52 of file drc_re_bitmap_overlay_panel.cpp.

References m_bitmap.

Referenced by DRC_RE_BITMAP_OVERLAY_PANEL().

◆ OnThemeChange()

void DRC_RE_BITMAP_OVERLAY_PANEL::OnThemeChange ( wxSysColourChangedEvent & aEvent)
private

Definition at line 75 of file drc_re_bitmap_overlay_panel.cpp.

References LoadBitmap().

Referenced by DRC_RE_BITMAP_OVERLAY_PANEL().

◆ PositionFields()

◆ PositionLabel()

void DRC_RE_BITMAP_OVERLAY_PANEL::PositionLabel ( DRC_RE_OVERLAY_FIELD * aField)
private

Position a label relative to its field control based on the label position setting.

Parameters
aFieldThe overlay field containing the label to position.

Definition at line 161 of file drc_re_bitmap_overlay_panel.cpp.

References BOTTOM, GAP, DRC_RE_OVERLAY_FIELD::GetControl(), DRC_RE_OVERLAY_FIELD::GetLabel(), DRC_RE_OVERLAY_FIELD::GetPosition(), DRC_RE_FIELD_POSITION::labelPosition, LEFT, NONE, RIGHT, and TOP.

Referenced by AddControl(), and PositionFields().

◆ PositionPrefixLabel()

void DRC_RE_BITMAP_OVERLAY_PANEL::PositionPrefixLabel ( DRC_RE_OVERLAY_FIELD * aField)
private

Position a prefix label to the left of its field control.

Parameters
aFieldThe overlay field containing the prefix label to position.

Definition at line 209 of file drc_re_bitmap_overlay_panel.cpp.

References GAP, DRC_RE_OVERLAY_FIELD::GetControl(), and DRC_RE_OVERLAY_FIELD::GetPrefixLabel().

Referenced by AddControl(), and PositionFields().

◆ SetBackgroundBitmap()

◆ SetupFieldStyling()

void DRC_RE_BITMAP_OVERLAY_PANEL::SetupFieldStyling ( wxControl * aControl)
protected

Apply transparent styling to a field control.

Parameters
aControlThe control to style.

Definition at line 98 of file drc_re_bitmap_overlay_panel.cpp.

References OnFieldBlur(), and OnFieldFocus().

Referenced by AddControl().

◆ ShowFieldError()

void DRC_RE_BITMAP_OVERLAY_PANEL::ShowFieldError ( const wxString & aFieldId)

Show an error indicator on the specified field.

Parameters
aFieldIdThe string identifier of the field to highlight.

Definition at line 253 of file drc_re_bitmap_overlay_panel.cpp.

References m_fieldIdMap.

Referenced by DRC_RE_NUMERIC_INPUT_OVERLAY_PANEL::ValidateInputs().

◆ TransferDataFromWindow()

◆ TransferDataToWindow()

◆ ValidateInputs()

Member Data Documentation

◆ m_bitmap

wxBitmap DRC_RE_BITMAP_OVERLAY_PANEL::m_bitmap
protected

Current background bitmap.

Definition at line 176 of file drc_re_bitmap_overlay_panel.h.

Referenced by LoadBitmap(), OnPaint(), and SetBackgroundBitmap().

◆ m_bitmapId

BITMAPS DRC_RE_BITMAP_OVERLAY_PANEL::m_bitmapId
protected

BITMAPS enum value.

Definition at line 177 of file drc_re_bitmap_overlay_panel.h.

Referenced by DRC_RE_BITMAP_OVERLAY_PANEL(), LoadBitmap(), and SetBackgroundBitmap().

◆ m_fieldIdMap

std::map<wxString, DRC_RE_OVERLAY_FIELD*> DRC_RE_BITMAP_OVERLAY_PANEL::m_fieldIdMap
protected

Field ID to field lookup.

Definition at line 180 of file drc_re_bitmap_overlay_panel.h.

Referenced by AddControl(), and ShowFieldError().

◆ m_fields

◆ m_logicalBitmapSize

wxSize DRC_RE_BITMAP_OVERLAY_PANEL::m_logicalBitmapSize
protected

Bitmap size in logical pixels.

Definition at line 178 of file drc_re_bitmap_overlay_panel.h.

Referenced by DRC_RE_BITMAP_OVERLAY_PANEL(), LoadBitmap(), and SetBackgroundBitmap().


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