KiCad PCB EDA Suite
DIALOG_CREATE_ARRAY Class Reference

#include <dialog_create_array.h>

Inheritance diagram for DIALOG_CREATE_ARRAY:
DIALOG_CREATE_ARRAY_BASE DIALOG_SHIM KIWAY_HOLDER

Public Types

enum  HOLDER_TYPE { DIALOG , FRAME , PANEL }
 

Public Member Functions

 DIALOG_CREATE_ARRAY (PCB_BASE_FRAME *aParent, std::unique_ptr< ARRAY_OPTIONS > &aOptions, bool enableNumbering, const wxPoint &aOrigPos)
 Construct a new dialog. More...
 
void SetInitialFocus (wxWindow *aWindow)
 Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown. More...
 
int ShowQuasiModal ()
 
void EndQuasiModal (int retCode)
 
bool IsQuasiModal () const
 
bool Show (bool show) override
 
bool Enable (bool enable) override
 
void OnPaint (wxPaintEvent &event)
 
void OnModify ()
 
void SetPosition (const wxPoint &aNewPosition)
 Force the position of the dialog to a new position. More...
 
EDA_UNITS GetUserUnits () const
 
void SetupStandardButtons (std::map< int, wxString > aLabels={})
 
HOLDER_TYPE GetType () const
 
KIWAYKiway () const
 Return a reference to the KIWAY that this object has an opportunity to participate in. More...
 
bool HasKiway () const
 Safety check before asking for the Kiway reference. More...
 
PROJECTPrj () const
 Return a reference to the PROJECT associated with this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 It is only used for debugging, since "this" is not a wxWindow*. More...
 

Static Public Member Functions

static bool IsCtrl (int aChar, const wxKeyEvent &e)
 
static bool IsShiftCtrl (int aChar, const wxKeyEvent &e)
 

Protected Member Functions

virtual void OnClose (wxCloseEvent &event)
 
void finishDialogSettings ()
 In all dialogs, we must call the same functions to fix minimal dlg size, the default position and perhaps some others to fix a few issues depending on Windows Managers this helper function does these calls. More...
 
void setSizeInDU (int x, int y)
 Set the dialog to the given dimensions in "dialog units". More...
 
int horizPixelsFromDU (int x) const
 Convert an integer number of dialog units to pixels, horizontally. More...
 
int vertPixelsFromDU (int y) const
 Convert an integer number of dialog units to pixels, vertically. More...
 
void resetSize ()
 Clear the existing dialog size and position. More...
 
virtual void OnCharHook (wxKeyEvent &aEvt)
 

Protected Attributes

wxNotebook * m_gridTypeNotebook
 
wxPanel * m_gridPanel
 
wxStaticText * m_labelNx
 
TEXT_CTRL_EVALm_entryNx
 
wxStaticText * m_labelNy
 
TEXT_CTRL_EVALm_entryNy
 
wxStaticText * m_labelDx
 
wxTextCtrl * m_entryDx
 
wxStaticText * m_unitLabelDx
 
wxStaticText * m_labelDy
 
wxTextCtrl * m_entryDy
 
wxStaticText * m_unitLabelDy
 
wxStaticText * m_labelOffsetX
 
wxTextCtrl * m_entryOffsetX
 
wxStaticText * m_unitLabelOffsetX
 
wxStaticText * m_labelOffsetY
 
wxTextCtrl * m_entryOffsetY
 
wxStaticText * m_unitLabelOffsetY
 
wxStaticText * m_labelStagger
 
TEXT_CTRL_EVALm_entryStagger
 
wxRadioBox * m_radioBoxGridStaggerType
 
wxPanel * m_gridPadNumberingPanel
 
wxBoxSizer * m_gridPadNumberingSizer
 
wxRadioBox * m_radioBoxGridNumberingAxis
 
wxCheckBox * m_checkBoxGridReverseNumbering
 
wxRadioBox * m_rbGridStartNumberingOpt
 
wxRadioBox * m_radioBoxGridNumberingScheme
 
wxStaticText * m_labelPriAxisNumbering
 
wxChoice * m_choicePriAxisNumbering
 
wxStaticText * m_labelSecAxisNumbering
 
wxChoice * m_choiceSecAxisNumbering
 
wxStaticText * m_labelGridNumberingOffset
 
wxTextCtrl * m_entryGridPriNumberingOffset
 
wxTextCtrl * m_entryGridSecNumberingOffset
 
wxStaticText * m_labelGridNumberingStep
 
wxTextCtrl * m_entryGridPriNumberingStep
 
wxTextCtrl * m_entryGridSecNumberingStep
 
wxPanel * m_circularPanel
 
wxStaticText * m_labelCentreX
 
wxTextCtrl * m_entryCentreX
 
wxStaticText * m_unitLabelCentreX
 
wxStaticText * m_labelCentreY
 
wxTextCtrl * m_entryCentreY
 
wxStaticText * m_unitLabelCentreY
 
wxStaticText * m_labelCircRadius
 
wxStaticText * m_valueCircRadius
 
wxStaticText * m_unitLabelCircRadius
 
wxStaticText * m_labelCircAngle
 
wxTextCtrl * m_entryCircAngle
 
wxStaticText * m_unitLabelCircAngle
 
wxStaticText * m_labelCircCount
 
TEXT_CTRL_EVALm_entryCircCount
 
wxStaticText * m_labelCircRotate
 
wxCheckBox * m_entryRotateItemsCb
 
wxPanel * m_circularPadNumberingPanel
 
wxStaticBoxSizer * m_circPadNumberingSizer
 
wxRadioBox * m_rbCircStartNumberingOpt
 
wxStaticText * m_labelCircNumbering
 
wxChoice * m_choiceCircNumbering
 
wxStaticText * m_labelCircNumStart
 
wxTextCtrl * m_entryCircNumberingStart
 
wxStaticText * m_labelCircNumStep
 
wxTextCtrl * m_entryCircNumberingStep
 
wxPanel * m_footprintReannotatePanel
 
wxRadioButton * m_radioBtnKeepRefs
 
wxRadioButton * m_radioBtnUniqueRefs
 
wxStdDialogButtonSizer * m_stdButtons
 
wxButton * m_stdButtonsOK
 
wxButton * m_stdButtonsCancel
 
EDA_UNITS m_units
 
std::string m_hash_key
 
bool m_useCalculatedSize
 
bool m_firstPaintEvent
 
wxWindow * m_initialFocusTarget
 
WX_EVENT_LOOPm_qmodal_loop
 
bool m_qmodal_showing
 
WDO_ENABLE_DISABLEm_qmodal_parent_disabler
 
EDA_BASE_FRAMEm_parentFrame
 
std::vector< wxWindow * > m_tabOrder
 
wxSize m_initialSize
 

Private Member Functions

void OnParameterChanged (wxCommandEvent &event) override
 
void setControlEnablement ()
 
void calculateCircularArrayProperties ()
 
bool TransferDataFromWindow () override
 
void OnCloseWindow (wxCloseEvent &aEvent)
 Properly handle the wxCloseEvent when in the quasimodal mode when not calling EndQuasiModal which is possible with any dialog derived from DIALOG_SHIM. More...
 
void OnButton (wxCommandEvent &aEvent)
 Properly handle the default button events when in the quasimodal mode when not calling EndQuasiModal which is possible with any dialog derived from DIALOG_SHIM. More...
 
void OnGridEditorShown (wxGridEvent &event)
 
void OnGridEditorHidden (wxGridEvent &event)
 
 DECLARE_EVENT_TABLE ()
 

Private Attributes

std::unique_ptr< ARRAY_OPTIONS > & m_settings
 The settings to re-seat on dialog OK. More...
 
const wxPoint m_originalItemPosition
 
bool m_isFootprintEditor
 
UNIT_BINDER m_hSpacing
 
UNIT_BINDER m_vSpacing
 
UNIT_BINDER m_hOffset
 
UNIT_BINDER m_vOffset
 
UNIT_BINDER m_hCentre
 
UNIT_BINDER m_vCentre
 
UNIT_BINDER m_circRadius
 
UNIT_BINDER m_circAngle
 
WIDGET_SAVE_RESTORE m_cfg_persister
 
KIWAYm_kiway
 
HOLDER_TYPE m_type
 

Detailed Description

Definition at line 40 of file dialog_create_array.h.

Member Enumeration Documentation

◆ HOLDER_TYPE

enum KIWAY_HOLDER::HOLDER_TYPE
inherited
Enumerator
DIALOG 
FRAME 
PANEL 

Definition at line 39 of file kiway_holder.h.

Constructor & Destructor Documentation

◆ DIALOG_CREATE_ARRAY()

DIALOG_CREATE_ARRAY::DIALOG_CREATE_ARRAY ( PCB_BASE_FRAME aParent,
std::unique_ptr< ARRAY_OPTIONS > &  aOptions,
bool  enableNumbering,
const wxPoint &  aOrigPos 
)

Construct a new dialog.

Parameters
aParentthe parent window
aOptionsthe options that will be re-seated when dialog is validly closed
aEnableNumberingenable pad numbering
aOrigPosoriginal item position (used for computing the circular array radius)

Definition at line 149 of file dialog_create_array.cpp.

