KiCad PCB EDA Suite
DIALOG_MODULE_BOARD_EDITOR Class Reference

#include <dialog_edit_module_for_BoardEditor.h>

Inheritance diagram for DIALOG_MODULE_BOARD_EDITOR:
DIALOG_MODULE_BOARD_EDITOR_BASE DIALOG_SHIM KIWAY_HOLDER

Public Types

enum  FP_PRM_EDITOR_RETVALUE { PRM_EDITOR_ABORT, PRM_EDITOR_WANT_EXCHANGE_FP, PRM_EDITOR_EDIT_OK, PRM_EDITOR_WANT_MODEDIT }
 

Public Member Functions

 DIALOG_MODULE_BOARD_EDITOR (PCB_EDIT_FRAME *aParent, MODULE *aModule, wxDC *aDC)
 
 ~DIALOG_MODULE_BOARD_EDITOR ()
 
int ShowQuasiModal ()
 
void EndQuasiModal (int retCode)
 
bool IsQuasiModal ()
 
bool Show (bool show) override
 
bool Enable (bool enable) override
 
KIWAYKiway () const
 Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in. More...
 
PROJECTPrj () const
 Function Prj returns a reference to the PROJECT "associated with" this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 Function SetKiway. More...
 

Protected Member Functions

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 FixOSXCancelButtonIssue ()
 A ugly hack to fix an issue on OSX: when typing ctrl+c in a wxTextCtrl inside a dialog, it is closed instead of copying a text if a button with wxID_CANCEL is used in a wxStdDialogButtonSizer, when the dlg is created by wxFormBuilder: the label is &Cancel, and this accelerator key has priority to copy text standard accelerator, and the dlg is closed when trying to copy text this function do nothing on other platforms. More...
 

Protected Attributes

wxNotebook * m_NoteBook
 
wxPanel * m_PanelProperties
 
wxStaticText * m_staticTextRef
 
wxTextCtrl * m_ReferenceCtrl
 
wxButton * m_button4
 
wxStaticText * m_staticTextVal
 
wxTextCtrl * m_ValueCtrl
 
wxButton * m_button5
 
wxRadioBox * m_LayerCtrl
 
wxRadioBox * m_OrientCtrl
 
wxStaticText * m_staticTextRotation
 
wxTextCtrl * m_OrientValueCtrl
 
wxStaticText * m_staticTextPos
 
wxStaticText * m_XPosLabel
 
wxTextCtrl * m_ModPositionX
 
wxStaticText * m_XPosUnit
 
wxStaticText * m_YPosLabel
 
wxTextCtrl * m_ModPositionY
 
wxStaticText * m_YPosUnit
 
wxStaticText * m_TextSheetPath
 
wxTextCtrl * m_textCtrlSheetPath
 
wxButton * m_buttonExchange
 
wxButton * m_buttonModuleEditor
 
wxRadioBox * m_AttributsCtrl
 
wxRadioBox * m_AutoPlaceCtrl
 
wxStaticText * m_staticText11
 
wxSlider * m_CostRot90Ctrl
 
wxStaticText * m_staticText12
 
wxSlider * m_CostRot180Ctrl
 
wxStaticText * m_staticText16
 
wxChoice * m_ZoneConnectionChoice
 
wxStaticText * m_staticTextInfo
 
wxStaticText * m_staticTextNetClearance
 
wxTextCtrl * m_NetClearanceValueCtrl
 
wxStaticText * m_NetClearanceUnits
 
wxStaticLine * m_staticline1
 
wxStaticLine * m_staticline2
 
wxStaticLine * m_staticline3
 
wxStaticText * m_MaskClearanceTitle
 
wxTextCtrl * m_SolderMaskMarginCtrl
 
wxStaticText * m_SolderMaskMarginUnits
 
wxStaticText * m_staticTextSolderPaste
 
wxTextCtrl * m_SolderPasteMarginCtrl
 
wxStaticText * m_SolderPasteMarginUnits
 
wxStaticText * m_staticTextRatio
 
wxTextCtrl * m_SolderPasteMarginRatioCtrl
 
wxStaticText * m_SolderPasteRatioMarginUnits
 
wxPanel * m_Panel3D
 
wxBoxSizer * bSizerMain3D
 
wxListBox * m_3D_ShapeNameListBox
 
wxButton * m_buttonAdd
 
wxButton * m_buttonRemove
 
wxButton * m_buttonEdit
 
wxButton * m_button8
 
wxBoxSizer * bLowerSizer3D
 
wxStdDialogButtonSizer * m_sdbSizerStdButtons
 
wxButton * m_sdbSizerStdButtonsOK
 
wxButton * m_sdbSizerStdButtonsCancel
 
std::string m_hash_key
 
EVENT_LOOPm_qmodal_loop
 
bool m_qmodal_showing
 
WDO_ENABLE_DISABLEm_qmodal_parent_disabler
 

Private Member Functions

void BrowseAndAdd3DShapeFile ()
 
void InitBoardProperties ()
 
void InitModeditProperties ()
 
void Edit3DShapeFileName ()
 
void OnEditValue (wxCommandEvent &event) override
 
void OnEditReference (wxCommandEvent &event) override
 
void On3DShapeSelection (wxCommandEvent &event)
 
void On3DShapeNameSelected (wxCommandEvent &event) override
 
void Edit3DShapeFilename (wxCommandEvent &event) override
 
void Remove3DShape (wxCommandEvent &event) override
 
void Add3DShape (wxCommandEvent &event) override
 
void GotoModuleEditor (wxCommandEvent &event) override
 
void ExchangeModule (wxCommandEvent &event) override
 
void ModuleOrientEvent (wxCommandEvent &event) override
 
void Cfg3DPath (wxCommandEvent &event) override
 
void OnInitDlg (wxInitDialogEvent &event) override
 
bool TransferDataToWindow () override
 
bool TransferDataFromWindow () override
 
void OnCloseWindow (wxCloseEvent &event)
 OnCloseWindow - called when the frame is closed. More...
 
 DECLARE_EVENT_TABLE ()
 

Private Attributes

PCB_EDIT_FRAMEm_Parent
 
wxDC * m_DC
 
MODULEm_CurrentModule
 
TEXTE_MODULEm_ReferenceCopy
 
TEXTE_MODULEm_ValueCopy
 
std::vector< S3D_INFOm_shapes3D_list
 
int m_LastSelected3DShapeIndex
 
PANEL_PREV_3Dm_PreviewPane
 
MODULEm_currentModuleCopy
 
wxFloatingPointValidator< double > m_OrientValidator
 
double m_OrientValue
 

Static Private Attributes

static size_t m_page = 0
 Module editor: Dialog for editing module properties in the pcb editor. More...
 

Detailed Description

Definition at line 35 of file dialog_edit_module_for_BoardEditor.h.

Member Enumeration Documentation

Constructor & Destructor Documentation

DIALOG_MODULE_BOARD_EDITOR::DIALOG_MODULE_BOARD_EDITOR ( PCB_EDIT_FRAME aParent,
MODULE aModule,
wxDC *  aDC 
)
DIALOG_MODULE_BOARD_EDITOR::~DIALOG_MODULE_BOARD_EDITOR ( )

Definition at line 111 of file dialog_edit_module_for_BoardEditor.cpp.

References DIALOG_MODULE_BOARD_EDITOR_BASE::m_NoteBook, m_page, m_PreviewPane, m_ReferenceCopy, m_shapes3D_list, m_ValueCopy, and KIWAY_HOLDER::Prj().

112 {
113  m_shapes3D_list.clear();
114 
115  // free the memory used by all models, otherwise models which were
116  // browsed but not used would consume memory
117  Prj().Get3DCacheManager()->FlushCache( false );
118 
119  // the GL canvas has to be visible before it is destroyed
120  m_page = m_NoteBook->GetSelection();
121  m_NoteBook->SetSelection( 1 );
122 
123  delete m_ReferenceCopy;
124  m_ReferenceCopy = NULL;
125 
126  delete m_ValueCopy;
127  m_ValueCopy = NULL;
128 
129  delete m_PreviewPane;
130  m_PreviewPane = NULL; // just in case, to avoid double-free
131 
132  // this is already deleted by the board used on preview pane so
133  // no need to delete here
134  // delete m_currentModuleCopy;
135  // m_currentModuleCopy = NULL;
136 }
static size_t m_page
Module editor: Dialog for editing module properties in the pcb editor.
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.

Member Function Documentation

void DIALOG_MODULE_BOARD_EDITOR::Add3DShape ( wxCommandEvent &  event)
inlineoverrideprivatevirtual
void DIALOG_MODULE_BOARD_EDITOR::BrowseAndAdd3DShapeFile ( )
private

Definition at line 528 of file dialog_edit_module_for_BoardEditor.cpp.

References Format(), PROJECT::GetRString(), DIALOG_MODULE_BOARD_EDITOR_BASE::m_3D_ShapeNameListBox, S3D_INFO::m_Filename, m_LastSelected3DShapeIndex, m_PreviewPane, m_shapes3D_list, KIWAY_HOLDER::Prj(), S3D::Select3DModel(), PANEL_PREV_3D::SetModelDataIdx(), PROJECT::SetRString(), S3D_FILENAME_RESOLVER::SplitAlias(), PROJECT::VIEWER_3D_FILTER_INDEX, and PROJECT::VIEWER_3D_PATH.

Referenced by Add3DShape().

