Commit 430a39d7 authored by Marco Mattila's avatar Marco Mattila

Modify pcbnew plot and zone dialogs. Policy fixes in dialog_copper_zone.

parent 1010601a
...@@ -24,24 +24,19 @@ ...@@ -24,24 +24,19 @@
#define LAYER_BITMAP_SIZE_X 20 #define LAYER_BITMAP_SIZE_X 20
#define LAYER_BITMAP_SIZE_Y 10 #define LAYER_BITMAP_SIZE_Y 10
/* the filter to show nets (default * "*"). // Initialize static member variables
* static to keep this pattern for an entire pcbnew session wxString DIALOG_COPPER_ZONE::m_netNameShowFilter( wxT( "*" ) );
*/ wxPoint DIALOG_COPPER_ZONE::prevPosition( -1, -1 );
wxString dialog_copper_zone::m_netNameShowFilter( wxT( "*" ) ); wxSize DIALOG_COPPER_ZONE::prevSize;
wxPoint dialog_copper_zone::prevPosition( -1, -1 );
wxSize dialog_copper_zone::prevSize;
DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE( PCB_EDIT_FRAME* parent, ZONE_SETTING* zone_setting ) :
dialog_copper_zone::dialog_copper_zone( PCB_EDIT_FRAME* parent, ZONE_SETTING* zone_setting ) : DIALOG_COPPER_ZONE_BASE( parent )
dialog_copper_zone_base( parent )
{ {
m_Parent = parent; m_Parent = parent;
m_Config = wxGetApp().m_EDA_Config; m_Config = wxGetApp().m_EDA_Config;
m_Zone_Setting = zone_setting; m_Zone_Setting = zone_setting;
m_NetSortingByPadCount = true; /* false = alphabetic sort. m_NetSortingByPadCount = true; // false = alphabetic sort, true = pad count sort
* true = pad count sort.
*/
m_OnExitCode = ZONE_ABORT; m_OnExitCode = ZONE_ABORT;
SetReturnCode( ZONE_ABORT ); // Will be changed on buttons click SetReturnCode( ZONE_ABORT ); // Will be changed on buttons click
...@@ -56,22 +51,24 @@ dialog_copper_zone::dialog_copper_zone( PCB_EDIT_FRAME* parent, ZONE_SETTING* zo ...@@ -56,22 +51,24 @@ dialog_copper_zone::dialog_copper_zone( PCB_EDIT_FRAME* parent, ZONE_SETTING* zo
m_layerSizer->Add( m_LayerSelectionCtrl, 1, m_layerSizer->Add( m_LayerSelectionCtrl, 1,
wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 5 ); wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 5 );
// Fix static text widget minimum width to a suitable value so that
// resizing the dialog is not necessary when changing the corner smoothing type.
// Depends on the default text in the widget.
m_cornerSmoothingTitle->SetMinSize( m_cornerSmoothingTitle->GetSize() );
initDialog(); initDialog();
GetSizer()->SetSizeHints( this ); GetSizer()->SetSizeHints( this );
Center();
if( prevPosition.x != -1 ) if( prevPosition.x != -1 )
SetSize( prevPosition.x, prevPosition.y, SetSize( prevPosition.x, prevPosition.y,
prevSize.x, prevSize.y ); prevSize.x, prevSize.y );
else
Center();
} }
/*****************************************************************/ void DIALOG_COPPER_ZONE::initDialog()
void dialog_copper_zone::initDialog()
/*****************************************************************/
// Initialise all dialog options and values in wxTextCtrl
{ {
BOARD* board = m_Parent->GetBoard(); BOARD* board = m_Parent->GetBoard();
...@@ -202,15 +199,13 @@ void dialog_copper_zone::initDialog() ...@@ -202,15 +199,13 @@ void dialog_copper_zone::initDialog()
} }
/********************************************************************/ void DIALOG_COPPER_ZONE::OnButtonCancelClick( wxCommandEvent& event )
void dialog_copper_zone::OnButtonCancelClick( wxCommandEvent& event )
/********************************************************************/
{ {
Close( true ); Close( true );
} }
void dialog_copper_zone::OnClose( wxCloseEvent& event ) void DIALOG_COPPER_ZONE::OnClose( wxCloseEvent& event )
{ {
prevPosition = GetPosition(); prevPosition = GetPosition();
prevSize = GetSize(); prevSize = GetSize();
...@@ -218,7 +213,7 @@ void dialog_copper_zone::OnClose( wxCloseEvent& event ) ...@@ -218,7 +213,7 @@ void dialog_copper_zone::OnClose( wxCloseEvent& event )
} }
void dialog_copper_zone::OnSize( wxSizeEvent& event ) void DIALOG_COPPER_ZONE::OnSize( wxSizeEvent& event )
{ {
Layout(); Layout();
...@@ -228,7 +223,7 @@ void dialog_copper_zone::OnSize( wxSizeEvent& event ) ...@@ -228,7 +223,7 @@ void dialog_copper_zone::OnSize( wxSizeEvent& event )
} }
void dialog_copper_zone::OnCornerSmoothingModeChoice( wxCommandEvent& event ) void DIALOG_COPPER_ZONE::OnCornerSmoothingModeChoice( wxCommandEvent& event )
{ {
int selection = m_cornerSmoothingChoice->GetSelection(); int selection = m_cornerSmoothingChoice->GetSelection();
...@@ -254,16 +249,7 @@ void dialog_copper_zone::OnCornerSmoothingModeChoice( wxCommandEvent& event ) ...@@ -254,16 +249,7 @@ void dialog_copper_zone::OnCornerSmoothingModeChoice( wxCommandEvent& event )
} }
/********************************************************************************************/ bool DIALOG_COPPER_ZONE::AcceptOptions( bool aPromptForErrors, bool aUseExportableSetupOnly )
bool dialog_copper_zone::AcceptOptions( bool aPromptForErrors, bool aUseExportableSetupOnly )
/********************************************************************************************/
/**
* Function AcceptOptions(
* @return false if incorrect options, true if Ok.
* @param aPromptForErrors = true to prompt user on incorrectparams
* @param aUseExportableSetupOnly = true to use exportable parametres only (used to export this setup to other zones)
*/
{ {
switch( m_PadInZoneOpt->GetSelection() ) switch( m_PadInZoneOpt->GetSelection() )
{ {
...@@ -365,8 +351,9 @@ bool dialog_copper_zone::AcceptOptions( bool aPromptForErrors, bool aUseExportab ...@@ -365,8 +351,9 @@ bool dialog_copper_zone::AcceptOptions( bool aPromptForErrors, bool aUseExportab
if( aUseExportableSetupOnly ) if( aUseExportableSetupOnly )
return true; return true;
/* Get the layer selection for this zone */ // Get the layer selection for this zone
int ii = m_LayerSelectionCtrl->GetFirstSelected(); int ii = m_LayerSelectionCtrl->GetFirstSelected();
if( ii < 0 && aPromptForErrors ) if( ii < 0 && aPromptForErrors )
{ {
DisplayError( this, _( "No layer selected." ) ); DisplayError( this, _( "No layer selected." ) );
...@@ -375,8 +362,9 @@ bool dialog_copper_zone::AcceptOptions( bool aPromptForErrors, bool aUseExportab ...@@ -375,8 +362,9 @@ bool dialog_copper_zone::AcceptOptions( bool aPromptForErrors, bool aUseExportab
m_Zone_Setting->m_CurrentZone_Layer = m_LayerId[ii]; m_Zone_Setting->m_CurrentZone_Layer = m_LayerId[ii];
/* Get the net name selection for this zone */ // Get the net name selection for this zone
ii = m_ListNetNameSelection->GetSelection(); ii = m_ListNetNameSelection->GetSelection();
if( ii < 0 && aPromptForErrors ) if( ii < 0 && aPromptForErrors )
{ {
DisplayError( this, _( "No net selected." ) ); DisplayError( this, _( "No net selected." ) );
...@@ -395,7 +383,7 @@ bool dialog_copper_zone::AcceptOptions( bool aPromptForErrors, bool aUseExportab ...@@ -395,7 +383,7 @@ bool dialog_copper_zone::AcceptOptions( bool aPromptForErrors, bool aUseExportab
g_Zone_Default_Setting.m_NetcodeSelection = 0; g_Zone_Default_Setting.m_NetcodeSelection = 0;
/* Search net_code for this net, if a net was selected */ // Search net_code for this net, if a net was selected
if( m_ListNetNameSelection->GetSelection() > 0 ) if( m_ListNetNameSelection->GetSelection() > 0 )
{ {
NETINFO_ITEM* net = m_Parent->GetBoard()->FindNet( net_name ); NETINFO_ITEM* net = m_Parent->GetBoard()->FindNet( net_name );
...@@ -407,9 +395,7 @@ bool dialog_copper_zone::AcceptOptions( bool aPromptForErrors, bool aUseExportab ...@@ -407,9 +395,7 @@ bool dialog_copper_zone::AcceptOptions( bool aPromptForErrors, bool aUseExportab
} }
/***************************************************************************/ void DIALOG_COPPER_ZONE::OnNetSortingOptionSelected( wxCommandEvent& event )
void dialog_copper_zone::OnNetSortingOptionSelected( wxCommandEvent& event )
/***************************************************************************/
{ {
initListNetsParams(); initListNetsParams();
buildAvailableListOfNets(); buildAvailableListOfNets();
...@@ -424,9 +410,7 @@ void dialog_copper_zone::OnNetSortingOptionSelected( wxCommandEvent& event ) ...@@ -424,9 +410,7 @@ void dialog_copper_zone::OnNetSortingOptionSelected( wxCommandEvent& event )
} }
/*****************************************************************/ void DIALOG_COPPER_ZONE::OnButtonOkClick( wxCommandEvent& event )
void dialog_copper_zone::OnButtonOkClick( wxCommandEvent& event )
/*****************************************************************/
{ {
m_netNameShowFilter = m_ShowNetNameFilter->GetValue(); m_netNameShowFilter = m_ShowNetNameFilter->GetValue();
prevPosition = GetPosition(); prevPosition = GetPosition();
...@@ -437,9 +421,7 @@ void dialog_copper_zone::OnButtonOkClick( wxCommandEvent& event ) ...@@ -437,9 +421,7 @@ void dialog_copper_zone::OnButtonOkClick( wxCommandEvent& event )
} }
/******************************************************************************/ void DIALOG_COPPER_ZONE::ExportSetupToOtherCopperZones( wxCommandEvent& event )
void dialog_copper_zone::ExportSetupToOtherCopperZones( wxCommandEvent& event )
/******************************************************************************/
{ {
prevPosition = GetPosition(); prevPosition = GetPosition();
prevSize = GetSize(); prevSize = GetSize();
...@@ -460,9 +442,7 @@ void dialog_copper_zone::ExportSetupToOtherCopperZones( wxCommandEvent& event ) ...@@ -460,9 +442,7 @@ void dialog_copper_zone::ExportSetupToOtherCopperZones( wxCommandEvent& event )
} }
/******************************************************************/ void DIALOG_COPPER_ZONE::OnPadsInZoneClick( wxCommandEvent& event )
void dialog_copper_zone::OnPadsInZoneClick( wxCommandEvent& event )
/******************************************************************/
{ {
switch( m_PadInZoneOpt->GetSelection() ) switch( m_PadInZoneOpt->GetSelection() )
{ {
...@@ -479,10 +459,7 @@ void dialog_copper_zone::OnPadsInZoneClick( wxCommandEvent& event ) ...@@ -479,10 +459,7 @@ void dialog_copper_zone::OnPadsInZoneClick( wxCommandEvent& event )
} }
/** init m_NetSortingByPadCount and m_NetFiltering values void DIALOG_COPPER_ZONE::initListNetsParams()
* according to m_NetDisplayOption selection
*/
void dialog_copper_zone::initListNetsParams()
{ {
switch( m_NetDisplayOption->GetSelection() ) switch( m_NetDisplayOption->GetSelection() )
{ {
...@@ -509,15 +486,11 @@ void dialog_copper_zone::initListNetsParams() ...@@ -509,15 +486,11 @@ void dialog_copper_zone::initListNetsParams()
} }
/* Called when clicking on Apply Filter button void DIALOG_COPPER_ZONE::OnRunFiltersButtonClick( wxCommandEvent& event )
* Rebuild the list of nets with the currents filters settings.
* If the net display options is not a filtered option, force this option
*/
void dialog_copper_zone::OnRunFiltersButtonClick( wxCommandEvent& event )
{ {
m_netNameShowFilter = m_ShowNetNameFilter->GetValue(); m_netNameShowFilter = m_ShowNetNameFilter->GetValue();
// Ensure filtered option for nets: // Ensure filtered option for nets
if( m_NetDisplayOption->GetSelection() == 0 ) if( m_NetDisplayOption->GetSelection() == 0 )
m_NetDisplayOption->SetSelection( 2 ); m_NetDisplayOption->SetSelection( 2 );
else if( m_NetDisplayOption->GetSelection() == 1 ) else if( m_NetDisplayOption->GetSelection() == 1 )
...@@ -527,7 +500,7 @@ void dialog_copper_zone::OnRunFiltersButtonClick( wxCommandEvent& event ) ...@@ -527,7 +500,7 @@ void dialog_copper_zone::OnRunFiltersButtonClick( wxCommandEvent& event )
} }
void dialog_copper_zone::buildAvailableListOfNets() void DIALOG_COPPER_ZONE::buildAvailableListOfNets()
{ {
wxArrayString listNetName; wxArrayString listNetName;
...@@ -577,18 +550,16 @@ void dialog_copper_zone::buildAvailableListOfNets() ...@@ -577,18 +550,16 @@ void dialog_copper_zone::buildAvailableListOfNets()
} }
wxBitmap dialog_copper_zone::makeLayerBitmap( int aColor ) wxBitmap DIALOG_COPPER_ZONE::makeLayerBitmap( int aColor )
{ {
wxBitmap bitmap( LAYER_BITMAP_SIZE_X, LAYER_BITMAP_SIZE_Y ); wxBitmap bitmap( LAYER_BITMAP_SIZE_X, LAYER_BITMAP_SIZE_Y );
wxBrush brush; wxBrush brush;
wxMemoryDC iconDC; wxMemoryDC iconDC;
iconDC.SelectObject( bitmap ); iconDC.SelectObject( bitmap );
brush.SetColour( MakeColour( aColor ) ); brush.SetColour( MakeColour( aColor ) );
brush.SetStyle( wxSOLID ); brush.SetStyle( wxSOLID );
iconDC.SetBrush( brush ); iconDC.SetBrush( brush );
iconDC.DrawRectangle( 0, 0, LAYER_BITMAP_SIZE_X, LAYER_BITMAP_SIZE_Y ); iconDC.DrawRectangle( 0, 0, LAYER_BITMAP_SIZE_X, LAYER_BITMAP_SIZE_Y );
return bitmap; return bitmap;
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
/* here is the derivated class from dialog_copper_zone_frame created by wxFormBuilder /* here is the derivated class from dialog_copper_zone_frame created by wxFormBuilder
*/ */
class dialog_copper_zone : public dialog_copper_zone_base class DIALOG_COPPER_ZONE : public DIALOG_COPPER_ZONE_BASE
{ {
private: private:
PCB_EDIT_FRAME* m_Parent; PCB_EDIT_FRAME* m_Parent;
...@@ -35,21 +35,43 @@ private: ...@@ -35,21 +35,43 @@ private:
static wxSize prevSize; static wxSize prevSize;
public: public:
dialog_copper_zone( PCB_EDIT_FRAME* parent, ZONE_SETTING* zone_setting ); DIALOG_COPPER_ZONE( PCB_EDIT_FRAME* parent, ZONE_SETTING* zone_setting );
private: private:
/** Function initDialog
* fills in the dialog controls using the current settings.
*/
void initDialog(); void initDialog();
void OnButtonOkClick( wxCommandEvent& event ); void OnButtonOkClick( wxCommandEvent& event );
void OnButtonCancelClick( wxCommandEvent& event ); void OnButtonCancelClick( wxCommandEvent& event );
void OnClose( wxCloseEvent& event ); void OnClose( wxCloseEvent& event );
void OnSize( wxSizeEvent& event ); void OnSize( wxSizeEvent& event );
void OnCornerSmoothingModeChoice( wxCommandEvent& event ); void OnCornerSmoothingModeChoice( wxCommandEvent& event );
/**
* Function AcceptOptions
* @param aPromptForErrors is true to prompt user on incorrect params.
* @param aUseExportableSetupOnly is true to use exportable parametres only (used to export this setup to other zones).
* @return bool - false if incorrect options, true if ok.
*/
bool AcceptOptions( bool aPromptForErrors, bool aUseExportableSetupOnly = false ); bool AcceptOptions( bool aPromptForErrors, bool aUseExportableSetupOnly = false );
void OnNetSortingOptionSelected( wxCommandEvent& event ); void OnNetSortingOptionSelected( wxCommandEvent& event );
void ExportSetupToOtherCopperZones( wxCommandEvent& event ); void ExportSetupToOtherCopperZones( wxCommandEvent& event );
void OnPadsInZoneClick( wxCommandEvent& event ); void OnPadsInZoneClick( wxCommandEvent& event );
void OnRunFiltersButtonClick( wxCommandEvent& event ); void OnRunFiltersButtonClick( wxCommandEvent& event );
void buildAvailableListOfNets(); void buildAvailableListOfNets();
/** Function initListNetsParams
* initializes m_NetSortingByPadCount and m_NetFiltering values
* according to m_NetDisplayOption selection.
*/
void initListNetsParams(); void initListNetsParams();
/**
* Function makeLayerBitmap
* creates the colored rectangle bitmaps used in the layer selection widget.
* @param aColor is the color to fill the rectangle with.
*/
wxBitmap makeLayerBitmap( int aColor ); wxBitmap makeLayerBitmap( int aColor );
}; };
#endif // #ifndef DIALOG_COPPER_ZONES #endif // #ifndef DIALOG_COPPER_ZONES
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Nov 17 2010) // C++ code generated with wxFormBuilder (version Nov 18 2010)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
...@@ -9,21 +9,21 @@ ...@@ -9,21 +9,21 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
BEGIN_EVENT_TABLE( dialog_copper_zone_base, wxDialog ) BEGIN_EVENT_TABLE( DIALOG_COPPER_ZONE_BASE, wxDialog )
EVT_CLOSE( dialog_copper_zone_base::_wxFB_OnClose ) EVT_CLOSE( DIALOG_COPPER_ZONE_BASE::_wxFB_OnClose )
EVT_SIZE( dialog_copper_zone_base::_wxFB_OnSize ) EVT_SIZE( DIALOG_COPPER_ZONE_BASE::_wxFB_OnSize )
EVT_CHOICE( ID_M_NETDISPLAYOPTION, dialog_copper_zone_base::_wxFB_OnNetSortingOptionSelected ) EVT_CHOICE( ID_M_NETDISPLAYOPTION, DIALOG_COPPER_ZONE_BASE::_wxFB_OnNetSortingOptionSelected )
EVT_TEXT_ENTER( ID_TEXTCTRL_NETNAMES_FILTER, dialog_copper_zone_base::_wxFB_OnRunFiltersButtonClick ) EVT_TEXT_ENTER( ID_TEXTCTRL_NETNAMES_FILTER, DIALOG_COPPER_ZONE_BASE::_wxFB_OnRunFiltersButtonClick )
EVT_TEXT_ENTER( ID_TEXTCTRL_NETNAMES_FILTER, dialog_copper_zone_base::_wxFB_OnRunFiltersButtonClick ) EVT_TEXT_ENTER( ID_TEXTCTRL_NETNAMES_FILTER, DIALOG_COPPER_ZONE_BASE::_wxFB_OnRunFiltersButtonClick )
EVT_BUTTON( wxID_APPLY_FILTERS, dialog_copper_zone_base::_wxFB_OnRunFiltersButtonClick ) EVT_BUTTON( wxID_APPLY_FILTERS, DIALOG_COPPER_ZONE_BASE::_wxFB_OnRunFiltersButtonClick )
EVT_CHOICE( ID_CORNER_SMOOTHING, dialog_copper_zone_base::_wxFB_OnCornerSmoothingModeChoice ) EVT_CHOICE( ID_CORNER_SMOOTHING, DIALOG_COPPER_ZONE_BASE::_wxFB_OnCornerSmoothingModeChoice )
EVT_CHOICE( ID_M_PADINZONEOPT, dialog_copper_zone_base::_wxFB_OnPadsInZoneClick ) EVT_CHOICE( ID_M_PADINZONEOPT, DIALOG_COPPER_ZONE_BASE::_wxFB_OnPadsInZoneClick )
EVT_BUTTON( wxID_BUTTON_EXPORT, dialog_copper_zone_base::_wxFB_ExportSetupToOtherCopperZones ) EVT_BUTTON( wxID_BUTTON_EXPORT, DIALOG_COPPER_ZONE_BASE::_wxFB_ExportSetupToOtherCopperZones )
EVT_BUTTON( wxID_OK, dialog_copper_zone_base::_wxFB_OnButtonOkClick ) EVT_BUTTON( wxID_OK, DIALOG_COPPER_ZONE_BASE::_wxFB_OnButtonOkClick )
EVT_BUTTON( wxID_CANCEL, dialog_copper_zone_base::_wxFB_OnButtonCancelClick ) EVT_BUTTON( wxID_CANCEL, DIALOG_COPPER_ZONE_BASE::_wxFB_OnButtonCancelClick )
END_EVENT_TABLE() END_EVENT_TABLE()
dialog_copper_zone_base::dialog_copper_zone_base( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) DIALOG_COPPER_ZONE_BASE::DIALOG_COPPER_ZONE_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{ {
this->SetSizeHints( wxDefaultSize, wxDefaultSize ); this->SetSizeHints( wxDefaultSize, wxDefaultSize );
...@@ -242,6 +242,6 @@ dialog_copper_zone_base::dialog_copper_zone_base( wxWindow* parent, wxWindowID i ...@@ -242,6 +242,6 @@ dialog_copper_zone_base::dialog_copper_zone_base( wxWindow* parent, wxWindowID i
this->Layout(); this->Layout();
} }
dialog_copper_zone_base::~dialog_copper_zone_base() DIALOG_COPPER_ZONE_BASE::~DIALOG_COPPER_ZONE_BASE()
{ {
} }
...@@ -48,14 +48,14 @@ ...@@ -48,14 +48,14 @@
<property name="font"></property> <property name="font"></property>
<property name="gripper">0</property> <property name="gripper">0</property>
<property name="hidden">0</property> <property name="hidden">0</property>
<property name="id">wxID_ANY</property> <property name="id">ID_DIALOG_COPPER_ZONE_BASE</property>
<property name="layer"></property> <property name="layer"></property>
<property name="maximize_button">0</property> <property name="maximize_button">0</property>
<property name="maximum_size"></property> <property name="maximum_size"></property>
<property name="minimize_button">0</property> <property name="minimize_button">0</property>
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="moveable">1</property> <property name="moveable">1</property>
<property name="name">dialog_copper_zone_base</property> <property name="name">DIALOG_COPPER_ZONE_BASE</property>
<property name="pane_border">1</property> <property name="pane_border">1</property>
<property name="pane_position"></property> <property name="pane_position"></property>
<property name="pane_size"></property> <property name="pane_size"></property>
......
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Nov 17 2010) // C++ code generated with wxFormBuilder (version Nov 18 2010)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
...@@ -27,9 +27,9 @@ ...@@ -27,9 +27,9 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
/// Class dialog_copper_zone_base /// Class DIALOG_COPPER_ZONE_BASE
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
class dialog_copper_zone_base : public wxDialog class DIALOG_COPPER_ZONE_BASE : public wxDialog
{ {
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
private: private:
...@@ -49,7 +49,8 @@ class dialog_copper_zone_base : public wxDialog ...@@ -49,7 +49,8 @@ class dialog_copper_zone_base : public wxDialog
protected: protected:
enum enum
{ {
ID_NETNAME_SELECTION = 1000, ID_DIALOG_COPPER_ZONE_BASE = 1000,
ID_NETNAME_SELECTION,
ID_M_NETDISPLAYOPTION, ID_M_NETDISPLAYOPTION,
ID_TEXTCTRL_NETNAMES_FILTER, ID_TEXTCTRL_NETNAMES_FILTER,
wxID_APPLY_FILTERS, wxID_APPLY_FILTERS,
...@@ -117,8 +118,8 @@ class dialog_copper_zone_base : public wxDialog ...@@ -117,8 +118,8 @@ class dialog_copper_zone_base : public wxDialog
public: public:
dialog_copper_zone_base( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Zone Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 550,500 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); DIALOG_COPPER_ZONE_BASE( wxWindow* parent, wxWindowID id = ID_DIALOG_COPPER_ZONE_BASE, const wxString& title = _("Zone Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 550,500 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~dialog_copper_zone_base(); ~DIALOG_COPPER_ZONE_BASE();
}; };
......
...@@ -65,6 +65,10 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr ...@@ -65,6 +65,10 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr
m_LayersSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Layers") ), wxHORIZONTAL ); m_LayersSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Layers") ), wxHORIZONTAL );
wxArrayString m_layerCheckListBoxChoices;
m_layerCheckListBox = new wxCheckListBox( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_layerCheckListBoxChoices, 0 );
m_LayersSizer->Add( m_layerCheckListBox, 1, wxALL|wxEXPAND, 5 );
bUpperSizer->Add( m_LayersSizer, 1, wxALL|wxEXPAND, 3 ); bUpperSizer->Add( m_LayersSizer, 1, wxALL|wxEXPAND, 3 );
m_PlotOptionsSizer = new wxBoxSizer( wxVERTICAL ); m_PlotOptionsSizer = new wxBoxSizer( wxVERTICAL );
......
...@@ -612,6 +612,92 @@ ...@@ -612,6 +612,92 @@
<property name="orient">wxHORIZONTAL</property> <property name="orient">wxHORIZONTAL</property>
<property name="permission">protected</property> <property name="permission">protected</property>
<event name="OnUpdateUI"></event> <event name="OnUpdateUI"></event>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxCheckListBox" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_name"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="choices"></property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="layer"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_layerCheckListBox</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="position"></property>
<property name="resize">Resizable</property>
<property name="row"></property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnCheckListBox"></event>
<event name="OnCheckListBoxDClick"></event>
<event name="OnCheckListBoxToggled"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
</object> </object>
</object> </object>
<object class="sizeritem" expanded="1"> <object class="sizeritem" expanded="1">
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <wx/sizer.h> #include <wx/sizer.h>
#include <wx/textctrl.h> #include <wx/textctrl.h>
#include <wx/button.h> #include <wx/button.h>
#include <wx/checklst.h>
#include <wx/statbox.h> #include <wx/statbox.h>
#include <wx/checkbox.h> #include <wx/checkbox.h>
#include <wx/dialog.h> #include <wx/dialog.h>
...@@ -49,6 +50,7 @@ class DIALOG_PLOT_BASE : public wxDialog ...@@ -49,6 +50,7 @@ class DIALOG_PLOT_BASE : public wxDialog
wxTextCtrl* m_outputDirectoryName; wxTextCtrl* m_outputDirectoryName;
wxButton* m_browseButton; wxButton* m_browseButton;
wxStaticBoxSizer* m_LayersSizer; wxStaticBoxSizer* m_LayersSizer;
wxCheckListBox* m_layerCheckListBox;
wxBoxSizer* m_PlotOptionsSizer; wxBoxSizer* m_PlotOptionsSizer;
wxCheckBox* m_plotSheetRef; wxCheckBox* m_plotSheetRef;
wxCheckBox* m_plotPads_on_Silkscreen; wxCheckBox* m_plotPads_on_Silkscreen;
......
...@@ -54,15 +54,16 @@ static bool setDouble( double* aDouble, double aValue, double aMin, double aMax ...@@ -54,15 +54,16 @@ static bool setDouble( double* aDouble, double aValue, double aMin, double aMax
class DIALOG_PLOT : public DIALOG_PLOT_BASE class DIALOG_PLOT : public DIALOG_PLOT_BASE
{ {
public: private:
PCB_EDIT_FRAME* m_Parent; PCB_EDIT_FRAME* m_Parent;
wxConfig* m_Config; wxConfig* m_Config;
std::vector<int> layerList; // List to hold CheckListBox layer numbers std::vector<int> layerList; // List to hold CheckListBox layer numbers
wxCheckListBox* layerCheckListBox;
double m_XScaleAdjust; double m_XScaleAdjust;
double m_YScaleAdjust; double m_YScaleAdjust;
static wxPoint prevPosition; // Dialog position & size
public: DIALOG_PLOT( PCB_EDIT_FRAME* parent ); static wxSize prevSize;
public:
DIALOG_PLOT( PCB_EDIT_FRAME* parent );
private: private:
void Init_Dialog(); void Init_Dialog();
void Plot( wxCommandEvent& event ); void Plot( wxCommandEvent& event );
...@@ -75,6 +76,9 @@ private: ...@@ -75,6 +76,9 @@ private:
void CreateDrillFile( wxCommandEvent& event ); void CreateDrillFile( wxCommandEvent& event );
}; };
wxPoint DIALOG_PLOT::prevPosition( -1, -1 );
wxSize DIALOG_PLOT::prevSize;
const int UNITS_MILS = 1000; const int UNITS_MILS = 1000;
...@@ -84,15 +88,16 @@ DIALOG_PLOT::DIALOG_PLOT( PCB_EDIT_FRAME* parent ) : ...@@ -84,15 +88,16 @@ DIALOG_PLOT::DIALOG_PLOT( PCB_EDIT_FRAME* parent ) :
m_Parent = parent; m_Parent = parent;
m_Config = wxGetApp().m_EDA_Config; m_Config = wxGetApp().m_EDA_Config;
layerCheckListBox = new wxCheckListBox( this, wxID_ANY );
m_LayersSizer->Add( layerCheckListBox, 0, wxGROW | wxALL, 1 );
Init_Dialog(); Init_Dialog();
GetSizer()->Fit( this ); GetSizer()->Fit( this );
GetSizer()->SetSizeHints( this ); GetSizer()->SetSizeHints( this );
Centre();
if( prevPosition.x != -1 )
SetSize( prevPosition.x, prevPosition.y,
prevSize.x, prevSize.y );
else
Center();
} }
...@@ -157,10 +162,10 @@ void DIALOG_PLOT::Init_Dialog() ...@@ -157,10 +162,10 @@ void DIALOG_PLOT::Init_Dialog()
continue; continue;
layerList.push_back( layer ); layerList.push_back( layer );
checkIndex = layerCheckListBox->Append( board->GetLayerName( layer ) ); checkIndex = m_layerCheckListBox->Append( board->GetLayerName( layer ) );
if( g_PcbPlotOptions.GetLayerSelection() & ( 1 << layer ) ) if( g_PcbPlotOptions.GetLayerSelection() & ( 1 << layer ) )
layerCheckListBox->Check( checkIndex ); m_layerCheckListBox->Check( checkIndex );
} }
// Option for using proper Gerber extensions // Option for using proper Gerber extensions
...@@ -227,6 +232,8 @@ void DIALOG_PLOT::OnQuit( wxCommandEvent& event ) ...@@ -227,6 +232,8 @@ void DIALOG_PLOT::OnQuit( wxCommandEvent& event )
void DIALOG_PLOT::OnClose( wxCloseEvent& event ) void DIALOG_PLOT::OnClose( wxCloseEvent& event )
{ {
prevPosition = GetPosition();
prevSize = GetSize();
applyPlotSettings(); applyPlotSettings();
EndModal( 0 ); EndModal( 0 );
} }
...@@ -509,7 +516,7 @@ void DIALOG_PLOT::applyPlotSettings() ...@@ -509,7 +516,7 @@ void DIALOG_PLOT::applyPlotSettings()
unsigned int i; unsigned int i;
for( i = 0; i < layerList.size(); i++ ) for( i = 0; i < layerList.size(); i++ )
{ {
if( layerCheckListBox->IsChecked( i ) ) if( m_layerCheckListBox->IsChecked( i ) )
selectedLayers |= (1 << layerList[i]); selectedLayers |= (1 << layerList[i]);
} }
tempOptions.SetLayerSelection( selectedLayers ); tempOptions.SetLayerSelection( selectedLayers );
......
...@@ -520,7 +520,7 @@ int PCB_EDIT_FRAME::Begin_Zone( wxDC* DC ) ...@@ -520,7 +520,7 @@ int PCB_EDIT_FRAME::Begin_Zone( wxDC* DC )
&g_Zone_Default_Setting.m_ThermalReliefCopperBridgeValue ); &g_Zone_Default_Setting.m_ThermalReliefCopperBridgeValue );
g_Zone_Default_Setting.m_CurrentZone_Layer = zone->GetLayer(); g_Zone_Default_Setting.m_CurrentZone_Layer = zone->GetLayer();
dialog_copper_zone* frame = new dialog_copper_zone( this, &g_Zone_Default_Setting ); DIALOG_COPPER_ZONE* frame = new DIALOG_COPPER_ZONE( this, &g_Zone_Default_Setting );
diag = frame->ShowModal(); diag = frame->ShowModal();
frame->Destroy(); frame->Destroy();
} }
...@@ -780,7 +780,7 @@ void PCB_EDIT_FRAME::Edit_Zone_Params( wxDC* DC, ZONE_CONTAINER* zone_container ...@@ -780,7 +780,7 @@ void PCB_EDIT_FRAME::Edit_Zone_Params( wxDC* DC, ZONE_CONTAINER* zone_container
if( zone_container->GetLayer() < FIRST_NO_COPPER_LAYER ) if( zone_container->GetLayer() < FIRST_NO_COPPER_LAYER )
{ // edit a zone on a copper layer { // edit a zone on a copper layer
g_Zone_Default_Setting.ImportSetting(*zone_container); g_Zone_Default_Setting.ImportSetting(*zone_container);
dialog_copper_zone* frame = new dialog_copper_zone( this, &g_Zone_Default_Setting ); DIALOG_COPPER_ZONE* frame = new DIALOG_COPPER_ZONE( this, &g_Zone_Default_Setting );
diag = frame->ShowModal(); diag = frame->ShowModal();
frame->Destroy(); frame->Destroy();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment