KiCad PCB EDA Suite
PANEL_EDIT_OPTIONS Class Reference

#include <panel_edit_options.h>

Inheritance diagram for PANEL_EDIT_OPTIONS:
PANEL_EDIT_OPTIONS_BASE

Public Member Functions

 PANEL_EDIT_OPTIONS (PCB_BASE_EDIT_FRAME *aFrame, PAGED_DIALOG *aWindow)
 

Protected Types

enum  { wxID_SEGMENTS45 = 1000 }
 

Protected Member Functions

bool TransferDataToWindow () override
 
bool TransferDataFromWindow () override
 

Protected Attributes

wxCheckBox * m_MagneticPads
 
wxCheckBox * m_Segments_45_Only_Ctrl
 
wxCheckBox * m_FlipLeftRight
 
wxStaticText * m_staticTextRotationAngle
 
wxTextCtrl * m_RotationAngle
 
wxSimplebook * m_optionsBook
 
wxStaticText * m_staticText2
 
wxChoice * m_magneticPadChoice
 
wxStaticText * m_staticText21
 
wxChoice * m_magneticTrackChoice
 
wxStaticText * m_staticText211
 
wxChoice * m_magneticGraphicsChoice
 
wxCheckBox * m_showSelectedRatsnest
 
wxCheckBox * m_OptDisplayCurvedRatsnestLines
 
wxCheckBox * m_Show_Page_Limits
 
wxStaticText * m_staticText5
 
wxRadioButton * m_rbTrackDragMove
 
wxRadioButton * m_rbTrackDrag45
 
wxRadioButton * m_rbTrackDragFree
 

Private Attributes

PCB_BASE_EDIT_FRAMEm_Frame
 

Detailed Description

Definition at line 34 of file panel_edit_options.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protectedinherited
Enumerator
wxID_SEGMENTS45 

Definition at line 38 of file panel_edit_options_base.h.

Constructor & Destructor Documentation

◆ PANEL_EDIT_OPTIONS()

PANEL_EDIT_OPTIONS::PANEL_EDIT_OPTIONS ( PCB_BASE_EDIT_FRAME aFrame,
PAGED_DIALOG aWindow 
)

Definition at line 35 of file panel_edit_options.cpp.

35  :
36  PANEL_EDIT_OPTIONS_BASE( aParent->GetTreebook() ),
37  m_Frame( aFrame )
38 {
39  m_MagneticPads->Show( dynamic_cast<FOOTPRINT_EDIT_FRAME*>( m_Frame ) != nullptr );
40  m_FlipLeftRight->Show( dynamic_cast<PCB_EDIT_FRAME*>( m_Frame ) != nullptr );\
41 
42  m_optionsBook->SetSelection( dynamic_cast<PCB_EDIT_FRAME*>( m_Frame ) ? 1 : 0 );
43 }
PCB_BASE_EDIT_FRAME * m_Frame
PANEL_EDIT_OPTIONS_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)

References PANEL_EDIT_OPTIONS_BASE::m_FlipLeftRight, m_Frame, and PANEL_EDIT_OPTIONS_BASE::m_MagneticPads.

Member Function Documentation

◆ TransferDataFromWindow()

bool PANEL_EDIT_OPTIONS::TransferDataFromWindow ( )
overrideprotected

Definition at line 87 of file panel_edit_options.cpp.