151 :
152 DIALOG_CREATE_ARRAY_BASE( aParent ),
153 m_settings( aSettings ),
154 m_originalItemPosition( aOrigPos ),
155 m_isFootprintEditor( aIsFootprintEditor ),
165{
166 // Configure display origin transforms
173
174 // Set up numbering scheme drop downs character set strings
175 for( const auto& numData : numberingTypeData )
176 {
177 const wxString label = wxGetTranslation( numData.m_label );
178 void* clientData = (void*) &numData;
179
180 m_choicePriAxisNumbering->Append( label, clientData );
181 m_choiceSecAxisNumbering->Append( label, clientData );
182 m_choiceCircNumbering->Append( label, clientData );
183 }
184
185 m_choicePriAxisNumbering->SetSelection( 0 );
186 m_choiceSecAxisNumbering->SetSelection( 0 );
187 m_choiceCircNumbering->SetSelection( 0 );
188
190
191 // bind grid options to persister
196
200
202
205
210
215
216 // bind circular options to persister
222
227
229
232
234
235 // Run the callbacks once to process the dialog contents
238
240 Fit();
241 SetMinSize( GetSize() );
242}
DIALOG_CREATE_ARRAY_BASE(wxWindow *parent, wxWindowID id=wxID_DIALOG_CREATE_ARRAY, const wxString &title=_("Create Array"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
WIDGET_SAVE_RESTORE m_cfg_persister
std::unique_ptr< ARRAY_OPTIONS > & m_settings
The settings to re-seat on dialog OK.
const wxPoint m_originalItemPosition
void SetupStandardButtons(std::map< int, wxString > aLabels={})
virtual void SetUnits(EDA_UNITS aUnits)
Normally not needed (as the UNIT_BINDER inherits from the parent frame), but can be used to set to DE...
Definition: unit_binder.cpp:94
void SetCoordType(ORIGIN_TRANSFORMS::COORD_TYPES_T aCoordType)
Set the current origin transform mode.
Definition: unit_binder.h:184
void Add(wxRadioBox &ctrl, long &dest)
Bind a radiobox to a choice.
void RestoreConfigToControls()
Restore the values from the internally-stored references to the underlying data to each bound control...
static const std::vector< NUMBERING_LIST_DATA > numberingTypeData
List of type <--> name mappings (in order) for the numbering type list boxes.
static CREATE_ARRAY_DIALOG_ENTRIES s_arrayOptions

References ORIGIN_TRANSFORMS::ABS_X_COORD, ORIGIN_TRANSFORMS::ABS_Y_COORD, WIDGET_SAVE_RESTORE::Add(), calculateCircularArrayProperties(), DEGREES, CREATE_ARRAY_DIALOG_ENTRIES::m_ArrayTypeTab, m_cfg_persister, DIALOG_CREATE_ARRAY_BASE::m_checkBoxGridReverseNumbering, DIALOG_CREATE_ARRAY_BASE::m_choiceCircNumbering, DIALOG_CREATE_ARRAY_BASE::m_choicePriAxisNumbering, DIALOG_CREATE_ARRAY_BASE::m_choiceSecAxisNumbering, CREATE_ARRAY_DIALOG_ENTRIES::m_CircAngle, m_circAngle, CREATE_ARRAY_DIALOG_ENTRIES::m_CircCentreX, CREATE_ARRAY_DIALOG_ENTRIES::m_CircCentreY, CREATE_ARRAY_DIALOG_ENTRIES::m_CircCount, CREATE_ARRAY_DIALOG_ENTRIES::m_CircNumberingOffset, CREATE_ARRAY_DIALOG_ENTRIES::m_CircNumberingStep, CREATE_ARRAY_DIALOG_ENTRIES::m_CircNumStartSet, CREATE_ARRAY_DIALOG_ENTRIES::m_CircRotatationStep, DIALOG_CREATE_ARRAY_BASE::m_entryCircCount, DIALOG_CREATE_ARRAY_BASE::m_entryCircNumberingStart, DIALOG_CREATE_ARRAY_BASE::m_entryCircNumberingStep, DIALOG_CREATE_ARRAY_BASE::m_entryGridPriNumberingOffset, DIALOG_CREATE_ARRAY_BASE::m_entryGridPriNumberingStep, DIALOG_CREATE_ARRAY_BASE::m_entryGridSecNumberingOffset, DIALOG_CREATE_ARRAY_BASE::m_entryGridSecNumberingStep, DIALOG_CREATE_ARRAY_BASE::m_entryNx, DIALOG_CREATE_ARRAY_BASE::m_entryNy, DIALOG_CREATE_ARRAY_BASE::m_entryRotateItemsCb, DIALOG_CREATE_ARRAY_BASE::m_entryStagger, CREATE_ARRAY_DIALOG_ENTRIES::m_FootprintKeepAnnotations, CREATE_ARRAY_DIALOG_ENTRIES::m_FootprintReannotate, CREATE_ARRAY_DIALOG_ENTRIES::m_Grid2dArrayNumbering, CREATE_ARRAY_DIALOG_ENTRIES::m_GridCircNumScheme, CREATE_ARRAY_DIALOG_ENTRIES::m_GridDx, CREATE_ARRAY_DIALOG_ENTRIES::m_GridDy, CREATE_ARRAY_DIALOG_ENTRIES::m_GridNumberingAxis, CREATE_ARRAY_DIALOG_ENTRIES::m_GridNumReverseAlt, CREATE_ARRAY_DIALOG_ENTRIES::m_GridNumStartSet, CREATE_ARRAY_DIALOG_ENTRIES::m_GridNx, CREATE_ARRAY_DIALOG_ENTRIES::m_GridNy, CREATE_ARRAY_DIALOG_ENTRIES::m_GridOffsetX, CREATE_ARRAY_DIALOG_ENTRIES::m_GridOffsetY, CREATE_ARRAY_DIALOG_ENTRIES::m_GridPrimaryAxisScheme, CREATE_ARRAY_DIALOG_ENTRIES::m_GridPrimaryAxisStep, CREATE_ARRAY_DIALOG_ENTRIES::m_GridPrimaryNumOffset, CREATE_ARRAY_DIALOG_ENTRIES::m_GridSecondaryAxisScheme, CREATE_ARRAY_DIALOG_ENTRIES::m_GridSecondaryAxisStep, CREATE_ARRAY_DIALOG_ENTRIES::m_GridSecondaryNumOffset, CREATE_ARRAY_DIALOG_ENTRIES::m_GridStagger, CREATE_ARRAY_DIALOG_ENTRIES::m_GridStaggerType, DIALOG_CREATE_ARRAY_BASE::m_gridTypeNotebook, m_hCentre, m_hOffset, m_hSpacing, DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridNumberingAxis, DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridNumberingScheme, DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridStaggerType, DIALOG_CREATE_ARRAY_BASE::m_radioBtnKeepRefs, DIALOG_CREATE_ARRAY_BASE::m_radioBtnUniqueRefs, DIALOG_CREATE_ARRAY_BASE::m_rbCircStartNumberingOpt, DIALOG_CREATE_ARRAY_BASE::m_rbGridStartNumberingOpt, m_vCentre, m_vOffset, m_vSpacing, numberingTypeData, ORIGIN_TRANSFORMS::REL_X_COORD, ORIGIN_TRANSFORMS::REL_Y_COORD, WIDGET_SAVE_RESTORE::RestoreConfigToControls(), s_arrayOptions, setControlEnablement(), UNIT_BINDER::SetCoordType(), UNIT_BINDER::SetUnits(), and DIALOG_SHIM::SetupStandardButtons().

Member Function Documentation

◆ calculateCircularArrayProperties()

void DIALOG_CREATE_ARRAY::calculateCircularArrayProperties ( )
private

Definition at line 517 of file dialog_create_array.cpp.

518{
520
521 // Find the radius, etc of the circle
522 centre -= m_originalItemPosition;
523
524 m_circRadius.SetValue( int( centre.EuclideanNorm() ) );
525}
virtual long long int GetValue()
Return the current value in Internal Units.
virtual void SetValue(long long int aValue)
Set new value (in Internal Units) for the text field, taking care of units conversion.

References VECTOR2< T >::EuclideanNorm(), UNIT_BINDER::GetValue(), m_circRadius, m_hCentre, m_originalItemPosition, m_vCentre, and UNIT_BINDER::SetValue().

Referenced by DIALOG_CREATE_ARRAY(), and OnParameterChanged().

◆ DECLARE_EVENT_TABLE()

DIALOG_SHIM::DECLARE_EVENT_TABLE ( )
privateinherited

◆ Enable()

bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 319 of file dialog_shim.cpp.

320{
321 // so we can do logging of this state change:
322 return wxDialog::Enable( enable );
323}

◆ EndQuasiModal()

void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 487 of file dialog_shim.cpp.

488{
489 // Hook up validator and transfer data from controls handling so quasi-modal dialogs
490 // handle validation in the same way as other dialogs.
491 if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
492 return;
493
494 SetReturnCode( retCode );
495
496 if( !IsQuasiModal() )
497 {
498 wxFAIL_MSG( wxT( "Either DIALOG_SHIM::EndQuasiModal was called twice, or ShowQuasiModal"
499 "wasn't called" ) );
500 return;
501 }
502
503 if( m_qmodal_loop )
504 {
505 if( m_qmodal_loop->IsRunning() )
506 m_qmodal_loop->Exit( 0 );
507 else
508 m_qmodal_loop->ScheduleExit( 0 );
509
510 m_qmodal_loop = nullptr;
511 }
512
514 m_qmodal_parent_disabler = nullptr;
515
516 Show( false );
517}
bool Show(bool show) override
bool IsQuasiModal() const
Definition: dialog_shim.h:106
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:218
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:215

References DIALOG_SHIM::IsQuasiModal(), DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, and DIALOG_SHIM::Show().

Referenced by EDA_3D_CONTROLLER::Main(), NETLIST_DIALOG::OnAddGenerator(), DIALOG_SHIM::OnButton(), DIALOG_EDIT_SYMBOLS_LIBID::onCancel(), DIALOG_LIB_SYMBOL_PROPERTIES::OnCancelButtonClick(), DIALOG_SYMBOL_PROPERTIES::OnCancelButtonClick(), DIALOG_LIB_EDIT_PIN_TABLE::OnClose(), DIALOG_CHOOSE_FOOTPRINT::OnCloseTimer(), DIALOG_SHIM::OnCloseWindow(), NETLIST_DIALOG::OnDelGenerator(), DIALOG_SYMBOL_PROPERTIES::OnEditLibrarySymbol(), DIALOG_SYMBOL_PROPERTIES::OnEditSymbol(), DIALOG_SYMBOL_PROPERTIES::OnExchangeSymbol(), PCB_ONE_LAYER_SELECTOR::OnLeftGridCellClick(), PCB_ONE_LAYER_SELECTOR::OnRightGridCellClick(), DIALOG_SYMBOL_PROPERTIES::OnUpdateSymbol(), DIALOG_CHOOSE_FOOTPRINT::OnUseBrowser(), DIALOG_PUSH_PAD_PROPERTIES::PadPropertiesAccept(), and DIALOG_SHIM::~DIALOG_SHIM().

◆ finishDialogSettings()

void DIALOG_SHIM::finishDialogSettings ( )
protectedinherited

In all dialogs, we must call the same functions to fix minimal dlg size, the default position and perhaps some others to fix a few issues depending on Windows Managers this helper function does these calls.

finishDialogSettings must be called from derived classes after all widgets have been initialized, and therefore their size fixed. If TransferDataToWindow() is used to initialize widgets, at the end of TransferDataToWindow, or better yet, at end of a wxInitDialogEvent handler.

Definition at line 158 of file dialog_shim.cpp.

159{
160 // must be called from the constructor of derived classes,
161 // when all widgets are initialized, and therefore their size fixed
162
163 // SetSizeHints fixes the minimal size of sizers in the dialog
164 // (SetSizeHints calls Fit(), so no need to call it)
165 GetSizer()->SetSizeHints( this );
166}

Referenced by CONVERT_SETTINGS_DIALOG::CONVERT_SETTINGS_DIALOG(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_ASSIGN_NETCLASS::DIALOG_ASSIGN_NETCLASS(), DIALOG_BOARD_REANNOTATE::DIALOG_BOARD_REANNOTATE(), DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP(), DIALOG_BOM::DIALOG_BOM(), DIALOG_BUS_MANAGER::DIALOG_BUS_MANAGER(), DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS(), DIALOG_CLEANUP_TRACKS_AND_VIAS::DIALOG_CLEANUP_TRACKS_AND_VIAS(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DIMENSION_PROPERTIES::DIALOG_DIMENSION_PROPERTIES(), DIALOG_DRC::DIALOG_DRC(), DIALOG_EDIT_SYMBOLS_LIBID::DIALOG_EDIT_SYMBOLS_LIBID(), DIALOG_ENUM_PADS::DIALOG_ENUM_PADS(), DIALOG_ERC::DIALOG_ERC(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), DIALOG_EXPORT_3DFILE::DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP(), DIALOG_EXPORT_SVG::DIALOG_EXPORT_SVG(), DIALOG_FOOTPRINT_CHECKER::DIALOG_FOOTPRINT_CHECKER(), DIALOG_FOOTPRINT_PROPERTIES::DIALOG_FOOTPRINT_PROPERTIES(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_GENCAD_EXPORT_OPTIONS::DIALOG_GENCAD_EXPORT_OPTIONS(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS(), DIALOG_GLOBAL_LIB_TABLE_CONFIG::DIALOG_GLOBAL_LIB_TABLE_CONFIG(), DIALOG_GRID_SETTINGS::DIALOG_GRID_SETTINGS(), DIALOG_GROUP_PROPERTIES::DIALOG_GROUP_PROPERTIES(), DIALOG_IMAGE_PROPERTIES::DIALOG_IMAGE_PROPERTIES(), DIALOG_IMPORTED_LAYERS::DIALOG_IMPORTED_LAYERS(), DIALOG_INSPECTOR::DIALOG_INSPECTOR(), DIALOG_JUNCTION_PROPS::DIALOG_JUNCTION_PROPS(), DIALOG_LABEL_PROPERTIES::DIALOG_LABEL_PROPERTIES(), DIALOG_LIB_NEW_SYMBOL::DIALOG_LIB_NEW_SYMBOL(), DIALOG_LIB_SHAPE_PROPERTIES::DIALOG_LIB_SHAPE_PROPERTIES(), DIALOG_LIB_SYMBOL_PROPERTIES::DIALOG_LIB_SYMBOL_PROPERTIES(), DIALOG_LIB_TEXT_PROPERTIES::DIALOG_LIB_TEXT_PROPERTIES(), DIALOG_LIB_TEXTBOX_PROPERTIES::DIALOG_LIB_TEXTBOX_PROPERTIES(), DIALOG_LINE_PROPERTIES::DIALOG_LINE_PROPERTIES(), DIALOG_LIST_HOTKEYS::DIALOG_LIST_HOTKEYS(), DIALOG_LOCKED_ITEMS_QUERY::DIALOG_LOCKED_ITEMS_QUERY(), DIALOG_MANAGE_REPOSITORIES::DIALOG_MANAGE_REPOSITORIES(), DIALOG_MOVE_EXACT::DIALOG_MOVE_EXACT(), DIALOG_NET_INSPECTOR::DIALOG_NET_INSPECTOR(), DIALOG_NETLIST_IMPORT::DIALOG_NETLIST_IMPORT(), DIALOG_NON_COPPER_ZONES_EDITOR::DIALOG_NON_COPPER_ZONES_EDITOR(), DIALOG_PAD_PRIMITIVE_POLY_PROPS::DIALOG_PAD_PRIMITIVE_POLY_PROPS(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PASTE_SPECIAL::DIALOG_PASTE_SPECIAL(), DIALOG_PCM::DIALOG_PCM(), DIALOG_PIN_PROPERTIES::DIALOG_PIN_PROPERTIES(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_PRINT_GENERIC::DIALOG_PRINT_GENERIC(), DIALOG_PRINT_USING_PRINTER::DIALOG_PRINT_USING_PRINTER(), DIALOG_PUSH_PAD_PROPERTIES::DIALOG_PUSH_PAD_PROPERTIES(), DIALOG_REGULATOR_FORM::DIALOG_REGULATOR_FORM(), DIALOG_RULE_AREA_PROPERTIES::DIALOG_RULE_AREA_PROPERTIES(), DIALOG_SCHEMATIC_SETUP::DIALOG_SCHEMATIC_SETUP(), DIALOG_SELECT_3DMODEL::DIALOG_SELECT_3DMODEL(), DIALOG_SHAPE_PROPERTIES::DIALOG_SHAPE_PROPERTIES(), DIALOG_SHEET_PIN_PROPERTIES::DIALOG_SHEET_PIN_PROPERTIES(), DIALOG_SHEET_PROPERTIES::DIALOG_SHEET_PROPERTIES(), DIALOG_SIM_MODEL< T >::DIALOG_SIM_MODEL(), DIALOG_SWAP_LAYERS::DIALOG_SWAP_LAYERS(), DIALOG_SYMBOL_FIELDS_TABLE::DIALOG_SYMBOL_FIELDS_TABLE(), DIALOG_SYMBOL_PROPERTIES::DIALOG_SYMBOL_PROPERTIES(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TEXTBOX_PROPERTIES::DIALOG_TEXTBOX_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_TRACK_VIA_SIZE::DIALOG_TRACK_VIA_SIZE(), DIALOG_UNUSED_PAD_LAYERS::DIALOG_UNUSED_PAD_LAYERS(), DIALOG_UPDATE_FROM_PCB::DIALOG_UPDATE_FROM_PCB(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), DIALOG_UPDATE_SYMBOL_FIELDS::DIALOG_UPDATE_SYMBOL_FIELDS(), DIALOG_WIRE_BUS_PROPERTIES::DIALOG_WIRE_BUS_PROPERTIES(), PAGED_DIALOG::finishInitialization(), DIALOG_CONSTRAINTS_REPORTER::FinishInitialization(), DIALOG_FIELD_PROPERTIES::init(), DIALOG_EDIT_LIBRARY_TABLES::InstallPanel(), NETLIST_DIALOG::NETLIST_DIALOG(), DIALOG_SHEET_PROPERTIES::OnInitDlg(), DIALOG_SIM_SETTINGS::onInitDlg(), DIALOG_SYMBOL_PROPERTIES::OnInitDlg(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), TEARDROP_DIALOG::TEARDROP_DIALOG(), DIALOG_SIGNAL_LIST::TransferDataToWindow(), DIALOG_COLOR_PICKER::TransferDataToWindow(), and DIALOG_BOARD_STATISTICS::TransferDataToWindow().

◆ GetType()

HOLDER_TYPE KIWAY_HOLDER::GetType ( ) const
inlineinherited

Definition at line 46 of file kiway_holder.h.

46{ return m_type; }
HOLDER_TYPE m_type
Definition: kiway_holder.h:85

References KIWAY_HOLDER::m_type.

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ GetUserUnits()

◆ HasKiway()

bool KIWAY_HOLDER::HasKiway ( ) const
inlineinherited

Safety check before asking for the Kiway reference.

Returns
true if kiway is non-null

Definition at line 63 of file kiway_holder.h.

64 {
65 return m_kiway != nullptr;
66 }
KIWAY * m_kiway
Definition: kiway_holder.h:84

References KIWAY_HOLDER::m_kiway.

Referenced by DIALOG_SHIM::~DIALOG_SHIM().

◆ horizPixelsFromDU()

int DIALOG_SHIM::horizPixelsFromDU ( int  x) const
protectedinherited

Convert an integer number of dialog units to pixels, horizontally.

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 176 of file dialog_shim.cpp.

177{
178 wxSize sz( x, 0 );
179 return ConvertDialogToPixels( sz ).x;
180}

Referenced by DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), and DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL().

◆ IsCtrl()

static bool DIALOG_SHIM::IsCtrl ( int  aChar,
const wxKeyEvent &  e 
)
inlinestaticinherited

Definition at line 128 of file dialog_shim.h.

129 {
130 return e.GetKeyCode() == aChar && e.ControlDown() && !e.AltDown() &&
131 !e.ShiftDown() && !e.MetaDown();
132 }

◆ IsQuasiModal()

◆ IsShiftCtrl()

static bool DIALOG_SHIM::IsShiftCtrl ( int  aChar,
const wxKeyEvent &  e 
)
inlinestaticinherited

Definition at line 134 of file dialog_shim.h.

135 {
136 return e.GetKeyCode() == aChar && e.ControlDown() && !e.AltDown() &&
137 e.ShiftDown() && !e.MetaDown();
138 }

◆ Kiway()

KIWAY & KIWAY_HOLDER::Kiway ( ) const
inlineinherited

Return a reference to the KIWAY that this object has an opportunity to participate in.

A KIWAY_HOLDER is not necessarily a KIWAY_PLAYER.

Definition at line 53 of file kiway_holder.h.

54 {
55 wxASSERT( m_kiway ); // smoke out bugs in Debug build, then Release runs fine.
56 return *m_kiway;
57 }

References KIWAY_HOLDER::m_kiway.

Referenced by PROJECT_TREE_ITEM::Activate(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), PCB_BASE_EDIT_FRAME::AddLibrary(), SYMBOL_EDIT_FRAME::AddLibraryFile(), SYMBOL_EDITOR_CONTROL::AddSymbolToSchematic(), SCH_EDIT_FRAME::AskToSaveChanges(), CVPCB_MAINFRAME::BuildLibrariesListBox(), FOOTPRINT_EDIT_FRAME::buildSaveAsDialog(), SYMBOL_EDIT_FRAME::buildSaveAsDialog(), SYMBOL_EDIT_FRAME::CanCloseSymbolFromSchematic(), SCH_EDIT_FRAME::canCloseWindow(), PCB_EDIT_FRAME::canCloseWindow(), KICAD_MANAGER_FRAME::CloseProject(), COMMON_CONTROL::ConfigurePaths(), DIALOG_CHOOSE_SYMBOL::ConstructRightPanel(), DIALOG_CHOOSE_FOOTPRINT::ConstructRightPanel(), PCB_BASE_FRAME::CreateAndShow3D_Frame(), FOOTPRINT_EDITOR_CONTROL::CreateFootprint(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), DIALOG_LIST_HOTKEYS::DIALOG_LIST_HOTKEYS(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), DIALOG_SHIM::DIALOG_SHIM(), SCH_EDIT_FRAME::doCloseWindow(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), FIELDS_GRID_TRICKS::doPopupSelection(), BOARD_EDITOR_CONTROL::EditFpInFpEditor(), SCH_EDITOR_CONTROL::EditWithSymbolEditor(), BACK_ANNOTATE::FetchNetlistFromPCB(), PCB_EDIT_FRAME::FetchNetlistFromSchematic(), KICAD_MANAGER_FRAME::ImportNonKiCadProject(), SCRIPTING_TOOL::Init(), EDA_DRAW_FRAME::IsScriptingConsoleVisible(), KIWAY_PLAYER::language_change(), KICAD_MANAGER_FRAME::language_change(), DIALOG_CHANGE_SYMBOLS::launchMatchIdSymbolBrowser(), DIALOG_CHANGE_SYMBOLS::launchNewIdSymbolBrowser(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), PGM_SINGLE_TOP::MacOpenFile(), TEXT_BUTTON_SYMBOL_CHOOSER::OnButtonClick(), TEXT_BUTTON_FP_CHOOSER::OnButtonClick(), PL_EDITOR_FRAME::OnExit(), SCH_EDIT_FRAME::OnExit(), FOOTPRINT_EDIT_FRAME::OnExitKiCad(), SYMBOL_EDIT_FRAME::OnExitKiCad(), FOOTPRINT_VIEWER_FRAME::OnExitKiCad(), SAVE_AS_TRAVERSER::OnFile(), DIALOG_CHOOSE_SYMBOL::OnInitDialog(), SCH_EDIT_FRAME::OnOpenCvpcb(), SCH_EDIT_FRAME::OnOpenPcbnew(), EDA_BASE_FRAME::OnPreferences(), SIM_PLOT_FRAME::onProbe(), PCB_EDIT_FRAME::OnQuit(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), DIALOG_FIELD_PROPERTIES::OnTextValueSelectButtonClick(), SIM_PLOT_FRAME::onTune(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadFootprintFromBoard(), SCH_EDIT_FRAME::OnUpdatePCB(), FOOTPRINT_EDIT_FRAME::OnUpdateSaveFootprintToBoard(), SCH_BASE_FRAME::PickSymbolFromLibBrowser(), KIWAY_HOLDER::Prj(), SCH_EDIT_TOOL::Properties(), BACK_ANNOTATE::PushNewLinksToPCB(), FOOTPRINT_WIZARD_FRAME::PythonPluginsReload(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), SYMBOL_VIEWER_FRAME::ReCreateLibList(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), SCH_EDITOR_CONTROL::rescueProject(), PCB_EDIT_FRAME::RunEeschema(), EE_INSPECTION_TOOL::RunSimulation(), SYMBOL_EDIT_FRAME::Save(), SYMBOL_EDIT_FRAME::saveCurrentSymbol(), CVPCB_MAINFRAME::SaveFootprintAssociation(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), EDA_DRAW_FRAME::ScriptingConsoleEnableDisable(), PCB_BASE_FRAME::SelectFootprintFromLibBrowser(), PCB_BASE_FRAME::SelectLibrary(), SCH_EDIT_FRAME::SendCrossProbeClearHighlight(), SCH_EDIT_FRAME::SendCrossProbeNetName(), PCB_EDIT_FRAME::SendCrossProbeNetName(), PCB_EDIT_FRAME::SendMessageToEESCHEMA(), CVPCB_MAINFRAME::SendMessageToEESCHEMA(), SCH_EDIT_FRAME::sendNetlistToCvpcb(), SCH_EDIT_FRAME::SendSelectItems(), SCH_EDIT_FRAME::SetCrossProbeConnection(), SYMBOL_EDIT_FRAME::SetCurSymbol(), PCB_EDIT_FRAME::ShowBoardSetupDialog(), PCB_EDIT_FRAME::ShowFootprintPropertiesDialog(), CVPCB_CONTROL::ShowFootprintViewer(), COMMON_CONTROL::ShowLibraryTable(), COMMON_CONTROL::ShowPlayer(), KICAD_MANAGER_CONTROL::ShowPlayer(), SCH_EDIT_FRAME::ShowSchematicSetupDialog(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), PCB_EDIT_FRAME::TestStandalone(), BOARD_EDITOR_CONTROL::UpdateSchematicFromPCB(), DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint(), and DIALOG_SHIM::~DIALOG_SHIM().

◆ OnButton()

void DIALOG_SHIM::OnButton ( wxCommandEvent &  aEvent)
privateinherited

Properly handle the default button events when in the quasimodal mode when not calling EndQuasiModal which is possible with any dialog derived from DIALOG_SHIM.

Definition at line 533 of file dialog_shim.cpp.

534{
535 const int id = aEvent.GetId();
536
537 // If we are pressing a button to exit, we need to enable the escapeID
538 // otherwise the dialog does not process cancel
539 if( id == wxID_CANCEL )
540 SetEscapeId( wxID_ANY );
541
542 if( IsQuasiModal() )
543 {
544 if( id == GetAffirmativeId() )
545 {
546 EndQuasiModal( id );
547 }
548 else if( id == wxID_APPLY )
549 {
550 // Dialogs that provide Apply buttons should make sure data is valid before
551 // allowing a transfer, as there is no other way to indicate failure
552 // (i.e. the dialog can't refuse to close as it might with OK, because it
553 // isn't closing anyway)
554 if( Validate() )
555 {
556 ignore_unused( TransferDataFromWindow() );
557 }
558 }
559 else if( id == GetEscapeId() || (id == wxID_CANCEL && GetEscapeId() == wxID_ANY) )
560 {
561 EndQuasiModal( wxID_CANCEL );
562 }
563 else // not a standard button
564 {
565 aEvent.Skip();
566 }
567
568 return;
569 }
570
571 // This is mandatory to allow wxDialogBase::OnButton() to be called.
572 aEvent.Skip();
573}
void EndQuasiModal(int retCode)
void ignore_unused(const T &)
Definition: ignore.h:24

References DIALOG_SHIM::EndQuasiModal(), ignore_unused(), and DIALOG_SHIM::IsQuasiModal().

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ OnCharHook()

void DIALOG_SHIM::OnCharHook ( wxKeyEvent &  aEvt)
protectedvirtualinherited

Reimplemented in HK_PROMPT_DIALOG, DIALOG_CHOOSE_SYMBOL, and HTML_MESSAGE_BOX.

Definition at line 576 of file dialog_shim.cpp.

577{
578 if( aEvt.GetKeyCode() == 'U' && aEvt.GetModifiers() == wxMOD_CONTROL )
579 {
580 if( m_parentFrame )
581 {
583 return;
584 }
585 }
586 // shift-return (Mac default) or Ctrl-Return (GTK) for OK
587 else if( aEvt.GetKeyCode() == WXK_RETURN && ( aEvt.ShiftDown() || aEvt.ControlDown() ) )
588 {
589 wxPostEvent( this, wxCommandEvent( wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK ) );
590 return;
591 }
592 else if( aEvt.GetKeyCode() == WXK_TAB && !aEvt.ControlDown() )
593 {
594 wxWindow* currentWindow = wxWindow::FindFocus();
595 int currentIdx = -1;
596 int delta = aEvt.ShiftDown() ? -1 : 1;
597
598 auto advance =
599 [&]( int& idx )
600 {
601 // Wrap-around modulus
602 int size = m_tabOrder.size();
603 idx = ( ( idx + delta ) % size + size ) % size;
604 };
605
606 for( size_t i = 0; i < m_tabOrder.size(); ++i )
607 {
608 if( m_tabOrder[i] == currentWindow )
609 {
610 currentIdx = (int) i;
611 break;
612 }
613 }
614
615 if( currentIdx >= 0 )
616 {
617 advance( currentIdx );
618
619 //todo: We don't currently have non-textentry dialog boxes but this will break if
620 // we add them.
621#ifdef __APPLE__
622 while( dynamic_cast<wxTextEntry*>( m_tabOrder[ currentIdx ] ) == nullptr )
623 advance( currentIdx );
624#endif
625
626 m_tabOrder[ currentIdx ]->SetFocus();
627 return;
628 }
629 }
630
631 aEvt.Skip();
632}
std::vector< wxWindow * > m_tabOrder
Definition: dialog_shim.h:222
EDA_BASE_FRAME * m_parentFrame
Definition: dialog_shim.h:220
virtual void ToggleUserUnits()
constexpr int delta

References delta, DIALOG_SHIM::m_parentFrame, DIALOG_SHIM::m_tabOrder, and EDA_BASE_FRAME::ToggleUserUnits().

Referenced by DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TEXTBOX_PROPERTIES::DIALOG_TEXTBOX_PROPERTIES(), and DIALOG_TEXTBOX_PROPERTIES::~DIALOG_TEXTBOX_PROPERTIES().

◆ OnClose()

virtual void DIALOG_CREATE_ARRAY_BASE::OnClose ( wxCloseEvent &  event)
inlineprotectedvirtualinherited

◆ OnCloseWindow()

void DIALOG_SHIM::OnCloseWindow ( wxCloseEvent &  aEvent)
privateinherited

Properly handle the wxCloseEvent when in the quasimodal mode when not calling EndQuasiModal which is possible with any dialog derived from DIALOG_SHIM.

Definition at line 520 of file dialog_shim.cpp.

521{
522 if( IsQuasiModal() )
523 {
524 EndQuasiModal( wxID_CANCEL );
525 return;
526 }
527
528 // This is mandatory to allow wxDialogBase::OnCloseWindow() to be called.
529 aEvent.Skip();
530}

References DIALOG_SHIM::EndQuasiModal(), and DIALOG_SHIM::IsQuasiModal().

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ OnGridEditorHidden()

void DIALOG_SHIM::OnGridEditorHidden ( wxGridEvent &  event)
privateinherited

Definition at line 642 of file dialog_shim.cpp.

643{
644 SetEscapeId( wxID_ANY );
645 event.Skip();
646}

◆ OnGridEditorShown()

void DIALOG_SHIM::OnGridEditorShown ( wxGridEvent &  event)
privateinherited

Definition at line 635 of file dialog_shim.cpp.

636{
637 SetEscapeId( wxID_NONE );
638 event.Skip();
639}

◆ OnModify()

◆ OnPaint()

void DIALOG_SHIM::OnPaint ( wxPaintEvent &  event)
inherited

Definition at line 387 of file dialog_shim.cpp.

388{
390 {
392
393 selectAllInTextCtrls( GetChildren() );
394
397 else
398 KIPLATFORM::UI::ForceFocus( this ); // Focus the dialog itself
399
400 m_firstPaintEvent = false;
401 }
402
403 event.Skip();
404}
bool m_firstPaintEvent
Definition: dialog_shim.h:212
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:213
static void selectAllInTextCtrls(wxWindowList &children)
void FixupCancelButtonCmdKeyCollision(wxWindow *aWindow)
Definition: gtk/ui.cpp:71
void ForceFocus(wxWindow *aWindow)
Pass the current focus to the window.
Definition: gtk/ui.cpp:44

References KIPLATFORM::UI::FixupCancelButtonCmdKeyCollision(), KIPLATFORM::UI::ForceFocus(), DIALOG_SHIM::m_firstPaintEvent, DIALOG_SHIM::m_initialFocusTarget, and selectAllInTextCtrls().

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ OnParameterChanged()

void DIALOG_CREATE_ARRAY::OnParameterChanged ( wxCommandEvent &  event)
overrideprivatevirtual

◆ Prj()

PROJECT & KIWAY_HOLDER::Prj ( ) const
inherited

Return a reference to the PROJECT associated with this KIWAY.

Definition at line 36 of file kiway_holder.cpp.

37{
38 return Kiway().Prj();
39}
KIWAY & Kiway() const
Return a reference to the KIWAY that this object has an opportunity to participate in.
Definition: kiway_holder.h:53
virtual PROJECT & Prj() const
Return the PROJECT associated with this KIWAY.
Definition: kiway.cpp:192

References KIWAY_HOLDER::Kiway(), and KIWAY::Prj().

Referenced by SYMBOL_TREE_MODEL_ADAPTER::AddLibraries(), FP_TREE_MODEL_ADAPTER::AddLibraries(), SYMBOL_LIBRARY_MANAGER::addLibrary(), PCB_BASE_EDIT_FRAME::AddLibrary(), SYMBOL_EDIT_FRAME::addLibTableEntry(), SCH_EDIT_FRAME::AppendSchematic(), AskSaveBoardFileName(), DIALOG_SYMBOL_REMAP::backupProject(), CVPCB_MAINFRAME::buildEquivalenceList(), CVPCB_MAINFRAME::BuildLibrariesListBox(), FOOTPRINT_EDIT_FRAME::buildSaveAsDialog(), SYMBOL_EDIT_FRAME::buildSaveAsDialog(), SIM_PLOT_FRAME::canCloseWindow(), PANEL_FP_PROPERTIES_3D_MODEL::Cfg3DPath(), KICAD_MANAGER_FRAME::CloseProject(), PCB_BASE_EDIT_FRAME::createNewLibrary(), PCB_BASE_EDIT_FRAME::CreateNewProjectLibrary(), DIALOG_PLOT_SCHEMATIC::createPDFFile(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), SCH_EDIT_FRAME::CreateScreens(), FOOTPRINT_EDIT_FRAME::DeleteFootprintFromLibrary(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_ASSIGN_NETCLASS::DIALOG_ASSIGN_NETCLASS(), DIALOG_BOARD_REANNOTATE::DIALOG_BOARD_REANNOTATE(), DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP(), DIALOG_BOARD_STATISTICS::DIALOG_BOARD_STATISTICS(), DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), DIALOG_EXPORT_SVG::DIALOG_EXPORT_SVG(), DIALOG_GEN_FOOTPRINT_POSITION::DIALOG_GEN_FOOTPRINT_POSITION(), DIALOG_LIB_SYMBOL_PROPERTIES::DIALOG_LIB_SYMBOL_PROPERTIES(), DIALOG_NETLIST_IMPORT::DIALOG_NETLIST_IMPORT(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_PLOT::DIALOG_PLOT(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_SCHEMATIC_SETUP::DIALOG_SCHEMATIC_SETUP(), DIALOG_SYMBOL_FIELDS_TABLE::DIALOG_SYMBOL_FIELDS_TABLE(), DIALOG_SYMBOL_REMAP::DIALOG_SYMBOL_REMAP(), DIALOG_UPDATE_FROM_PCB::DIALOG_UPDATE_FROM_PCB(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), PL_DRAW_PANEL_GAL::DisplayDrawingSheet(), FOOTPRINT_PREVIEW_PANEL::DisplayFootprint(), SYMBOL_VIEWER_FRAME::DisplayLibInfos(), CVPCB_MAINFRAME::DisplayStatus(), SCH_EDIT_FRAME::doAutoSave(), PCB_EDIT_FRAME::doAutoSave(), SCH_EDIT_FRAME::doCloseWindow(), FOOTPRINT_EDIT_FRAME::doCloseWindow(), PCB_BASE_EDIT_FRAME::doCloseWindow(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), FIELDS_GRID_TRICKS::doPopupSelection(), FOOTPRINT_EDIT_FRAME::DuplicateFootprint(), KICAD_MANAGER_CONTROL::Execute(), PCB_EDIT_FRAME::Export_IDF3(), PCB_EDIT_FRAME::ExportFootprintsToLibrary(), BOARD_EDITOR_CONTROL::ExportNetlist(), SYMBOL_EDITOR_CONTROL::ExportSymbolAsSVG(), SYMBOL_EDITOR_CONTROL::ExportView(), PCB_EDIT_FRAME::ExportVRML_File(), BACK_ANNOTATE::FetchNetlistFromPCB(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_EDIT_FRAME::GenD356File(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), SYMBOL_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), SIM_PLOT_FRAME::getDefaultFilename(), SIM_PLOT_FRAME::getDefaultPath(), PCB_BASE_EDIT_FRAME::GetDesignRulesPath(), DISPLAY_FOOTPRINTS_FRAME::GetFootprint(), PCB_EDIT_FRAME::GetLastPath(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), SCH_BASE_FRAME::GetLibSymbol(), DIALOG_PLOT_SCHEMATIC::getOutputPath(), KICAD_MANAGER_FRAME::GetProjectFileName(), SCH_EDIT_FRAME::GetSchematicJunctionSize(), SYMBOL_VIEWER_FRAME::GetSelectedSymbol(), SCH_EDIT_FRAME::importFile(), SCH_EDITOR_CONTROL::ImportFPAssignments(), DIALOG_CONFIG_EQUFILES::Init(), FIELDS_GRID_TABLE< T >::initGrid(), FOOTPRINT_EDIT_FRAME::initLibraryTree(), SYMBOL_EDIT_FRAME::KiwayMailIn(), FOOTPRINT_EDIT_FRAME::KiwayMailIn(), EDA_DRAW_FRAME::LibraryFileBrowser(), PCB_BASE_FRAME::loadFootprint(), CVPCB_MAINFRAME::LoadFootprintFiles(), PCB_EDIT_FRAME::LoadFootprints(), SCH_EDIT_FRAME::LoadProject(), KICAD_MANAGER_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadProjectSettings(), PCB_EDIT_FRAME::LoadProjectSettings(), SIM_PLOT_FRAME::LoadSettings(), SCH_EDIT_FRAME::LoadSheetFromFile(), SYMBOL_EDIT_FRAME::LoadSymbolFromCurrentLib(), EDA_BASE_FRAME::LoadWindowState(), SIM_PLOT_FRAME::loadWorkbook(), SIM_PLOT_FRAME::menuSaveWorkbook(), SIM_PLOT_FRAME::menuSaveWorkbookAs(), PANEL_FP_PROPERTIES_3D_MODEL::On3DModelCellChanged(), FOOTPRINT_VIEWER_FRAME::OnActivate(), PANEL_FP_PROPERTIES_3D_MODEL::OnAdd3DModel(), DIALOG_BOARD_SETUP::OnAuxiliaryAction(), PCB_EDIT_FRAME::onBoardLoaded(), KICAD_MANAGER_FRAME::OnBrowseInFileExplorer(), DIALOG_NETLIST_IMPORT::onBrowseNetlistFiles(), WX_HTML_REPORT_PANEL::onBtnSaveToFile(), TEXT_BUTTON_URL::OnButtonClick(), TEXT_BUTTON_FILE_BROWSER::OnButtonClick(), DIALOG_EDIT_SYMBOLS_LIBID::onClickOrphansButton(), DIALOG_SYMBOL_FIELDS_TABLE::OnExport(), DIALOG_EXPORT_STEP::onExportButton(), DIALOG_GENDRILL::OnGenReportFile(), KICAD_MANAGER_FRAME::OnIdle(), SCH_EDIT_FRAME::OnImportProject(), DIALOG_CHOOSE_SYMBOL::OnInitDialog(), DIALOG_CONFIG_EQUFILES::OnOkClick(), SCH_EDIT_FRAME::OnOpenCvpcb(), KICAD_MANAGER_FRAME::OnOpenFileInTextEditor(), SCH_EDIT_FRAME::OnOpenPcbnew(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_EXPORT_SVG::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_GEN_FOOTPRINT_POSITION::OnOutputDirectoryBrowseClicked(), DIALOG_SCHEMATIC_SETUP::OnPageChanged(), DIALOG_BOARD_SETUP::OnPageChanged(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), FOOTPRINT_EDIT_FRAME::OnSaveFootprintAsPng(), DIALOG_ERC::OnSaveReport(), DIALOG_DRC::OnSaveReport(), DIALOG_SCH_FIELD_PROPERTIES::onScintillaCharAdded(), DIALOG_TEXT_PROPERTIES::onScintillaCharAdded(), PROPERTIES_FRAME::onScintillaCharAdded(), SYMBOL_VIEWER_FRAME::OnSelectSymbol(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), SCH_EDIT_FRAME::OnUpdatePCB(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), PANEL_FP_PROPERTIES_3D_MODEL::PANEL_FP_PROPERTIES_3D_MODEL(), PANEL_PREVIEW_3D_MODEL::PANEL_PREVIEW_3D_MODEL(), SCH_EDITOR_CONTROL::Paste(), FOOTPRINT_EDITOR_CONTROL::PasteFootprint(), SCH_BASE_FRAME::PickSymbolFromLibTree(), SYMBOL_EDITOR_CONTROL::PinLibrary(), FOOTPRINT_EDITOR_CONTROL::PinLibrary(), DIALOG_PLOT_SCHEMATIC::plotOneSheetDXF(), DIALOG_PLOT_SCHEMATIC::plotOneSheetHpgl(), DIALOG_CHOOSE_SYMBOL::PopulateFootprintSelector(), SCH_EDITOR_CONTROL::Print(), EDA_DRAW_FRAME::PrintDrawingSheet(), SCH_EDIT_FRAME::PrintPage(), KICAD_MANAGER_FRAME::PrintPrjInfo(), CVPCB_MAINFRAME::readNetListAndFpFiles(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), SYMBOL_VIEWER_FRAME::ReCreateLibList(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), SYMBOL_VIEWER_FRAME::ReCreateSymbolList(), PANEL_FP_PROPERTIES_3D_MODEL::ReloadModelsFromFootprint(), EDA_3D_VIEWER_FRAME::ReloadRequest(), DIALOG_SYMBOL_REMAP::remapSymbolToLibTable(), FOOTPRINT_EDITOR_CONTROL::RenameFootprint(), SYMBOL_EDIT_FRAME::replaceLibTableEntry(), SCH_EDITOR_CONTROL::RescueLegacyProject(), SCH_EDITOR_CONTROL::RescueSymbolLibTableProject(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), PCB_EDIT_FRAME::RunEeschema(), FOOTPRINT_EDITOR_CONTROL::SaveAs(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), SYMBOL_EDIT_FRAME::saveLibrary(), PCB_EDIT_FRAME::SavePcbFile(), SCH_EDIT_FRAME::SaveProject(), PCB_EDIT_FRAME::SaveProjectSettings(), DIALOG_BOARD_STATISTICS::saveReportClicked(), SCH_EDIT_FRAME::saveSchematicFile(), EDA_BASE_FRAME::SaveSettings(), SIM_PLOT_FRAME::SaveSettings(), SCH_BASE_FRAME::saveSymbolLibTables(), SIM_PLOT_FRAME::saveWorkbook(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), PCB_BASE_FRAME::SelectFootprintFromLibTree(), PCB_BASE_FRAME::SelectLibrary(), SYMBOL_EDIT_FRAME::SelectLibraryFromList(), PCB_BASE_EDIT_FRAME::selectLibTable(), SYMBOL_EDIT_FRAME::selectSymLibTable(), PCB_EDIT_FRAME::SetBoard(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), SYMBOL_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), SYMBOL_EDIT_FRAME::SetCurSymbol(), PCB_EDIT_FRAME::SetLastPath(), GERBVIEW_FRAME::SetPageSettings(), EE_INSPECTION_TOOL::ShowDatasheet(), DIALOG_CHOOSE_SYMBOL::ShowFootprintFor(), COMMON_CONTROL::ShowHelp(), FOOTPRINT_VIEWER_FRAME::ShowModal(), SYMBOL_VIEWER_FRAME::ShowModal(), SYMBOL_LIBRARY_MANAGER::symTable(), FP_TREE_SYNCHRONIZING_ADAPTER::Sync(), SYMBOL_TREE_SYNCHRONIZING_ADAPTER::Sync(), FOOTPRINT_EDIT_FRAME::SyncLibraryTree(), EDA_3D_VIEWER_FRAME::takeScreenshot(), PCB_EDIT_FRAME::TestStandalone(), DIALOG_ASSIGN_NETCLASS::TransferDataFromWindow(), DIALOG_EDIT_SYMBOLS_LIBID::TransferDataFromWindow(), NETLIST_DIALOG::TransferDataFromWindow(), DIALOG_SHEET_PROPERTIES::TransferDataFromWindow(), PANEL_SETUP_RULES::TransferDataFromWindow(), PANEL_SETUP_RULES::TransferDataToWindow(), SYMBOL_EDITOR_CONTROL::UnpinLibrary(), FOOTPRINT_EDITOR_CONTROL::UnpinLibrary(), SCH_EDIT_FRAME::updateAutoSaveFile(), DIALOG_PAGES_SETTINGS::UpdateDrawingSheetExample(), SCH_EDIT_FRAME::UpdateTitle(), SIM_PLOT_FRAME::updateTitle(), FOOTPRINT_EDIT_FRAME::UpdateTitle(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), PANEL_FP_PROPERTIES_3D_MODEL::validateModelExists(), SCH_EDIT_FRAME::WriteNetListFile(), DIALOG_FOOTPRINT_PROPERTIES::~DIALOG_FOOTPRINT_PROPERTIES(), EDA_3D_VIEWER_FRAME::~EDA_3D_VIEWER_FRAME(), PANEL_FP_PROPERTIES_3D_MODEL::~PANEL_FP_PROPERTIES_3D_MODEL(), and SCH_EDIT_FRAME::~SCH_EDIT_FRAME().

◆ resetSize()

void DIALOG_SHIM::resetSize ( )
protectedinherited

Clear the existing dialog size and position.

This will cause the dialog size to be clear so the next time the dialog is shown the sizers will layout the dialog accordingly. This useful when there are dialog windows that size changes due to layout dependency hidden controls.

Definition at line 294 of file dialog_shim.cpp.

295{
296 const char* hash_key;
297
298 if( m_hash_key.size() )
299 {
300 // a special case like EDA_LIST_DIALOG, which has multiple uses.
301 hash_key = m_hash_key.c_str();
302 }
303 else
304 {
305 hash_key = typeid(*this).name();
306 }
307
308 std::unordered_map<std::string, wxRect>::iterator it = class_map.find( hash_key );
309
310 if( it == class_map.end() )
311 return;
312
313 wxRect rect = it->second;
314 rect.SetSize( wxSize( 0, 0 ) );
315 class_map[ hash_key ] = rect;
316}
std::string m_hash_key
Definition: dialog_shim.h:203
static std::unordered_map< std::string, wxRect > class_map

References class_map, and DIALOG_SHIM::m_hash_key.

Referenced by DIALOG_LIB_SYMBOL_PROPERTIES::DIALOG_LIB_SYMBOL_PROPERTIES().

◆ setControlEnablement()

void DIALOG_CREATE_ARRAY::setControlEnablement ( )
private

Definition at line 455 of file dialog_create_array.cpp.

456{
458 {
459 m_footprintReannotatePanel->Show( false );
460
461 m_gridPadNumberingPanel->Show( true );
462 m_circularPadNumberingPanel->Show( true );
463
464 // If we set the start number, we can set the other options,
465 // otherwise it's a hardcoded linear array
466 const bool use_set_start_grid = m_rbGridStartNumberingOpt->GetSelection() == 1;
467
468 m_radioBoxGridNumberingScheme->Enable( use_set_start_grid );
469 m_labelPriAxisNumbering->Enable( use_set_start_grid );
470 m_choicePriAxisNumbering->Enable( use_set_start_grid );
471
472 // Disable the secondary axis numbering option if the
473 // numbering scheme doesn't have two axes
474 const bool num2d = m_radioBoxGridNumberingScheme->GetSelection() != 0;
475
476 m_labelSecAxisNumbering->Enable( use_set_start_grid && num2d );
477 m_choiceSecAxisNumbering->Enable( use_set_start_grid && num2d );
478
479 // We can only set an offset if we're setting the start number
480 m_labelGridNumberingOffset->Enable( use_set_start_grid );
481 m_entryGridPriNumberingOffset->Enable( use_set_start_grid );
482 m_entryGridSecNumberingOffset->Enable( use_set_start_grid && num2d );
483
484 // disable the circular number offset in the same way
485 const bool use_set_start_circ = m_rbCircStartNumberingOpt->GetSelection() == 1;
486 m_entryCircNumberingStart->Enable( use_set_start_circ );
487 }
488 else
489 {
490 // grid
491 m_rbGridStartNumberingOpt->Enable( false );
492 m_radioBoxGridNumberingScheme->Enable( false );
493
494 m_labelPriAxisNumbering->Enable( false );
495 m_labelSecAxisNumbering->Enable( false );
496
497 m_choiceSecAxisNumbering->Enable( false );
498 m_choicePriAxisNumbering->Enable( false );
499
500 m_labelGridNumberingOffset->Enable( false );
501 m_entryGridPriNumberingOffset->Enable( false );
502 m_entryGridSecNumberingOffset->Enable( false );
503
504 m_gridPadNumberingPanel->Show( false );
505
506 // circular
507 m_rbCircStartNumberingOpt->Enable( false );
508 m_entryCircNumberingStart->Enable( false );
509
510 m_circularPadNumberingPanel->Show( false );
511
512 m_footprintReannotatePanel->Show( true );
513 }
514}

References DIALOG_CREATE_ARRAY_BASE::m_choicePriAxisNumbering, DIALOG_CREATE_ARRAY_BASE::m_choiceSecAxisNumbering, DIALOG_CREATE_ARRAY_BASE::m_circularPadNumberingPanel, DIALOG_CREATE_ARRAY_BASE::m_entryCircNumberingStart, DIALOG_CREATE_ARRAY_BASE::m_entryGridPriNumberingOffset, DIALOG_CREATE_ARRAY_BASE::m_entryGridSecNumberingOffset, DIALOG_CREATE_ARRAY_BASE::m_footprintReannotatePanel, DIALOG_CREATE_ARRAY_BASE::m_gridPadNumberingPanel, m_isFootprintEditor, DIALOG_CREATE_ARRAY_BASE::m_labelGridNumberingOffset, DIALOG_CREATE_ARRAY_BASE::m_labelPriAxisNumbering, DIALOG_CREATE_ARRAY_BASE::m_labelSecAxisNumbering, DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridNumberingScheme, DIALOG_CREATE_ARRAY_BASE::m_rbCircStartNumberingOpt, and DIALOG_CREATE_ARRAY_BASE::m_rbGridStartNumberingOpt.

Referenced by DIALOG_CREATE_ARRAY(), and OnParameterChanged().

◆ SetInitialFocus()

void DIALOG_SHIM::SetInitialFocus ( wxWindow *  aWindow)
inlineinherited

Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown.

Definition at line 97 of file dialog_shim.h.

98 {
99 m_initialFocusTarget = aWindow;
100 }

References DIALOG_SHIM::m_initialFocusTarget.

Referenced by FOOTPRINT_EDIT_FRAME::buildSaveAsDialog(), SYMBOL_EDIT_FRAME::buildSaveAsDialog(), DIALOG_BOM::DIALOG_BOM(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL(), DIALOG_CONFIGURE_PATHS::DIALOG_CONFIGURE_PATHS(), DIALOG_FIND::DIALOG_FIND(), DIALOG_FOOTPRINT_PROPERTIES::DIALOG_FOOTPRINT_PROPERTIES(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR(), DIALOG_FP_PLUGIN_OPTIONS::DIALOG_FP_PLUGIN_OPTIONS(), DIALOG_GET_FOOTPRINT_BY_NAME::DIALOG_GET_FOOTPRINT_BY_NAME(), DIALOG_GRAPHIC_ITEM_PROPERTIES::DIALOG_GRAPHIC_ITEM_PROPERTIES(), DIALOG_GRID_SETTINGS::DIALOG_GRID_SETTINGS(), DIALOG_GROUP_PROPERTIES::DIALOG_GROUP_PROPERTIES(), DIALOG_IMPORT_GFX::DIALOG_IMPORT_GFX(), DIALOG_JUNCTION_PROPS::DIALOG_JUNCTION_PROPS(), DIALOG_LABEL_PROPERTIES::DIALOG_LABEL_PROPERTIES(), DIALOG_LIB_SHAPE_PROPERTIES::DIALOG_LIB_SHAPE_PROPERTIES(), DIALOG_LIB_TEXT_PROPERTIES::DIALOG_LIB_TEXT_PROPERTIES(), DIALOG_LIB_TEXTBOX_PROPERTIES::DIALOG_LIB_TEXTBOX_PROPERTIES(), DIALOG_LINE_PROPERTIES::DIALOG_LINE_PROPERTIES(), DIALOG_LOCKED_ITEMS_QUERY::DIALOG_LOCKED_ITEMS_QUERY(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PIN_PROPERTIES::DIALOG_PIN_PROPERTIES(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_SCH_FIND::DIALOG_SCH_FIND(), DIALOG_SHAPE_PROPERTIES::DIALOG_SHAPE_PROPERTIES(), DIALOG_SHEET_PIN_PROPERTIES::DIALOG_SHEET_PIN_PROPERTIES(), DIALOG_SYMBOL_FIELDS_TABLE::DIALOG_SYMBOL_FIELDS_TABLE(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TEXTBOX_PROPERTIES::DIALOG_TEXTBOX_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_WIRE_BUS_PROPERTIES::DIALOG_WIRE_BUS_PROPERTIES(), EDA_VIEW_SWITCHER::EDA_VIEW_SWITCHER(), HK_PROMPT_DIALOG::HK_PROMPT_DIALOG(), DIALOG_FIELD_PROPERTIES::init(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchAllClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchIDClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchRefClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchSelectedClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchValueClicked(), PANEL_FP_LIB_TABLE::PANEL_FP_LIB_TABLE(), PANEL_SYM_LIB_TABLE::PANEL_SYM_LIB_TABLE(), DIALOG_COPPER_ZONE::TransferDataToWindow(), DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataToWindow(), DIALOG_RULE_AREA_PROPERTIES::TransferDataToWindow(), and WX_TEXT_ENTRY_DIALOG::WX_TEXT_ENTRY_DIALOG().

◆ SetKiway()

void KIWAY_HOLDER::SetKiway ( wxWindow *  aDest,
KIWAY aKiway 
)
inherited

It is only used for debugging, since "this" is not a wxWindow*.

"this" is a KIWAY_HOLDER mix-in.

Parameters
aDestis the recipient of aKiway pointer.
aKiwayis often from a parent window or from KIFACE::CreateWindow().

Definition at line 43 of file kiway_holder.cpp.

44{
45#if defined(DEBUG)
46 // offer a trap point for debugging most any window
47 wxASSERT( aDest );
48 if( !strcmp( typeid(aDest).name(), "DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB" ) )
49 {
50 int breakhere=1;
51 ignore_unused( breakhere );
52 }
53#endif
54
55 ignore_unused( aDest );
56
57 m_kiway = aKiway;
58}
const char * name
Definition: DXF_plotter.cpp:56

References ignore_unused(), KIWAY_HOLDER::m_kiway, and name.

Referenced by BM2CMP_FRAME::BM2CMP_FRAME(), PCB::IFACE::CreateWindow(), InvokePcbLibTableEditor(), InvokeSchEditSymbolLibTable(), PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME(), and SIM_PLOT_FRAME::SIM_PLOT_FRAME().

◆ SetPosition()

void DIALOG_SHIM::SetPosition ( const wxPoint &  aNewPosition)
inherited

Force the position of the dialog to a new position.

Parameters
aNewPositionis the new forced position

Definition at line 197 of file dialog_shim.cpp.

198{
199 wxDialog::SetPosition( aNewPosition );
200
201 // Now update the stored position:
202 const char* hash_key;
203
204 if( m_hash_key.size() )
205 {
206 // a special case like EDA_LIST_DIALOG, which has multiple uses.
207 hash_key = m_hash_key.c_str();
208 }
209 else
210 {
211 hash_key = typeid(*this).name();
212 }
213
214 std::unordered_map<std::string, wxRect>::iterator it = class_map.find( hash_key );
215
216 if( it == class_map.end() )
217 return;
218
219 wxRect rect = it->second;
220 rect.SetPosition( aNewPosition );
221
222 class_map[ hash_key ] = rect;
223}
void SetPosition(const wxString &aStr, const wxString &aDefaultMeasurementUnit, int *aX, int *aY, const wxString &aActualConversion)

References class_map, DIALOG_SHIM::m_hash_key, and PCAD2KICAD::SetPosition().

Referenced by PCB_BASE_FRAME::SelectOneLayer().

◆ setSizeInDU()

void DIALOG_SHIM::setSizeInDU ( int  x,
int  y 
)
protectedinherited

Set the dialog to the given dimensions in "dialog units".

These are units equivalent to 4* the average character width and 8* the average character height, allowing a dialog to be sized in a way that scales it with the system font.

Definition at line 169 of file dialog_shim.cpp.

170{
171 wxSize sz( x, y );
172 SetSize( ConvertDialogToPixels( sz ) );
173}

Referenced by DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), HTML_MESSAGE_BOX::HTML_MESSAGE_BOX(), and HTML_MESSAGE_BOX::SetDialogSizeInDU().

◆ SetupStandardButtons()

void DIALOG_SHIM::SetupStandardButtons ( std::map< int, wxString >  aLabels = {})
inherited

Definition at line 709 of file dialog_shim.cpp.

710{
711 recursiveDescent( GetSizer(), aLabels );
712}
static void recursiveDescent(wxSizer *aSizer, std::map< int, wxString > &aLabels)

References recursiveDescent().

Referenced by CONVERT_SETTINGS_DIALOG::CONVERT_SETTINGS_DIALOG(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_ASSIGN_NETCLASS::DIALOG_ASSIGN_NETCLASS(), DIALOG_BOM::DIALOG_BOM(), DIALOG_BUS_MANAGER::DIALOG_BUS_MANAGER(), DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL(), DIALOG_CLEANUP_GRAPHICS::DIALOG_CLEANUP_GRAPHICS(), DIALOG_COLOR_PICKER::DIALOG_COLOR_PICKER(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_CONFIGURE_PATHS::DIALOG_CONFIGURE_PATHS(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_CREATE_ARRAY(), DIALOG_DIELECTRIC_MATERIAL::DIALOG_DIELECTRIC_MATERIAL(), DIALOG_DIMENSION_PROPERTIES::DIALOG_DIMENSION_PROPERTIES(), DIALOG_DRC::DIALOG_DRC(), DIALOG_ERC::DIALOG_ERC(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), DIALOG_EXPORT_3DFILE::DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_SVG::DIALOG_EXPORT_SVG(), DIALOG_FILTER_SELECTION::DIALOG_FILTER_SELECTION(), DIALOG_FOOTPRINT_CHECKER::DIALOG_FOOTPRINT_CHECKER(), DIALOG_FOOTPRINT_PROPERTIES::DIALOG_FOOTPRINT_PROPERTIES(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_FP_PLUGIN_OPTIONS::DIALOG_FP_PLUGIN_OPTIONS(), DIALOG_GEN_FOOTPRINT_POSITION::DIALOG_GEN_FOOTPRINT_POSITION(), DIALOG_GENDRILL::DIALOG_GENDRILL(), DIALOG_GET_FOOTPRINT_BY_NAME::DIALOG_GET_FOOTPRINT_BY_NAME(), DIALOG_GLOBAL_DELETION::DIALOG_GLOBAL_DELETION(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS(), DIALOG_GLOBAL_LIB_TABLE_CONFIG::DIALOG_GLOBAL_LIB_TABLE_CONFIG(), DIALOG_GRAPHIC_ITEM_PROPERTIES::DIALOG_GRAPHIC_ITEM_PROPERTIES(), DIALOG_GRID_SETTINGS::DIALOG_GRID_SETTINGS(), DIALOG_GROUP_PROPERTIES::DIALOG_GROUP_PROPERTIES(), DIALOG_IMAGE_PROPERTIES::DIALOG_IMAGE_PROPERTIES(), DIALOG_IMPORT_GFX::DIALOG_IMPORT_GFX(), DIALOG_IMPORT_SETTINGS::DIALOG_IMPORT_SETTINGS(), DIALOG_IMPORTED_LAYERS::DIALOG_IMPORTED_LAYERS(), DIALOG_JUNCTION_PROPS::DIALOG_JUNCTION_PROPS(), DIALOG_LABEL_PROPERTIES::DIALOG_LABEL_PROPERTIES(), DIALOG_LIB_EDIT_PIN_TABLE::DIALOG_LIB_EDIT_PIN_TABLE(), DIALOG_LIB_NEW_SYMBOL::DIALOG_LIB_NEW_SYMBOL(), DIALOG_LIB_SHAPE_PROPERTIES::DIALOG_LIB_SHAPE_PROPERTIES(), DIALOG_LIB_SYMBOL_PROPERTIES::DIALOG_LIB_SYMBOL_PROPERTIES(), DIALOG_LIB_TEXT_PROPERTIES::DIALOG_LIB_TEXT_PROPERTIES(), DIALOG_LIB_TEXTBOX_PROPERTIES::DIALOG_LIB_TEXTBOX_PROPERTIES(), DIALOG_LINE_PROPERTIES::DIALOG_LINE_PROPERTIES(), DIALOG_LOCKED_ITEMS_QUERY::DIALOG_LOCKED_ITEMS_QUERY(), DIALOG_MIGRATE_SETTINGS::DIALOG_MIGRATE_SETTINGS(), DIALOG_MOVE_EXACT::DIALOG_MOVE_EXACT(), DIALOG_NET_INSPECTOR::DIALOG_NET_INSPECTOR(), DIALOG_NETLIST_IMPORT::DIALOG_NETLIST_IMPORT(), DIALOG_NON_COPPER_ZONES_EDITOR::DIALOG_NON_COPPER_ZONES_EDITOR(), DIALOG_PAD_PRIMITIVE_POLY_PROPS::DIALOG_PAD_PRIMITIVE_POLY_PROPS(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PRIMITIVES_TRANSFORM::DIALOG_PAD_PRIMITIVES_TRANSFORM(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_PCM::DIALOG_PCM(), DIALOG_PIN_PROPERTIES::DIALOG_PIN_PROPERTIES(), DIALOG_PLOT::DIALOG_PLOT(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_PNS_DIFF_PAIR_DIMENSIONS::DIALOG_PNS_DIFF_PAIR_DIMENSIONS(), DIALOG_PNS_LENGTH_TUNING_SETTINGS::DIALOG_PNS_LENGTH_TUNING_SETTINGS(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_PRINT_GENERIC::DIALOG_PRINT_GENERIC(), DIALOG_PRINT_USING_PRINTER::DIALOG_PRINT_USING_PRINTER(), DIALOG_PUSH_PAD_PROPERTIES::DIALOG_PUSH_PAD_PROPERTIES(), DIALOG_REGULATOR_FORM::DIALOG_REGULATOR_FORM(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), DIALOG_RULE_AREA_PROPERTIES::DIALOG_RULE_AREA_PROPERTIES(), DIALOG_SCH_IMPORT_SETTINGS::DIALOG_SCH_IMPORT_SETTINGS(), DIALOG_SHAPE_PROPERTIES::DIALOG_SHAPE_PROPERTIES(), DIALOG_SHEET_PIN_PROPERTIES::DIALOG_SHEET_PIN_PROPERTIES(), DIALOG_SHEET_PROPERTIES::DIALOG_SHEET_PROPERTIES(), DIALOG_SIM_SETTINGS::DIALOG_SIM_SETTINGS(), DIALOG_SWAP_LAYERS::DIALOG_SWAP_LAYERS(), DIALOG_SYMBOL_FIELDS_TABLE::DIALOG_SYMBOL_FIELDS_TABLE(), DIALOG_SYMBOL_PROPERTIES::DIALOG_SYMBOL_PROPERTIES(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TEXTBOX_PROPERTIES::DIALOG_TEXTBOX_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_TRACK_VIA_SIZE::DIALOG_TRACK_VIA_SIZE(), DIALOG_UNUSED_PAD_LAYERS::DIALOG_UNUSED_PAD_LAYERS(), DIALOG_UPDATE_FROM_PCB::DIALOG_UPDATE_FROM_PCB(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), DIALOG_UPDATE_SYMBOL_FIELDS::DIALOG_UPDATE_SYMBOL_FIELDS(), DIALOG_WIRE_BUS_PROPERTIES::DIALOG_WIRE_BUS_PROPERTIES(), EDA_LIST_DIALOG::EDA_LIST_DIALOG(), DIALOG_CONSTRAINTS_REPORTER::FinishInitialization(), HTML_MESSAGE_BOX::HTML_MESSAGE_BOX(), DIALOG_FIELD_PROPERTIES::init(), DIALOG_EDIT_LIBRARY_TABLES::InstallPanel(), NETLIST_DIALOG::NETLIST_DIALOG(), NETLIST_DIALOG_ADD_GENERATOR::NETLIST_DIALOG_ADD_GENERATOR(), PAGED_DIALOG::PAGED_DIALOG(), DIALOG_CLEANUP_TRACKS_AND_VIAS::setupOKButtonLabel(), WX_TEXT_ENTRY_DIALOG::WX_TEXT_ENTRY_DIALOG(), and WX_UNIT_ENTRY_DIALOG::WX_UNIT_ENTRY_DIALOG().

◆ Show()

bool DIALOG_SHIM::Show ( bool  show)
overrideinherited

Definition at line 226 of file dialog_shim.cpp.

227{
228 bool ret;
229 const char* hash_key;
230
231 if( m_hash_key.size() )
232 {
233 // a special case like EDA_LIST_DIALOG, which has multiple uses.
234 hash_key = m_hash_key.c_str();
235 }
236 else
237 {
238 hash_key = typeid(*this).name();
239 }
240
241 // Show or hide the window. If hiding, save current position and size.
242 // If showing, use previous position and size.
243 if( show )
244 {
245#ifndef __WINDOWS__
246 wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
247#endif
248 ret = wxDialog::Show( show );
249
250 // classname is key, returns a zeroed out default EDA_RECT if none existed before.
251 wxRect savedDialogRect = class_map[ hash_key ];
252
253 if( savedDialogRect.GetSize().x != 0 && savedDialogRect.GetSize().y != 0 )
254 {
256 {
257 SetSize( savedDialogRect.GetPosition().x, savedDialogRect.GetPosition().y,
258 wxDialog::GetSize().x, wxDialog::GetSize().y, 0 );
259 }
260 else
261 {
262 SetSize( savedDialogRect.GetPosition().x, savedDialogRect.GetPosition().y,
263 std::max( wxDialog::GetSize().x, savedDialogRect.GetSize().x ),
264 std::max( wxDialog::GetSize().y, savedDialogRect.GetSize().y ),
265 0 );
266 }
267 }
268 else if( m_initialSize != wxDefaultSize )
269 SetSize( m_initialSize );
270
271 // Be sure that the dialog appears in a visible area
272 // (the dialog position might have been stored at the time when it was
273 // shown on another display)
274 if( wxDisplay::GetFromWindow( this ) == wxNOT_FOUND )
275 Centre();
276 }
277 else
278 {
279 // Save the dialog's position & size before hiding, using classname as key
280 class_map[ hash_key ] = wxRect( wxDialog::GetPosition(), wxDialog::GetSize() );
281
282#ifdef __WXMAC__
283 if ( m_eventLoop )
284 m_eventLoop->Exit( GetReturnCode() ); // Needed for APP-MODAL dlgs on OSX
285#endif
286
287 ret = wxDialog::Show( show );
288 }
289
290 return ret;
291}
bool m_useCalculatedSize
Definition: dialog_shim.h:207
wxSize m_initialSize
Definition: dialog_shim.h:225

References class_map, DIALOG_SHIM::m_hash_key, DIALOG_SHIM::m_initialSize, and DIALOG_SHIM::m_useCalculatedSize.

Referenced by FOOTPRINT_EDITOR_CONTROL::CheckFootprint(), EE_INSPECTION_TOOL::CrossProbe(), DRC_TOOL::CrossProbe(), DIALOG_SHIM::EndQuasiModal(), GROUP_TOOL::GroupProperties(), EE_INSPECTION_TOOL::NextMarker(), DRC_TOOL::NextMarker(), SCH_EDIT_FRAME::OnAnnotate(), DIALOG_DRC::OnDRCItemDClick(), DIALOG_ERC::OnERCItemDClick(), DIALOG_CLEANUP_GRAPHICS::OnLeftDClickItem(), DIALOG_CLEANUP_TRACKS_AND_VIAS::OnLeftDClickItem(), DIALOG_FOOTPRINT_CHECKER::OnLeftDClickItem(), GROUP_TOOL::PickNewMember(), EE_INSPECTION_TOOL::PrevMarker(), DRC_TOOL::PrevMarker(), CVPCB_MAINFRAME::readNetListAndFpFiles(), DIALOG_PAD_PROPERTIES::Show(), EDA_VIEW_SWITCHER::Show(), DIALOG_FIND::Show(), DRC_TOOL::ShowDRCDialog(), EE_INSPECTION_TOOL::ShowERCDialog(), SCH_EDIT_FRAME::ShowFindReplaceDialog(), HTML_MESSAGE_BOX::ShowModeless(), DIALOG_SHIM::ShowQuasiModal(), and DIALOG_POSITION_RELATIVE::UpdateAnchor().

◆ ShowQuasiModal()

int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 437 of file dialog_shim.cpp.

438{
439 // This is an exception safe way to zero a pointer before returning.
440 // Yes, even though DismissModal() clears this first normally, this is
441 // here in case there's an exception before the dialog is dismissed.
442 struct NULLER
443 {
444 void*& m_what;
445 NULLER( void*& aPtr ) : m_what( aPtr ) {}
446 ~NULLER() { m_what = nullptr; } // indeed, set it to NULL on destruction
447 } clear_this( (void*&) m_qmodal_loop );
448
449 // release the mouse if it's currently captured as the window having it
450 // will be disabled when this dialog is shown -- but will still keep the
451 // capture making it impossible to do anything in the modal dialog itself
452 wxWindow* win = wxWindow::GetCapture();
453 if( win )
454 win->ReleaseMouse();
455
456 // Get the optimal parent
457 wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
458
459 wxASSERT_MSG( !m_qmodal_parent_disabler, wxT( "Caller using ShowQuasiModal() twice on same "
460 "window?" ) );
461
462 // quasi-modal: disable only my "optimal" parent
464
465 // Apple in its infinite wisdom will raise a disabled window before even passing
466 // us the event, so we have no way to stop it. Instead, we must set an order on
467 // the windows so that the quasi-modal will be pushed in front of the disabled
468 // window when it is raised.
470
471 Show( true );
472
473 m_qmodal_showing = true;
474
475 WX_EVENT_LOOP event_loop;
476
477 m_qmodal_loop = &event_loop;
478
479 event_loop.Run();
480
481 m_qmodal_showing = false;
482
483 return GetReturnCode();
484}
Toggle a window's "enable" status to disabled, then enabled on destruction.
Definition: dialog_shim.cpp:46
#define WX_EVENT_LOOP
Definition: kiway_player.h:41
void ReparentQuasiModal(wxNonOwnedWindow *aWindow)
Move a window's parent to be the top-level window and force the window to be on top.
Definition: gtk/ui.cpp:65

References DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, DIALOG_SHIM::m_qmodal_showing, KIPLATFORM::UI::ReparentQuasiModal(), DIALOG_SHIM::Show(), and WX_EVENT_LOOP.

Referenced by SCH_EDIT_TOOL::ChangeSymbols(), S3D::Configure3DPaths(), MICROWAVE_TOOL::createFootprint(), MICROWAVE_TOOL::createMicrowaveInductor(), SCH_DRAWING_TOOLS::createNewText(), PCB::IFACE::CreateWindow(), SYMBOL_EDITOR_DRAWING_TOOLS::DrawShape(), SYMBOL_EDITOR_EDIT_TOOL::editFieldProperties(), SCH_EDIT_TOOL::editFieldText(), SCH_EDITOR_CONTROL::EditSymbolFields(), SYMBOL_EDITOR_EDIT_TOOL::editSymbolProperties(), GLOBAL_EDIT_TOOL::EditTracksAndVias(), GLOBAL_EDIT_TOOL::ExchangeFootprints(), InvokeCopperZonesEditor(), InvokeDialogCreateBOM(), InvokeDialogEditSymbolsLibId(), InvokeDialogRescueEach(), InvokeNonCopperZonesEditor(), FOOTPRINT_EDIT_FRAME::OnEditItemRequest(), PCB_EDIT_FRAME::OnEditItemRequest(), SYMBOL_VIEWER_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_TOOL::Properties(), EDIT_TOOL::Properties(), SCH_EDITOR_CONTROL::RemapSymbols(), S3D::Select3DModel(), PCB_BASE_FRAME::SelectFootprintFromLibTree(), PCB_EDIT_FRAME::ShowBoardSetupDialog(), PCB_EDIT_FRAME::ShowExchangeFootprintsDialog(), PCB_BASE_EDIT_FRAME::ShowGraphicItemPropertiesDialog(), PCB_BASE_FRAME::ShowPadPropertiesDialog(), SCH_EDIT_FRAME::ShowSchematicSetupDialog(), PCB_BASE_EDIT_FRAME::ShowTextBoxPropertiesDialog(), PCB_BASE_EDIT_FRAME::ShowTextPropertiesDialog(), and PCB_EDIT_FRAME::ToPlotter().

◆ TransferDataFromWindow()

bool DIALOG_CREATE_ARRAY::TransferDataFromWindow ( )
overrideprivate

Definition at line 322 of file dialog_create_array.cpp.

323{
324 std::unique_ptr<ARRAY_OPTIONS> newSettings;
325
326 wxArrayString errors;
327 const wxWindow* page = m_gridTypeNotebook->GetCurrentPage();
328
329 if( page == m_gridPanel )
330 {
331 auto newGrid = std::make_unique<ARRAY_GRID_OPTIONS>();
332 bool ok = true;
333
334 // ints
335 ok &= validateLongEntry(*m_entryNx, newGrid->m_nx, _("horizontal count"), errors);
336 ok &= validateLongEntry(*m_entryNy, newGrid->m_ny, _("vertical count"), errors);
337
338 newGrid->m_delta.x = m_hSpacing.GetValue();
339 newGrid->m_delta.y = m_vSpacing.GetValue();
340
341 newGrid->m_offset.x = m_hOffset.GetValue();
342 newGrid->m_offset.y = m_vOffset.GetValue();
343
344 ok &= validateLongEntry(*m_entryStagger, newGrid->m_stagger, _("stagger"), errors);
345
346 newGrid->m_stagger_rows = m_radioBoxGridStaggerType->GetSelection() == 0;
347
348 newGrid->m_horizontalThenVertical = m_radioBoxGridNumberingAxis->GetSelection() == 0;
349 newGrid->m_reverseNumberingAlternate = m_checkBoxGridReverseNumbering->GetValue();
350
351 newGrid->SetShouldNumber( m_isFootprintEditor );
352
354 {
355 newGrid->SetNumberingStartIsSpecified( m_rbGridStartNumberingOpt->GetSelection() == 1 );
356
357 if( newGrid->GetNumberingStartIsSpecified() )
358 {
359 newGrid->m_2dArrayNumbering = m_radioBoxGridNumberingScheme->GetSelection() != 0;
360
361 // validate from the input fields
365 newGrid->m_pri_axis, errors );
366
367 if( newGrid->m_2dArrayNumbering )
368 {
372 newGrid->m_sec_axis, errors );
373 }
374
375 ok &= numOk;
376 }
377 else
378 {
379 // artificial linear numeric scheme from 1
380 newGrid->m_2dArrayNumbering = false;
381 newGrid->m_pri_axis.SetAxisType( ARRAY_AXIS::NUMBERING_TYPE::NUMBERING_NUMERIC );
382 newGrid->m_pri_axis.SetOffset( 1 );
383 }
384 }
385
386 // Only use settings if all values are good
387 if( ok )
388 newSettings = std::move( newGrid );
389 }
390 else if( page == m_circularPanel )
391 {
392 auto newCirc = std::make_unique<ARRAY_CIRCULAR_OPTIONS>();
393 bool ok = true;
395
396 newCirc->m_centre.x = m_hCentre.GetValue();
397 newCirc->m_centre.y = m_vCentre.GetValue();
398 newCirc->m_angle = EDA_ANGLE( angle, DEGREES_T );
399
400 ok = validateLongEntry(*m_entryCircCount, newCirc->m_nPts, _("point count"), errors);
401
402 newCirc->m_rotateItems = m_entryRotateItemsCb->GetValue();
403 newCirc->SetShouldNumber( m_isFootprintEditor );
404
406 {
407 newCirc->SetNumberingStartIsSpecified( m_rbCircStartNumberingOpt->GetSelection() == 1 );
408
409 if( newCirc->GetNumberingStartIsSpecified() )
410 {
412 *m_entryCircNumberingStep, newCirc->m_axis, errors );
413 }
414 else
415 {
416 // artificial linear numeric scheme from 1
417 newCirc->m_axis.SetAxisType( ARRAY_AXIS::NUMBERING_TYPE::NUMBERING_NUMERIC );
418 newCirc->m_axis.SetOffset( 1 ); // Start at "1"
419 }
420 }
421
422 // Only use settings if all values are good
423 if( ok )
424 newSettings = std::move( newCirc );
425 }
426
427 // If we got good settings, send them out and finish
428 if( newSettings )
429 {
430 // assign pointer and ownership here
431 m_settings = std::move( newSettings );
432
433 m_settings->SetSShouldReannotateFootprints( m_radioBtnUniqueRefs->GetValue() );
434
435 // persist the control state for next time
437
438 return true;
439 }
440 else
441 {
442 wxString errorStr;
443
444 if( errors.IsEmpty() )
445 errorStr = _("Bad parameters");
446 else
447 errorStr = boost::algorithm::join( errors, wxT( "\n" ) );
448
449 wxMessageBox( errorStr );
450 return false;
451 }
452}
double DoubleValueFromString(EDA_UNITS aUnits, const wxString &aTextValue, EDA_DATA_TYPE aType)
Function DoubleValueFromString converts aTextValue to a double.
Definition: base_units.cpp:276
void ReadConfigFromControls()
Read values of all bound controls into the internally-stored references to the underlying data.
static bool validateAxisOptions(const wxTextCtrl &offsetEntry, const wxChoice &typeEntry, const wxTextCtrl &aStepEntry, ARRAY_AXIS &aAxis, wxArrayString &errors)
Validates and saves (if valid) the type and offset of an array axis numbering.
static bool validateLongEntry(const wxTextEntry &entry, long &dest, const wxString &description, wxArrayString &errors)
Validate and save a long integer entry.
#define _(s)
@ DEGREES_T
Definition: eda_angle.h:31
static DIRECTION_45::AngleType angle(const VECTOR2I &a, const VECTOR2I &b)

References _, PNS::angle(), DEGREES_T, DoubleValueFromString(), UNIT_BINDER::GetValue(), m_cfg_persister, DIALOG_CREATE_ARRAY_BASE::m_checkBoxGridReverseNumbering, DIALOG_CREATE_ARRAY_BASE::m_choiceCircNumbering, DIALOG_CREATE_ARRAY_BASE::m_choicePriAxisNumbering, DIALOG_CREATE_ARRAY_BASE::m_choiceSecAxisNumbering, DIALOG_CREATE_ARRAY_BASE::m_circularPanel, DIALOG_CREATE_ARRAY_BASE::m_entryCircAngle, DIALOG_CREATE_ARRAY_BASE::m_entryCircCount, DIALOG_CREATE_ARRAY_BASE::m_entryCircNumberingStart, DIALOG_CREATE_ARRAY_BASE::m_entryCircNumberingStep, DIALOG_CREATE_ARRAY_BASE::m_entryGridPriNumberingOffset, DIALOG_CREATE_ARRAY_BASE::m_entryGridPriNumberingStep, DIALOG_CREATE_ARRAY_BASE::m_entryGridSecNumberingOffset, DIALOG_CREATE_ARRAY_BASE::m_entryGridSecNumberingStep, DIALOG_CREATE_ARRAY_BASE::m_entryNx, DIALOG_CREATE_ARRAY_BASE::m_entryNy, DIALOG_CREATE_ARRAY_BASE::m_entryRotateItemsCb, DIALOG_CREATE_ARRAY_BASE::m_entryStagger, DIALOG_CREATE_ARRAY_BASE::m_gridPanel, DIALOG_CREATE_ARRAY_BASE::m_gridTypeNotebook, m_hCentre, m_hOffset, m_hSpacing, m_isFootprintEditor, DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridNumberingAxis, DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridNumberingScheme, DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridStaggerType, DIALOG_CREATE_ARRAY_BASE::m_radioBtnUniqueRefs, DIALOG_CREATE_ARRAY_BASE::m_rbCircStartNumberingOpt, DIALOG_CREATE_ARRAY_BASE::m_rbGridStartNumberingOpt, m_settings, m_vCentre, m_vOffset, m_vSpacing, WIDGET_SAVE_RESTORE::ReadConfigFromControls(), UNSCALED, validateAxisOptions(), and validateLongEntry().

◆ vertPixelsFromDU()

int DIALOG_SHIM::vertPixelsFromDU ( int  y) const
protectedinherited

Convert an integer number of dialog units to pixels, vertically.

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 183 of file dialog_shim.cpp.

184{
185 wxSize sz( 0, y );
186 return ConvertDialogToPixels( sz ).y;
187}

Referenced by DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL().

Member Data Documentation

◆ m_cfg_persister

WIDGET_SAVE_RESTORE DIALOG_CREATE_ARRAY::m_cfg_persister
private

Definition at line 83 of file dialog_create_array.h.

Referenced by DIALOG_CREATE_ARRAY(), and TransferDataFromWindow().

◆ m_checkBoxGridReverseNumbering

wxCheckBox* DIALOG_CREATE_ARRAY_BASE::m_checkBoxGridReverseNumbering
protectedinherited

◆ m_choiceCircNumbering

wxChoice* DIALOG_CREATE_ARRAY_BASE::m_choiceCircNumbering
protectedinherited

◆ m_choicePriAxisNumbering

wxChoice* DIALOG_CREATE_ARRAY_BASE::m_choicePriAxisNumbering
protectedinherited

◆ m_choiceSecAxisNumbering

wxChoice* DIALOG_CREATE_ARRAY_BASE::m_choiceSecAxisNumbering
protectedinherited

◆ m_circAngle

UNIT_BINDER DIALOG_CREATE_ARRAY::m_circAngle
private

Definition at line 81 of file dialog_create_array.h.

Referenced by DIALOG_CREATE_ARRAY().

◆ m_circPadNumberingSizer

wxStaticBoxSizer* DIALOG_CREATE_ARRAY_BASE::m_circPadNumberingSizer
protectedinherited

◆ m_circRadius

UNIT_BINDER DIALOG_CREATE_ARRAY::m_circRadius
private

Definition at line 80 of file dialog_create_array.h.

Referenced by calculateCircularArrayProperties().

◆ m_circularPadNumberingPanel

wxPanel* DIALOG_CREATE_ARRAY_BASE::m_circularPadNumberingPanel
protectedinherited

◆ m_circularPanel

wxPanel* DIALOG_CREATE_ARRAY_BASE::m_circularPanel
protectedinherited

◆ m_entryCentreX

wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryCentreX
protectedinherited

◆ m_entryCentreY

wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryCentreY
protectedinherited

◆ m_entryCircAngle

wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryCircAngle
protectedinherited

◆ m_entryCircCount

◆ m_entryCircNumberingStart

wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryCircNumberingStart
protectedinherited

◆ m_entryCircNumberingStep

wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryCircNumberingStep
protectedinherited

◆ m_entryDx

wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryDx
protectedinherited

◆ m_entryDy

wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryDy
protectedinherited

◆ m_entryGridPriNumberingOffset

wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryGridPriNumberingOffset
protectedinherited

◆ m_entryGridPriNumberingStep

wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryGridPriNumberingStep
protectedinherited

◆ m_entryGridSecNumberingOffset

wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryGridSecNumberingOffset
protectedinherited

◆ m_entryGridSecNumberingStep

wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryGridSecNumberingStep
protectedinherited

◆ m_entryNx

◆ m_entryNy

◆ m_entryOffsetX

wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryOffsetX
protectedinherited

◆ m_entryOffsetY

wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryOffsetY
protectedinherited

◆ m_entryRotateItemsCb

wxCheckBox* DIALOG_CREATE_ARRAY_BASE::m_entryRotateItemsCb
protectedinherited

◆ m_entryStagger

◆ m_firstPaintEvent

bool DIALOG_SHIM::m_firstPaintEvent
protectedinherited

Definition at line 212 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint().

◆ m_footprintReannotatePanel

wxPanel* DIALOG_CREATE_ARRAY_BASE::m_footprintReannotatePanel
protectedinherited

◆ m_gridPadNumberingPanel

wxPanel* DIALOG_CREATE_ARRAY_BASE::m_gridPadNumberingPanel
protectedinherited

◆ m_gridPadNumberingSizer

wxBoxSizer* DIALOG_CREATE_ARRAY_BASE::m_gridPadNumberingSizer
protectedinherited

◆ m_gridPanel

wxPanel* DIALOG_CREATE_ARRAY_BASE::m_gridPanel
protectedinherited

◆ m_gridTypeNotebook

wxNotebook* DIALOG_CREATE_ARRAY_BASE::m_gridTypeNotebook
protectedinherited

◆ m_hash_key

◆ m_hCentre

UNIT_BINDER DIALOG_CREATE_ARRAY::m_hCentre
private

◆ m_hOffset

UNIT_BINDER DIALOG_CREATE_ARRAY::m_hOffset
private

Definition at line 78 of file dialog_create_array.h.

Referenced by DIALOG_CREATE_ARRAY(), and TransferDataFromWindow().

◆ m_hSpacing

UNIT_BINDER DIALOG_CREATE_ARRAY::m_hSpacing
private

Definition at line 77 of file dialog_create_array.h.

Referenced by DIALOG_CREATE_ARRAY(), and TransferDataFromWindow().

◆ m_initialFocusTarget

wxWindow* DIALOG_SHIM::m_initialFocusTarget
protectedinherited

Definition at line 213 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint(), and DIALOG_SHIM::SetInitialFocus().

◆ m_initialSize

wxSize DIALOG_SHIM::m_initialSize
protectedinherited

Definition at line 225 of file dialog_shim.h.

Referenced by DIALOG_SHIM::Show().

◆ m_isFootprintEditor

bool DIALOG_CREATE_ARRAY::m_isFootprintEditor
private

Definition at line 75 of file dialog_create_array.h.

Referenced by setControlEnablement(), and TransferDataFromWindow().

◆ m_kiway

KIWAY* KIWAY_HOLDER::m_kiway
privateinherited

◆ m_labelCentreX

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelCentreX
protectedinherited

◆ m_labelCentreY

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelCentreY
protectedinherited

◆ m_labelCircAngle

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelCircAngle
protectedinherited

◆ m_labelCircCount

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelCircCount
protectedinherited

◆ m_labelCircNumbering

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelCircNumbering
protectedinherited

◆ m_labelCircNumStart

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelCircNumStart
protectedinherited

◆ m_labelCircNumStep

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelCircNumStep
protectedinherited

◆ m_labelCircRadius

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelCircRadius
protectedinherited

◆ m_labelCircRotate

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelCircRotate
protectedinherited

◆ m_labelDx

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelDx
protectedinherited

◆ m_labelDy

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelDy
protectedinherited

◆ m_labelGridNumberingOffset

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelGridNumberingOffset
protectedinherited

◆ m_labelGridNumberingStep

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelGridNumberingStep
protectedinherited

◆ m_labelNx

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelNx
protectedinherited

◆ m_labelNy

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelNy
protectedinherited

◆ m_labelOffsetX

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelOffsetX
protectedinherited

◆ m_labelOffsetY

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelOffsetY
protectedinherited

◆ m_labelPriAxisNumbering

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelPriAxisNumbering
protectedinherited

◆ m_labelSecAxisNumbering

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelSecAxisNumbering
protectedinherited

◆ m_labelStagger

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelStagger
protectedinherited

◆ m_originalItemPosition

const wxPoint DIALOG_CREATE_ARRAY::m_originalItemPosition
private

Definition at line 72 of file dialog_create_array.h.

Referenced by calculateCircularArrayProperties().

◆ m_parentFrame

EDA_BASE_FRAME* DIALOG_SHIM::m_parentFrame
protectedinherited

◆ m_qmodal_loop

WX_EVENT_LOOP* DIALOG_SHIM::m_qmodal_loop
protectedinherited

Definition at line 215 of file dialog_shim.h.

Referenced by DIALOG_SHIM::EndQuasiModal(), and DIALOG_SHIM::ShowQuasiModal().

◆ m_qmodal_parent_disabler

WDO_ENABLE_DISABLE* DIALOG_SHIM::m_qmodal_parent_disabler
protectedinherited

◆ m_qmodal_showing

bool DIALOG_SHIM::m_qmodal_showing
protectedinherited

Definition at line 217 of file dialog_shim.h.

Referenced by DIALOG_SHIM::IsQuasiModal(), and DIALOG_SHIM::ShowQuasiModal().

◆ m_radioBoxGridNumberingAxis

wxRadioBox* DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridNumberingAxis
protectedinherited

◆ m_radioBoxGridNumberingScheme

wxRadioBox* DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridNumberingScheme
protectedinherited

◆ m_radioBoxGridStaggerType

wxRadioBox* DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridStaggerType
protectedinherited

◆ m_radioBtnKeepRefs

wxRadioButton* DIALOG_CREATE_ARRAY_BASE::m_radioBtnKeepRefs
protectedinherited

◆ m_radioBtnUniqueRefs

wxRadioButton* DIALOG_CREATE_ARRAY_BASE::m_radioBtnUniqueRefs
protectedinherited

◆ m_rbCircStartNumberingOpt

wxRadioBox* DIALOG_CREATE_ARRAY_BASE::m_rbCircStartNumberingOpt
protectedinherited

◆ m_rbGridStartNumberingOpt

wxRadioBox* DIALOG_CREATE_ARRAY_BASE::m_rbGridStartNumberingOpt
protectedinherited

◆ m_settings

std::unique_ptr<ARRAY_OPTIONS>& DIALOG_CREATE_ARRAY::m_settings
private

The settings to re-seat on dialog OK.

Definition at line 67 of file dialog_create_array.h.

Referenced by TransferDataFromWindow().

◆ m_stdButtons

wxStdDialogButtonSizer* DIALOG_CREATE_ARRAY_BASE::m_stdButtons
protectedinherited

◆ m_stdButtonsCancel

wxButton* DIALOG_CREATE_ARRAY_BASE::m_stdButtonsCancel
protectedinherited

◆ m_stdButtonsOK

wxButton* DIALOG_CREATE_ARRAY_BASE::m_stdButtonsOK
protectedinherited

◆ m_tabOrder

◆ m_type

HOLDER_TYPE KIWAY_HOLDER::m_type
privateinherited

Definition at line 85 of file kiway_holder.h.

Referenced by KIWAY_HOLDER::GetType(), and SIM_PLOT_FRAME::onSimFinished().

◆ m_unitLabelCentreX

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_unitLabelCentreX
protectedinherited

◆ m_unitLabelCentreY

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_unitLabelCentreY
protectedinherited

◆ m_unitLabelCircAngle

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_unitLabelCircAngle
protectedinherited

◆ m_unitLabelCircRadius

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_unitLabelCircRadius
protectedinherited

◆ m_unitLabelDx

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_unitLabelDx
protectedinherited

◆ m_unitLabelDy

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_unitLabelDy
protectedinherited

◆ m_unitLabelOffsetX

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_unitLabelOffsetX
protectedinherited

◆ m_unitLabelOffsetY

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_unitLabelOffsetY
protectedinherited

◆ m_units

◆ m_useCalculatedSize

bool DIALOG_SHIM::m_useCalculatedSize
protectedinherited

◆ m_valueCircRadius

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_valueCircRadius
protectedinherited

◆ m_vCentre

UNIT_BINDER DIALOG_CREATE_ARRAY::m_vCentre
private

◆ m_vOffset

UNIT_BINDER DIALOG_CREATE_ARRAY::m_vOffset
private

Definition at line 78 of file dialog_create_array.h.

Referenced by DIALOG_CREATE_ARRAY(), and TransferDataFromWindow().

◆ m_vSpacing

UNIT_BINDER DIALOG_CREATE_ARRAY::m_vSpacing
private

Definition at line 77 of file dialog_create_array.h.

Referenced by DIALOG_CREATE_ARRAY(), and TransferDataFromWindow().


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