diff --git a/eeschema/dialogs/dialog_eeschema_options.cpp b/eeschema/dialogs/dialog_eeschema_options.cpp
index 3dce163983..99aab9511d 100644
--- a/eeschema/dialogs/dialog_eeschema_options.cpp
+++ b/eeschema/dialogs/dialog_eeschema_options.cpp
@@ -40,18 +40,18 @@ DIALOG_EESCHEMA_OPTIONS::DIALOG_EESCHEMA_OPTIONS( wxWindow* parent ) :
wxListItem col0;
col0.SetId( 0 );
- col0.SetText( _( "ID" ) );
- col0.SetWidth( 50 );
+ col0.SetText( _( "Field Name" ) );
+ col0.SetWidth( 150 );
wxListItem col1;
col1.SetId( 1 );
- col1.SetText( _( "Name" ) );
- col1.SetWidth( 150 );
+ col1.SetText( _( "Default Value" ) );
+ col1.SetWidth( 250 );
wxListItem col2;
col2.SetId( 2 );
- col2.SetText( _( "Default Value" ) );
- col2.SetWidth( 250 );
+ col2.SetText( _( "Visible" ) );
+ col2.SetWidth( 100 );
templateFieldListCtrl->InsertColumn( 0, col0 );
templateFieldListCtrl->InsertColumn( 1, col1 );
@@ -142,29 +142,92 @@ void DIALOG_EESCHEMA_OPTIONS::SetGridSizes( const GRIDS& grid_sizes, int grid_id
void DIALOG_EESCHEMA_OPTIONS::OnAddButtonClick( wxCommandEvent& event )
{
- long itemindex = templateFieldListCtrl->InsertItem( 0, wxT( "ID" ) );
- templateFieldListCtrl->SetItem( itemindex, 1, wxT( "Next Fieldname" ) );
- templateFieldListCtrl->SetItem( itemindex, 2, wxT( "A Default value" ) );
+ long itemindex = templateFieldListCtrl->InsertItem( templateFieldListCtrl->GetItemCount(), wxT( "New Fieldname" ) );
+ templateFieldListCtrl->SetItem( itemindex, 1, wxT( "Default Value" ) );
+ templateFieldListCtrl->SetItem( itemindex, 2, wxT( "Hidden" ) );
event.Skip();
}
+void DIALOG_EESCHEMA_OPTIONS::copyPanelToSelected( void )
+{
+ wxListItem iteminfo;
+ iteminfo.m_itemId = selectedField;
+ iteminfo.m_mask = wxLIST_MASK_TEXT;
+
+ iteminfo.m_col = 0;
+ iteminfo.m_text = fieldNameTextCtrl->GetValue();
+ templateFieldListCtrl->SetItem( iteminfo );
+
+ iteminfo.m_col = 1;
+ iteminfo.m_text = fieldDefaultValueTextCtrl->GetValue();
+ templateFieldListCtrl->SetItem( iteminfo );
+
+ /* TODO: Fixme! */
+ iteminfo.m_col = 2;
+ iteminfo.m_text = fieldNameTextCtrl->GetValue();
+ templateFieldListCtrl->SetItem( iteminfo );
+}
+
+void DIALOG_EESCHEMA_OPTIONS::copySelectedToPanel( void )
+{
+ wxListItem iteminfo;
+ iteminfo.m_itemId = selectedField;
+ iteminfo.m_mask = wxLIST_MASK_TEXT;
+
+ iteminfo.m_col = 0;
+ if( !templateFieldListCtrl->GetItem( iteminfo ) )
+ return;
+ fieldNameTextCtrl->SetValue( iteminfo.m_text );
+
+ iteminfo.m_col = 1;
+ if( !templateFieldListCtrl->GetItem( iteminfo ) )
+ return;
+ fieldDefaultValueTextCtrl->SetValue( iteminfo.m_text );
+
+ iteminfo.m_col = 2;
+ if( !templateFieldListCtrl->GetItem( iteminfo ) )
+ return;
+
+ if( iteminfo.m_text == wxT( "Hidden" ) )
+ fieldVisibleCheckbox->SetValue( false );
+ else
+ fieldVisibleCheckbox->SetValue( true );
+}
+
+
+void DIALOG_EESCHEMA_OPTIONS::OnTemplateFieldSelected( wxListEvent& event )
+{
+ selectedField = event.GetIndex();
+ printf( "selectedField = %d\n", selectedField );
+ copySelectedToPanel();
+ event.Skip();
+}
+
+
+void DIALOG_EESCHEMA_OPTIONS::OnTemplateFieldDeselected( wxListEvent& event )
+{
+ event.Skip();
+}
+
+
void DIALOG_EESCHEMA_OPTIONS::SetTemplateFields( const TEMPLATE_FIELDNAMES& aFields )
{
- printf( "SetTemplateFields %d\n", aFields.size() );
+ templateFields = aFields;
- for( size_t i = 0; i < aFields.size(); i++ )
+ for( TEMPLATE_FIELDNAMES::iterator fld = templateFields.begin(); fld != templateFields.end(); ++fld )
{
long itemindex = templateFieldListCtrl->InsertItem( 0, wxT( "?" ) );
- templateFieldListCtrl->SetItem( itemindex, 1, aFields[i].m_Name );
- templateFieldListCtrl->SetItem( itemindex, 2, aFields[i].m_Value );
+ templateFieldListCtrl->SetItem( itemindex, 1, fld->m_Name );
+ templateFieldListCtrl->SetItem( itemindex, 2, fld->m_Value );
+ printf( "Parsed new templateField\n" );
}
}
-TEMPLATE_FIELDNAMES* DIALOG_EESCHEMA_OPTIONS::GetTemplateFields( void )
+TEMPLATE_FIELDNAMES DIALOG_EESCHEMA_OPTIONS::GetTemplateFields( void )
{
- return &templateFields;
+ return templateFields;
}
diff --git a/eeschema/dialogs/dialog_eeschema_options.h b/eeschema/dialogs/dialog_eeschema_options.h
index e04f5d14f7..f7020108c5 100644
--- a/eeschema/dialogs/dialog_eeschema_options.h
+++ b/eeschema/dialogs/dialog_eeschema_options.h
@@ -38,9 +38,11 @@ class DIALOG_EESCHEMA_OPTIONS : public DIALOG_EESCHEMA_OPTIONS_BASE
{
protected:
TEMPLATE_FIELDNAMES templateFields;
-
+ int selectedField;
void OnAddButtonClick( wxCommandEvent& event );
-
+ void copySelectedToPanel( void );
+ void OnTemplateFieldSelected( wxListEvent& event );
+ void OnTemplateFieldDeselected( wxListEvent& event );
public:
DIALOG_EESCHEMA_OPTIONS( wxWindow* parent );
@@ -131,7 +133,7 @@ public:
bool GetShowPageLimits( void ) { return m_checkPageLimits->GetValue(); }
void SetTemplateFields( const TEMPLATE_FIELDNAMES& aFields );
- TEMPLATE_FIELDNAMES* GetTemplateFields( void );
+ TEMPLATE_FIELDNAMES GetTemplateFields( void );
private:
void OnMiddleBtnPanEnbl( wxCommandEvent& event )
diff --git a/eeschema/dialogs/dialog_eeschema_options_base.cpp b/eeschema/dialogs/dialog_eeschema_options_base.cpp
index 11d704513d..38c623d8f6 100644
--- a/eeschema/dialogs/dialog_eeschema_options_base.cpp
+++ b/eeschema/dialogs/dialog_eeschema_options_base.cpp
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Apr 10 2012)
+// C++ code generated with wxFormBuilder (version Oct 8 2012)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
@@ -12,6 +12,8 @@
BEGIN_EVENT_TABLE( DIALOG_EESCHEMA_OPTIONS_BASE, DIALOG_SHIM )
EVT_CHOICE( wxID_ANY, DIALOG_EESCHEMA_OPTIONS_BASE::_wxFB_OnChooseUnits )
EVT_CHECKBOX( xwID_ANY, DIALOG_EESCHEMA_OPTIONS_BASE::_wxFB_OnMiddleBtnPanEnbl )
+ EVT_LIST_ITEM_DESELECTED( wxID_ANY, DIALOG_EESCHEMA_OPTIONS_BASE::_wxFB_OnTemplateFieldDeselected )
+ EVT_LIST_ITEM_SELECTED( wxID_ANY, DIALOG_EESCHEMA_OPTIONS_BASE::_wxFB_OnTemplateFieldSelected )
EVT_BUTTON( wxID_ADD_FIELD, DIALOG_EESCHEMA_OPTIONS_BASE::_wxFB_OnAddButtonClick )
EVT_BUTTON( wxID_DELETE_FIELD, DIALOG_EESCHEMA_OPTIONS_BASE::_wxFB_OnDeleteButtonClick )
END_EVENT_TABLE()
@@ -19,23 +21,23 @@ END_EVENT_TABLE()
DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style )
{
this->SetSizeHints( wxDefaultSize, wxDefaultSize );
-
+
wxBoxSizer* mainSizer;
mainSizer = new wxBoxSizer( wxVERTICAL );
-
+
wxBoxSizer* bOptionsSizer;
bOptionsSizer = new wxBoxSizer( wxVERTICAL );
-
+
m_notebook1 = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
m_notebook1->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
+
m_panel1 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* p1mainSizer;
p1mainSizer = new wxBoxSizer( wxHORIZONTAL );
-
+
wxBoxSizer* bSizer3;
bSizer3 = new wxBoxSizer( wxVERTICAL );
-
+
wxFlexGridSizer* fgSizer1;
fgSizer1 = new wxFlexGridSizer( 11, 3, 0, 0 );
fgSizer1->AddGrowableCol( 0 );
@@ -43,223 +45,247 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx
fgSizer1->AddGrowableCol( 2 );
fgSizer1->SetFlexibleDirection( wxHORIZONTAL );
fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
+
m_staticText2 = new wxStaticText( m_panel1, wxID_ANY, _("Measurement &units:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText2->Wrap( -1 );
fgSizer1->Add( m_staticText2, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
-
+
wxArrayString m_choiceUnitsChoices;
m_choiceUnits = new wxChoice( m_panel1, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitsChoices, 0 );
m_choiceUnits->SetSelection( 0 );
fgSizer1->Add( m_choiceUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 );
-
-
+
+
fgSizer1->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 3 );
-
+
m_staticText3 = new wxStaticText( m_panel1, wxID_ANY, _("&Grid size:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText3->Wrap( -1 );
fgSizer1->Add( m_staticText3, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
-
+
wxArrayString m_choiceGridSizeChoices;
m_choiceGridSize = new wxChoice( m_panel1, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceGridSizeChoices, 0 );
m_choiceGridSize->SetSelection( 0 );
fgSizer1->Add( m_choiceGridSize, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, 3 );
-
+
m_staticGridUnits = new wxStaticText( m_panel1, wxID_ANY, _("mils"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticGridUnits->Wrap( -1 );
fgSizer1->Add( m_staticGridUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 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|wxRIGHT|wxLEFT, 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|wxRIGHT|wxLEFT, 3 );
-
+
m_staticText5 = new wxStaticText( m_panel1, wxID_ANY, _("Default &line width:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText5->Wrap( -1 );
fgSizer1->Add( m_staticText5, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
-
+
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 );
-
+
m_staticLineWidthUnits = new wxStaticText( m_panel1, wxID_ANY, _("mils"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticLineWidthUnits->Wrap( -1 );
fgSizer1->Add( m_staticLineWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
-
+
m_staticText52 = new wxStaticText( m_panel1, wxID_ANY, _("Default pin length:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText52->Wrap( -1 );
fgSizer1->Add( m_staticText52, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 3 );
-
+
m_spinPinLength = new wxSpinCtrl( m_panel1, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_WRAP, 50, 1000, 100 );
fgSizer1->Add( m_spinPinLength, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 3 );
-
+
m_staticPinLengthUnits = new wxStaticText( m_panel1, wxID_ANY, _("mils"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticPinLengthUnits->Wrap( -1 );
fgSizer1->Add( m_staticPinLengthUnits, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 3 );
-
+
m_staticText7 = new wxStaticText( m_panel1, wxID_ANY, _("Default text &size:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText7->Wrap( -1 );
fgSizer1->Add( m_staticText7, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
-
+
m_spinTextSize = new wxSpinCtrl( m_panel1, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_WRAP, 0, 1000, 0 );
fgSizer1->Add( m_spinTextSize, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 );
-
+
m_staticTextSizeUnits = new wxStaticText( m_panel1, wxID_ANY, _("mils"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextSizeUnits->Wrap( -1 );
fgSizer1->Add( m_staticTextSizeUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
-
+
m_staticText9 = new wxStaticText( m_panel1, wxID_ANY, _("Repeat draw item &horizontal displacement:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText9->Wrap( -1 );
fgSizer1->Add( m_staticText9, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
-
+
m_spinRepeatHorizontal = new wxSpinCtrl( m_panel1, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_WRAP, -5000, 5000, 0 );
fgSizer1->Add( m_spinRepeatHorizontal, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 );
-
+
m_staticRepeatXUnits = new wxStaticText( m_panel1, wxID_ANY, _("mils"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticRepeatXUnits->Wrap( -1 );
fgSizer1->Add( m_staticRepeatXUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
-
+
m_staticText12 = new wxStaticText( m_panel1, wxID_ANY, _("Repeat draw item &vertical displacement:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText12->Wrap( -1 );
fgSizer1->Add( m_staticText12, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
-
+
m_spinRepeatVertical = new wxSpinCtrl( m_panel1, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_WRAP, -5000, 5000, 100 );
fgSizer1->Add( m_spinRepeatVertical, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 );
-
+
m_staticRepeatYUnits = new wxStaticText( m_panel1, wxID_ANY, _("mils"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticRepeatYUnits->Wrap( -1 );
fgSizer1->Add( m_staticRepeatYUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
-
+
m_staticText16 = new wxStaticText( m_panel1, wxID_ANY, _("&Repeat label increment:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText16->Wrap( -1 );
fgSizer1->Add( m_staticText16, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
-
+
m_spinRepeatLabel = new wxSpinCtrl( m_panel1, wxID_ANY, wxT("1"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_WRAP, 0, 10, 1 );
fgSizer1->Add( m_spinRepeatLabel, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 );
-
-
+
+
fgSizer1->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 3 );
-
+
m_staticText221 = new wxStaticText( m_panel1, wxID_ANY, _("Auto save &time interval:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText221->Wrap( -1 );
fgSizer1->Add( m_staticText221, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
-
+
m_spinAutoSaveInterval = new wxSpinCtrl( m_panel1, ID_M_SPINAUTOSAVEINTERVAL, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 1000, 10 );
fgSizer1->Add( m_spinAutoSaveInterval, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 );
-
+
m_staticText23 = new wxStaticText( m_panel1, wxID_ANY, _("minutes"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText23->Wrap( -1 );
fgSizer1->Add( m_staticText23, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
-
+
m_staticText26 = new wxStaticText( m_panel1, wxID_ANY, _("Part id notation:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText26->Wrap( -1 );
fgSizer1->Add( m_staticText26, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
-
+
wxString m_choiceSeparatorRefIdChoices[] = { _("A"), _(".A"), _("-A"), _("_A"), _(".1"), _("-1"), _("_1") };
int m_choiceSeparatorRefIdNChoices = sizeof( m_choiceSeparatorRefIdChoices ) / sizeof( wxString );
m_choiceSeparatorRefId = new wxChoice( m_panel1, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceSeparatorRefIdNChoices, m_choiceSeparatorRefIdChoices, 0 );
m_choiceSeparatorRefId->SetSelection( 0 );
fgSizer1->Add( m_choiceSeparatorRefId, 0, wxALL|wxEXPAND, 5 );
-
-
+
+
fgSizer1->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
+
+
bSizer3->Add( fgSizer1, 0, wxALIGN_CENTER|wxEXPAND, 0 );
-
+
wxBoxSizer* bSizer2;
bSizer2 = new wxBoxSizer( wxVERTICAL );
-
+
m_staticline1 = new wxStaticLine( m_panel1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
bSizer2->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
-
+
m_checkShowGrid = new wxCheckBox( m_panel1, wxID_ANY, _("Show gr&id"), wxDefaultPosition, wxDefaultSize, 0 );
bSizer2->Add( m_checkShowGrid, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 3 );
-
+
m_checkShowHiddenPins = new wxCheckBox( m_panel1, wxID_ANY, _("Show hi&dden pins"), wxDefaultPosition, wxDefaultSize, 0 );
bSizer2->Add( m_checkShowHiddenPins, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 3 );
-
+
m_checkEnableZoomNoCenter = new wxCheckBox( m_panel1, wxID_ANY, _("Do not center and &warp cursor on zoom"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkEnableZoomNoCenter->SetToolTip( _("Keep the cursor at its current location when zooming") );
-
+
bSizer2->Add( m_checkEnableZoomNoCenter, 0, wxTOP|wxRIGHT|wxLEFT, 3 );
-
+
m_checkEnableMiddleButtonPan = new wxCheckBox( m_panel1, xwID_ANY, _("Use &middle mouse button to pan"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkEnableMiddleButtonPan->SetToolTip( _("Use middle mouse button dragging to pan") );
-
+
bSizer2->Add( m_checkEnableMiddleButtonPan, 0, wxTOP|wxRIGHT|wxLEFT, 3 );
-
+
m_checkMiddleButtonPanLimited = new wxCheckBox( m_panel1, wxID_ANY, _("&Limit panning to scroll size"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkMiddleButtonPanLimited->SetToolTip( _("Middle mouse button panning limited by current scrollbar size") );
-
+
bSizer2->Add( m_checkMiddleButtonPanLimited, 0, wxTOP|wxRIGHT|wxLEFT, 3 );
-
+
m_checkAutoPan = new wxCheckBox( m_panel1, wxID_ANY, _("Pan while moving ob&ject"), wxDefaultPosition, wxDefaultSize, 0 );
bSizer2->Add( m_checkAutoPan, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 3 );
-
+
m_checkHVOrientation = new wxCheckBox( m_panel1, wxID_ANY, _("Allow buses and wires to be placed in H or V &orientation only"), wxDefaultPosition, wxDefaultSize, 0 );
bSizer2->Add( m_checkHVOrientation, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 3 );
-
+
m_checkPageLimits = new wxCheckBox( m_panel1, wxID_ANY, _("Show p&age limits"), wxDefaultPosition, wxDefaultSize, 0 );
bSizer2->Add( m_checkPageLimits, 0, wxALL|wxEXPAND, 3 );
-
-
+
+
bSizer3->Add( bSizer2, 0, wxEXPAND, 0 );
-
-
+
+
p1mainSizer->Add( bSizer3, 1, wxALL|wxEXPAND, 6 );
-
-
+
+
m_panel1->SetSizer( p1mainSizer );
m_panel1->Layout();
p1mainSizer->Fit( m_panel1 );
m_notebook1->AddPage( m_panel1, _("General Options"), false );
m_panel2 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
m_panel2->SetToolTip( _("User defined field names for schematic components. ") );
-
+
wxBoxSizer* bSizer6;
bSizer6 = new wxBoxSizer( wxVERTICAL );
-
- templateFieldListCtrl = new wxListCtrl( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_VRULES );
+
+ templateFieldListCtrl = new wxListCtrl( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VRULES );
templateFieldListCtrl->SetMinSize( wxSize( 220,-1 ) );
-
+
bSizer6->Add( templateFieldListCtrl, 1, wxALIGN_TOP|wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 8 );
-
+
+ wxStaticBoxSizer* fieldSizer;
+ fieldSizer = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Field") ), wxVERTICAL );
+
+ fieldNameLabel = new wxStaticText( m_panel2, wxID_ANY, _("Name"), wxDefaultPosition, wxDefaultSize, 0 );
+ fieldNameLabel->Wrap( -1 );
+ fieldSizer->Add( fieldNameLabel, 0, wxLEFT|wxRIGHT|wxTOP, 5 );
+
+ fieldNameTextCtrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ fieldSizer->Add( fieldNameTextCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
+
+ fieldDefaultValueLabel = new wxStaticText( m_panel2, wxID_ANY, _("Default Value"), wxDefaultPosition, wxDefaultSize, 0 );
+ fieldDefaultValueLabel->Wrap( -1 );
+ fieldSizer->Add( fieldDefaultValueLabel, 0, wxLEFT|wxRIGHT|wxTOP, 5 );
+
+ fieldDefaultValueTextCtrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ fieldSizer->Add( fieldDefaultValueTextCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
+
+ fieldVisibleCheckbox = new wxCheckBox( m_panel2, wxID_ANY, _("Visible"), wxDefaultPosition, wxDefaultSize, 0 );
+ fieldSizer->Add( fieldVisibleCheckbox, 0, wxALL, 5 );
+
+
+ bSizer6->Add( fieldSizer, 1, wxEXPAND, 5 );
+
addFieldButton = new wxButton( m_panel2, wxID_ADD_FIELD, _("Add"), wxDefaultPosition, wxDefaultSize, 0 );
bSizer6->Add( addFieldButton, 0, wxALL|wxEXPAND, 5 );
-
+
deleteFieldButton = new wxButton( m_panel2, wxID_DELETE_FIELD, _("Delete"), wxDefaultPosition, wxDefaultSize, 0 );
bSizer6->Add( deleteFieldButton, 0, wxALL|wxEXPAND, 5 );
-
+
+
m_panel2->SetSizer( bSizer6 );
m_panel2->Layout();
bSizer6->Fit( m_panel2 );
m_notebook1->AddPage( m_panel2, _("Template Field Names"), true );
-
+
bOptionsSizer->Add( m_notebook1, 1, wxALL|wxEXPAND, 5 );
-
+
m_sdbSizer1 = new wxStdDialogButtonSizer();
m_sdbSizer1OK = new wxButton( this, wxID_OK );
m_sdbSizer1->AddButton( m_sdbSizer1OK );
m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL );
m_sdbSizer1->AddButton( m_sdbSizer1Cancel );
m_sdbSizer1->Realize();
-
+
bOptionsSizer->Add( m_sdbSizer1, 0, wxALIGN_BOTTOM|wxALL|wxEXPAND, 6 );
-
-
+
+
mainSizer->Add( bOptionsSizer, 1, wxEXPAND, 12 );
-
-
+
+
this->SetSizer( mainSizer );
this->Layout();
mainSizer->Fit( this );
-
+
this->Centre( wxBOTH );
}
diff --git a/eeschema/dialogs/dialog_eeschema_options_base.fbp b/eeschema/dialogs/dialog_eeschema_options_base.fbp
index 35f3c1b4c5..49caa4e840 100644
--- a/eeschema/dialogs/dialog_eeschema_options_base.fbp
+++ b/eeschema/dialogs/dialog_eeschema_options_base.fbp
@@ -3792,7 +3792,7 @@
Resizable
1
- wxLC_HRULES|wxLC_REPORT|wxLC_VRULES
+ wxLC_HRULES|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VRULES
0
@@ -3827,11 +3827,11 @@
-
+ OnTemplateFieldDeselected
-
+ OnTemplateFieldSelected
@@ -3848,6 +3848,456 @@
+
5
wxALL|wxEXPAND
diff --git a/eeschema/dialogs/dialog_eeschema_options_base.h b/eeschema/dialogs/dialog_eeschema_options_base.h
index 614a11f721..05a7d509ad 100644
--- a/eeschema/dialogs/dialog_eeschema_options_base.h
+++ b/eeschema/dialogs/dialog_eeschema_options_base.h
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Apr 10 2012)
+// C++ code generated with wxFormBuilder (version Oct 8 2012)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
@@ -11,6 +11,8 @@
#include
#include
#include
+class DIALOG_SHIM;
+
#include "dialog_shim.h"
#include
#include
@@ -28,6 +30,8 @@
#include
#include
#include
+#include
+#include
#include
#include
#include
@@ -45,6 +49,8 @@ class DIALOG_EESCHEMA_OPTIONS_BASE : public DIALOG_SHIM
// Private event handlers
void _wxFB_OnChooseUnits( wxCommandEvent& event ){ OnChooseUnits( event ); }
void _wxFB_OnMiddleBtnPanEnbl( wxCommandEvent& event ){ OnMiddleBtnPanEnbl( event ); }
+ void _wxFB_OnTemplateFieldDeselected( wxListEvent& event ){ OnTemplateFieldDeselected( event ); }
+ void _wxFB_OnTemplateFieldSelected( wxListEvent& event ){ OnTemplateFieldSelected( event ); }
void _wxFB_OnAddButtonClick( wxCommandEvent& event ){ OnAddButtonClick( event ); }
void _wxFB_OnDeleteButtonClick( wxCommandEvent& event ){ OnDeleteButtonClick( event ); }
@@ -101,6 +107,11 @@ class DIALOG_EESCHEMA_OPTIONS_BASE : public DIALOG_SHIM
wxCheckBox* m_checkPageLimits;
wxPanel* m_panel2;
wxListCtrl* templateFieldListCtrl;
+ wxStaticText* fieldNameLabel;
+ wxTextCtrl* fieldNameTextCtrl;
+ wxStaticText* fieldDefaultValueLabel;
+ wxTextCtrl* fieldDefaultValueTextCtrl;
+ wxCheckBox* fieldVisibleCheckbox;
wxButton* addFieldButton;
wxButton* deleteFieldButton;
wxStdDialogButtonSizer* m_sdbSizer1;
@@ -110,6 +121,8 @@ class DIALOG_EESCHEMA_OPTIONS_BASE : public DIALOG_SHIM
// Virtual event handlers, overide them in your derived class
virtual void OnChooseUnits( wxCommandEvent& event ) { event.Skip(); }
virtual void OnMiddleBtnPanEnbl( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnTemplateFieldDeselected( wxListEvent& event ) { event.Skip(); }
+ virtual void OnTemplateFieldSelected( wxListEvent& event ) { event.Skip(); }
virtual void OnAddButtonClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnDeleteButtonClick( wxCommandEvent& event ) { event.Skip(); }
diff --git a/eeschema/eeschema_config.cpp b/eeschema/eeschema_config.cpp
index 53e54fc10e..67ae363987 100644
--- a/eeschema/eeschema_config.cpp
+++ b/eeschema/eeschema_config.cpp
@@ -366,6 +366,16 @@ void SCH_EDIT_FRAME::OnSetOptions( wxCommandEvent& event )
// look like the component field property editor, showing visibility and value also
DeleteAllTemplateFieldNames();
+ TEMPLATE_FIELDNAMES newFieldNames = dlg.GetTemplateFields();
+
+ for( TEMPLATE_FIELDNAMES::iterator dlgfld = newFieldNames.begin(); dlgfld != newFieldNames.end(); ++dlgfld )
+ {
+ TEMPLATE_FIELDNAME fld = *dlgfld;
+/* fld.m_Name = dlgfld->m_Name;
+ fld.m_Value = dlgfld->m_Value;
+ fld.m_Visible = dlgfld->m_Visible; */
+ AddTemplateFieldName( fld );
+ }
/*
for( int i=0; i<8; ++i ) // no. fields in this dialog window
{
@@ -786,7 +796,7 @@ void SCH_EDIT_FRAME::SaveSettings( wxConfigBase* aCfg )
m_TemplateFieldNames.Format( &sf, 0 );
- DBG(printf("saving formatted template fieldnames:'%s'\n", sf.GetString().c_str() );)
+ printf("saving formatted template fieldnames:'%s'\n", sf.GetString().c_str() );
wxString record = FROM_UTF8( sf.GetString().c_str() );
record.Replace( wxT("\n"), wxT(""), true ); // strip all newlines
diff --git a/eeschema/template_fieldnames.h b/eeschema/template_fieldnames.h
index 4b74c1ba35..2aff99855d 100644
--- a/eeschema/template_fieldnames.h
+++ b/eeschema/template_fieldnames.h
@@ -62,6 +62,13 @@ struct TEMPLATE_FIELDNAME
{
}
+ TEMPLATE_FIELDNAME( const TEMPLATE_FIELDNAME& ref )
+ {
+ m_Name = ref.m_Name;
+ m_Value = ref.m_Value;
+ m_Visible = ref.m_Visible;
+ }
+
/**
* Function Format
* serializes this object out as text into the given OUTPUTFORMATTER.