529 {
530  PROJECT& prj = Prj();
531  S3D_INFO model;
532 
533  wxString initialpath = prj.GetRString( PROJECT::VIEWER_3D_PATH );
534  wxString sidx = prj.GetRString( PROJECT::VIEWER_3D_FILTER_INDEX );
535  int filter = 0;
536 
537  if( !sidx.empty() )
538  {
539  long tmp;
540  sidx.ToLong( &tmp );
541 
542  if( tmp > 0 && tmp <= INT_MAX )
543  filter = (int) tmp;
544  }
545 
546  if( !S3D::Select3DModel( this, Prj().Get3DCacheManager(),
547  initialpath, filter, &model ) || model.m_Filename.empty() )
548  {
549  return;
550  }
551 
552  prj.SetRString( PROJECT::VIEWER_3D_PATH, initialpath );
553  sidx = wxString::Format( wxT( "%i" ), filter );
555  S3D_FILENAME_RESOLVER* res = Prj().Get3DCacheManager()->GetResolver();
556  wxString alias;
557  wxString shortPath;
558  wxString filename = model.m_Filename;
559 
560  if( res && res->SplitAlias( filename, alias, shortPath ) )
561  {
562  alias.Append( wxT( ":" ) );
563  alias.Append( shortPath );
564  m_3D_ShapeNameListBox->Append( alias );
565  }
566  else
567  {
568  m_3D_ShapeNameListBox->Append( filename );
569  }
570 
571 #ifdef __WINDOWS__
572  // In Kicad files, filenames and paths are stored using Unix notation
573  model.m_Filename.Replace( wxT( "\\" ), wxT( "/" ) );
574 #endif
575 
576  m_shapes3D_list.push_back( model );
579 
580  if( m_PreviewPane )
582 
583  return;
584 }
Class PROJECT holds project specific data.
Definition: project.h:51
bool SplitAlias(const wxString &aFileName, wxString &anAlias, wxString &aRelPath)
Function SplitAlias returns true if the given name contains an alias and populates the string anAlias...
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
void SetModelDataIdx(int idx, bool aReloadPreviewModule=false)
SetModelDataIdx - This will set the index of the INFO list that was set on the parent.
bool Select3DModel(wxWindow *aParent, S3D_CACHE *aCache, wxString &prevModelSelectDir, int &prevModelWildcard, S3D_INFO *aModel)
VTBL_ENTRY void SetRString(RSTRING_T aStringId, const wxString &aString)
Function SetRString stores a "retained string", which is any session and project specific string iden...
Definition: project.cpp:162
VTBL_ENTRY const wxString & GetRString(RSTRING_T aStringId)
Function GetRString returns a "retained string", which is any session and project specific string ide...
Definition: project.cpp:177
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
wxString m_Filename
The 3D shape filename in 3D library.
Definition: 3d_info.h:45
void DIALOG_MODULE_BOARD_EDITOR::Cfg3DPath ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_MODULE_BOARD_EDITOR_BASE.

Definition at line 784 of file dialog_edit_module_for_BoardEditor.cpp.

References S3D::Configure3DPaths(), m_LastSelected3DShapeIndex, m_PreviewPane, KIWAY_HOLDER::Prj(), and PANEL_PREV_3D::SetModelDataIdx().

785 {
786  if( S3D::Configure3DPaths( this, Prj().Get3DCacheManager()->GetResolver() ) )
787  if( m_LastSelected3DShapeIndex >= 0 )
788  if( m_PreviewPane )
790 }
bool Configure3DPaths(wxWindow *aParent, S3D_FILENAME_RESOLVER *aResolver)
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
void SetModelDataIdx(int idx, bool aReloadPreviewModule=false)
SetModelDataIdx - This will set the index of the INFO list that was set on the parent.
DIALOG_MODULE_BOARD_EDITOR::DECLARE_EVENT_TABLE ( )
private
void DIALOG_MODULE_BOARD_EDITOR::Edit3DShapeFileName ( )
private

Definition at line 476 of file dialog_edit_module_for_BoardEditor.cpp.

References DIALOG_MODULE_BOARD_EDITOR_BASE::m_3D_ShapeNameListBox, m_PreviewPane, m_shapes3D_list, KIWAY_HOLDER::Prj(), PANEL_PREV_3D::UpdateModelName(), and S3D_FILENAME_RESOLVER::ValidateFileName().

Referenced by Edit3DShapeFilename().

477 {
478  int idx = m_3D_ShapeNameListBox->GetSelection();
479 
480  if( idx < 0 )
481  return;
482 
483  // Edit filename
484  wxString filename = m_3D_ShapeNameListBox->GetStringSelection();
485  wxTextEntryDialog dlg( this, wxEmptyString, wxEmptyString, filename );
486 
487  bool hasAlias;
488  S3D_FILENAME_RESOLVER* res = Prj().Get3DCacheManager()->GetResolver();
489 
490  if( dlg.ShowModal() != wxID_OK )
491  return;
492 
493  filename = dlg.GetValue();
494 
495  if( filename.empty() )
496  return;
497 
498  if( !res->ValidateFileName( filename, hasAlias ) )
499  {
500  wxString msg = _( "Invalid filename: " );
501  msg.append( filename );
502  wxMessageBox( msg, _( "Edit 3D file name" ) );
503 
504  return;
505  }
506 
507  m_3D_ShapeNameListBox->SetString( idx, filename );
508 
509  // if the user has specified an alias in the name then prepend ':'
510  if( hasAlias )
511  filename.insert( 0, wxT( ":" ) );
512 
513  #ifdef __WINDOWS__
514  // In Kicad files, filenames and paths are stored using Unix notation
515  filename.Replace( wxT( "\\" ), wxT( "/" ) );
516  #endif
517 
518  m_shapes3D_list[idx].m_Filename = filename;
519 
520  // This assumes that the index didn't change and will just update the filename
521  if( m_PreviewPane )
522  m_PreviewPane->UpdateModelName( filename );
523 
524  return;
525 }
bool ValidateFileName(const wxString &aFileName, bool &hasAlias)
Function ValidateName returns true if the given path is a valid aliased relative path.
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
void UpdateModelName(wxString const &aModel)
void DIALOG_MODULE_BOARD_EDITOR::Edit3DShapeFilename ( wxCommandEvent &  event)
inlineoverrideprivatevirtual
bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 181 of file dialog_shim.cpp.

Referenced by DIALOG_PRINT_USING_PRINTER::InitValues().

182 {
183  // so we can do logging of this state change:
184 
185 #if defined(DEBUG)
186  const char* type_id = typeid( *this ).name();
187  printf( "wxDialog %s: %s\n", type_id, enable ? "enabled" : "disabled" );
188 #endif
189 
190  return wxDialog::Enable( enable );
191 }
void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 539 of file dialog_shim.cpp.

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

