Commit afdf5258 authored by brian.'s avatar brian. Committed by jean-pierre charras

Commit patch from Brian Sidebotham (Bus width value option)

parent 76765f22
...@@ -37,6 +37,15 @@ DIALOG_EESCHEMA_OPTIONS::DIALOG_EESCHEMA_OPTIONS( wxWindow* parent ) : ...@@ -37,6 +37,15 @@ DIALOG_EESCHEMA_OPTIONS::DIALOG_EESCHEMA_OPTIONS( wxWindow* parent ) :
{ {
m_choiceUnits->SetFocus(); m_choiceUnits->SetFocus();
m_sdbSizer1OK->SetDefault(); m_sdbSizer1OK->SetDefault();
#if defined (KICAD_GOST)
/* The GOST standard pre-defines certain schematic attributes that cannot be changed */
m_spinBusWidth->Enable(false);
#endif
} }
......
...@@ -41,44 +41,43 @@ public: ...@@ -41,44 +41,43 @@ public:
void SetUnits( const wxArrayString& units, int select = 0 ); void SetUnits( const wxArrayString& units, int select = 0 );
int GetUnitsSelection( void ) { return m_choiceUnits->GetSelection(); } int GetUnitsSelection( void ) { return m_choiceUnits->GetSelection(); }
void SetGridSelection( int select ) void SetGridSelection( int select ) { m_choiceGridSize->SetSelection( select ); }
{
m_choiceGridSize->SetSelection( select );
}
int GetGridSelection( void ) { return m_choiceGridSize->GetSelection(); } int GetGridSelection( void ) { return m_choiceGridSize->GetSelection(); }
void SetGridSizes( const GRIDS& grid_sizes, int grid_id ); void SetGridSizes( const GRIDS& grid_sizes, int grid_id );
void SetLineWidth( int line_width ) void SetBusWidth( int aWidth )
{ {
m_spinLineWidth->SetValue( line_width ); #if defined( KICAD_GOST )
m_spinBusWidth->SetValue( GOST_BUS_WIDTH );
#else
m_spinBusWidth->SetValue( aWidth );
#endif
} }
int GetLineWidth( void ) { return m_spinLineWidth->GetValue(); }
void SetTextSize( int text_size ) int GetBusWidth( void )
{ {
m_spinTextSize->SetValue( text_size ); #if defined( KICAD_GOST )
return GOST_BUS_WIDTH;
#else
return m_spinBusWidth->GetValue();
#endif
} }
void SetLineWidth( int aWidth ) { m_spinLineWidth->SetValue( aWidth ); }
int GetLineWidth( void ) { return m_spinLineWidth->GetValue(); }
void SetTextSize( int text_size ) { m_spinTextSize->SetValue( text_size ); }
int GetTextSize( void ) { return m_spinTextSize->GetValue(); } int GetTextSize( void ) { return m_spinTextSize->GetValue(); }
void SetRepeatHorizontal( int displacement ) void SetRepeatHorizontal( int displacement )
{ {
m_spinRepeatHorizontal->SetValue( displacement ); m_spinRepeatHorizontal->SetValue( displacement );
} }
int GetRepeatHorizontal( void ) int GetRepeatHorizontal( void ) { return m_spinRepeatHorizontal->GetValue(); }
{ void SetRepeatVertical( int displacement ) { m_spinRepeatVertical->SetValue( displacement ); }
return m_spinRepeatHorizontal->GetValue();
}
void SetRepeatVertical( int displacement )
{
m_spinRepeatVertical->SetValue( displacement );
}
int GetRepeatVertical( void ) { return m_spinRepeatVertical->GetValue(); } int GetRepeatVertical( void ) { return m_spinRepeatVertical->GetValue(); }
void SetRepeatLabel( int increment ) { m_spinRepeatLabel->SetValue( increment ); }
void SetRepeatLabel( int increment )
{
m_spinRepeatLabel->SetValue( increment );
}
int GetRepeatLabel( void ) { return m_spinRepeatLabel->GetValue(); } int GetRepeatLabel( void ) { return m_spinRepeatLabel->GetValue(); }
void SetAutoSaveInterval( int aInterval ) { m_spinAutoSaveInterval->SetValue( aInterval ); } void SetAutoSaveInterval( int aInterval ) { m_spinAutoSaveInterval->SetValue( aInterval ); }
...@@ -87,14 +86,8 @@ public: ...@@ -87,14 +86,8 @@ public:
void SetShowGrid( bool show ) { m_checkShowGrid->SetValue( show ); } void SetShowGrid( bool show ) { m_checkShowGrid->SetValue( show ); }
bool GetShowGrid( void ) { return m_checkShowGrid->GetValue(); } bool GetShowGrid( void ) { return m_checkShowGrid->GetValue(); }
void SetShowHiddenPins( bool show ) void SetShowHiddenPins( bool show ) { m_checkShowHiddenPins->SetValue( show ); }
{ bool GetShowHiddenPins( void ) { return m_checkShowHiddenPins->GetValue(); }
m_checkShowHiddenPins->SetValue( show );
}
bool GetShowHiddenPins( void )
{
return m_checkShowHiddenPins->GetValue();
}
void SetEnableMiddleButtonPan( bool enable ) void SetEnableMiddleButtonPan( bool enable )
{ {
...@@ -106,7 +99,6 @@ public: ...@@ -106,7 +99,6 @@ public:
{ {
return m_checkEnableMiddleButtonPan->GetValue(); return m_checkEnableMiddleButtonPan->GetValue();
} }
void SetMiddleButtonPanLimited( bool enable ) void SetMiddleButtonPanLimited( bool enable )
{ {
m_checkMiddleButtonPanLimited->SetValue( enable ); m_checkMiddleButtonPanLimited->SetValue( enable );
...@@ -116,30 +108,14 @@ public: ...@@ -116,30 +108,14 @@ public:
return m_checkMiddleButtonPanLimited->GetValue(); return m_checkMiddleButtonPanLimited->GetValue();
} }
void SetEnableAutoPan( bool enable ) void SetEnableAutoPan( bool enable ) { m_checkAutoPan->SetValue( enable ); }
{
m_checkAutoPan->SetValue( enable );
}
bool GetEnableAutoPan( void ) { return m_checkAutoPan->GetValue(); } bool GetEnableAutoPan( void ) { return m_checkAutoPan->GetValue(); }
void SetEnableHVBusOrientation( bool enable ) void SetEnableHVBusOrientation( bool enable ) { m_checkHVOrientation->SetValue( enable ); }
{ bool GetEnableHVBusOrientation( void ) { return m_checkHVOrientation->GetValue(); }
m_checkHVOrientation->SetValue( enable );
}
bool GetEnableHVBusOrientation( void )
{
return m_checkHVOrientation->GetValue();
}
void SetShowPageLimits( bool show )
{
m_checkPageLimits->SetValue( show );
}
bool GetShowPageLimits( void )
{
return m_checkPageLimits->GetValue();
}
void SetShowPageLimits( bool show ) { m_checkPageLimits->SetValue( show ); }
bool GetShowPageLimits( void ) { return m_checkPageLimits->GetValue(); }
/** Set the field \a aNdx textctrl to \a aName */ /** Set the field \a aNdx textctrl to \a aName */
void SetFieldName( int aNdx, wxString aName ); void SetFieldName( int aNdx, wxString aName );
......
...@@ -67,11 +67,22 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx ...@@ -67,11 +67,22 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx
m_staticGridUnits->Wrap( -1 ); m_staticGridUnits->Wrap( -1 );
fgSizer1->Add( m_staticGridUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); fgSizer1->Add( m_staticGridUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 );
m_staticText51 = new wxStaticText( m_panel1, wxID_ANY, _("Default &bus width:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText51->Wrap( -1 );
fgSizer1->Add( m_staticText51, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 );
m_spinBusWidth = new wxSpinCtrl( m_panel1, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_WRAP, 1, 100, 1 );
fgSizer1->Add( m_spinBusWidth, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 );
m_staticBusWidthUnits = new wxStaticText( m_panel1, wxID_ANY, _("mils"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticBusWidthUnits->Wrap( -1 );
fgSizer1->Add( m_staticBusWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 );
m_staticText5 = new wxStaticText( m_panel1, wxID_ANY, _("Default &line width:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText5 = new wxStaticText( m_panel1, wxID_ANY, _("Default &line width:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText5->Wrap( -1 ); m_staticText5->Wrap( -1 );
fgSizer1->Add( m_staticText5, 1, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); fgSizer1->Add( m_staticText5, 1, wxALIGN_CENTER_VERTICAL|wxALL, 3 );
m_spinLineWidth = new wxSpinCtrl( m_panel1, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_WRAP, 0, 100, 0 ); m_spinLineWidth = new wxSpinCtrl( m_panel1, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_WRAP, 1, 100, 1 );
fgSizer1->Add( m_spinLineWidth, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 ); fgSizer1->Add( m_spinLineWidth, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 );
m_staticLineWidthUnits = new wxStaticText( m_panel1, wxID_ANY, _("mils"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticLineWidthUnits = new wxStaticText( m_panel1, wxID_ANY, _("mils"), wxDefaultPosition, wxDefaultSize, 0 );
......
...@@ -59,6 +59,9 @@ class DIALOG_EESCHEMA_OPTIONS_BASE : public wxDialog ...@@ -59,6 +59,9 @@ class DIALOG_EESCHEMA_OPTIONS_BASE : public wxDialog
wxStaticText* m_staticText3; wxStaticText* m_staticText3;
wxChoice* m_choiceGridSize; wxChoice* m_choiceGridSize;
wxStaticText* m_staticGridUnits; wxStaticText* m_staticGridUnits;
wxStaticText* m_staticText51;
wxSpinCtrl* m_spinBusWidth;
wxStaticText* m_staticBusWidthUnits;
wxStaticText* m_staticText5; wxStaticText* m_staticText5;
wxSpinCtrl* m_spinLineWidth; wxSpinCtrl* m_spinLineWidth;
wxStaticText* m_staticLineWidthUnits; wxStaticText* m_staticLineWidthUnits;
......
...@@ -55,6 +55,7 @@ ...@@ -55,6 +55,7 @@
#define FR_HISTORY_LIST_CNT 10 ///< Maximum number of find and replace strings. #define FR_HISTORY_LIST_CNT 10 ///< Maximum number of find and replace strings.
int g_DefaultBusWidth = 9;
void LIB_EDIT_FRAME::InstallConfigFrame( wxCommandEvent& event ) void LIB_EDIT_FRAME::InstallConfigFrame( wxCommandEvent& event )
{ {
...@@ -207,6 +208,7 @@ void SCH_EDIT_FRAME::OnSetOptions( wxCommandEvent& event ) ...@@ -207,6 +208,7 @@ void SCH_EDIT_FRAME::OnSetOptions( wxCommandEvent& event )
dlg.SetUnits( units, g_UserUnit ); dlg.SetUnits( units, g_UserUnit );
dlg.SetGridSizes( grid_list, GetScreen()->GetGridId() ); dlg.SetGridSizes( grid_list, GetScreen()->GetGridId() );
dlg.SetBusWidth( g_DefaultBusWidth );
dlg.SetLineWidth( g_DrawDefaultLineThickness ); dlg.SetLineWidth( g_DrawDefaultLineThickness );
dlg.SetTextSize( g_DefaultTextLabelSize ); dlg.SetTextSize( g_DefaultTextLabelSize );
dlg.SetRepeatHorizontal( g_RepeatStep.x ); dlg.SetRepeatHorizontal( g_RepeatStep.x );
...@@ -240,6 +242,7 @@ void SCH_EDIT_FRAME::OnSetOptions( wxCommandEvent& event ) ...@@ -240,6 +242,7 @@ void SCH_EDIT_FRAME::OnSetOptions( wxCommandEvent& event )
GetScreen()->SetGrid( grid_list[ (size_t) dlg.GetGridSelection() ].m_Size ); GetScreen()->SetGrid( grid_list[ (size_t) dlg.GetGridSelection() ].m_Size );
g_DefaultBusWidth = dlg.GetBusWidth();
g_DrawDefaultLineThickness = dlg.GetLineWidth(); g_DrawDefaultLineThickness = dlg.GetLineWidth();
g_DefaultTextLabelSize = dlg.GetTextSize(); g_DefaultTextLabelSize = dlg.GetTextSize();
g_RepeatStep.x = dlg.GetRepeatHorizontal(); g_RepeatStep.x = dlg.GetRepeatHorizontal();
...@@ -420,7 +423,7 @@ void SCH_EDIT_FRAME::SaveProjectFile() ...@@ -420,7 +423,7 @@ void SCH_EDIT_FRAME::SaveProjectFile()
wxGetApp().WriteProjectConfig( fn.GetFullPath(), GROUP, GetProjectFileParameters() ); wxGetApp().WriteProjectConfig( fn.GetFullPath(), GROUP, GetProjectFileParameters() );
} }
static const wxString DefaultBusWidthEntry( wxT( "DefaultBusWidth" ) );
static const wxString DefaultDrawLineWidthEntry( wxT( "DefaultDrawLineWidth" ) ); static const wxString DefaultDrawLineWidthEntry( wxT( "DefaultDrawLineWidth" ) );
static const wxString ShowHiddenPinsEntry( wxT( "ShowHiddenPins" ) ); static const wxString ShowHiddenPinsEntry( wxT( "ShowHiddenPins" ) );
static const wxString HorzVertLinesOnlyEntry( wxT( "HorizVertLinesOnly" ) ); static const wxString HorzVertLinesOnlyEntry( wxT( "HorizVertLinesOnly" ) );
...@@ -553,6 +556,7 @@ void SCH_EDIT_FRAME::LoadSettings() ...@@ -553,6 +556,7 @@ void SCH_EDIT_FRAME::LoadSettings()
// This is required until someone gets rid of the global variable g_LayerDescription(). // This is required until someone gets rid of the global variable g_LayerDescription().
m_GridColor = g_LayerDescr.LayerColor[LAYER_GRID]; m_GridColor = g_LayerDescr.LayerColor[LAYER_GRID];
g_DefaultBusWidth = cfg->Read( DefaultBusWidthEntry, (long) 8 );
g_DrawDefaultLineThickness = cfg->Read( DefaultDrawLineWidthEntry,(long) 6 ); g_DrawDefaultLineThickness = cfg->Read( DefaultDrawLineWidthEntry,(long) 6 );
cfg->Read( ShowHiddenPinsEntry, &m_showAllPins, false ); cfg->Read( ShowHiddenPinsEntry, &m_showAllPins, false );
cfg->Read( HorzVertLinesOnlyEntry, &g_HVLines, true ); cfg->Read( HorzVertLinesOnlyEntry, &g_HVLines, true );
...@@ -644,6 +648,7 @@ void SCH_EDIT_FRAME::SaveSettings() ...@@ -644,6 +648,7 @@ void SCH_EDIT_FRAME::SaveSettings()
wxGetApp().SaveCurrentSetupValues( GetConfigurationSettings() ); wxGetApp().SaveCurrentSetupValues( GetConfigurationSettings() );
cfg->Write( DefaultBusWidthEntry, (long) g_DefaultBusWidth );
cfg->Write( DefaultDrawLineWidthEntry, (long) g_DrawDefaultLineThickness ); cfg->Write( DefaultDrawLineWidthEntry, (long) g_DrawDefaultLineThickness );
cfg->Write( ShowHiddenPinsEntry, m_showAllPins ); cfg->Write( ShowHiddenPinsEntry, m_showAllPins );
cfg->Write( HorzVertLinesOnlyEntry, g_HVLines ); cfg->Write( HorzVertLinesOnlyEntry, g_HVLines );
......
...@@ -8,7 +8,17 @@ ...@@ -8,7 +8,17 @@
#define GROUPCOMMON wxT( "/common" ) #define GROUPCOMMON wxT( "/common" )
#define GROUPLIB wxT( "libraries" ) #define GROUPLIB wxT( "libraries" )
extern int g_PenMinWidth; /**
* The width given to bus drawings that do not have a specific width
*/
extern int g_DefaultBusWidth;
#if defined(KICAD_GOST)
/** In a GOST build, the bus width is set and cannot be changed */
#define GOST_BUS_WIDTH 22
#endif
/* saving parameters option : */ /* saving parameters option : */
#define INSETUP true /* used when the parameter is saved in general config #define INSETUP true /* used when the parameter is saved in general config
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include <richio.h> #include <richio.h>
#include <plot_common.h> #include <plot_common.h>
#include <eeschema_config.h>
#include <general.h> #include <general.h>
#include <protos.h> #include <protos.h>
#include <sch_bus_entry.h> #include <sch_bus_entry.h>
...@@ -167,10 +168,9 @@ int SCH_BUS_ENTRY::GetPenSize() const ...@@ -167,10 +168,9 @@ int SCH_BUS_ENTRY::GetPenSize() const
{ {
int pensize = ( m_width == 0 ) ? g_DrawDefaultLineThickness : m_width; int pensize = ( m_width == 0 ) ? g_DrawDefaultLineThickness : m_width;
if( m_Layer == LAYER_BUS && m_width == 0 ) if( m_Layer == LAYER_BUS )
{ {
pensize = KiROUND( g_DrawDefaultLineThickness * BUS_WIDTH_EXPAND ); pensize = ( m_width == 0 ) ? g_DefaultBusWidth : m_width;
pensize = MAX( pensize, 3 );
} }
return pensize; return pensize;
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
#include <richio.h> #include <richio.h>
#include <plot_common.h> #include <plot_common.h>
#include <base_units.h> #include <base_units.h>
#include <eeschema_config.h>
#include <general.h> #include <general.h>
#include <protos.h> #include <protos.h>
#include <sch_line.h> #include <sch_line.h>
...@@ -212,10 +212,13 @@ int SCH_LINE::GetPenSize() const ...@@ -212,10 +212,13 @@ int SCH_LINE::GetPenSize() const
{ {
int pensize = ( m_width == 0 ) ? g_DrawDefaultLineThickness : m_width; int pensize = ( m_width == 0 ) ? g_DrawDefaultLineThickness : m_width;
if( m_Layer == LAYER_BUS && m_width == 0 ) if( m_Layer == LAYER_BUS )
{ {
pensize = KiROUND( g_DrawDefaultLineThickness * BUS_WIDTH_EXPAND ); #if defined(KICAD_GOST)
pensize = MAX( pensize, 3 ); pensize = GOST_BUS_WIDTH;
#else
pensize = ( m_width == 0 ) ? g_DefaultBusWidth : m_width;
#endif
} }
return pensize; return pensize;
......
...@@ -50,16 +50,6 @@ typedef SCH_ITEMS::iterator SCH_ITEMS_ITR; ...@@ -50,16 +50,6 @@ typedef SCH_ITEMS::iterator SCH_ITEMS_ITR;
typedef vector< SCH_ITEMS_ITR > SCH_ITEMS_ITRS; typedef vector< SCH_ITEMS_ITR > SCH_ITEMS_ITRS;
/* used to calculate the pen size from default value
* the actual pen size is default value * BUS_WIDTH_EXPAND
*/
#if defined(KICAD_GOST)
#define BUS_WIDTH_EXPAND 3.6
#else
#define BUS_WIDTH_EXPAND 1.4
#endif
#define FMT_IU SCH_ITEM::FormatInternalUnits #define FMT_IU SCH_ITEM::FormatInternalUnits
#define FMT_ANGLE SCH_ITEM::FormatAngle #define FMT_ANGLE SCH_ITEM::FormatAngle
......
...@@ -986,11 +986,8 @@ bool DIALOG_DESIGN_RULES::TestDataValidity() ...@@ -986,11 +986,8 @@ bool DIALOG_DESIGN_RULES::TestDataValidity()
int minUViaDia = ReturnValueFromTextCtrl( *m_SetMicroViasMinSizeCtrl ); int minUViaDia = ReturnValueFromTextCtrl( *m_SetMicroViasMinSizeCtrl );
int minUViaDrill = ReturnValueFromTextCtrl( *m_SetMicroViasMinDrillCtrl ); int minUViaDrill = ReturnValueFromTextCtrl( *m_SetMicroViasMinDrillCtrl );
int minTrackWidth = ReturnValueFromTextCtrl( *m_SetTrackMinWidthCtrl ); int minTrackWidth = ReturnValueFromTextCtrl( *m_SetTrackMinWidthCtrl );
#if defined( USE_PCBNEW_NANOMETRES ) int maxval = 1000 * IU_PER_MILS; // a max value for tracks and vias sizes (1 inch)
int maxval = 25400000;
#else
int maxval = 10000;
#endif
for( int row = 0; row < m_grid->GetNumberRows(); row++ ) for( int row = 0; row < m_grid->GetNumberRows(); row++ )
......
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