Encapsulate SCH_EDIT_FRAME and LIB_EDIT_FRAME classes.

This commit is contained in:
Wayne Stambaugh 2011-12-09 11:37:11 -05:00
parent 4cb29f6104
commit 9461f16281
14 changed files with 227 additions and 180 deletions

View File

@ -1,11 +1,30 @@
/////////////////////////////////////////////////////////////////////////////
// Name: dialog_eeschema_config.cpp
// Purpose:
// Author: jean-pierre Charras
// Created: 17/02/2006 21:14:46
// Copyright: KiCad Team
// Licence: GPL
/////////////////////////////////////////////////////////////////////////////
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2006 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com
* Copyright (C) 2006-2011 KiCad Developers, see change_log.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
/**
* @file dialog_eeschema_config.cpp
*/
#include "fctsys.h"
#include "appl_wxstruct.h"
@ -50,9 +69,9 @@ void DIALOG_EESCHEMA_CONFIG::Init()
m_LibListChanged = false;
m_LibPathChanged = false;
m_UserLibDirBufferImg = m_Parent->m_UserLibraryPath;
m_UserLibDirBufferImg = m_Parent->GetUserLibraryPath();
m_ListLibr->InsertItems( m_Parent->m_ComponentLibFiles, 0 );
m_ListLibr->InsertItems( m_Parent->GetComponentLibraries(), 0 );
// Load user libs paths:
wxStringTokenizer Token( m_UserLibDirBufferImg, wxT( ";\n\r" ) );
@ -154,7 +173,8 @@ void DIALOG_EESCHEMA_CONFIG::OnCancelClick( wxCommandEvent& event )
{
for ( unsigned ii = 0; ii < m_ListLibr->GetCount(); ii++ )
wxGetApp().RemoveLibraryPath( m_listUserPaths->GetString(ii) );
wxGetApp().InsertLibraryPath( m_Parent->m_UserLibraryPath, 1);
wxGetApp().InsertLibraryPath( m_Parent->GetUserLibraryPath(), 1);
}
EndModal( wxID_CANCEL );
@ -166,15 +186,17 @@ void DIALOG_EESCHEMA_CONFIG::OnOkClick( wxCommandEvent& event )
// Recreate the user lib path
if ( m_LibPathChanged )
{
m_Parent->m_UserLibraryPath.Empty();
wxString path;
for ( unsigned ii = 0; ii < m_listUserPaths->GetCount(); ii++ )
{
if ( ii > 0 )
m_Parent->m_UserLibraryPath << wxT( ";" );
path << wxT( ";" );
m_Parent->m_UserLibraryPath << m_listUserPaths->GetString( ii );
path << m_listUserPaths->GetString( ii );
}
m_Parent->SetUserLibraryPath( path );
}
/* Set new active library list if the lib list of if default path list
@ -182,11 +204,13 @@ void DIALOG_EESCHEMA_CONFIG::OnOkClick( wxCommandEvent& event )
*/
if( m_LibListChanged || m_LibPathChanged )
{
// Recreate lib list
m_Parent->m_ComponentLibFiles.Clear();
wxArrayString list;
for ( unsigned ii = 0; ii < m_ListLibr->GetCount(); ii ++ )
m_Parent->m_ComponentLibFiles.Add(m_ListLibr->GetString( ii ) );
list.Add( m_ListLibr->GetString( ii ) );
// Recreate lib list
m_Parent->SetComponentLibraries( list );
// take new list in account
m_Parent->LoadLibraries();
@ -298,6 +322,7 @@ void DIALOG_EESCHEMA_CONFIG::OnAddOrInsertLibClick( wxCommandEvent& event )
if( m_ListLibr->FindString( libfilename, fn.IsCaseSensitive() ) == wxNOT_FOUND )
{
m_LibListChanged = TRUE;
if( event.GetId() == ID_ADD_LIB )
m_ListLibr->Append( libfilename );
else
@ -306,7 +331,7 @@ void DIALOG_EESCHEMA_CONFIG::OnAddOrInsertLibClick( wxCommandEvent& event )
else
{
wxString msg = wxT( "<" ) + libfilename + wxT( "> : " ) +
_( "Library already in use" );
_( "Library already in use" );
DisplayError( this, msg );
}
}

View File

@ -34,17 +34,17 @@ void SCH_EDIT_FRAME::LoadLibraries( void )
continue;
}
if( m_ComponentLibFiles.Index( i->GetName(), false ) == wxNOT_FOUND )
if( m_componentLibFiles.Index( i->GetName(), false ) == wxNOT_FOUND )
i = CMP_LIBRARY::GetLibraryList().erase( i );
else
i++;
}
/* Load missing libraries. */
for( ii = 0; ii < m_ComponentLibFiles.GetCount(); ii++ )
for( ii = 0; ii < m_componentLibFiles.GetCount(); ii++ )
{
fn.Clear();
fn.SetName( m_ComponentLibFiles[ii] );
fn.SetName( m_componentLibFiles[ii] );
fn.SetExt( CompLibFileExtension );
/* Skip if the file name is not valid.. */

View File

@ -191,7 +191,7 @@ void SCH_EDIT_FRAME::OnSetOptions( wxCommandEvent& event )
dlg.SetRepeatLabel( g_RepeatDeltaLabel );
dlg.SetAutoSaveInterval( GetAutoSaveInterval() / 60 );
dlg.SetShowGrid( IsGridVisible() );
dlg.SetShowHiddenPins( m_ShowAllPins );
dlg.SetShowHiddenPins( m_showAllPins );
dlg.SetEnableAutoPan( DrawPanel->m_AutoPAN_Enable );
dlg.SetEnableHVBusOrientation( g_HVLines );
dlg.SetShowPageLimits( g_ShowPageLimits );
@ -222,7 +222,7 @@ void SCH_EDIT_FRAME::OnSetOptions( wxCommandEvent& event )
g_RepeatDeltaLabel = dlg.GetRepeatLabel();
SetAutoSaveInterval( dlg.GetAutoSaveInterval() * 60 );
SetGridVisibility( dlg.GetShowGrid() );
m_ShowAllPins = dlg.GetShowHiddenPins();
m_showAllPins = dlg.GetShowHiddenPins();
DrawPanel->m_AutoPAN_Enable = dlg.GetEnableAutoPan();
g_HVLines = dlg.GetEnableHVBusOrientation();
g_ShowPageLimits = dlg.GetShowPageLimits();
@ -258,12 +258,12 @@ PARAM_CFG_ARRAY& SCH_EDIT_FRAME::GetProjectFileParameters()
return m_projectFileParams;
m_projectFileParams.push_back( new PARAM_CFG_FILENAME( wxT( "LibDir" ),
&m_UserLibraryPath ) );
&m_userLibraryPath ) );
m_projectFileParams.push_back( new PARAM_CFG_LIBNAME_LIST( wxT( "LibName" ),
&m_ComponentLibFiles,
&m_componentLibFiles,
GROUPLIB ) );
m_projectFileParams.push_back( new PARAM_CFG_INT( wxT( "NetFmt" ),
&m_NetlistFormat,
&m_netListFormat,
NET_TYPE_PCBNEW,
NET_TYPE_PCBNEW,
NET_TYPE_CUSTOM_MAX ) );
@ -340,37 +340,37 @@ bool SCH_EDIT_FRAME::LoadProjectFile( const wxString& aFileName, bool aForceRere
{
wxFileName fn;
bool IsRead = true;
wxArrayString liblist_tmp = m_ComponentLibFiles;
wxArrayString liblist_tmp = m_componentLibFiles;
if( aFileName.IsEmpty() )
fn = g_RootSheet->GetScreen()->GetFileName();
else
fn = aFileName;
m_ComponentLibFiles.Clear();
m_componentLibFiles.Clear();
/* Change the schematic file extension (.sch) to the project file
* extension (.pro). */
fn.SetExt( ProjectFileExtension );
wxGetApp().RemoveLibraryPath( m_UserLibraryPath );
wxGetApp().RemoveLibraryPath( m_userLibraryPath );
if( !wxGetApp().ReadProjectConfig( fn.GetFullPath(), GROUP,
GetProjectFileParameters(),
!aForceReread ) )
{
m_ComponentLibFiles = liblist_tmp;
m_componentLibFiles = liblist_tmp;
IsRead = false;
}
/* User library path takes precedent over default library search paths. */
wxGetApp().InsertLibraryPath( m_UserLibraryPath, 1 );
wxGetApp().InsertLibraryPath( m_userLibraryPath, 1 );
/* If the list is void, force loading the library "power.lib" that is
* the "standard" library for power symbols.
*/
if( m_ComponentLibFiles.GetCount() == 0 )
m_ComponentLibFiles.Add( wxT( "power" ) );
if( m_componentLibFiles.GetCount() == 0 )
m_componentLibFiles.Add( wxT( "power" ) );
LoadLibraries();
GetScreen()->SetGrid( ID_POPUP_GRID_LEVEL_1000 + m_LastGridSizeId );
@ -526,7 +526,7 @@ void SCH_EDIT_FRAME::LoadSettings()
m_GridColor = g_LayerDescr.LayerColor[LAYER_GRID];
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 );
/* Load print preview window session settings. */
@ -617,7 +617,7 @@ void SCH_EDIT_FRAME::SaveSettings()
wxGetApp().SaveCurrentSetupValues( GetConfigurationSettings() );
cfg->Write( DefaultDrawLineWidthEntry, (long) g_DrawDefaultLineThickness );
cfg->Write( ShowHiddenPinsEntry, m_ShowAllPins );
cfg->Write( ShowHiddenPinsEntry, m_showAllPins );
cfg->Write( HorzVertLinesOnlyEntry, g_HVLines );
/* Save print preview window session settings. */

View File

@ -58,7 +58,7 @@ void LIB_EDIT_FRAME::OnImportPart( wxCommandEvent& event )
m_lastDrawItem = NULL;
wxFileDialog dlg( this, _( "Import Component" ), m_LastLibImportPath,
wxFileDialog dlg( this, _( "Import Component" ), m_lastLibImportPath,
wxEmptyString, CompLibFileWildcard,
wxFD_OPEN | wxFD_FILE_MUST_EXIST );
@ -86,7 +86,7 @@ void LIB_EDIT_FRAME::OnImportPart( wxCommandEvent& event )
if( LoadOneLibraryPartAux( LibEntry, LibTmp ) )
{
fn = dlg.GetPath();
m_LastLibImportPath = fn.GetPath();
m_lastLibImportPath = fn.GetPath();
DisplayLibInfos();
GetScreen()->ClearUndoRedoList();
DrawPanel->Refresh();
@ -143,7 +143,7 @@ void LIB_EDIT_FRAME::OnExportPart( wxCommandEvent& event )
bool success = m_library->Save( formatter );
if( success )
m_LastLibExportPath = fn.GetPath();
m_lastLibExportPath = fn.GetPath();
delete m_library;
m_library = CurLibTmp;

View File

@ -812,16 +812,17 @@ void LIB_PIN::drawGraphic( EDA_DRAW_PANEL* aPanel,
{
// Invisible pins are only drawn on request.
// They are drawn in g_InvisibleItemColor.
// in schematic, they are drawn only if m_ShowAllPins is true.
// in schematic, they are drawn only if m_showAllPins is true.
// In other windows, they are always drawn because we must see them.
if( ! IsVisible() )
{
EDA_DRAW_FRAME* frame = NULL;
if( aPanel && aPanel->GetParent() )
frame = (EDA_DRAW_FRAME*)aPanel->GetParent();
if( frame && frame->IsType( SCHEMATIC_FRAME ) &&
! ((SCH_EDIT_FRAME*)frame)->m_ShowAllPins )
! ((SCH_EDIT_FRAME*)frame)->GetShowAllPins() )
return;
aColor = g_InvisibleItemColor;

View File

@ -195,7 +195,7 @@ LIB_EDIT_FRAME::LIB_EDIT_FRAME( SCH_EDIT_FRAME* aParent,
m_FrameName = wxT( "LibeditFrame" );
m_Draw_Axis = true; // true to draw axis
m_ConfigPath = wxT( "LibraryEditor" );
m_configPath = wxT( "LibraryEditor" );
SetShowDeMorgan( false );
m_drawSpecificConvert = true;
m_drawSpecificUnit = false;
@ -291,11 +291,11 @@ void LIB_EDIT_FRAME::LoadSettings()
EDA_DRAW_FRAME::LoadSettings();
wxConfigPathChanger cpc( wxGetApp().m_EDA_Config, m_ConfigPath );
wxConfigPathChanger cpc( wxGetApp().m_EDA_Config, m_configPath );
cfg = wxGetApp().m_EDA_Config;
m_LastLibExportPath = cfg->Read( lastLibExportPathEntry, ::wxGetCwd() );
m_LastLibImportPath = cfg->Read( lastLibImportPathEntry, ::wxGetCwd() );
m_lastLibExportPath = cfg->Read( lastLibExportPathEntry, ::wxGetCwd() );
m_lastLibImportPath = cfg->Read( lastLibImportPathEntry, ::wxGetCwd() );
}
@ -312,11 +312,11 @@ void LIB_EDIT_FRAME::SaveSettings()
EDA_DRAW_FRAME::SaveSettings();
wxConfigPathChanger cpc( wxGetApp().m_EDA_Config, m_ConfigPath );
wxConfigPathChanger cpc( wxGetApp().m_EDA_Config, m_configPath );
cfg = wxGetApp().m_EDA_Config;
cfg->Write( lastLibExportPathEntry, m_LastLibExportPath );
cfg->Write( lastLibImportPathEntry, m_LastLibImportPath );
cfg->Write( lastLibExportPathEntry, m_lastLibExportPath );
cfg->Write( lastLibImportPathEntry, m_lastLibImportPath );
}
@ -402,35 +402,35 @@ double LIB_EDIT_FRAME::BestZoom()
void LIB_EDIT_FRAME::UpdateAliasSelectList()
{
if( m_SelAliasBox == NULL )
if( m_aliasSelectBox == NULL )
return;
m_SelAliasBox->Clear();
m_aliasSelectBox->Clear();
if( m_component == NULL )
return;
m_SelAliasBox->Append( m_component->GetAliasNames() );
m_SelAliasBox->SetSelection( 0 );
m_aliasSelectBox->Append( m_component->GetAliasNames() );
m_aliasSelectBox->SetSelection( 0 );
int index = m_SelAliasBox->FindString( m_aliasName );
int index = m_aliasSelectBox->FindString( m_aliasName );
if( index != wxNOT_FOUND )
m_SelAliasBox->SetSelection( index );
m_aliasSelectBox->SetSelection( index );
}
void LIB_EDIT_FRAME::UpdatePartSelectList()
{
if( m_SelpartBox == NULL )
if( m_partSelectBox == NULL )
return;
if( m_SelpartBox->GetCount() != 0 )
m_SelpartBox->Clear();
if( m_partSelectBox->GetCount() != 0 )
m_partSelectBox->Clear();
if( m_component == NULL || m_component->GetPartCount() <= 1 )
{
m_SelpartBox->Append( wxEmptyString );
m_partSelectBox->Append( wxEmptyString );
}
else
{
@ -438,11 +438,11 @@ void LIB_EDIT_FRAME::UpdatePartSelectList()
{
wxString msg;
msg.Printf( _( "Part %c" ), 'A' + i );
m_SelpartBox->Append( msg );
m_partSelectBox->Append( msg );
}
}
m_SelpartBox->SetSelection( ( m_unit > 0 ) ? m_unit - 1 : 0 );
m_partSelectBox->SetSelection( ( m_unit > 0 ) ? m_unit - 1 : 0 );
}
@ -510,13 +510,13 @@ void LIB_EDIT_FRAME::OnUpdatePinByPin( wxUpdateUIEvent& event )
void LIB_EDIT_FRAME::OnUpdatePartNumber( wxUpdateUIEvent& event )
{
if( m_SelpartBox == NULL )
if( m_partSelectBox == NULL )
return;
/* Using the typical event.Enable() call doesn't seem to work with wxGTK
* so use the pointer to alias combobox to directly enable or disable.
*/
m_SelpartBox->Enable( m_component && m_component->GetPartCount() > 1 );
m_partSelectBox->Enable( m_component && m_component->GetPartCount() > 1 );
}
@ -542,24 +542,24 @@ void LIB_EDIT_FRAME::OnUpdateDeMorganConvert( wxUpdateUIEvent& event )
void LIB_EDIT_FRAME::OnUpdateSelectAlias( wxUpdateUIEvent& event )
{
if( m_SelAliasBox == NULL )
if( m_aliasSelectBox == NULL )
return;
/* Using the typical event.Enable() call doesn't seem to work with wxGTK
* so use the pointer to alias combobox to directly enable or disable.
*/
m_SelAliasBox->Enable( m_component != NULL && m_component->GetAliasCount() > 1 );
m_aliasSelectBox->Enable( m_component != NULL && m_component->GetAliasCount() > 1 );
}
void LIB_EDIT_FRAME::OnSelectAlias( wxCommandEvent& event )
{
if( m_SelAliasBox == NULL
|| ( m_SelAliasBox->GetStringSelection().CmpNoCase( m_aliasName ) == 0) )
if( m_aliasSelectBox == NULL
|| ( m_aliasSelectBox->GetStringSelection().CmpNoCase( m_aliasName ) == 0) )
return;
m_lastDrawItem = NULL;
m_aliasName = m_SelAliasBox->GetStringSelection();
m_aliasName = m_aliasSelectBox->GetStringSelection();
DisplayCmpDoc();
DrawPanel->Refresh();

View File

@ -53,13 +53,74 @@ class LIB_EDIT_FRAME : public EDA_DRAW_FRAME
{
LIB_COMPONENT* m_tempCopyComponent; ///< Temporary copy of current component during edit.
LIB_COLLECTOR m_collectedItems; // Used for hit testing.
wxComboBox* m_partSelectBox; // a Box to select a part to edit (if any)
wxComboBox* m_aliasSelectBox; // a box to select the alias to edit (if any)
wxString m_configPath;
wxString m_lastLibImportPath;
wxString m_lastLibExportPath;
/** Convert of the item currently being drawn. */
bool m_drawSpecificConvert;
/**
* Specify which component parts the current draw item applies to.
*
* If true, the item being drawn or edited applies only to the selected
* part. Otherwise it applies to all parts in the component.
*/
bool m_drawSpecificUnit;
/**
* Set to true to not synchronize pins at the same position when editing
* components with multiple parts or multiple body styles. Setting this
* to false allows editing each pin per part or body style individually.
* This requires the user to open each part or body style to make changes
* to the pin at the same location.
*/
bool m_editPinsPerPartOrConvert;
/** The current draw or edit graphic item fill style. */
static FILL_T m_drawFillStyle;
/** Default line width for drawing or editing graphic items. */
static int m_drawLineWidth;
/** The current active library. NULL if no active library is selected. */
static CMP_LIBRARY* m_library;
/** The current component being edited. NULL if no component is selected. */
static LIB_COMPONENT* m_component;
static LIB_ITEM* m_lastDrawItem;
static LIB_ITEM* m_drawItem;
static wxString m_aliasName;
// The unit number to edit and show
static int m_unit;
// Show the normal shape ( m_convert <= 1 ) or the converted shape
// ( m_convert > 1 )
static int m_convert;
// true to force DeMorgan/normal tools selection enabled.
// They are enabled when the loaded component has
// Graphic items for converted shape
// But under some circumstances (New component created)
// these tools must left enable
static bool m_showDeMorgan;
/// The current text size setting.
static int m_textSize;
/// Current text orientation setting.
static int m_textOrientation;
static wxSize m_clientSize;
friend class DIALOG_LIB_EDIT_TEXT;
LIB_ITEM* locateItem( const wxPoint& aPosition, const KICAD_T aFilterList[] );
public:
wxComboBox* m_SelpartBox; // a Box to select a part to edit (if any)
wxComboBox* m_SelAliasBox; // a box to select the alias to edit (if any)
public:
LIB_EDIT_FRAME( SCH_EDIT_FRAME* aParent, const wxString& title,
const wxPoint& pos, const wxSize& size,
@ -498,70 +559,6 @@ public:
// Automatic placement of pins
void RepeatPinItem( wxDC* DC, LIB_PIN* Pin );
protected:
wxString m_ConfigPath;
wxString m_LastLibImportPath;
wxString m_LastLibExportPath;
/** Convert of the item currently being drawn. */
bool m_drawSpecificConvert;
/**
* Specify which component parts the current draw item applies to.
*
* If true, the item being drawn or edited applies only to the selected
* part. Otherwise it applies to all parts in the component.
*/
bool m_drawSpecificUnit;
/**
* Set to true to not synchronize pins at the same position when editing
* components with multiple parts or multiple body styles. Setting this
* to false allows editing each pin per part or body style individually.
* This requires the user to open each part or body style to make changes
* to the pin at the same location.
*/
bool m_editPinsPerPartOrConvert;
/** The current draw or edit graphic item fill style. */
static FILL_T m_drawFillStyle;
/** Default line width for drawing or editing graphic items. */
static int m_drawLineWidth;
/** The current active library. NULL if no active library is selected. */
static CMP_LIBRARY* m_library;
/** The current component being edited. NULL if no component is selected. */
static LIB_COMPONENT* m_component;
static LIB_ITEM* m_lastDrawItem;
static LIB_ITEM* m_drawItem;
static wxString m_aliasName;
// The unit number to edit and show
static int m_unit;
// Show the normal shape ( m_convert <= 1 ) or the converted shape
// ( m_convert > 1 )
static int m_convert;
// true to force DeMorgan/normal tools selection enabled.
// They are enabled when the loaded component has
// Graphic items for converted shape
// But under some circumstances (New component created)
// these tools must left enable
static bool m_showDeMorgan;
/// The current text size setting.
static int m_textSize;
/// Current text orientation setting.
static int m_textOrientation;
static wxSize m_clientSize;
friend class DIALOG_LIB_EDIT_TEXT;
/**
* Function CreatePNGorJPEGFile
* creates an image (screenshot) of the current component in PNG or JPEG format.

View File

@ -193,7 +193,7 @@ NETLIST_DIALOG::NETLIST_DIALOG( SCH_EDIT_FRAME* parent ) :
NET_TYPE_PCBNEW,
ID_CURRENT_FORMAT_IS_DEFAULT,
ID_CREATE_NETLIST,
m_Parent->m_NetlistFormat == NET_TYPE_PCBNEW );
m_Parent->GetNetListFormat() == NET_TYPE_PCBNEW );
// Add Panel FORMAT ORCADPCB2
m_PanelNetType[PANELORCADPCB2] =
@ -202,7 +202,7 @@ NETLIST_DIALOG::NETLIST_DIALOG( SCH_EDIT_FRAME* parent ) :
NET_TYPE_ORCADPCB2,
ID_CURRENT_FORMAT_IS_DEFAULT,
ID_CREATE_NETLIST,
m_Parent->m_NetlistFormat == NET_TYPE_ORCADPCB2 );
m_Parent->GetNetListFormat() == NET_TYPE_ORCADPCB2 );
// Add Panel FORMAT CADSTAR
m_PanelNetType[PANELCADSTAR] =
@ -211,7 +211,7 @@ NETLIST_DIALOG::NETLIST_DIALOG( SCH_EDIT_FRAME* parent ) :
NET_TYPE_CADSTAR,
ID_CURRENT_FORMAT_IS_DEFAULT,
ID_CREATE_NETLIST,
m_Parent->m_NetlistFormat == NET_TYPE_CADSTAR );
m_Parent->GetNetListFormat() == NET_TYPE_CADSTAR );
// Add Panel spice
InstallPageSpice();
@ -236,16 +236,16 @@ void NETLIST_DIALOG::InstallPageSpice()
wxT( "Spice" ),
NET_TYPE_SPICE,
0, 0,
m_Parent->m_NetlistFormat == NET_TYPE_SPICE );
m_Parent->GetNetListFormat() == NET_TYPE_SPICE );
page->m_IsCurrentFormat = new wxCheckBox( page, ID_CURRENT_FORMAT_IS_DEFAULT,
_( "Default format" ) );
page->m_IsCurrentFormat->SetValue( m_Parent->m_NetlistFormat == NET_TYPE_SPICE );
page->m_IsCurrentFormat->SetValue( m_Parent->GetNetListFormat() == NET_TYPE_SPICE );
page->m_LeftBoxSizer->Add( page->m_IsCurrentFormat, 1, wxGROW | wxALL, 5 );
page->m_AddSubPrefix = new wxCheckBox( page, ID_ADD_SUBCIRCUIT_PREFIX,
_( "Prefix references 'U' and 'IC' with 'X'" ) );
page->m_AddSubPrefix->SetValue( m_Parent->m_AddSubPrefix );
page->m_AddSubPrefix->SetValue( m_Parent->GetAddReferencePrefix() );
page->m_LeftBoxSizer->Add( page->m_AddSubPrefix, 0, wxGROW | wxALL, 5 );
@ -304,12 +304,13 @@ void NETLIST_DIALOG::InstallCustomPages()
if( title.IsEmpty() && previoustitle.IsEmpty() )
break; // No more panel to install
selected = m_Parent->m_NetlistFormat == ( NET_TYPE_CUSTOM1 + ii );
selected = m_Parent->GetNetListFormat() == ( NET_TYPE_CUSTOM1 + ii );
/* Install the panel "Add Plugin" after
* the last initialized panel */
previoustitle = title;
if( title.IsEmpty() )
CurrPage =
m_PanelNetType[PANELCUSTOMBASE + ii] =
@ -430,7 +431,7 @@ void NETLIST_DIALOG::SelectNetlistType( wxCommandEvent& event )
if( CurrPage == NULL )
return;
m_Parent->m_NetlistFormat = CurrPage->m_IdNetType;
m_Parent->SetNetListFormat( CurrPage->m_IdNetType );
CurrPage->m_IsCurrentFormat->SetValue( true );
}
@ -449,10 +450,7 @@ void NETLIST_DIALOG::EnableSubcircuitPrefix( wxCommandEvent& event )
if( CurrPage == NULL || CurrPage->m_AddSubPrefix == NULL )
return;
if( CurrPage->m_AddSubPrefix->IsChecked() )
m_Parent->m_AddSubPrefix = true;
else
m_Parent->m_AddSubPrefix = false;
m_Parent->SetAddReferencePrefix( CurrPage->m_AddSubPrefix->IsChecked() );
}
void NETLIST_DIALOG::NetlistUpdateOpt()
@ -460,7 +458,7 @@ void NETLIST_DIALOG::NetlistUpdateOpt()
int ii;
m_Parent->SetSimulatorCommand( m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue() );
m_Parent->m_NetlistFormat = NET_TYPE_PCBNEW;
m_Parent->SetNetListFormat( NET_TYPE_PCBNEW );
for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ )
{
@ -468,7 +466,7 @@ void NETLIST_DIALOG::NetlistUpdateOpt()
break;
if( m_PanelNetType[ii]->m_IsCurrentFormat->GetValue() == true )
m_Parent->m_NetlistFormat = m_PanelNetType[ii]->m_IdNetType;
m_Parent->SetNetListFormat( m_PanelNetType[ii]->m_IdNetType );
}
g_OptNetListUseNames = true; // Used for pspice, gnucap

View File

@ -194,7 +194,7 @@ SCH_EDIT_FRAME::SCH_EDIT_FRAME( wxWindow* father,
m_ViewlibFrame = NULL; // Frame for browsing component libraries
m_DefaultSchematicFileName = NAMELESS_PROJECT;
m_DefaultSchematicFileName += wxT( ".sch" );
m_ShowAllPins = false;
m_showAllPins = false;
m_previewPosition = wxDefaultPosition;
m_previewSize = wxDefaultSize;
m_printMonochrome = true;
@ -592,10 +592,10 @@ void SCH_EDIT_FRAME::OnUpdateBusOrientation( wxUpdateUIEvent& aEvent )
void SCH_EDIT_FRAME::OnUpdateHiddenPins( wxUpdateUIEvent& aEvent )
{
wxString tool_tip = m_ShowAllPins ? _( "Do not show hidden pins" ) :
wxString tool_tip = m_showAllPins ? _( "Do not show hidden pins" ) :
_( "Show hidden pins" );
aEvent.Check( m_ShowAllPins );
aEvent.Check( m_showAllPins );
m_OptionsToolBar->SetToolShortHelp( ID_TB_OPTIONS_HIDDEN_PINS, tool_tip );
}
@ -622,8 +622,8 @@ void SCH_EDIT_FRAME::OnCreateNetlist( wxCommandEvent& event )
{
int i;
if( m_NetlistFormat < NET_TYPE_PCBNEW )
m_NetlistFormat = NET_TYPE_PCBNEW;
if( m_netListFormat < NET_TYPE_PCBNEW )
m_netListFormat = NET_TYPE_PCBNEW;
do
{

View File

@ -121,7 +121,7 @@ void LIB_EDIT_FRAME::ReCreateHToolbar()
m_HToolBar->AddTool( ID_LIBEDIT_SELECT_PART, wxEmptyString,
KiBitmap( import_cmp_from_lib_xpm ),
_( "Load component to edit from the current lib" ) );
_( "Load component to edit from the current library" ) );
m_HToolBar->AddTool( ID_LIBEDIT_NEW_PART_FROM_EXISTING, wxEmptyString,
KiBitmap( copycomponent_xpm ),
@ -181,21 +181,21 @@ void LIB_EDIT_FRAME::ReCreateHToolbar()
_( "Edit document file" ) );
m_HToolBar->AddSeparator();
m_SelpartBox = new wxComboBox( m_HToolBar,
ID_LIBEDIT_SELECT_PART_NUMBER,
wxEmptyString,
wxDefaultPosition,
wxSize( LISTBOX_WIDTH, -1 ),
0, NULL, wxCB_READONLY );
m_HToolBar->AddControl( m_SelpartBox );
m_partSelectBox = new wxComboBox( m_HToolBar,
ID_LIBEDIT_SELECT_PART_NUMBER,
wxEmptyString,
wxDefaultPosition,
wxSize( LISTBOX_WIDTH, -1 ),
0, NULL, wxCB_READONLY );
m_HToolBar->AddControl( m_partSelectBox );
m_SelAliasBox = new wxComboBox( m_HToolBar,
ID_LIBEDIT_SELECT_ALIAS,
wxEmptyString,
wxDefaultPosition,
wxSize( LISTBOX_WIDTH, -1 ),
0, NULL, wxCB_READONLY );
m_HToolBar->AddControl( m_SelAliasBox );
m_aliasSelectBox = new wxComboBox( m_HToolBar,
ID_LIBEDIT_SELECT_ALIAS,
wxEmptyString,
wxDefaultPosition,
wxSize( LISTBOX_WIDTH, -1 ),
0, NULL, wxCB_READONLY );
m_HToolBar->AddControl( m_aliasSelectBox );
m_HToolBar->AddSeparator();
msg = _( "Edit pins per part or body style (Use carefully!)" );

View File

@ -290,7 +290,7 @@ void SCH_EDIT_FRAME::OnSelectOptionToolbar( wxCommandEvent& event )
switch( id )
{
case ID_TB_OPTIONS_HIDDEN_PINS:
m_ShowAllPins = m_OptionsToolBar->GetToolState( id );
m_showAllPins = m_OptionsToolBar->GetToolState( id );
DrawPanel->Refresh( );
break;

View File

@ -106,7 +106,7 @@ LIB_VIEW_FRAME::LIB_VIEW_FRAME( wxWindow* father, CMP_LIBRARY* Library, wxSemaph
wxAcceleratorTable table( ACCEL_TABLE_CNT, accels );
m_FrameName = wxT( "ViewlibFrame" );
m_ConfigPath = wxT( "LibraryViewer" );
m_configPath = wxT( "LibraryViewer" );
// Give an icon
wxIcon icon;
@ -513,7 +513,7 @@ void LIB_VIEW_FRAME::LoadSettings( )
EDA_DRAW_FRAME::LoadSettings();
wxConfigPathChanger cpc( wxGetApp().m_EDA_Config, m_ConfigPath );
wxConfigPathChanger cpc( wxGetApp().m_EDA_Config, m_configPath );
cfg = wxGetApp().m_EDA_Config;
m_LibListSize.x = 150; // default width of libs list
@ -537,7 +537,7 @@ void LIB_VIEW_FRAME::SaveSettings()
EDA_DRAW_FRAME::SaveSettings();
wxConfigPathChanger cpc( wxGetApp().m_EDA_Config, m_ConfigPath );
wxConfigPathChanger cpc( wxGetApp().m_EDA_Config, m_configPath );
cfg = wxGetApp().m_EDA_Config;
if ( m_LibListSize.x )

View File

@ -63,7 +63,7 @@ private:
// Flags
wxSemaphore* m_Semaphore; // != NULL if the frame must emulate a modal dialog
wxString m_ConfigPath; // subpath for configuration
wxString m_configPath; // subpath for configuration
protected:
static wxString m_libraryName;

View File

@ -112,13 +112,6 @@ enum SCH_SEARCH_T {
*/
class SCH_EDIT_FRAME : public EDA_DRAW_FRAME
{
public:
int m_NetlistFormat;
int m_AddSubPrefix;
bool m_ShowAllPins;
wxString m_UserLibraryPath;
wxArrayString m_ComponentLibFiles;
private:
SCH_SHEET_PATH* m_CurrentSheet; ///< which sheet we are presently working on.
LIB_VIEW_FRAME* m_ViewlibFrame;
@ -154,6 +147,19 @@ private:
/// An index to the last find item in the found items list #m_foundItems.
int m_foundItemIndex;
/// Flag to indicate show hidden pins.
bool m_showAllPins;
/// The format to use when generating a net list.
int m_netListFormat;
/// Add X prefix to componen referencess when generating spice net lists.
bool m_addReferencPrefix;
wxString m_userLibraryPath;
wxArrayString m_componentLibFiles;
static int m_lastSheetPinType; ///< Last sheet pin type.
static wxSize m_lastSheetPinTextSize; ///< Last sheet pin text size.
static wxPoint m_lastSheetPinPosition; ///< Last sheet pin position.
@ -190,6 +196,26 @@ public:
void SetLibraryViewerWindow( LIB_VIEW_FRAME* aFrame ) { m_ViewlibFrame = aFrame; }
bool GetShowAllPins() const { return m_showAllPins; }
void SetShowAllPins( bool aEnable ) { m_showAllPins = aEnable; }
int GetNetListFormat() const { return m_netListFormat; }
void SetNetListFormat( int aFormat ) { m_netListFormat = aFormat; }
bool GetAddReferencePrefix() const { return m_addReferencPrefix; }
void SetAddReferencePrefix( bool aEnable ) { m_addReferencPrefix = aEnable; }
wxString GetUserLibraryPath() const { return m_userLibraryPath; }
void SetUserLibraryPath( const wxString& aPath ) { m_userLibraryPath = aPath; }
const wxArrayString& GetComponentLibraries() const { return m_componentLibFiles; }
void SetComponentLibraries( const wxArrayString& aList ) { m_componentLibFiles = aList; }
void Process_Special_Functions( wxCommandEvent& event );
void OnColorConfig( wxCommandEvent& aEvent );
void Process_Config( wxCommandEvent& event );