Referenced by HK_PROMPT_DIALOG::EndFlexible(), DIALOG_SHIM::OnButton(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnCancelButtonClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCancelButtonClick(), DIALOG_EDIT_ONE_FIELD::OnCancelClick(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnCloseDialog(), DIALOG_EDIT_ONE_FIELD::OnCloseDialog(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCloseDialog(), DIALOG_CHOOSE_COMPONENT::OnCloseTimer(), DIALOG_SHIM::OnCloseWindow(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnOKButtonClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnOKButtonClick(), DIALOG_EDIT_ONE_FIELD::OnOkClick(), DIALOG_EXCHANGE_MODULE::OnQuit(), DIALOG_CHOOSE_COMPONENT::OnSchViewDClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp(), and DIALOG_SHIM::~DIALOG_SHIM().

540 {
541  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
542  // handle validation in the same way as other dialogs.
543  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
544  return;
545 
546  SetReturnCode( retCode );
547 
548  if( !IsQuasiModal() )
549  {
550  wxFAIL_MSG( wxT( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal wasn't called" ) );
551  return;
552  }
553 
554  m_qmodal_showing = false;
555 
556  if( m_qmodal_loop )
557  {
558  if( m_qmodal_loop->IsRunning() )
559  m_qmodal_loop->Exit( 0 );
560  else
561  m_qmodal_loop->ScheduleExit( 0 );
562 
563  m_qmodal_loop = NULL;
564  }
565 
568 
569  Show( false );
570 }
bool m_qmodal_showing
Definition: dialog_shim.h:132
EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:131
bool IsQuasiModal()
Definition: dialog_shim.h:93
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:133
void DIALOG_MODULE_BOARD_EDITOR::ExchangeModule ( wxCommandEvent &  event)
overrideprivatevirtual
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, when all widgets are initialized, and therefore their size fixed. If TransferDataToWindow() is used to initialize widgets, at end of TransferDataToWindow, or better at end of a wxInitDialogEvent handler

In any case, the best way is to call it in a wxInitDialogEvent handler after calling TransfertDataToWindow(), which is the default wxInitDialogEvent handler wxDialog

Definition at line 103 of file dialog_shim.cpp.

References PCAD2KICAD::Center.

Referenced by DIALOG_BOM::DIALOG_BOM(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DESIGN_RULES::DIALOG_DESIGN_RULES(), DIALOG_DIMENSION_EDITOR::DIALOG_DIMENSION_EDITOR(), DIALOG_DISPLAY_OPTIONS::DIALOG_DISPLAY_OPTIONS(), DIALOG_DRC_CONTROL::DIALOG_DRC_CONTROL(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY(), DIALOG_EESCHEMA_OPTIONS::DIALOG_EESCHEMA_OPTIONS(), DIALOG_ENUM_PADS::DIALOG_ENUM_PADS(), DIALOG_EXPORT_3DFILE::DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_KEEPOUT_AREA_PROPERTIES::DIALOG_KEEPOUT_AREA_PROPERTIES(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_LIB_NEW_COMPONENT::DIALOG_LIB_NEW_COMPONENT(), DIALOG_LIBEDIT_OPTIONS::DIALOG_LIBEDIT_OPTIONS(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_SCH_EDIT_SHEET_PIN::DIALOG_SCH_EDIT_SHEET_PIN(), DIALOG_SCH_SHEET_PROPS::DIALOG_SCH_SHEET_PROPS(), DIALOG_SELECT_PRETTY_LIB::DIALOG_SELECT_PRETTY_LIB(), DIALOG_TRACK_VIA_SIZE::DIALOG_TRACK_VIA_SIZE(), DIALOG_EDIT_ONE_FIELD::init(), NETLIST_DIALOG::NETLIST_DIALOG(), DIALOG_LIB_EDIT_PIN::OnInitDialog(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnInitDialog(), DIALOG_TRACK_VIA_PROPERTIES::OnInitDlg(), DIALOG_GRAPHIC_ITEMS_OPTIONS::OnInitDlg(), DialogEditModuleText::OnInitDlg(), DIALOG_SET_GRID::OnInitDlg(), DIALOG_PCB_TEXT_PROPERTIES::OnInitDlg(), DIALOG_PRINT_FOR_MODEDIT::OnInitDlg(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), DIALOG_MODULE_MODULE_EDITOR::OnInitDlg(), DIALOG_SIM_SETTINGS::onInitDlg(), DIALOG_SPICE_MODEL::onInitDlg(), OnInitDlg(), DIALOG_PRINT_USING_PRINTER::OnInitDlg(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnInitDlg(), TARGET_PROPERTIES_DIALOG_EDITOR::TARGET_PROPERTIES_DIALOG_EDITOR(), and DIALOG_SIGNAL_LIST::TransferDataToWindow().

104 {
105  // must be called from the constructor of derived classes,
106  // when all widgets are initialized, and therefore their size fixed
107 
108  // SetSizeHints fixes the minimal size of sizers in the dialog
109  // (SetSizeHints calls Fit(), so no need to call it)
110  GetSizer()->SetSizeHints( this );
111 
112  // the default position, when calling the first time the dlg
113  Center();
114 }
void DIALOG_SHIM::FixOSXCancelButtonIssue ( )
protectedinherited

A ugly hack to fix an issue on OSX: when typing ctrl+c in a wxTextCtrl inside a dialog, it is closed instead of copying a text if a button with wxID_CANCEL is used in a wxStdDialogButtonSizer, when the dlg is created by wxFormBuilder: the label is &Cancel, and this accelerator key has priority to copy text standard accelerator, and the dlg is closed when trying to copy text this function do nothing on other platforms.

Definition at line 116 of file dialog_shim.cpp.

Referenced by DIALOG_SHIM::Show().

117 {
118 #ifdef __WXMAC__
119  // A ugly hack to fix an issue on OSX: ctrl+c closes the dialog instead of
120  // copying a text if a button with wxID_CANCEL is used in a wxStdDialogButtonSizer
121  // created by wxFormBuilder: the label is &Cancel, and this accelerator key has priority
122  // to copy text standard accelerator, and the dlg is closed when trying to copy text
123  wxButton* button = dynamic_cast< wxButton* > ( wxWindow::FindWindowById( wxID_CANCEL, this ) );
124 
125  if( button )
126  button->SetLabel( _( "Cancel" ) );
127 #endif
128 }
void DIALOG_MODULE_BOARD_EDITOR::GotoModuleEditor ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_MODULE_BOARD_EDITOR_BASE.

Definition at line 241 of file dialog_edit_module_for_BoardEditor.cpp.

References GetNewTimeStamp(), EDA_ITEM::GetTimeStamp(), m_CurrentModule, m_Parent, PCB_EDIT_FRAME::OnModify(), PRM_EDITOR_WANT_MODEDIT, and EDA_ITEM::SetTimeStamp().

242 {
243  if( m_CurrentModule->GetTimeStamp() == 0 ) // Module Editor needs a non null timestamp
244  {
246  m_Parent->OnModify();
247  }
248 
249  EndModal( PRM_EDITOR_WANT_MODEDIT );
250 }
virtual void OnModify() override
Function OnModify must be called after a board change to set the modified flag.
Definition: pcbframe.cpp:1004
time_t GetNewTimeStamp()
Definition: common.cpp:166
void SetTimeStamp(time_t aNewTimeStamp)
Definition: base_struct.h:203
time_t GetTimeStamp() const
Definition: base_struct.h:204
void DIALOG_MODULE_BOARD_EDITOR::InitBoardProperties ( )
private

Definition at line 148 of file dialog_edit_module_for_BoardEditor.cpp.

References B_Cu, g_UserUnit, GetAbbreviatedUnitsLabel(), BOARD_ITEM::GetLayer(), MODULE::GetLocalClearance(), MODULE::GetLocalSolderMaskMargin(), MODULE::GetLocalSolderPasteMargin(), MODULE::GetLocalSolderPasteMarginRatio(), MODULE::GetOrientation(), MODULE::GetPosition(), MODULE::GetZoneConnection(), m_CurrentModule, DIALOG_MODULE_BOARD_EDITOR_BASE::m_LayerCtrl, DIALOG_MODULE_BOARD_EDITOR_BASE::m_ModPositionX, DIALOG_MODULE_BOARD_EDITOR_BASE::m_ModPositionY, DIALOG_MODULE_BOARD_EDITOR_BASE::m_NetClearanceUnits, DIALOG_MODULE_BOARD_EDITOR_BASE::m_NetClearanceValueCtrl, DIALOG_MODULE_BOARD_EDITOR_BASE::m_OrientCtrl, m_OrientValidator, m_OrientValue, DIALOG_MODULE_BOARD_EDITOR_BASE::m_OrientValueCtrl, DIALOG_MODULE_BOARD_EDITOR_BASE::m_SolderMaskMarginCtrl, DIALOG_MODULE_BOARD_EDITOR_BASE::m_SolderMaskMarginUnits, DIALOG_MODULE_BOARD_EDITOR_BASE::m_SolderPasteMarginCtrl, DIALOG_MODULE_BOARD_EDITOR_BASE::m_SolderPasteMarginRatioCtrl, DIALOG_MODULE_BOARD_EDITOR_BASE::m_SolderPasteMarginUnits, DIALOG_MODULE_BOARD_EDITOR_BASE::m_XPosUnit, DIALOG_MODULE_BOARD_EDITOR_BASE::m_YPosUnit, DIALOG_MODULE_BOARD_EDITOR_BASE::m_ZoneConnectionChoice, PAD_ZONE_CONN_FULL, PAD_ZONE_CONN_INHERITED, PAD_ZONE_CONN_NONE, PAD_ZONE_CONN_THERMAL, PutValueInLocalUnits(), wxPoint::x, and wxPoint::y.

Referenced by TransferDataToWindow().

149 {
152 
155 
156  m_LayerCtrl->SetSelection(
157  (m_CurrentModule->GetLayer() == B_Cu) ? 1 : 0 );
158 
159  bool custom_orientation = false;
160  switch( int( m_CurrentModule->GetOrientation() ) )
161  {
162  case 0:
163  m_OrientCtrl->SetSelection( 0 );
164  break;
165 
166  case 900:
167  case -2700:
168  m_OrientCtrl->SetSelection( 1 );
169  break;
170 
171  case -900:
172  case 2700:
173  m_OrientCtrl->SetSelection( 2 );
174  break;
175 
176  case -1800:
177  case 1800:
178  m_OrientCtrl->SetSelection( 3 );
179  break;
180 
181  default:
182  m_OrientCtrl->SetSelection( 4 );
183  custom_orientation = true;
184  break;
185  }
186 
187  m_OrientValueCtrl->Enable( custom_orientation );
189  m_OrientValidator.TransferToWindow();
190 
191  // Initialize dialog relative to masks clearances
195 
198 
199  // These 2 parameters are usually < 0, so prepare entering a negative
200  // value, if current is 0
202 
204  m_SolderPasteMarginCtrl->SetValue( wxT( "-" ) +
205  m_SolderPasteMarginCtrl->GetValue() );
206 
207  // Add solder paste margin ration in per cent
208  // for the usual default value 0.0, display -0.0 (or -0,0 in some countries)
209  wxString msg;
210  msg.Printf( wxT( "%f" ),
212 
214  msg[0] == '0') // Sometimes Printf adds a sign if the value is very small (0.0)
215  m_SolderPasteMarginRatioCtrl->SetValue( wxT("-") + msg );
216  else
217  m_SolderPasteMarginRatioCtrl->SetValue( msg );
218 
220  {
221  default:
223  m_ZoneConnectionChoice->SetSelection( 0 );
224  break;
225 
226  case PAD_ZONE_CONN_FULL:
227  m_ZoneConnectionChoice->SetSelection( 1 );
228  break;
229 
231  m_ZoneConnectionChoice->SetSelection( 2 );
232  break;
233 
234  case PAD_ZONE_CONN_NONE:
235  m_ZoneConnectionChoice->SetSelection( 3 );
236  break;
237  }
238 }
int GetLocalClearance() const
Definition: class_module.h:166
const wxPoint & GetPosition() const override
Definition: class_module.h:143
wxFloatingPointValidator< double > m_OrientValidator
ZoneConnection GetZoneConnection() const
Definition: class_module.h:176
LAYER_ID GetLayer() const
Function GetLayer returns the primary layer this item is on.
double GetLocalSolderPasteMarginRatio() const
Definition: class_module.h:172
Pads are not covered.
Definition: zones.h:57
double GetOrientation() const
Definition: class_module.h:147
wxString GetAbbreviatedUnitsLabel(EDA_UNITS_T aUnit)
Definition: base_units.cpp:479
int GetLocalSolderMaskMargin() const
Definition: class_module.h:163
int GetLocalSolderPasteMargin() const
Definition: class_module.h:169
EDA_UNITS_T g_UserUnit
Global variables definitions.
Definition: common.cpp:56
void PutValueInLocalUnits(wxTextCtrl &aTextCtr, int aValue)
Function PutValueInLocalUnits converts aValue from internal units to user units and append the units ...
Definition: base_units.cpp:265
Use thermal relief for pads.
Definition: zones.h:58
pads are covered by copper
Definition: zones.h:59
void DIALOG_MODULE_BOARD_EDITOR::InitModeditProperties ( )
private

Definition at line 291 of file dialog_edit_module_for_BoardEditor.cpp.

References MODULE::GetAttributes(), MODULE::GetPath(), MODULE::GetPlacementCost180(), MODULE::GetPlacementCost90(), EDA_TEXT::GetText(), MODULE::IsLocked(), KISYS3DMOD, DIALOG_MODULE_BOARD_EDITOR_BASE::m_3D_ShapeNameListBox, DIALOG_MODULE_BOARD_EDITOR_BASE::m_AttributsCtrl, DIALOG_MODULE_BOARD_EDITOR_BASE::m_AutoPlaceCtrl, DIALOG_MODULE_BOARD_EDITOR_BASE::m_CostRot180Ctrl, DIALOG_MODULE_BOARD_EDITOR_BASE::m_CostRot90Ctrl, m_CurrentModule, m_LastSelected3DShapeIndex, DIALOG_MODULE_BOARD_EDITOR_BASE::m_Panel3D, m_PreviewPane, m_ReferenceCopy, DIALOG_MODULE_BOARD_EDITOR_BASE::m_ReferenceCtrl, m_shapes3D_list, DIALOG_MODULE_BOARD_EDITOR_BASE::m_textCtrlSheetPath, m_ValueCopy, DIALOG_MODULE_BOARD_EDITOR_BASE::m_ValueCtrl, MOD_CMS, MOD_VIRTUAL, MODULE::Models(), MODULE::PadsLocked(), KIWAY_HOLDER::Prj(), MODULE::Reference(), PANEL_PREV_3D::ResetModelData(), PANEL_PREV_3D::SetModelDataIdx(), EDA_ITEM::SetParent(), S3D_FILENAME_RESOLVER::SplitAlias(), and MODULE::Value().

Referenced by TransferDataToWindow().

292 {
293  wxString default_path;
294  wxGetEnv( KISYS3DMOD, &default_path );
295 #ifdef __WINDOWS__
296  default_path.Replace( wxT( "/" ), wxT( "\\" ) );
297 #endif
298 
300 
301  // Init 3D shape list
302  m_3D_ShapeNameListBox->Clear();
303  std::list<S3D_INFO>::iterator sM = m_CurrentModule->Models().begin();
304  std::list<S3D_INFO>::iterator eM = m_CurrentModule->Models().end();
305  m_shapes3D_list.clear();
306 
307  wxString origPath;
308  wxString alias;
309  wxString shortPath;
310  S3D_FILENAME_RESOLVER* res = Prj().Get3DCacheManager()->GetResolver();
311 
312  while( sM != eM )
313  {
314  m_shapes3D_list.push_back( *sM );
315  origPath = sM->m_Filename;
316 
317  if( res && res->SplitAlias( origPath, alias, shortPath ) )
318  {
319  origPath = alias;
320  origPath.append( wxT( ":" ) );
321  origPath.append( shortPath );
322  }
323 
324  m_3D_ShapeNameListBox->Append( origPath );
325  ++sM;
326 
327  }
328 
333  m_ReferenceCtrl->SetValue( m_ReferenceCopy->GetText() );
334  m_ValueCtrl->SetValue( m_ValueCopy->GetText() );
335 
336  // Shows the footprint's schematic path.
338 
339  m_AttributsCtrl->SetItemToolTip( 0,
340  _( "Use this attribute for most non SMD components\n"
341  "Components with this option are not put in the footprint position list file" ) );
342  m_AttributsCtrl->SetItemToolTip( 1,
343  _( "Use this attribute for SMD components.\n"
344  "Only components with this option are put in the footprint position list file" ) );
345  m_AttributsCtrl->SetItemToolTip( 2,
346  _( "Use this attribute for \"virtual\" components drawn on board\n"
347  "like an edge connector (old ISA PC bus for instance)" ) );
348 
349  // Controls on right side of the dialog
350  switch( m_CurrentModule->GetAttributes() & 255 )
351  {
352  case 0:
353  m_AttributsCtrl->SetSelection( 0 );
354  break;
355 
356  case MOD_CMS:
357  m_AttributsCtrl->SetSelection( 1 );
358  break;
359 
360  case MOD_VIRTUAL:
361  m_AttributsCtrl->SetSelection( 2 );
362  break;
363 
364  default:
365  m_AttributsCtrl->SetSelection( 0 );
366  break;
367  }
368 
369  if( m_CurrentModule->IsLocked() )
370  m_AutoPlaceCtrl->SetSelection( 2 );
371  else if( m_CurrentModule->PadsLocked() )
372  m_AutoPlaceCtrl->SetSelection( 1 );
373  else
374  m_AutoPlaceCtrl->SetSelection( 0 );
375 
376  m_AutoPlaceCtrl->SetItemToolTip( 0,
377  _( "Component can be freely moved and auto placed. User can arbitrarily select and edit component's pads." ) );
378  m_AutoPlaceCtrl->SetItemToolTip( 1,
379  _( "Component can be freely moved and auto placed, but its pads cannot be selected or edited." ) );
380  m_AutoPlaceCtrl->SetItemToolTip( 2,
381  _( "Component is locked: it cannot be freely moved or auto placed." ) );
382 
384 
386 
387  // if m_3D_ShapeNameListBox is not empty, preselect first 3D shape
388  if( m_3D_ShapeNameListBox->GetCount() > 0 )
389  {
392 
393  if( m_PreviewPane )
395  }
396  else
397  {
398  if( m_PreviewPane )
399  m_PreviewPane->ResetModelData( true );
400  }
401 
402  // We have modified the UI, so call Fit() for m_Panel3D
403  // to be sure the m_Panel3D sizers are initiliazed before opening the dialog
404  m_Panel3D->GetSizer()->Fit( m_Panel3D );
405 }
void ResetModelData(bool aReloadPreviewModule=false)
ResetModelData - Clear the values and reload the preview board.
TEXTE_MODULE & Reference()
Definition: class_module.h:455
Set for modules listed in the automatic insertion list (usually SMD footprints)
Definition: class_module.h:76
std::list< S3D_INFO > & Models()
Definition: class_module.h:139
int GetPlacementCost90() const
Definition: class_module.h:523
bool SplitAlias(const wxString &aFileName, wxString &anAlias, wxString &aRelPath)
Function SplitAlias returns true if the given name contains an alias and populates the string anAlias...
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
bool PadsLocked() const
Definition: class_module.h:259
void SetModelDataIdx(int idx, bool aReloadPreviewModule=false)
SetModelDataIdx - This will set the index of the INFO list that was set on the parent.
void SetParent(EDA_ITEM *aParent)
Definition: base_struct.h:213
TEXTE_MODULE & Value()
read/write accessors:
Definition: class_module.h:454
const wxString & GetText() const
Function GetText returns the string associated with the text object.
Definition: eda_text.h:130
#define KISYS3DMOD
A variable name whose value holds the path of 3D shape files.
Definition: 3d_viewer.h:38
int GetAttributes() const
Definition: class_module.h:184
bool IsLocked() const override
Function IsLocked.
Definition: class_module.h:223
Virtual component: when created by copper shapes on board (Like edge card connectors, mounting hole...)
Definition: class_module.h:78
const wxString & GetPath() const
Definition: class_module.h:160
int GetPlacementCost180() const
Definition: class_module.h:520
KIWAY& KIWAY_HOLDER::Kiway ( ) const
inlineinherited

Function Kiway returns 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 60 of file kiway_player.h.

References KIWAY_HOLDER::m_kiway.

Referenced by SCH_EDIT_FRAME::AppendOneEEProject(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_CHOOSE_COMPONENT::ConstructRightPanel(), CVPCB_MAINFRAME::CreateScreenCmp(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), DIALOG_SHIM::DIALOG_SHIM(), EDIT_TOOL::editFootprintInFpEditor(), SCH_EDIT_FRAME::EditSheet(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), FOOTPRINT_EDIT_FRAME::GetPlotSettings(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::initBuffers(), LIB_EDIT_FRAME::InstallConfigFrame(), PCB_EDIT_FRAME::InstallModuleOptionsFrame(), KIWAY_PLAYER::language_change(), SCH_SHEET::Load(), CVPCB_MAINFRAME::LoadFootprintFiles(), KIWAY_PLAYER::OnChangeIconsOptions(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), SCH_EDIT_FRAME::OnLeftClick(), SCH_BASE_FRAME::OnOpenLibraryViewer(), SCH_EDIT_FRAME::OnSimulate(), DIALOG_EDIT_ONE_FIELD::OnTextValueSelectButtonClick(), FOOTPRINT_EDIT_FRAME::OnUpdateInsertModuleInBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadModuleFromBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateReplaceModuleInBoard(), SCH_EDIT_FRAME::OpenProjectFiles(), KIWAY_HOLDER::Prj(), PCB_EDIT_FRAME::Process_Config(), PCB_EDIT_FRAME::Process_Special_Functions(), FOOTPRINT_EDIT_FRAME::ProcessPreferences(), CVPCB_MAINFRAME::ReadNetListAndLinkFiles(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), LIB_EDIT_FRAME::refreshSchematic(), SCH_EDIT_FRAME::SaveEEFile(), CVPCB_MAINFRAME::SaveFootprintAssociation(), SCH_BASE_FRAME::SelectComponentFromLibBrowser(), CVPCB_MAINFRAME::SendMessageToEESCHEMA(), PCB_EDIT_FRAME::SendMessageToEESCHEMA(), SCH_EDIT_FRAME::SendMessageToPCBNEW(), SCH_EDIT_FRAME::sendNetlist(), FOOTPRINT_EDIT_FRAME::SetPlotSettings(), DISPLAY_FOOTPRINTS_FRAME::Show3D_Frame(), FOOTPRINT_VIEWER_FRAME::Show3D_Frame(), FOOTPRINT_EDIT_FRAME::Show3D_Frame(), FOOTPRINT_WIZARD_FRAME::Show3D_Frame(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::showButtonHandler(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::showButtonHandler(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), and DIALOG_EXCHANGE_MODULE::ViewAndSelectFootprint().

61  {
62  wxASSERT( m_kiway ); // smoke out bugs in Debug build, then Release runs fine.
63  return *m_kiway;
64  }
KIWAY * m_kiway
Definition: kiway_player.h:85
void DIALOG_MODULE_BOARD_EDITOR::ModuleOrientEvent ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_MODULE_BOARD_EDITOR_BASE.

Definition at line 259 of file dialog_edit_module_for_BoardEditor.cpp.

References DIALOG_MODULE_BOARD_EDITOR_BASE::m_OrientCtrl, m_OrientValidator, m_OrientValue, and DIALOG_MODULE_BOARD_EDITOR_BASE::m_OrientValueCtrl.

260 {
261  bool custom_orientation = false;
262 
263  switch( m_OrientCtrl->GetSelection() )
264  {
265  case 0:
266  m_OrientValue = 0.0;
267  break;
268 
269  case 1:
270  m_OrientValue = 90.0;
271  break;
272 
273  case 2:
274  m_OrientValue = 270.0;
275  break;
276 
277  case 3:
278  m_OrientValue = 180.0;
279  break;
280 
281  default:
282  custom_orientation = true;
283  break;
284  }
285 
286  m_OrientValidator.TransferToWindow();
287  m_OrientValueCtrl->Enable( custom_orientation );
288 }
wxFloatingPointValidator< double > m_OrientValidator
void DIALOG_MODULE_BOARD_EDITOR::On3DShapeNameSelected ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_MODULE_BOARD_EDITOR_BASE.

Definition at line 408 of file dialog_edit_module_for_BoardEditor.cpp.

References DIALOG_MODULE_BOARD_EDITOR_BASE::m_3D_ShapeNameListBox, m_LastSelected3DShapeIndex, m_PreviewPane, m_shapes3D_list, PANEL_PREV_3D::ResetModelData(), and PANEL_PREV_3D::SetModelDataIdx().

409 {
411 
412  if( m_LastSelected3DShapeIndex < 0 ) // happens under wxGTK when
413  // deleting an item in
414  // m_3D_ShapeNameListBox wxListBox
415  {
416  if( m_PreviewPane )
418 
419  return;
420  }
421 
422  if( m_LastSelected3DShapeIndex >= (int) m_shapes3D_list.size() )
423  {
424  wxMessageBox( wxT( "On3DShapeNameSelected() error" ) );
426 
427  if( m_PreviewPane )
429 
430  return;
431  }
432 
433  if( m_PreviewPane )
435 }
void ResetModelData(bool aReloadPreviewModule=false)
ResetModelData - Clear the values and reload the preview board.
void SetModelDataIdx(int idx, bool aReloadPreviewModule=false)
SetModelDataIdx - This will set the index of the INFO list that was set on the parent.
void DIALOG_MODULE_BOARD_EDITOR::On3DShapeSelection ( wxCommandEvent &  event)
private
void DIALOG_MODULE_BOARD_EDITOR::OnCloseWindow ( wxCloseEvent &  event)
private

OnCloseWindow - called when the frame is closed.

Parameters
event

Definition at line 139 of file dialog_edit_module_for_BoardEditor.cpp.

References m_PreviewPane.

140 {
141  m_PreviewPane->Close();
142 
143  event.Skip();
144 }
void DIALOG_MODULE_BOARD_EDITOR::OnEditReference ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_MODULE_BOARD_EDITOR_BASE.

Definition at line 760 of file dialog_edit_module_for_BoardEditor.cpp.

References EDA_DRAW_FRAME::GetCrossHairPosition(), EDA_TEXT::GetText(), EDA_TEXT::GetTextPos(), PCB_BASE_FRAME::InstallTextModOptionsFrame(), m_CurrentModule, m_Parent, m_ReferenceCopy, DIALOG_MODULE_BOARD_EDITOR_BASE::m_ReferenceCtrl, EDA_DRAW_FRAME::SetCrossHairPosition(), and EDA_ITEM::SetParent().

761 {
763 
768  m_ReferenceCtrl->SetValue( m_ReferenceCopy->GetText() );
769 }
const wxPoint & GetTextPos() const
Definition: eda_text.h:224
void InstallTextModOptionsFrame(TEXTE_MODULE *TextMod, wxDC *DC)
void SetParent(EDA_ITEM *aParent)
Definition: base_struct.h:213
const wxString & GetText() const
Function GetText returns the string associated with the text object.
Definition: eda_text.h:130
void SetCrossHairPosition(const wxPoint &aPosition, bool aSnapToGrid=true)
Function SetCrossHairPosition sets the screen cross hair position to aPosition in logical (drawing) u...
wxPoint GetCrossHairPosition(bool aInvertY=false) const
Function GetCrossHairPosition return the current cross hair position in logical (drawing) coordinates...
void DIALOG_MODULE_BOARD_EDITOR::OnEditValue ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_MODULE_BOARD_EDITOR_BASE.

Definition at line 772 of file dialog_edit_module_for_BoardEditor.cpp.

References EDA_DRAW_FRAME::GetCrossHairPosition(), EDA_TEXT::GetText(), EDA_TEXT::GetTextPos(), PCB_BASE_FRAME::InstallTextModOptionsFrame(), m_CurrentModule, m_Parent, m_ValueCopy, DIALOG_MODULE_BOARD_EDITOR_BASE::m_ValueCtrl, EDA_DRAW_FRAME::SetCrossHairPosition(), and EDA_ITEM::SetParent().

773 {
775 
780  m_ValueCtrl->SetValue( m_ValueCopy->GetText() );
781 }
const wxPoint & GetTextPos() const
Definition: eda_text.h:224
void InstallTextModOptionsFrame(TEXTE_MODULE *TextMod, wxDC *DC)
void SetParent(EDA_ITEM *aParent)
Definition: base_struct.h:213
const wxString & GetText() const
Function GetText returns the string associated with the text object.
Definition: eda_text.h:130
void SetCrossHairPosition(const wxPoint &aPosition, bool aSnapToGrid=true)
Function SetCrossHairPosition sets the screen cross hair position to aPosition in logical (drawing) u...
wxPoint GetCrossHairPosition(bool aInvertY=false) const
Function GetCrossHairPosition return the current cross hair position in logical (drawing) coordinates...
void DIALOG_MODULE_BOARD_EDITOR::OnInitDlg ( wxInitDialogEvent &  event)
inlineoverrideprivatevirtual

Reimplemented from DIALOG_MODULE_BOARD_EDITOR_BASE.

Definition at line 93 of file dialog_edit_module_for_BoardEditor.h.

References DIALOG_SHIM::FinishDialogSettings(), and TransferDataToWindow().

94  {
95  // Call the default wxDialog handler of a wxInitDialogEvent
97 
98  // Now all widgets have the size fixed, call FinishDialogSettings
100  }
void FinishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
PROJECT & KIWAY_HOLDER::Prj ( ) const
inherited

Function Prj returns a reference to the PROJECT "associated with" this KIWAY.

Definition at line 34 of file kiway_holder.cpp.

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

Referenced by SCH_EDIT_FRAME::AnnotateComponents(), SCH_EDIT_FRAME::AppendOneEEProject(), PCB_EDIT_FRAME::ArchiveModulesOnBoard(), LIB_VIEW_FRAME::BestZoom(), DIALOG_MODULE_MODULE_EDITOR::BrowseAndAdd3DShapeFile(), BrowseAndAdd3DShapeFile(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::BrowseAndSelectDocFile(), DIALOG_EXCHANGE_MODULE::BrowseAndSelectFootprint(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_MODULE_MODULE_EDITOR::Cfg3DPath(), Cfg3DPath(), SCH_EDIT_FRAME::CheckAnnotate(), SCH_SCREEN::CheckComponentsToPartsLinks(), SCH_EDIT_FRAME::ConvertPart(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToOptions(), SCH_EDIT_FRAME::CreateArchiveLibrary(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), DIALOG_PLOT_SCHEMATIC::createPlotFileName(), FOOTPRINT_EDIT_FRAME::DeleteModuleFromCurrentLibrary(), LIB_EDIT_FRAME::DeleteOnePart(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_EESCHEMA_CONFIG::DIALOG_EESCHEMA_CONFIG(), DIALOG_FP_LIB_TABLE::DIALOG_FP_LIB_TABLE(), DIALOG_MODULE_MODULE_EDITOR::DIALOG_MODULE_MODULE_EDITOR(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_SCH_EDIT_ONE_FIELD::DIALOG_SCH_EDIT_ONE_FIELD(), LIB_VIEW_FRAME::DisplayLibInfos(), SCH_BASE_FRAME::DisplayListComponentsInLib(), PCB_EDIT_FRAME::doAutoSave(), DIALOG_MODULE_MODULE_EDITOR::Edit3DShapeFileName(), Edit3DShapeFileName(), SCH_EDIT_FRAME::EditComponentFieldText(), SCH_EDIT_FRAME::EditSheet(), PCB_EDIT_FRAME::Export_IDF3(), PCB_EDIT_FRAME::ExportToGenCAD(), PCB_EDIT_FRAME::ExportVRML_File(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_EDIT_FRAME::GenD356File(), DIALOG_GENDRILL::GenDrillAndMapFiles(), NETLIST_DIALOG::GenNetlist(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), LIB_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), LIB_EDIT_FRAME::GetCurPart(), FOOTPRINT_EDIT_FRAME::GetCurrentLib(), FOOTPRINT_EDIT_FRAME::getLibPath(), DIALOG_BOM::getPluginFileName(), LIB_VIEW_FRAME::getSelectedAlias(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::InitBuffers(), DIALOG_MODULE_MODULE_EDITOR::initModeditProperties(), InitModeditProperties(), LIB_EDIT_FRAME::InstallConfigFrame(), SCH_EDIT_FRAME::InstallConfigFrame(), PCB_EDIT_FRAME::InstallNetlistFrame(), SCH_EDIT_FRAME::IsSearchCacheObsolete(), SCH_EDIT_FRAME::Load_Component(), SCH_EDIT_FRAME::LoadCmpToFootprintLinkFile(), CVPCB_MAINFRAME::LoadFootprintFiles(), SCH_EDIT_FRAME::LoadOneEEFile(), LIB_EDIT_FRAME::LoadOneLibraryPart(), LIB_EDIT_FRAME::LoadOneSymbol(), CVPCB_MAINFRAME::LoadProjectFile(), SCH_EDIT_FRAME::LoadProjectFile(), PCB_EDIT_FRAME::LoadProjectSettings(), DIALOG_DRC_CONTROL::makeValidFileNameReport(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_EESCHEMA_CONFIG::OnAddOrInsertLibClick(), DIALOG_EESCHEMA_CONFIG::OnAddOrInsertPath(), DIALOG_DRC_CONTROL::OnButtonBrowseRptFileClick(), LIB_EDIT_FRAME::OnCloseWindow(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), DIALOG_GENDRILL::OnGenReportFile(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), PCB_EDIT_FRAME::OnLeftClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnOKButtonClick(), DIALOG_NETLIST::OnOpenNetlistClick(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_SVG_PRINT::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_GEN_MODULE_POSITION::OnOutputDirectoryBrowseClicked(), LIB_EDIT_FRAME::OnPlotCurrentComponent(), SCH_EDIT_FRAME::OnRightClick(), DIALOG_BOM::OnRunPlugin(), DIALOG_NETLIST::OnSaveMessagesToFile(), SCH_EDIT_FRAME::OnSaveProject(), DIALOG_SPICE_MODEL::onSelectIcLib(), LIB_VIEW_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OnSelectUnit(), DIALOG_SPICE_MODEL::onSemiSelectLib(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnTestChipName(), FOOTPRINT_EDIT_FRAME::OnUpdateSelectCurrentLib(), LIB_EDIT_FRAME::OnViewEntryDoc(), LIB_VIEW_FRAME::onViewSymbolDocument(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_FRAME::PasteListOfItems(), PCB_EDITOR_CONTROL::PlaceModule(), SCH_EDIT_FRAME::prepareForNetlist(), SCH_EDIT_FRAME::Process_Config(), PCB_EDIT_FRAME::Process_Config(), SCH_EDIT_FRAME::Process_Special_Functions(), SCH_EDIT_FRAME::ProcessCmpToFootprintLinkFile(), FP_LOADER_THREAD::ProcessEntry(), FOOTPRINT_EDIT_FRAME::ProcessPreferences(), CVPCB_MAINFRAME::ReadNetListAndLinkFiles(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), LIB_VIEW_FRAME::ReCreateHToolbar(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), LIB_VIEW_FRAME::ReCreateListCmp(), LIB_VIEW_FRAME::ReCreateListLib(), LIB_VIEW_FRAME::RedrawActiveWindow(), EDA_3D_VIEWER::ReloadRequest(), SCH_EDIT_FRAME::RescueProject(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), SCH_SCREEN::Save(), LIB_EDIT_FRAME::SaveActiveLibrary(), SCH_EDIT_FRAME::SaveEEFile(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), LIB_EDIT_FRAME::SaveOneSymbol(), CVPCB_MAINFRAME::SaveProjectFile(), SCH_EDIT_FRAME::SaveProjectSettings(), PCB_EDIT_FRAME::SaveProjectSettings(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), SCH_BASE_FRAME::SelectComponentFromLibrary(), FOOTPRINT_VIEWER_FRAME::SelectCurrentFootprint(), PCB_BASE_FRAME::SelectLibrary(), SCH_BASE_FRAME::SelectLibraryFromList(), SCH_EDIT_FRAME::sendNetlist(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), LIB_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), LIB_EDIT_FRAME::SetCurPart(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), EDA_3D_VIEWER::takeScreenshot(), DIALOG_ERC::TestErc(), DIALOG_SPICE_MODEL::updateFromFile(), SIM_PLOT_FRAME::updateNetlistExporter(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), CVPCB_MAINFRAME::UpdateTitle(), FOOTPRINT_EDIT_FRAME::updateTitle(), SCH_EDIT_FRAME::WriteNetListFile(), ~DIALOG_MODULE_BOARD_EDITOR(), and DIALOG_MODULE_MODULE_EDITOR::~DIALOG_MODULE_MODULE_EDITOR().

35 {
36  return Kiway().Prj();
37 }
KIWAY & Kiway() const
Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in...
Definition: kiway_player.h:60
VTBL_ENTRY PROJECT & Prj() const
Function Prj returns the PROJECT associated with this KIWAY.
Definition: kiway.cpp:144
void DIALOG_MODULE_BOARD_EDITOR::Remove3DShape ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_MODULE_BOARD_EDITOR_BASE.

Definition at line 439 of file dialog_edit_module_for_BoardEditor.cpp.

References DIALOG_MODULE_BOARD_EDITOR_BASE::m_3D_ShapeNameListBox, m_LastSelected3DShapeIndex, m_PreviewPane, m_shapes3D_list, PANEL_PREV_3D::ResetModelData(), and PANEL_PREV_3D::SetModelDataIdx().

440 {
441  int ii = m_3D_ShapeNameListBox->GetSelection();
442 
443  if( ii < 0 )
444  {
445  if( m_PreviewPane )
446  m_PreviewPane->ResetModelData( true );
447 
448  return;
449  }
450 
451  m_shapes3D_list.erase( m_shapes3D_list.begin() + ii );
452  m_3D_ShapeNameListBox->Delete( ii );
453 
454  if( m_3D_ShapeNameListBox->GetCount() > 0 )
455  {
456  if( ii > 0 )
458  else
460 
462 
463  if( m_PreviewPane )
465  }
466  else
467  {
468  if( m_PreviewPane )
469  m_PreviewPane->ResetModelData( true );
470  }
471 
472  return;
473 }
void ResetModelData(bool aReloadPreviewModule=false)
ResetModelData - Clear the values and reload the preview board.
void SetModelDataIdx(int idx, bool aReloadPreviewModule=false)
SetModelDataIdx - This will set the index of the INFO list that was set on the parent.
void KIWAY_HOLDER::SetKiway ( wxWindow *  aDest,
KIWAY aKiway 
)
inherited

Function SetKiway.

Parameters
aDestis the recipient of aKiway pointer. It is only used for debugging, since "this" is not a wxWindow*. "this" is a KIWAY_HOLDER mix-in.
aKiwayis often from a parent window, or from KIFACE::CreateWindow().

Definition at line 41 of file kiway_holder.cpp.

References KIWAY_HOLDER::m_kiway.

Referenced by DIALOG_SHIM::DIALOG_SHIM(), and SIM_PLOT_FRAME::SIM_PLOT_FRAME().

42 {
43 #if defined(DEBUG)
44  // offer a trap point for debugging most any window
45  wxASSERT( aDest );
46  if( !strcmp( typeid(aDest).name(), "DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB" ) )
47  {
48  int breakhere=1;
49  (void) breakhere;
50  }
51 #endif
52 
53  (void) aDest;
54 
55  m_kiway = aKiway;
56 }
KIWAY * m_kiway
Definition: kiway_player.h:85
bool DIALOG_SHIM::Show ( bool  show)
overrideinherited

Definition at line 138 of file dialog_shim.cpp.

References class_map, DIALOG_SHIM::FixOSXCancelButtonIssue(), EDA_RECT::GetPosition(), EDA_RECT::GetSize(), DIALOG_SHIM::m_hash_key, wxPoint::x, and wxPoint::y.

Referenced by DisplayHotkeyList(), DIALOG_SHIM::EndQuasiModal(), InvokeDialogERC(), DIALOG_SCH_FIND::OnCancel(), DIALOG_DRC_CONTROL::OnLeftDClickClearance(), DIALOG_DRC_CONTROL::OnLeftDClickUnconnected(), DIALOG_DRC_CONTROL::OnPopupMenu(), DIALOG_EXCHANGE_MODULE::OnQuit(), CVPCB_MAINFRAME::ReadNetListAndLinkFiles(), DRC::ShowDRCDialog(), and DIALOG_SHIM::ShowQuasiModal().

139 {
140  bool ret;
141  const char* hash_key;
142 
143  if( m_hash_key.size() )
144  {
145  // a special case like EDA_LIST_DIALOG, which has multiple uses.
146  hash_key = m_hash_key.c_str();
147  }
148  else
149  {
150  hash_key = typeid(*this).name();
151  }
152 
153  // Show or hide the window. If hiding, save current position and size.
154  // If showing, use previous position and size.
155  if( show )
156  {
157  wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
158  ret = wxDialog::Show( show );
159 
160  // classname is key, returns a zeroed out default EDA_RECT if none existed before.
161  EDA_RECT r = class_map[ hash_key ];
162 
163  if( r.GetSize().x != 0 && r.GetSize().y != 0 )
164  SetSize( r.GetPosition().x, r.GetPosition().y, r.GetSize().x, r.GetSize().y, 0 );
165  }
166  else
167  {
168  // Save the dialog's position & size before hiding, using classname as key
169  EDA_RECT r( wxDialog::GetPosition(), wxDialog::GetSize() );
170  class_map[ hash_key ] = r;
171 
172  ret = wxDialog::Show( show );
173  }
174 
176 
177  return ret;
178 }
std::string m_hash_key
Definition: dialog_shim.h:128
void FixOSXCancelButtonIssue()
A ugly hack to fix an issue on OSX: when typing ctrl+c in a wxTextCtrl inside a dialog, it is closed instead of copying a text if a button with wxID_CANCEL is used in a wxStdDialogButtonSizer, when the dlg is created by wxFormBuilder: the label is &Cancel, and this accelerator key has priority to copy text standard accelerator, and the dlg is closed when trying to copy text this function do nothing on other platforms.
static RECT_MAP class_map
const wxPoint & GetPosition() const
Class EDA_RECT handles the component boundary box.
const wxSize & GetSize() const
int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 494 of file dialog_shim.cpp.

References DBG, DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, DIALOG_SHIM::m_qmodal_showing, and DIALOG_SHIM::Show().

Referenced by LIB_EDIT_FRAME::DeleteOnePart(), SCH_EDIT_FRAME::EditComponent(), SCH_EDIT_FRAME::EditComponentFieldText(), LIB_EDIT_FRAME::EditField(), EDIT_TOOL::ExchangeFootprints(), PCB_EDIT_FRAME::InstallExchangeModuleFrame(), LIB_EDIT_FRAME::InstallFieldsEditorDialog(), LIB_VIEW_FRAME::OnSelectSymbol(), and SCH_BASE_FRAME::SelectComponentFromLibrary().

495 {
496  // This is an exception safe way to zero a pointer before returning.
497  // Yes, even though DismissModal() clears this first normally, this is
498  // here in case there's an exception before the dialog is dismissed.
499  struct NULLER
500  {
501  void*& m_what;
502  NULLER( void*& aPtr ) : m_what( aPtr ) {}
503  ~NULLER() { m_what = 0; } // indeed, set it to NULL on destruction
504  } clear_this( (void*&) m_qmodal_loop );
505 
506  // release the mouse if it's currently captured as the window having it
507  // will be disabled when this dialog is shown -- but will still keep the
508  // capture making it impossible to do anything in the modal dialog itself
509  wxWindow* win = wxWindow::GetCapture();
510  if( win )
511  win->ReleaseMouse();
512 
513  // Get the optimal parent
514  wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
515 
516  // Show the optimal parent
517  DBG( if( parent ) printf( "%s: optimal parent: %s\n", __func__, typeid(*parent).name() );)
518 
519  wxASSERT_MSG( !m_qmodal_parent_disabler,
520  wxT( "Caller using ShowQuasiModal() twice on same window?" ) );
521 
522  // quasi-modal: disable only my "optimal" parent
524 
525  Show( true );
526 
527  m_qmodal_showing = true;
528 
529  EVENT_LOOP event_loop;
530 
531  m_qmodal_loop = &event_loop;
532 
533  event_loop.Run();
534 
535  return GetReturnCode();
536 }
bool m_qmodal_showing
Definition: dialog_shim.h:132
EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:131
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:133
Toggle a window's "enable" status to disabled, then enabled on destruction.
Definition: dialog_shim.cpp:33
#define DBG(x)
Definition: fctsys.h:33
bool DIALOG_MODULE_BOARD_EDITOR::TransferDataFromWindow ( )
overrideprivate

Definition at line 609 of file dialog_edit_module_for_BoardEditor.cpp.

References B_Cu, MODULE::CalculateBoundingBox(), EDA_DRAW_PANEL::CrossHairOff(), EDA_DRAW_PANEL::CrossHairOn(), DisplayError(), MODULE::Draw(), F_Cu, MODULE::Flip(), EDA_DRAW_FRAME::GetCanvas(), EDA_ITEM::GetFlags(), BOARD_ITEM::GetLayer(), MODULE::GetOrientation(), MODULE::GetPosition(), GR_OR, GR_XOR, KiROUND(), DIALOG_MODULE_BOARD_EDITOR_BASE::m_AttributsCtrl, DIALOG_MODULE_BOARD_EDITOR_BASE::m_AutoPlaceCtrl, DIALOG_MODULE_BOARD_EDITOR_BASE::m_CostRot180Ctrl, DIALOG_MODULE_BOARD_EDITOR_BASE::m_CostRot90Ctrl, m_CurrentModule, m_DC, DIALOG_MODULE_BOARD_EDITOR_BASE::m_LayerCtrl, DIALOG_MODULE_BOARD_EDITOR_BASE::m_ModPositionX, DIALOG_MODULE_BOARD_EDITOR_BASE::m_ModPositionY, DIALOG_MODULE_BOARD_EDITOR_BASE::m_NetClearanceValueCtrl, m_OrientValue, DIALOG_MODULE_BOARD_EDITOR_BASE::m_Panel3D, DIALOG_MODULE_BOARD_EDITOR_BASE::m_PanelProperties, m_Parent, m_PreviewPane, m_ReferenceCopy, m_shapes3D_list, DIALOG_MODULE_BOARD_EDITOR_BASE::m_SolderMaskMarginCtrl, DIALOG_MODULE_BOARD_EDITOR_BASE::m_SolderPasteMarginCtrl, DIALOG_MODULE_BOARD_EDITOR_BASE::m_SolderPasteMarginRatioCtrl, m_ValueCopy, DIALOG_MODULE_BOARD_EDITOR_BASE::m_ZoneConnectionChoice, MOD_CMS, MOD_VIRTUAL, MODULE::Models(), COMMIT::Modify(), PAD_ZONE_CONN_FULL, PAD_ZONE_CONN_INHERITED, PAD_ZONE_CONN_NONE, PAD_ZONE_CONN_THERMAL, PRM_EDITOR_EDIT_OK, BOARD_COMMIT::Push(), MODULE::Reference(), MODULE::Rotate(), MODULE::SetAttributes(), MODULE::SetLocalClearance(), MODULE::SetLocalSolderMaskMargin(), MODULE::SetLocalSolderPasteMargin(), MODULE::SetLocalSolderPasteMarginRatio(), MODULE::SetLocked(), MODULE::SetPadsLocked(), MODULE::SetPlacementCost180(), MODULE::SetPlacementCost90(), MODULE::SetPosition(), MODULE::SetZoneConnection(), PANEL_PREV_3D::ValidateWithMessage(), MODULE::Value(), ValueFromTextCtrl(), wxPoint::x, and wxPoint::y.

610 {
611  wxPoint modpos;
612  wxString msg;
613 
614  BOARD_COMMIT commit( m_Parent );
615  commit.Modify( m_CurrentModule );
616 
617  if( !Validate() || !DIALOG_MODULE_BOARD_EDITOR_BASE::TransferDataFromWindow() ||
618  !m_PanelProperties->TransferDataFromWindow() )
619  {
620  wxMessageBox( _( "Error: invalid or missing footprint parameter" ) );
621  return false;
622  }
623 
624  if( !m_Panel3D->TransferDataFromWindow() )
625  {
626  wxMessageBox( _( "Error: invalid or missing 3D parameter" ) );
627  return false;
628  }
629 
630  if( m_DC )
631  {
634  }
635 
636  // Init Fields (should be first, because they can be moved or/and flipped later):
637  TEXTE_MODULE& reference = m_CurrentModule->Reference();
638  reference = *m_ReferenceCopy;
639  TEXTE_MODULE& value = m_CurrentModule->Value();
640  value = *m_ValueCopy;
641 
642  // Initialize masks clearances
646 
647  double dtmp = 0.0;
648  msg = m_SolderPasteMarginRatioCtrl->GetValue();
649  msg.ToDouble( &dtmp );
650 
651  // A -50% margin ratio means no paste on a pad, the ratio must be >= -50%
652  if( dtmp < -50.0 )
653  dtmp = -50.0;
654  // A margin ratio is always <= 0
655  // 0 means use full pad copper area
656  if( dtmp > 0.0 )
657  dtmp = 0.0;
658 
660 
661  switch( m_ZoneConnectionChoice->GetSelection() )
662  {
663  default:
664  case 0:
666  break;
667 
668  case 1:
670  break;
671 
672  case 2:
674  break;
675 
676  case 3:
678  break;
679  }
680 
681  // Set Module Position
682  modpos.x = ValueFromTextCtrl( *m_ModPositionX );
683  modpos.y = ValueFromTextCtrl( *m_ModPositionY );
684  m_CurrentModule->SetPosition( modpos );
685  m_CurrentModule->SetLocked( m_AutoPlaceCtrl->GetSelection() == 2 );
686  m_CurrentModule->SetPadsLocked( m_AutoPlaceCtrl->GetSelection() == 1 );
687 
688  switch( m_AttributsCtrl->GetSelection() )
689  {
690  case 0:
692  break;
693 
694  case 1:
696  break;
697 
698  case 2:
700  break;
701  }
702 
705 
706  /* Now, set orientation. must be made after others changes,
707  * because rotation changes fields positions on board according to the new orientation
708  * (relative positions are not modified)
709  */
710  int orient = KiROUND( m_OrientValue * 10.0 );
711 
712  if( m_CurrentModule->GetOrientation() != orient )
714  orient - m_CurrentModule->GetOrientation() );
715 
716  // Set component side, that also have effect on the fields positions on board
717  bool change_layer = false;
718  if( m_LayerCtrl->GetSelection() == 0 ) // layer req = COMPONENT
719  {
720  if( m_CurrentModule->GetLayer() == B_Cu )
721  change_layer = true;
722  }
723  else if( m_CurrentModule->GetLayer() == F_Cu )
724  change_layer = true;
725 
726  if( change_layer )
728 
729  // This will update the S3D_INFO list into the current module
730  msg.Clear();
731 
732  if( !m_PreviewPane->ValidateWithMessage( msg ) )
733  {
734  DisplayError( this, msg );
735  return false;
736  }
737 
738  std::list<S3D_INFO>* draw3D = &m_CurrentModule->Models();
739  draw3D->clear();
740  draw3D->insert( draw3D->end(), m_shapes3D_list.begin(), m_shapes3D_list.end() );
741 
743 
744  // This is a simple edition, we must create an undo entry
745  if( m_CurrentModule->GetFlags() == 0 )
746  commit.Push( _( "Modify module properties" ) );
747 
748  SetReturnCode( PRM_EDITOR_EDIT_OK );
749 
750  if( m_DC )
751  {
754  }
755 
756  return true;
757 }
void SetPlacementCost90(int aCost)
Definition: class_module.h:524
STATUS_FLAGS GetFlags() const
Definition: base_struct.h:255
TEXTE_MODULE & Reference()
Definition: class_module.h:455
void Rotate(const wxPoint &aRotCentre, double aAngle) override
Function Rotate Rotate this object.
void SetLocalClearance(int aClearance)
Definition: class_module.h:167
static int KiROUND(double v)
KiROUND rounds a floating point number to an int using "round halfway cases away from zero"...
Definition: common.h:107
void SetPlacementCost180(int aCost)
Definition: class_module.h:521
EDA_DRAW_PANEL * GetCanvas()
Definition: draw_frame.h:299
void CalculateBoundingBox()
Function CalculateBoundingBox calculates the bounding box in board coordinates.
void Draw(EDA_DRAW_PANEL *aPanel, wxDC *aDC, GR_DRAWMODE aDrawMode, const wxPoint &aOffset=ZeroOffset) override
Function Draw draws the footprint to the aDC.
void Flip(const wxPoint &aCentre) override
Function Flip Flip this object, i.e.
const wxPoint & GetPosition() const override
Definition: class_module.h:143
bool ValidateWithMessage(wxString &aErrorMessage)
verify X,Y and Z scale factors are acceptable (> 0.001 and < 1000.0)
Set for modules listed in the automatic insertion list (usually SMD footprints)
Definition: class_module.h:76
void SetZoneConnection(ZoneConnection aType)
Definition: class_module.h:175
std::list< S3D_INFO > & Models()
Definition: class_module.h:139
LAYER_ID GetLayer() const
Function GetLayer returns the primary layer this item is on.
void SetLocalSolderPasteMarginRatio(double aRatio)
Definition: class_module.h:173
Pads are not covered.
Definition: zones.h:57
double GetOrientation() const
Definition: class_module.h:147
TEXTE_MODULE & Value()
read/write accessors:
Definition: class_module.h:454
void SetPadsLocked(bool aPadsLocked)
Definition: class_module.h:261
void SetPosition(const wxPoint &aPos) override
int ValueFromTextCtrl(const wxTextCtrl &aTextCtr)
Convert the number Value in a string according to the internal units and the selected unit (g_UserUni...
Definition: base_units.cpp:384
void CrossHairOff(wxDC *DC)
Definition: draw_panel.cpp:253
void SetLocalSolderMaskMargin(int aMargin)
Definition: class_module.h:164
Definition: gr_basic.h:42
void SetLocalSolderPasteMargin(int aMargin)
Definition: class_module.h:170
void CrossHairOn(wxDC *DC)
Definition: draw_panel.cpp:260
void SetLocked(bool isLocked) override
Function SetLocked sets the MODULE_is_LOCKED bit in the m_ModuleStatus.
Definition: class_module.h:233
Virtual component: when created by copper shapes on board (Like edge card connectors, mounting hole...)
Definition: class_module.h:78
void DisplayError(wxWindow *parent, const wxString &text, int displaytime)
Function DisplayError displays an error or warning message box with aMessage.
Definition: confirm.cpp:69
Use thermal relief for pads.
Definition: zones.h:58
void SetAttributes(int aAttributes)
Definition: class_module.h:185
pads are covered by copper
Definition: zones.h:59
bool DIALOG_MODULE_BOARD_EDITOR::TransferDataToWindow ( )
overrideprivate

Definition at line 587 of file dialog_edit_module_for_BoardEditor.cpp.

References InitBoardProperties(), InitModeditProperties(), DIALOG_MODULE_BOARD_EDITOR_BASE::m_Panel3D, and DIALOG_MODULE_BOARD_EDITOR_BASE::m_PanelProperties.

Referenced by OnInitDlg().

588 {
589  if( !wxDialog::TransferDataToWindow() ||
590  !m_PanelProperties->TransferDataToWindow() )
591  {
592  wxMessageBox( _( "Error: invalid footprint parameter" ) );
593  return false;
594  }
595 
596  if( !m_Panel3D->TransferDataToWindow() )
597  {
598  wxMessageBox( _( "Error: invalid 3D parameter" ) );
599  return false;
600  }
601 
604 
605  return true;
606 }

Member Data Documentation

wxBoxSizer* DIALOG_MODULE_BOARD_EDITOR_BASE::bLowerSizer3D
protectedinherited
wxBoxSizer* DIALOG_MODULE_BOARD_EDITOR_BASE::bSizerMain3D
protectedinherited
wxRadioBox* DIALOG_MODULE_BOARD_EDITOR_BASE::m_AttributsCtrl
protectedinherited
wxRadioBox* DIALOG_MODULE_BOARD_EDITOR_BASE::m_AutoPlaceCtrl
protectedinherited
wxButton* DIALOG_MODULE_BOARD_EDITOR_BASE::m_button4
protectedinherited
wxButton* DIALOG_MODULE_BOARD_EDITOR_BASE::m_button5
protectedinherited
wxButton* DIALOG_MODULE_BOARD_EDITOR_BASE::m_button8
protectedinherited
wxButton* DIALOG_MODULE_BOARD_EDITOR_BASE::m_buttonAdd
protectedinherited
wxButton* DIALOG_MODULE_BOARD_EDITOR_BASE::m_buttonEdit
protectedinherited
wxButton* DIALOG_MODULE_BOARD_EDITOR_BASE::m_buttonExchange
protectedinherited
wxButton* DIALOG_MODULE_BOARD_EDITOR_BASE::m_buttonModuleEditor
protectedinherited
wxButton* DIALOG_MODULE_BOARD_EDITOR_BASE::m_buttonRemove
protectedinherited
wxSlider* DIALOG_MODULE_BOARD_EDITOR_BASE::m_CostRot180Ctrl
protectedinherited
wxSlider* DIALOG_MODULE_BOARD_EDITOR_BASE::m_CostRot90Ctrl
protectedinherited
MODULE* DIALOG_MODULE_BOARD_EDITOR::m_CurrentModule
private
MODULE* DIALOG_MODULE_BOARD_EDITOR::m_currentModuleCopy
private

Definition at line 47 of file dialog_edit_module_for_BoardEditor.h.

wxDC* DIALOG_MODULE_BOARD_EDITOR::m_DC
private

Definition at line 39 of file dialog_edit_module_for_BoardEditor.h.

Referenced by TransferDataFromWindow().

std::string DIALOG_SHIM::m_hash_key
protectedinherited
int DIALOG_MODULE_BOARD_EDITOR::m_LastSelected3DShapeIndex
private
wxRadioBox* DIALOG_MODULE_BOARD_EDITOR_BASE::m_LayerCtrl
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_MaskClearanceTitle
protectedinherited
wxTextCtrl* DIALOG_MODULE_BOARD_EDITOR_BASE::m_ModPositionX
protectedinherited
wxTextCtrl* DIALOG_MODULE_BOARD_EDITOR_BASE::m_ModPositionY
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_NetClearanceUnits
protectedinherited
wxTextCtrl* DIALOG_MODULE_BOARD_EDITOR_BASE::m_NetClearanceValueCtrl
protectedinherited
wxNotebook* DIALOG_MODULE_BOARD_EDITOR_BASE::m_NoteBook
protectedinherited
wxFloatingPointValidator<double> DIALOG_MODULE_BOARD_EDITOR::m_OrientValidator
private

Definition at line 49 of file dialog_edit_module_for_BoardEditor.h.

Referenced by InitBoardProperties(), and ModuleOrientEvent().

double DIALOG_MODULE_BOARD_EDITOR::m_OrientValue
private
wxTextCtrl* DIALOG_MODULE_BOARD_EDITOR_BASE::m_OrientValueCtrl
protectedinherited
size_t DIALOG_MODULE_BOARD_EDITOR::m_page = 0
staticprivate

Module editor: Dialog for editing module properties in the pcb editor.

Definition at line 45 of file dialog_edit_module_for_BoardEditor.h.

Referenced by ~DIALOG_MODULE_BOARD_EDITOR().

wxPanel* DIALOG_MODULE_BOARD_EDITOR_BASE::m_Panel3D
protectedinherited
wxPanel* DIALOG_MODULE_BOARD_EDITOR_BASE::m_PanelProperties
protectedinherited
PCB_EDIT_FRAME* DIALOG_MODULE_BOARD_EDITOR::m_Parent
private
EVENT_LOOP* DIALOG_SHIM::m_qmodal_loop
protectedinherited

Definition at line 131 of file dialog_shim.h.

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

WDO_ENABLE_DISABLE* DIALOG_SHIM::m_qmodal_parent_disabler
protectedinherited
bool DIALOG_SHIM::m_qmodal_showing
protectedinherited
TEXTE_MODULE* DIALOG_MODULE_BOARD_EDITOR::m_ReferenceCopy
private
wxTextCtrl* DIALOG_MODULE_BOARD_EDITOR_BASE::m_ReferenceCtrl
protectedinherited
wxStdDialogButtonSizer* DIALOG_MODULE_BOARD_EDITOR_BASE::m_sdbSizerStdButtons
protectedinherited
wxButton* DIALOG_MODULE_BOARD_EDITOR_BASE::m_sdbSizerStdButtonsCancel
protectedinherited
wxButton* DIALOG_MODULE_BOARD_EDITOR_BASE::m_sdbSizerStdButtonsOK
protectedinherited
wxTextCtrl* DIALOG_MODULE_BOARD_EDITOR_BASE::m_SolderMaskMarginCtrl
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_SolderMaskMarginUnits
protectedinherited
wxTextCtrl* DIALOG_MODULE_BOARD_EDITOR_BASE::m_SolderPasteMarginCtrl
protectedinherited
wxTextCtrl* DIALOG_MODULE_BOARD_EDITOR_BASE::m_SolderPasteMarginRatioCtrl
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_SolderPasteMarginUnits
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_SolderPasteRatioMarginUnits
protectedinherited
wxStaticLine* DIALOG_MODULE_BOARD_EDITOR_BASE::m_staticline1
protectedinherited
wxStaticLine* DIALOG_MODULE_BOARD_EDITOR_BASE::m_staticline2
protectedinherited
wxStaticLine* DIALOG_MODULE_BOARD_EDITOR_BASE::m_staticline3
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_staticText11
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_staticText12
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_staticText16
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_staticTextInfo
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_staticTextNetClearance
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_staticTextPos
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_staticTextRatio
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_staticTextRef
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_staticTextRotation
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_staticTextSolderPaste
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_staticTextVal
protectedinherited
wxTextCtrl* DIALOG_MODULE_BOARD_EDITOR_BASE::m_textCtrlSheetPath
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_TextSheetPath
protectedinherited
TEXTE_MODULE* DIALOG_MODULE_BOARD_EDITOR::m_ValueCopy
private
wxTextCtrl* DIALOG_MODULE_BOARD_EDITOR_BASE::m_ValueCtrl
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_XPosLabel
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_XPosUnit
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_YPosLabel
protectedinherited
wxStaticText* DIALOG_MODULE_BOARD_EDITOR_BASE::m_YPosUnit
protectedinherited
wxChoice* DIALOG_MODULE_BOARD_EDITOR_BASE::m_ZoneConnectionChoice
protectedinherited

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