You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

148 lines
4.3 KiB

  1. /************************************/
  2. /* dialog_graphic_items_options.cpp */
  3. /************************************/
  4. #include "fctsys.h"
  5. #include "common.h"
  6. #include "pcbnew.h"
  7. #include "wxPcbStruct.h"
  8. #include "pcbnew_id.h"
  9. #include "dialog_graphic_items_options.h"
  10. extern int g_DrawDefaultLineThickness;
  11. void WinEDA_PcbFrame::OnConfigurePcbOptions( wxCommandEvent& aEvent )
  12. {
  13. DIALOG_GRAPHIC_ITEMS_OPTIONS dlg( this );
  14. dlg.ShowModal();
  15. }
  16. void WinEDA_ModuleEditFrame::InstallOptionsFrame( const wxPoint& pos )
  17. {
  18. DIALOG_GRAPHIC_ITEMS_OPTIONS dlg( this );
  19. dlg.ShowModal();
  20. }
  21. /*
  22. * DIALOG_GRAPHIC_ITEMS_OPTIONS constructor
  23. */
  24. DIALOG_GRAPHIC_ITEMS_OPTIONS::DIALOG_GRAPHIC_ITEMS_OPTIONS( WinEDA_BasePcbFrame* parent )
  25. : DIALOG_GRAPHIC_ITEMS_OPTIONS_BASE( parent )
  26. {
  27. m_Parent = parent;
  28. m_BrdSettings = m_Parent->GetBoard()->GetBoardDesignSettings();
  29. initValues( );
  30. GetSizer()->SetSizeHints( this );
  31. Centre();
  32. }
  33. DIALOG_GRAPHIC_ITEMS_OPTIONS::~DIALOG_GRAPHIC_ITEMS_OPTIONS( )
  34. {
  35. }
  36. void DIALOG_GRAPHIC_ITEMS_OPTIONS::initValues()
  37. {
  38. SetFocus();
  39. /* Drawings width */
  40. AddUnitSymbol( *m_GraphicSegmWidthTitle );
  41. PutValueInLocalUnits( *m_OptPcbSegmWidth,
  42. m_BrdSettings->m_DrawSegmentWidth,
  43. PCB_INTERNAL_UNIT );
  44. /* Edges width */
  45. AddUnitSymbol( *m_BoardEdgesWidthTitle );
  46. PutValueInLocalUnits( *m_OptPcbEdgesWidth,
  47. m_BrdSettings->m_EdgeSegmentWidth,
  48. PCB_INTERNAL_UNIT );
  49. /* Pcb Textes (Size & Width) */
  50. AddUnitSymbol( *m_CopperTextWidthTitle );
  51. PutValueInLocalUnits( *m_OptPcbTextWidth,
  52. m_BrdSettings->m_PcbTextWidth, PCB_INTERNAL_UNIT );
  53. AddUnitSymbol( *m_TextSizeVTitle );
  54. PutValueInLocalUnits( *m_OptPcbTextVSize,
  55. m_BrdSettings->m_PcbTextSize.y, PCB_INTERNAL_UNIT );
  56. AddUnitSymbol( *m_TextSizeHTitle );
  57. PutValueInLocalUnits( *m_OptPcbTextHSize,
  58. m_BrdSettings->m_PcbTextSize.x, PCB_INTERNAL_UNIT );
  59. /* Modules: Edges width */
  60. AddUnitSymbol( *m_EdgeModWidthTitle );
  61. PutValueInLocalUnits( *m_OptModuleEdgesWidth,
  62. ModuleSegmentWidth, PCB_INTERNAL_UNIT );
  63. /* Modules: Texts: Size & width */
  64. AddUnitSymbol( *m_TextModWidthTitle );
  65. PutValueInLocalUnits( *m_OptModuleTextWidth,
  66. ModuleTextWidth, PCB_INTERNAL_UNIT );
  67. AddUnitSymbol( *m_TextModSizeVTitle );
  68. PutValueInLocalUnits( *m_OptModuleTextVSize,
  69. ModuleTextSize.y, PCB_INTERNAL_UNIT );
  70. AddUnitSymbol( *m_TextModSizeHTitle );
  71. PutValueInLocalUnits( *m_OptModuleTextHSize,
  72. ModuleTextSize.x, PCB_INTERNAL_UNIT );
  73. AddUnitSymbol( *m_DefaultPenSizeTitle );
  74. PutValueInLocalUnits( *m_DefaultPenSizeCtrl,
  75. g_DrawDefaultLineThickness, PCB_INTERNAL_UNIT );
  76. }
  77. void DIALOG_GRAPHIC_ITEMS_OPTIONS::OnOkClick( wxCommandEvent& event )
  78. {
  79. m_BrdSettings->m_DrawSegmentWidth =
  80. ReturnValueFromTextCtrl( *m_OptPcbSegmWidth, PCB_INTERNAL_UNIT );
  81. m_BrdSettings->m_EdgeSegmentWidth =
  82. ReturnValueFromTextCtrl( *m_OptPcbEdgesWidth, PCB_INTERNAL_UNIT );
  83. m_BrdSettings->m_PcbTextWidth =
  84. ReturnValueFromTextCtrl( *m_OptPcbTextWidth, PCB_INTERNAL_UNIT );
  85. m_BrdSettings->m_PcbTextSize.y =
  86. ReturnValueFromTextCtrl( *m_OptPcbTextVSize, PCB_INTERNAL_UNIT );
  87. m_BrdSettings->m_PcbTextSize.x =
  88. ReturnValueFromTextCtrl( *m_OptPcbTextHSize, PCB_INTERNAL_UNIT );
  89. ModuleSegmentWidth =
  90. ReturnValueFromTextCtrl( *m_OptModuleEdgesWidth, PCB_INTERNAL_UNIT );
  91. ModuleTextWidth =
  92. ReturnValueFromTextCtrl( *m_OptModuleTextWidth, PCB_INTERNAL_UNIT );
  93. ModuleTextSize.y =
  94. ReturnValueFromTextCtrl( *m_OptModuleTextVSize, PCB_INTERNAL_UNIT );
  95. ModuleTextSize.x =
  96. ReturnValueFromTextCtrl( *m_OptModuleTextHSize, PCB_INTERNAL_UNIT );
  97. g_DrawDefaultLineThickness =
  98. ReturnValueFromTextCtrl( *m_DefaultPenSizeCtrl, PCB_INTERNAL_UNIT );
  99. if( g_DrawDefaultLineThickness < 0 )
  100. g_DrawDefaultLineThickness = 0;
  101. EndModal( wxID_OK );
  102. }
  103. /*!
  104. * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
  105. */
  106. void DIALOG_GRAPHIC_ITEMS_OPTIONS::OnCancelClick( wxCommandEvent& event )
  107. {
  108. event.Skip();
  109. }