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_magneticGraphics
 
wxCheckBox * m_autoLockPads
 
wxCheckBox * m_flipLeftRight
 
wxCheckBox * m_segments45OnlyCtrl
 
wxStaticText * m_staticTextRotationAngle
 
wxTextCtrl * m_rotationAngle
 
wxStaticBoxSizer * m_mouseCmdsWinLin
 
wxStaticText * m_staticText181
 
wxStaticBoxSizer * m_mouseCmdsOSX
 
wxStaticText * m_staticText1811
 
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 39 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 34 of file panel_edit_options.cpp.

34  :
35  PANEL_EDIT_OPTIONS_BASE( aParent->GetTreebook() ), m_frame( aFrame )
36 {
37  m_magneticPads->Show( dynamic_cast<FOOTPRINT_EDIT_FRAME*>( m_frame ) != nullptr );
38  m_magneticGraphics->Show( dynamic_cast<FOOTPRINT_EDIT_FRAME*>( m_frame ) != nullptr );
39  m_flipLeftRight->Show( dynamic_cast<PCB_EDIT_FRAME*>( m_frame ) != nullptr );
40  m_autoLockPads->Show( dynamic_cast<PCB_EDIT_FRAME*>( m_frame ) != nullptr );
41 
42 #ifdef __WXOSX_MAC__
43  m_mouseCmdsOSX->Show( true );
44  m_mouseCmdsWinLin->Show( false );
45 #else
46  m_mouseCmdsWinLin->Show( true );
47  m_mouseCmdsOSX->Show( false );
48 #endif
49 
50  m_optionsBook->SetSelection( dynamic_cast<PCB_EDIT_FRAME*>( m_frame ) ? 1 : 0 );
51 }
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)
wxStaticBoxSizer * m_mouseCmdsWinLin
wxStaticBoxSizer * m_mouseCmdsOSX

References PANEL_EDIT_OPTIONS_BASE::m_autoLockPads, PANEL_EDIT_OPTIONS_BASE::m_flipLeftRight, m_frame, PANEL_EDIT_OPTIONS_BASE::m_magneticGraphics, PANEL_EDIT_OPTIONS_BASE::m_magneticPads, PANEL_EDIT_OPTIONS_BASE::m_mouseCmdsOSX, PANEL_EDIT_OPTIONS_BASE::m_mouseCmdsWinLin, and PANEL_EDIT_OPTIONS_BASE::m_optionsBook.

Member Function Documentation

◆ TransferDataFromWindow()

bool PANEL_EDIT_OPTIONS::TransferDataFromWindow ( )
overrideprotected

Definition at line 97 of file panel_edit_options.cpp.

98 {
100 
101  m_frame->SetRotationAngle( wxRound( 10.0 * wxAtof( m_rotationAngle->GetValue() ) ) );
102 
104 
105  if( dynamic_cast<PCB_EDIT_FRAME*>( m_frame ) )
106  {
107  PCBNEW_SETTINGS& pcbnewSettings = m_frame->Settings();
108 
110  displ_opts.m_ShowModuleRatsnest = m_showSelectedRatsnest->GetValue();
111 
113  static_cast<MAGNETIC_OPTIONS>( m_magneticPadChoice->GetSelection() );
115  static_cast<MAGNETIC_OPTIONS>( m_magneticTrackChoice->GetSelection() );
117 
121 
122  if( m_rbTrackDragMove->GetValue() )
124  else if( m_rbTrackDrag45->GetValue() )
126  else if( m_rbTrackDragFree->GetValue() )
128  }
129  else if( dynamic_cast<FOOTPRINT_EDIT_FRAME*>( m_frame ) )
130  {
134 
136  }
137 
138  // Apply changes to the GAL
139  KIGFX::VIEW* view = m_frame->GetCanvas()->GetView();
140  KIGFX::PCB_PAINTER* painter = static_cast<KIGFX::PCB_PAINTER*>( view->GetPainter() );
141  KIGFX::PCB_RENDER_SETTINGS* settings = painter->GetSettings();
142 
143  m_frame->SetDisplayOptions( displ_opts );
144  settings->LoadDisplayOptions( displ_opts, m_frame->ShowPageLimits() );
145  view->RecacheAllItems();
147 
148  m_frame->GetCanvas()->Refresh();
149 
150  return true;
151 }
PCB_BASE_EDIT_FRAME * m_frame
PCB_DRAW_PANEL_GAL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
void RecacheAllItems()
Rebuild GAL display lists.
Definition: view.cpp:1372
void SetDisplayOptions(const PCB_DISPLAY_OPTIONS &aOptions)
virtual MAGNETIC_SETTINGS * GetMagneticItemsSettings()
Contains methods for drawing PCB-specific items.
Definition: pcb_painter.h:241
const PCB_DISPLAY_OPTIONS & GetDisplayOptions() const
Display options control the way tracks, vias, outlines and other things are shown (for instance solid...
PAINTER * GetPainter() const
Return the painter object used by the view for drawing #VIEW_ITEMS.
Definition: view.h:207
bool ShowPageLimits() const
Auxiliary rendering target (noncached)
Definition: definitions.h:49
PCB specific render settings.
Definition: pcb_painter.h:64
bool m_Use45DegreeGraphicSegments
wxCheckBox * m_OptDisplayCurvedRatsnestLines
Container for display options like enable/disable some optional drawings.
TRACK_DRAG_ACTION m_TrackDragAction
virtual PCB_RENDER_SETTINGS * GetSettings() override
Return a pointer to current settings that are going to be used when drawing items.
Definition: pcb_painter.h:247
void MarkTargetDirty(int aTarget)
Set or clear target 'dirty' flag.
Definition: view.h:574
virtual KIGFX::PCB_VIEW * GetView() const override
Return 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)
Hold a (potentially large) number of VIEW_ITEMs and renders them on a graphics device provided by the...
Definition: view.h:67
MAGNETIC_SETTINGS m_MagneticItems
void SetRotationAngle(int aRotationAngle)
Set 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, PCBNEW_SETTINGS::m_AddUnlockedPads, PANEL_EDIT_OPTIONS_BASE::m_autoLockPads, PCB_DISPLAY_OPTIONS::m_DisplayRatsnestLinesCurved, PANEL_EDIT_OPTIONS_BASE::m_flipLeftRight, PCBNEW_SETTINGS::m_FlipLeftRight, m_frame, PANEL_EDIT_OPTIONS_BASE::m_magneticGraphics, 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_segments45OnlyCtrl, 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 54 of file panel_edit_options.cpp.