88 {
90 
91  m_Frame->SetRotationAngle( wxRound( 10.0 * wxAtof( m_RotationAngle->GetValue() ) ) );
92 
94 
95  if( dynamic_cast<PCB_EDIT_FRAME*>( m_Frame ) )
96  {
97  PCBNEW_SETTINGS& pcbnewSettings = m_Frame->Settings();
98 
100  displ_opts.m_ShowModuleRatsnest = m_showSelectedRatsnest->GetValue();
101 
103  static_cast<MAGNETIC_OPTIONS>( m_magneticPadChoice->GetSelection() );
105  static_cast<MAGNETIC_OPTIONS>( m_magneticTrackChoice->GetSelection() );
107 
110 
111  if( m_rbTrackDragMove->GetValue() )
113  else if( m_rbTrackDrag45->GetValue() )
115  else if( m_rbTrackDragFree->GetValue() )
117  }
118  else if( dynamic_cast<FOOTPRINT_EDIT_FRAME*>( m_Frame ) )
119  {
120  if( m_MagneticPads->GetValue() )
122  else
124  }
125 
126  // Apply changes to the GAL
127  KIGFX::VIEW* view = m_Frame->GetCanvas()->GetView();
128  KIGFX::PCB_PAINTER* painter = static_cast<KIGFX::PCB_PAINTER*>( view->GetPainter() );
129  KIGFX::PCB_RENDER_SETTINGS* settings = painter->GetSettings();
130 
131  m_Frame->SetDisplayOptions( displ_opts );
132  settings->LoadDisplayOptions( displ_opts, m_Frame->ShowPageLimits() );
133  view->RecacheAllItems();
135 
136  m_Frame->GetCanvas()->Refresh();
137 
138  return true;
139 }
PCB_DRAW_PANEL_GAL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
void RecacheAllItems()
Function RecacheAllItems() Rebuilds GAL display lists.
Definition: view.cpp:1377
void SetDisplayOptions(const PCB_DISPLAY_OPTIONS &aOptions)
virtual MAGNETIC_SETTINGS * GetMagneticItemsSettings()
PCB_PAINTER Contains methods for drawing PCB-specific items.
Definition: pcb_painter.h:260
const PCB_DISPLAY_OPTIONS & GetDisplayOptions() const
Function GetDisplayOptions Display options control the way tracks, vias, outlines and other things ar...
PCB_BASE_EDIT_FRAME * m_Frame
PAINTER * GetPainter() const
Function GetPainter() Returns the painter object used by the view for drawing VIEW_ITEMS.
Definition: view.h:201
bool ShowPageLimits() const
Auxiliary rendering target (noncached)
Definition: definitions.h:49
PCB_RENDER_SETTINGS Stores PCB specific render settings.
Definition: pcb_painter.h:64
bool m_Use45DegreeGraphicSegments
wxCheckBox * m_OptDisplayCurvedRatsnestLines
PCB_DISPLAY_OPTIONS handles display options like enable/disable some optional drawings.
TRACK_DRAG_ACTION m_TrackDragAction
virtual PCB_RENDER_SETTINGS * GetSettings() override
Definition: pcb_painter.h:272
void MarkTargetDirty(int aTarget)
Function MarkTargetDirty() Sets or clears target 'dirty' flag.
Definition: view.h:571
virtual KIGFX::PCB_VIEW * GetView() const override
Function GetView() Returns a pointer to the VIEW instance used in the panel.
virtual void Refresh(bool aEraseBackground=true, const wxRect *aRect=NULL) override
Update the board display after modifying it by a python script (note: it is automatically called by a...
MAGNETIC_OPTIONS pads
PCBNEW_SETTINGS & Settings()
void SetShowPageLimits(bool aShow)
VIEW.
Definition: view.h:63
MAGNETIC_SETTINGS m_MagneticItems
void SetRotationAngle(int aRotationAngle)
Function SetRotationAngle() Sets the angle used for rotate operations.
MAGNETIC_OPTIONS tracks

References CAPTURE_ALWAYS, DRAG, DRAG_FREE_ANGLE, PCB_BASE_FRAME::GetCanvas(), PCB_BASE_FRAME::GetDisplayOptions(), PCB_BASE_FRAME::GetMagneticItemsSettings(), KIGFX::VIEW::GetPainter(), KIGFX::PCB_PAINTER::GetSettings(), PCB_DRAW_PANEL_GAL::GetView(), MAGNETIC_SETTINGS::graphics, PCB_DISPLAY_OPTIONS::m_DisplayRatsnestLinesCurved, PANEL_EDIT_OPTIONS_BASE::m_FlipLeftRight, PCBNEW_SETTINGS::m_FlipLeftRight, m_Frame, PANEL_EDIT_OPTIONS_BASE::m_magneticGraphicsChoice, PCBNEW_SETTINGS::m_MagneticItems, PANEL_EDIT_OPTIONS_BASE::m_magneticPadChoice, PANEL_EDIT_OPTIONS_BASE::m_MagneticPads, PANEL_EDIT_OPTIONS_BASE::m_magneticTrackChoice, PANEL_EDIT_OPTIONS_BASE::m_OptDisplayCurvedRatsnestLines, PANEL_EDIT_OPTIONS_BASE::m_rbTrackDrag45, PANEL_EDIT_OPTIONS_BASE::m_rbTrackDragFree, PANEL_EDIT_OPTIONS_BASE::m_rbTrackDragMove, PANEL_EDIT_OPTIONS_BASE::m_RotationAngle, PANEL_EDIT_OPTIONS_BASE::m_Segments_45_Only_Ctrl, PANEL_EDIT_OPTIONS_BASE::m_Show_Page_Limits, PCB_DISPLAY_OPTIONS::m_ShowModuleRatsnest, PANEL_EDIT_OPTIONS_BASE::m_showSelectedRatsnest, PCBNEW_SETTINGS::m_TrackDragAction, PCBNEW_SETTINGS::m_Use45DegreeGraphicSegments, KIGFX::VIEW::MarkTargetDirty(), MOVE, NO_EFFECT, MAGNETIC_SETTINGS::pads, KIGFX::VIEW::RecacheAllItems(), EDA_DRAW_PANEL_GAL::Refresh(), PCB_BASE_FRAME::SetDisplayOptions(), PCB_BASE_EDIT_FRAME::SetRotationAngle(), EDA_DRAW_FRAME::SetShowPageLimits(), PCB_BASE_FRAME::Settings(), EDA_DRAW_FRAME::ShowPageLimits(), KIGFX::TARGET_NONCACHED, and MAGNETIC_SETTINGS::tracks.

◆ TransferDataToWindow()

bool PANEL_EDIT_OPTIONS::TransferDataToWindow ( )
overrideprotected

Definition at line 46 of file panel_edit_options.cpp.

47 {
48  const PCB_DISPLAY_OPTIONS& displ_opts = m_Frame->GetDisplayOptions();
49  const PCBNEW_SETTINGS& general_opts = m_Frame->Settings();
50 
51  m_Segments_45_Only_Ctrl->SetValue( general_opts.m_Use45DegreeGraphicSegments );
52 
53  wxString rotationAngle;
54  rotationAngle = AngleToStringDegrees( (double)m_Frame->GetRotationAngle() );
55  m_RotationAngle->SetValue( rotationAngle );
56 
57  if( dynamic_cast<PCB_EDIT_FRAME*>( m_Frame ) )
58  {
59  /* Set display options */
61  m_showSelectedRatsnest->SetValue( displ_opts.m_ShowModuleRatsnest );
62 
63  m_magneticPadChoice->SetSelection( static_cast<int>( general_opts.m_MagneticItems.pads ) );
64  m_magneticTrackChoice->SetSelection( static_cast<int>( general_opts.m_MagneticItems.tracks ) );
65  m_magneticGraphicsChoice->SetSelection( !general_opts.m_MagneticItems.graphics );
66  m_FlipLeftRight->SetValue( general_opts.m_FlipLeftRight );
67 
69 
70  switch( general_opts.m_TrackDragAction )
71  {
72  case TRACK_DRAG_ACTION::MOVE: m_rbTrackDragMove->SetValue( true ); break;
73  case TRACK_DRAG_ACTION::DRAG: m_rbTrackDrag45->SetValue( true ); break;
74  case TRACK_DRAG_ACTION::DRAG_FREE_ANGLE: m_rbTrackDragFree->SetValue( true ); break;
75  }
76  }
77  else if( dynamic_cast<FOOTPRINT_EDIT_FRAME*>( m_Frame ) )
78  {
79  m_MagneticPads->SetValue(
81  }
82 
83  return true;
84 }
virtual MAGNETIC_SETTINGS * GetMagneticItemsSettings()
const PCB_DISPLAY_OPTIONS & GetDisplayOptions() const
Function GetDisplayOptions Display options control the way tracks, vias, outlines and other things ar...
PCB_BASE_EDIT_FRAME * m_Frame
bool ShowPageLimits() const
bool m_Use45DegreeGraphicSegments
wxCheckBox * m_OptDisplayCurvedRatsnestLines
PCB_DISPLAY_OPTIONS handles display options like enable/disable some optional drawings.
TRACK_DRAG_ACTION m_TrackDragAction
wxString AngleToStringDegrees(double aAngle)
Function AngleToStringDegrees is a helper to convert the double aAngle (in internal unit) to a string...
Definition: base_units.cpp:456
int GetRotationAngle() const
Function GetRotationAngle() Returns the angle used for rotate operations.
MAGNETIC_OPTIONS pads
PCBNEW_SETTINGS & Settings()
MAGNETIC_SETTINGS m_MagneticItems
MAGNETIC_OPTIONS tracks

References AngleToStringDegrees(), CAPTURE_ALWAYS, DRAG, DRAG_FREE_ANGLE, PCB_BASE_FRAME::GetDisplayOptions(), PCB_BASE_FRAME::GetMagneticItemsSettings(), PCB_BASE_EDIT_FRAME::GetRotationAngle(), MAGNETIC_SETTINGS::graphics, PCB_DISPLAY_OPTIONS::m_DisplayRatsnestLinesCurved, PANEL_EDIT_OPTIONS_BASE::m_FlipLeftRight, PCBNEW_SETTINGS::m_FlipLeftRight, m_Frame, PANEL_EDIT_OPTIONS_BASE::m_magneticGraphicsChoice, PCBNEW_SETTINGS::m_MagneticItems, PANEL_EDIT_OPTIONS_BASE::m_magneticPadChoice, PANEL_EDIT_OPTIONS_BASE::m_MagneticPads, PANEL_EDIT_OPTIONS_BASE::m_magneticTrackChoice, PANEL_EDIT_OPTIONS_BASE::m_OptDisplayCurvedRatsnestLines, PANEL_EDIT_OPTIONS_BASE::m_rbTrackDrag45, PANEL_EDIT_OPTIONS_BASE::m_rbTrackDragFree, PANEL_EDIT_OPTIONS_BASE::m_rbTrackDragMove, PANEL_EDIT_OPTIONS_BASE::m_RotationAngle, PANEL_EDIT_OPTIONS_BASE::m_Segments_45_Only_Ctrl, PANEL_EDIT_OPTIONS_BASE::m_Show_Page_Limits, PCB_DISPLAY_OPTIONS::m_ShowModuleRatsnest, PANEL_EDIT_OPTIONS_BASE::m_showSelectedRatsnest, PCBNEW_SETTINGS::m_TrackDragAction, PCBNEW_SETTINGS::m_Use45DegreeGraphicSegments, MOVE, MAGNETIC_SETTINGS::pads, PCB_BASE_FRAME::Settings(), EDA_DRAW_FRAME::ShowPageLimits(), and MAGNETIC_SETTINGS::tracks.

Member Data Documentation

◆ m_FlipLeftRight

wxCheckBox* PANEL_EDIT_OPTIONS_BASE::m_FlipLeftRight
protectedinherited

◆ m_Frame

PCB_BASE_EDIT_FRAME* PANEL_EDIT_OPTIONS::m_Frame
private

◆ m_magneticGraphicsChoice

wxChoice* PANEL_EDIT_OPTIONS_BASE::m_magneticGraphicsChoice
protectedinherited

◆ m_magneticPadChoice

wxChoice* PANEL_EDIT_OPTIONS_BASE::m_magneticPadChoice
protectedinherited

◆ m_MagneticPads

wxCheckBox* PANEL_EDIT_OPTIONS_BASE::m_MagneticPads
protectedinherited

◆ m_magneticTrackChoice

wxChoice* PANEL_EDIT_OPTIONS_BASE::m_magneticTrackChoice
protectedinherited

◆ m_OptDisplayCurvedRatsnestLines

wxCheckBox* PANEL_EDIT_OPTIONS_BASE::m_OptDisplayCurvedRatsnestLines
protectedinherited

◆ m_optionsBook

wxSimplebook* PANEL_EDIT_OPTIONS_BASE::m_optionsBook
protectedinherited

◆ m_rbTrackDrag45

wxRadioButton* PANEL_EDIT_OPTIONS_BASE::m_rbTrackDrag45
protectedinherited

◆ m_rbTrackDragFree

wxRadioButton* PANEL_EDIT_OPTIONS_BASE::m_rbTrackDragFree
protectedinherited

◆ m_rbTrackDragMove

wxRadioButton* PANEL_EDIT_OPTIONS_BASE::m_rbTrackDragMove
protectedinherited

◆ m_RotationAngle

wxTextCtrl* PANEL_EDIT_OPTIONS_BASE::m_RotationAngle
protectedinherited

◆ m_Segments_45_Only_Ctrl

wxCheckBox* PANEL_EDIT_OPTIONS_BASE::m_Segments_45_Only_Ctrl
protectedinherited

◆ m_Show_Page_Limits

wxCheckBox* PANEL_EDIT_OPTIONS_BASE::m_Show_Page_Limits
protectedinherited

◆ m_showSelectedRatsnest

wxCheckBox* PANEL_EDIT_OPTIONS_BASE::m_showSelectedRatsnest
protectedinherited

◆ m_staticText2

wxStaticText* PANEL_EDIT_OPTIONS_BASE::m_staticText2
protectedinherited

◆ m_staticText21

wxStaticText* PANEL_EDIT_OPTIONS_BASE::m_staticText21
protectedinherited

◆ m_staticText211

wxStaticText* PANEL_EDIT_OPTIONS_BASE::m_staticText211
protectedinherited

◆ m_staticText5

wxStaticText* PANEL_EDIT_OPTIONS_BASE::m_staticText5
protectedinherited

◆ m_staticTextRotationAngle

wxStaticText* PANEL_EDIT_OPTIONS_BASE::m_staticTextRotationAngle
protectedinherited

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