55 {
56  const PCB_DISPLAY_OPTIONS& displ_opts = m_frame->GetDisplayOptions();
57  const PCBNEW_SETTINGS& general_opts = m_frame->Settings();
58 
59  m_segments45OnlyCtrl->SetValue( general_opts.m_Use45DegreeGraphicSegments );
60 
61  wxString rotationAngle;
62  rotationAngle = AngleToStringDegrees( (double) m_frame->GetRotationAngle() );
63  m_rotationAngle->SetValue( rotationAngle );
64 
65  if( dynamic_cast<PCB_EDIT_FRAME*>( m_frame ) )
66  {
67  /* Set display options */
69  m_showSelectedRatsnest->SetValue( displ_opts.m_ShowModuleRatsnest );
70 
71  m_magneticPadChoice->SetSelection( static_cast<int>( general_opts.m_MagneticItems.pads ) );
72  m_magneticTrackChoice->SetSelection( static_cast<int>( general_opts.m_MagneticItems.tracks ) );
73  m_magneticGraphicsChoice->SetSelection( !general_opts.m_MagneticItems.graphics );
74  m_flipLeftRight->SetValue( general_opts.m_FlipLeftRight );
75  m_autoLockPads->SetValue( !general_opts.m_AddUnlockedPads );
76 
78 
79  switch( general_opts.m_TrackDragAction )
80  {
81  case TRACK_DRAG_ACTION::MOVE: m_rbTrackDragMove->SetValue( true ); break;
82  case TRACK_DRAG_ACTION::DRAG: m_rbTrackDrag45->SetValue( true ); break;
83  case TRACK_DRAG_ACTION::DRAG_FREE_ANGLE: m_rbTrackDragFree->SetValue( true ); break;
84  }
85  }
86  else if( dynamic_cast<FOOTPRINT_EDIT_FRAME*>( m_frame ) )
87  {
91  }
92 
93  return true;
94 }
PCB_BASE_EDIT_FRAME * m_frame
virtual MAGNETIC_SETTINGS * GetMagneticItemsSettings()
const PCB_DISPLAY_OPTIONS & GetDisplayOptions() const
Display options control the way tracks, vias, outlines and other things are shown (for instance solid...
bool ShowPageLimits() const
bool m_Use45DegreeGraphicSegments
wxCheckBox * m_OptDisplayCurvedRatsnestLines
Container for display options like enable/disable some optional drawings.
TRACK_DRAG_ACTION m_TrackDragAction
wxString AngleToStringDegrees(double aAngle)
A helper to convert aAngle in deci-degrees to a string in degrees.
Definition: base_units.cpp:461
int GetRotationAngle() const
Return 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, PCBNEW_SETTINGS::m_AddUnlockedPads, PANEL_EDIT_OPTIONS_BASE::m_autoLockPads, PCB_DISPLAY_OPTIONS::m_DisplayRatsnestLinesCurved, PANEL_EDIT_OPTIONS_BASE::m_flipLeftRight, PCBNEW_SETTINGS::m_FlipLeftRight, m_frame, PANEL_EDIT_OPTIONS_BASE::m_magneticGraphics, 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_segments45OnlyCtrl, 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_autoLockPads

wxCheckBox* PANEL_EDIT_OPTIONS_BASE::m_autoLockPads
protectedinherited

◆ m_flipLeftRight

wxCheckBox* PANEL_EDIT_OPTIONS_BASE::m_flipLeftRight
protectedinherited

◆ m_frame

PCB_BASE_EDIT_FRAME* PANEL_EDIT_OPTIONS::m_frame
private

◆ m_magneticGraphics

wxCheckBox* PANEL_EDIT_OPTIONS_BASE::m_magneticGraphics
protectedinherited

◆ 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_mouseCmdsOSX

wxStaticBoxSizer* PANEL_EDIT_OPTIONS_BASE::m_mouseCmdsOSX
protectedinherited

◆ m_mouseCmdsWinLin

wxStaticBoxSizer* PANEL_EDIT_OPTIONS_BASE::m_mouseCmdsWinLin
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_segments45OnlyCtrl

wxCheckBox* PANEL_EDIT_OPTIONS_BASE::m_segments45OnlyCtrl
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_staticText181

wxStaticText* PANEL_EDIT_OPTIONS_BASE::m_staticText181
protectedinherited

◆ m_staticText1811

wxStaticText* PANEL_EDIT_OPTIONS_BASE::m_staticText1811
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: