kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #22215
[PATCH] Eeschema options step 2: template fields
Hi,
This patch reimplements the Template/Default Fields page in the Eeschema
options using wxGrid, making the table directly user-editable and
removing the somewhat dodgy code for the separate edit panel. This fixes
<https://bugs.launchpad.net/kicad/+bug/1527309> as well as, IMO, making
this dialog much more user-friendly. The field options have also been
upgraded to use the newer TransferData{To,From}Window methods.
Step 3 will be to pull the hotkey manager into this dialog.
--
Chris
commit adbcf1f43904733325965443d350a54a2d3cab68
Author: Chris Pavlina <cpavlin1@xxxxxxxxxxxxxx>
Date: Sun Dec 27 13:22:29 2015 -0500
Reimplement template fields options
diff --git a/eeschema/dialogs/dialog_eeschema_options.cpp b/eeschema/dialogs/dialog_eeschema_options.cpp
index 6ee6480..c962ff2 100644
--- a/eeschema/dialogs/dialog_eeschema_options.cpp
+++ b/eeschema/dialogs/dialog_eeschema_options.cpp
@@ -42,25 +42,13 @@ DIALOG_EESCHEMA_OPTIONS::DIALOG_EESCHEMA_OPTIONS( wxWindow* parent ) :
// Dialog should not shrink beyond it's minimal size.
GetSizer()->SetSizeHints( this );
- wxListItem col0;
- col0.SetId( 0 );
- col0.SetText( _( "Field Name" ) );
-
- wxListItem col1;
- col1.SetId( 1 );
- col1.SetText( _( "Default Value" ) );
-
- wxListItem col2;
- col2.SetId( 2 );
- col2.SetText( _( "Visible" ) );
-
- templateFieldListCtrl->InsertColumn( 0, col0 );
- templateFieldListCtrl->InsertColumn( 1, col1 );
- templateFieldListCtrl->InsertColumn( 2, col2 );
-
- templateFieldListCtrl->SetColumnWidth( 0, templateFieldListCtrl->GetSize().GetWidth() / 3.5 );
- templateFieldListCtrl->SetColumnWidth( 1, templateFieldListCtrl->GetSize().GetWidth() / 3.5 );
- templateFieldListCtrl->SetColumnWidth( 2, templateFieldListCtrl->GetSize().GetWidth() / 3.5 );
+ // wxformbuilder doesn't seem to let us set minimal sizes. Copy the default
+ // sizes into the minimal sizes, then, and autosize:
+ for( int i = 0; i < m_fieldGrid->GetNumberCols(); ++i )
+ {
+ m_fieldGrid->SetColMinimalWidth( i, m_fieldGrid->GetColSize( i ) );
+ m_fieldGrid->AutoSizeColLabelSize( i );
+ }
// Invalid field selected
selectedField = -1;
@@ -68,14 +56,6 @@ DIALOG_EESCHEMA_OPTIONS::DIALOG_EESCHEMA_OPTIONS( wxWindow* parent ) :
// Make sure we select the first tab of the options tab page
m_notebook->SetSelection( 0 );
- // Connect the edit controls for the template field names to the kill focus event which
- // doesn't propogate, hence the need to connect it here.
-
- fieldNameTextCtrl->Connect( wxEVT_KILL_FOCUS,
- wxFocusEventHandler( DIALOG_EESCHEMA_OPTIONS::OnEditControlKillFocus ), NULL, this );
-
- fieldDefaultValueTextCtrl->Connect( wxEVT_KILL_FOCUS,
- wxFocusEventHandler( DIALOG_EESCHEMA_OPTIONS::OnEditControlKillFocus ), NULL, this );
}
@@ -161,86 +141,40 @@ void DIALOG_EESCHEMA_OPTIONS::SetGridSizes( const GRIDS& aGridSizes, int aGridId
}
-void DIALOG_EESCHEMA_OPTIONS::RefreshTemplateFieldView( void )
+void DIALOG_EESCHEMA_OPTIONS::OnAddButtonClick( wxCommandEvent& event )
{
- // Loop through the template fieldnames and add them to the list control
- // or just change texts if room exists
- long itemindex = 0;
- wxString tmp;
+ // If a single row is selected, insert after that row.
+ int selected_row = -1;
+ int n_found = 0;
- for( TEMPLATE_FIELDNAMES::iterator fld = templateFields.begin();
- fld != templateFields.end(); ++fld, itemindex++ )
+ for( int row = 0; row < templateFields.size(); ++row )
{
- if( templateFieldListCtrl->GetItemCount() <= itemindex )
+ bool this_row_selected = false;
+ for( int col = 0; col < m_fieldGrid->GetNumberCols(); ++col )
{
- templateFieldListCtrl->InsertItem(
- templateFieldListCtrl->GetItemCount(), fld->m_Name );
+ if( m_fieldGrid->IsInSelection( row, col ) )
+ this_row_selected = true;
+ }
+ if( this_row_selected && selected_row == -1 )
+ {
+ selected_row = row;
+ ++n_found;
}
-
- wxListItem litem;
- litem.SetId( itemindex );
- templateFieldListCtrl->GetItem( litem );
-
- litem.SetColumn( 0 );
- if( litem.GetText() != fld->m_Name )
- templateFieldListCtrl->SetItem( itemindex, 0, fld->m_Name );
-
- litem.SetColumn( 1 );
- if( litem.GetText() != fld->m_Value )
- templateFieldListCtrl->SetItem( itemindex, 1, fld->m_Value );
-
- tmp = ( fld->m_Visible == true ) ? _( "Visible" ) : _( "Hidden" );
-
- litem.SetColumn( 2 );
- if( litem.GetText() != tmp )
- templateFieldListCtrl->SetItem( itemindex, 2, tmp );
- }
-
- // Remove extra items:
- while( templateFieldListCtrl->GetItemCount() > itemindex )
- {
- templateFieldListCtrl->DeleteItem( itemindex );
}
-}
-
-
-void DIALOG_EESCHEMA_OPTIONS::SelectTemplateField( int aItem )
-{
- // Only select valid items!
- if( ( aItem < 0 ) || ( aItem >= templateFieldListCtrl->GetItemCount() ) )
- return;
-
- // Make sure we select the new item in list control
- if( templateFieldListCtrl->GetFirstSelected() != aItem )
- templateFieldListCtrl->Select( aItem, true );
-}
-
+ TEMPLATE_FIELDNAMES::iterator pos;
-void DIALOG_EESCHEMA_OPTIONS::OnAddButtonClick( wxCommandEvent& event )
-{
- // If there is currently a valid selection, copy the edit panel to the
- // selected field so as not to lose the data
- if( fieldSelectionValid( selectedField ) )
- copyPanelToSelected();
+ if( n_found == 1 )
+ pos = templateFields.begin() + selected_row + 1;
+ else
+ pos = templateFields.end();
// Add a new fieldname to the fieldname list
TEMPLATE_FIELDNAME newFieldname = TEMPLATE_FIELDNAME( "Fieldname" );
newFieldname.m_Value = wxT( "Value" );
newFieldname.m_Visible = false;
- templateFields.push_back( newFieldname );
-
- // Select the newly added field and then copy that data to the edit panel.
- // Make sure any previously selected state is cleared and then select the
- // new field
- selectedField = templateFields.size() - 1;
-
- // Update the display to reflect the new data
- RefreshTemplateFieldView();
- copySelectedToPanel();
-
- // Make sure we select the new item
- SelectTemplateField( selectedField );
+ templateFields.insert( pos, newFieldname );
+ TransferDataToWindow();
event.Skip();
}
@@ -248,97 +182,70 @@ void DIALOG_EESCHEMA_OPTIONS::OnAddButtonClick( wxCommandEvent& event )
void DIALOG_EESCHEMA_OPTIONS::OnDeleteButtonClick( wxCommandEvent& event )
{
- // If there is currently a valid selection, delete the template field from
- // the template field list
- if( fieldSelectionValid( selectedField ) )
- {
- // Delete the fieldname from the fieldname list
- templateFields.erase( templateFields.begin() + selectedField );
-
- // If the selectedField is still not in the templateField range now,
- // make sure we stay in range and when there are no fields present
- // move to -1
- if( selectedField >= int( templateFields.size() ) )
- selectedField = templateFields.size() - 1;
+ // wxGrid has a somewhat complex way of detemining selection.
+ // This is pretty much the easiest way to do it, here.
- // Update the display to reflect the new data
- RefreshTemplateFieldView();
+ std::vector<bool> rows_to_delete( templateFields.size(), false );
- copySelectedToPanel();
-
- // Make sure after the refresh that the selected item is correct
- SelectTemplateField( selectedField );
+ for( int row = 0; row < templateFields.size(); ++row )
+ {
+ for( int col = 0; col < m_fieldGrid->GetNumberCols(); ++col )
+ {
+ if( m_fieldGrid->IsInSelection( row, col ) )
+ rows_to_delete[row] = true;
+ }
}
-}
-
-void DIALOG_EESCHEMA_OPTIONS::copyPanelToSelected( void )
-{
- if( !fieldSelectionValid( selectedField ) )
- return;
-
- // Update the template field from the edit panel
- templateFields[selectedField].m_Name = fieldNameTextCtrl->GetValue();
- templateFields[selectedField].m_Value = fieldDefaultValueTextCtrl->GetValue();
- templateFields[selectedField].m_Visible = fieldVisibleCheckbox->GetValue();
+ m_fieldGrid->Freeze();
+ for( int count = 0; count < rows_to_delete.size(); ++count )
+ {
+ // Iterate backwards, unsigned-friendly way for future
+ int row = rows_to_delete.size() - count - 1;
+ if( rows_to_delete[row] )
+ {
+ m_fieldGrid->DeleteRows( row, 1 );
+ templateFields.erase( templateFields.begin() + row );
+ }
+ }
+ m_fieldGrid->Thaw();
}
-void DIALOG_EESCHEMA_OPTIONS::OnEditControlKillFocus( wxFocusEvent& event )
+bool DIALOG_EESCHEMA_OPTIONS::TransferDataToWindow()
{
- // Update the data + UI
- copyPanelToSelected();
- RefreshTemplateFieldView();
- SelectTemplateField( selectedField );
+ if( !wxDialog::TransferDataToWindow() )
+ return false;
- event.Skip();
-}
+ if( m_fieldGrid->GetNumberRows() )
+ m_fieldGrid->DeleteRows( 0, m_fieldGrid->GetNumberRows() );
+ m_fieldGrid->AppendRows( templateFields.size() );
-void DIALOG_EESCHEMA_OPTIONS::OnEnterKey( wxCommandEvent& event )
-{
- // Process the event produced when the user presses enter key
- // in template fieldname text control or template fieldvalue text control
- // Validate the current name or value, and switch focus to the other param
- // (value or name)
- copyPanelToSelected();
- RefreshTemplateFieldView();
-
- if( fieldNameTextCtrl->HasFocus() )
- fieldDefaultValueTextCtrl->SetFocus();
- else
- fieldNameTextCtrl->SetFocus();
-}
-
-
-void DIALOG_EESCHEMA_OPTIONS::OnVisibleFieldClick( wxCommandEvent& event )
-{
- // Process the event produced when the user click on
- // the check box which controls the field visibility
- copyPanelToSelected();
- RefreshTemplateFieldView();
-}
-
-void DIALOG_EESCHEMA_OPTIONS::copySelectedToPanel( void )
-{
- if( !fieldSelectionValid( selectedField ) )
- return;
+ for( int row = 0; row < templateFields.size(); ++row )
+ {
+ m_fieldGrid->SetCellValue( row, 0, templateFields[row].m_Name );
+ m_fieldGrid->SetCellValue( row, 1, templateFields[row].m_Value );
+ m_fieldGrid->SetCellValue( row, 2,
+ templateFields[row].m_Visible ? wxT( "1" ) : wxEmptyString );
+
+ // Render the Visible column as a check box
+ m_fieldGrid->SetCellEditor( row, 2, new wxGridCellBoolEditor() );
+ m_fieldGrid->SetCellRenderer( row, 2, new wxGridCellBoolRenderer() );
+ m_fieldGrid->SetCellAlignment( row, 2, wxALIGN_CENTRE, wxALIGN_CENTRE );
+ }
- // Update the panel data from the selected template field
- fieldNameTextCtrl->SetValue( templateFields[selectedField].m_Name );
- fieldDefaultValueTextCtrl->SetValue( templateFields[selectedField].m_Value );
- fieldVisibleCheckbox->SetValue( templateFields[selectedField].m_Visible );
+ return true;
}
-void DIALOG_EESCHEMA_OPTIONS::OnTemplateFieldSelected( wxListEvent& event )
+bool DIALOG_EESCHEMA_OPTIONS::TransferDataFromWindow()
{
- // Before getting the new field data, make sure we save the old!
- copyPanelToSelected();
-
- // Now update the selected field and copy the data from the field to the
- // edit panel
- selectedField = event.GetIndex();
- copySelectedToPanel();
+ for( int row = 0; row < templateFields.size(); ++row )
+ {
+ templateFields[row].m_Name = m_fieldGrid->GetCellValue( row, 0 );
+ templateFields[row].m_Value = m_fieldGrid->GetCellValue( row, 1 );
+ templateFields[row].m_Visible = ( m_fieldGrid->GetCellValue( row, 2 ) != wxEmptyString );
+ }
+ return true;
}
@@ -347,18 +254,8 @@ void DIALOG_EESCHEMA_OPTIONS::SetTemplateFields( const TEMPLATE_FIELDNAMES& aFie
// Set the template fields object
templateFields = aFields;
- // select the last field ( will set selectedField to -1 if no field ):
- selectedField = templateFields.size()-1;
-
// Build and refresh the view
- RefreshTemplateFieldView();
-
- if( selectedField >= 0 )
- {
- copySelectedToPanel();
- SelectTemplateField( selectedField );
- }
-
+ TransferDataToWindow();
}
diff --git a/eeschema/dialogs/dialog_eeschema_options.h b/eeschema/dialogs/dialog_eeschema_options.h
index 71d575b..85dfd2c 100644
--- a/eeschema/dialogs/dialog_eeschema_options.h
+++ b/eeschema/dialogs/dialog_eeschema_options.h
@@ -54,20 +54,6 @@ protected:
}
/**
- * Function OnEnterKey (virtual)
- * Process the wxWidgets @a event produced when the user presses enter key
- * in template fieldname text control or template fieldvalue text control
- */
- void OnEnterKey( wxCommandEvent& event );
-
- /**
- * Function OnVisibleFieldClick (virtual)
- * Process the wxWidgets @a event produced when the user click on
- * the check box which controls the field visibility
- */
- void OnVisibleFieldClick( wxCommandEvent& event );
-
- /**
* Function OnAddButtonClick
* Process the wxWidgets @a event produced when the user presses the Add buton for the
* template fieldnames control
@@ -90,65 +76,16 @@ protected:
void OnDeleteButtonClick( wxCommandEvent& event );
/**
- * Function OnEditControlKillFocus
- * This Focus Event Handler should be connected to any controls in the template field edit box
- * so that any loss of focus results in the data being saved to the currently selected template
- * field
- *
- * @param event The wxWidgets produced event information
- *
- * Copies data from the edit box to the selected field template
- */
- void OnEditControlKillFocus( wxFocusEvent& event );
-
- /**
- * Function copyPanelToSelected
- * Copies the data from the edit panel to the selected template fieldname
- */
- void copyPanelToSelected( void );
-
- /**
- * Function copySelectedToPanel
- * Copies the data from the selected template fieldname and fills in the edit panel
- */
- void copySelectedToPanel( void );
-
- /**
- * Function OnTemplateFieldSelected
- * Event handler for the wxListCtrl containing the template fieldnames
- *
- * @param event The event information provided by wxWidgets
- *
- * Processes data exchange between the edit panel and the selected template fieldname
- */
- void OnTemplateFieldSelected( wxListEvent& event );
-
- /**
- * Function RefreshTemplateFieldView
- * Refresh the template fieldname wxListCtrl
- *
- * Deletes all data from the wxListCtrl and then re-polpulates the control with the data in
- * the template fieldnames.
- *
- * Use any time the template field data has changed
+ * Function TransferDataToWindow
+ * Transfer data into the GUI.
*/
- void RefreshTemplateFieldView( void );
+ bool TransferDataToWindow();
/**
- * Function SelectTemplateField
- * Selects @a aItem from the wxListCtrl populated with the template fieldnames
- *
- * @param aItem The item index of the row to be selected
- *
- * When RefreshTemplateFieldView() is used the selection is lost because all of the items are
- * removed from the wxListCtrl and then the control is re-populated. This function can be used
- * to re-select an item that was previously selected so that the selection is not lost.
- *
- * <b>NOTE:</b> This function first sets the ignoreSelection flag before making the selection.
- * This means the class can select something in the wxListCtrl without causing further
- * selection events.
+ * Function TransferDataFromWindow
+ * Transfer data out of the GUI.
*/
- void SelectTemplateField( int aItem );
+ bool TransferDataFromWindow();
public:
/**
diff --git a/eeschema/dialogs/dialog_eeschema_options_base.cpp b/eeschema/dialogs/dialog_eeschema_options_base.cpp
index 0a9ffe2..2e6bf12 100644
--- a/eeschema/dialogs/dialog_eeschema_options_base.cpp
+++ b/eeschema/dialogs/dialog_eeschema_options_base.cpp
@@ -13,11 +13,6 @@ BEGIN_EVENT_TABLE( DIALOG_EESCHEMA_OPTIONS_BASE, DIALOG_SHIM )
EVT_SIZE( DIALOG_EESCHEMA_OPTIONS_BASE::_wxFB_OnSize )
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_TEXT_ENTER( wxID_ANY, DIALOG_EESCHEMA_OPTIONS_BASE::_wxFB_OnEnterKey )
- EVT_TEXT_ENTER( wxID_ANY, DIALOG_EESCHEMA_OPTIONS_BASE::_wxFB_OnEnterKey )
- EVT_CHECKBOX( wxID_ANY, DIALOG_EESCHEMA_OPTIONS_BASE::_wxFB_OnVisibleFieldClick )
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()
@@ -292,39 +287,39 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx
wxBoxSizer* bSizer11;
bSizer11 = new wxBoxSizer( wxVERTICAL );
- templateFieldListCtrl = new wxListView( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VRULES );
- templateFieldListCtrl->SetMinSize( wxSize( 500,-1 ) );
-
- bSizer11->Add( templateFieldListCtrl, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 8 );
-
- wxFlexGridSizer* fgSizer4;
- fgSizer4 = new wxFlexGridSizer( 0, 2, 0, 0 );
- fgSizer4->AddGrowableCol( 1 );
- fgSizer4->SetFlexibleDirection( wxBOTH );
- fgSizer4->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- fieldNameLabel = new wxStaticText( m_panel2, wxID_ANY, _("Na&me"), wxDefaultPosition, wxDefaultSize, 0 );
- fieldNameLabel->Wrap( -1 );
- fgSizer4->Add( fieldNameLabel, 0, wxLEFT|wxRIGHT|wxTOP, 5 );
-
- fieldNameTextCtrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
- fgSizer4->Add( fieldNameTextCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
-
- fieldDefaultValueLabel = new wxStaticText( m_panel2, wxID_ANY, _("Defa&ult Value"), wxDefaultPosition, wxDefaultSize, 0 );
- fieldDefaultValueLabel->Wrap( -1 );
- fgSizer4->Add( fieldDefaultValueLabel, 0, wxLEFT|wxRIGHT|wxTOP, 5 );
-
- fieldDefaultValueTextCtrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
- fgSizer4->Add( fieldDefaultValueTextCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
-
- fieldVisibleCheckbox = new wxCheckBox( m_panel2, wxID_ANY, _("&Visible"), wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer4->Add( fieldVisibleCheckbox, 0, wxALL, 5 );
-
-
- fgSizer4->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- bSizer11->Add( fgSizer4, 0, wxEXPAND, 5 );
+ m_fieldGrid = new wxGrid( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+
+ // Grid
+ m_fieldGrid->CreateGrid( 0, 3 );
+ m_fieldGrid->EnableEditing( true );
+ m_fieldGrid->EnableGridLines( true );
+ m_fieldGrid->EnableDragGridSize( false );
+ m_fieldGrid->SetMargins( 0, 0 );
+
+ // Columns
+ m_fieldGrid->SetColSize( 0, 150 );
+ m_fieldGrid->SetColSize( 1, 150 );
+ m_fieldGrid->SetColSize( 2, 75 );
+ m_fieldGrid->EnableDragColMove( false );
+ m_fieldGrid->EnableDragColSize( true );
+ m_fieldGrid->SetColLabelSize( 30 );
+ m_fieldGrid->SetColLabelValue( 0, _("Name") );
+ m_fieldGrid->SetColLabelValue( 1, _("Default Value") );
+ m_fieldGrid->SetColLabelValue( 2, _("Visible") );
+ m_fieldGrid->SetColLabelValue( 3, _("Name") );
+ m_fieldGrid->SetColLabelValue( 4, wxEmptyString );
+ m_fieldGrid->SetColLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE );
+
+ // Rows
+ m_fieldGrid->EnableDragRowSize( true );
+ m_fieldGrid->SetRowLabelSize( 80 );
+ m_fieldGrid->SetRowLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE );
+
+ // Label Appearance
+
+ // Cell Defaults
+ m_fieldGrid->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_TOP );
+ bSizer11->Add( m_fieldGrid, 1, wxALL|wxEXPAND, 5 );
bSizer6->Add( bSizer11, 1, wxEXPAND, 5 );
diff --git a/eeschema/dialogs/dialog_eeschema_options_base.fbp b/eeschema/dialogs/dialog_eeschema_options_base.fbp
index 7184f15..fbbb3fc 100644
--- a/eeschema/dialogs/dialog_eeschema_options_base.fbp
+++ b/eeschema/dialogs/dialog_eeschema_options_base.fbp
@@ -4326,11 +4326,11 @@
<property name="name">bSizer11</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
- <object class="sizeritem" expanded="0">
- <property name="border">8</property>
- <property name="flag">wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT|wxTOP</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">1</property>
- <object class="wxListCtrl" expanded="0">
+ <object class="wxGrid" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@@ -4339,33 +4339,58 @@
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
+ <property name="autosize_cols">0</property>
+ <property name="autosize_rows">0</property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
+ <property name="cell_bg"></property>
+ <property name="cell_font"></property>
+ <property name="cell_horiz_alignment">wxALIGN_LEFT</property>
+ <property name="cell_text"></property>
+ <property name="cell_vert_alignment">wxALIGN_TOP</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
+ <property name="col_label_horiz_alignment">wxALIGN_CENTRE</property>
+ <property name="col_label_size">30</property>
+ <property name="col_label_values">"Name" "Default Value" "Visible" "Name" ""</property>
+ <property name="col_label_vert_alignment">wxALIGN_CENTRE</property>
+ <property name="cols">3</property>
+ <property name="column_sizes">150,150,75</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="drag_col_move">0</property>
+ <property name="drag_col_size">1</property>
+ <property name="drag_grid_size">0</property>
+ <property name="drag_row_size">1</property>
+ <property name="editing">1</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
+ <property name="grid_line_color"></property>
+ <property name="grid_lines">1</property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
+ <property name="label_bg"></property>
+ <property name="label_font"></property>
+ <property name="label_text"></property>
+ <property name="margin_height">0</property>
+ <property name="margin_width">0</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
- <property name="minimum_size">500,-1</property>
+ <property name="minimum_size"></property>
<property name="moveable">1</property>
- <property name="name">templateFieldListCtrl</property>
+ <property name="name">m_fieldGrid</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
@@ -4373,22 +4398,55 @@
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
+ <property name="row_label_horiz_alignment">wxALIGN_CENTRE</property>
+ <property name="row_label_size">80</property>
+ <property name="row_label_values"></property>
+ <property name="row_label_vert_alignment">wxALIGN_CENTRE</property>
+ <property name="row_sizes"></property>
+ <property name="rows">0</property>
<property name="show">1</property>
<property name="size"></property>
- <property name="style">wxLC_HRULES|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VRULES</property>
- <property name="subclass">wxListView; </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="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
+ <event name="OnGridCellChange"></event>
+ <event name="OnGridCellLeftClick"></event>
+ <event name="OnGridCellLeftDClick"></event>
+ <event name="OnGridCellRightClick"></event>
+ <event name="OnGridCellRightDClick"></event>
+ <event name="OnGridCmdCellChange"></event>
+ <event name="OnGridCmdCellLeftClick"></event>
+ <event name="OnGridCmdCellLeftDClick"></event>
+ <event name="OnGridCmdCellRightClick"></event>
+ <event name="OnGridCmdCellRightDClick"></event>
+ <event name="OnGridCmdColSize"></event>
+ <event name="OnGridCmdEditorCreated"></event>
+ <event name="OnGridCmdEditorHidden"></event>
+ <event name="OnGridCmdEditorShown"></event>
+ <event name="OnGridCmdLabelLeftClick"></event>
+ <event name="OnGridCmdLabelLeftDClick"></event>
+ <event name="OnGridCmdLabelRightClick"></event>
+ <event name="OnGridCmdLabelRightDClick"></event>
+ <event name="OnGridCmdRangeSelect"></event>
+ <event name="OnGridCmdRowSize"></event>
+ <event name="OnGridCmdSelectCell"></event>
+ <event name="OnGridColSize"></event>
+ <event name="OnGridEditorCreated"></event>
+ <event name="OnGridEditorHidden"></event>
+ <event name="OnGridEditorShown"></event>
+ <event name="OnGridLabelLeftClick"></event>
+ <event name="OnGridLabelLeftDClick"></event>
+ <event name="OnGridLabelRightClick"></event>
+ <event name="OnGridLabelRightDClick"></event>
+ <event name="OnGridRangeSelect"></event>
+ <event name="OnGridRowSize"></event>
+ <event name="OnGridSelectCell"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
@@ -4396,26 +4454,6 @@
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
- <event name="OnListBeginDrag"></event>
- <event name="OnListBeginLabelEdit"></event>
- <event name="OnListBeginRDrag"></event>
- <event name="OnListCacheHint"></event>
- <event name="OnListColBeginDrag"></event>
- <event name="OnListColClick"></event>
- <event name="OnListColDragging"></event>
- <event name="OnListColEndDrag"></event>
- <event name="OnListColRightClick"></event>
- <event name="OnListDeleteAllItems"></event>
- <event name="OnListDeleteItem"></event>
- <event name="OnListEndLabelEdit"></event>
- <event name="OnListInsertItem"></event>
- <event name="OnListItemActivated"></event>
- <event name="OnListItemDeselected">OnTemplateFieldDeselected</event>
- <event name="OnListItemFocused"></event>
- <event name="OnListItemMiddleClick"></event>
- <event name="OnListItemRightClick"></event>
- <event name="OnListItemSelected">OnTemplateFieldSelected</event>
- <event name="OnListKeyDown"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
@@ -4431,470 +4469,6 @@
<event name="OnUpdateUI"></event>
</object>
</object>
- <object class="sizeritem" expanded="1">
- <property name="border">5</property>
- <property name="flag">wxEXPAND</property>
- <property name="proportion">0</property>
- <object class="wxFlexGridSizer" expanded="0">
- <property name="cols">2</property>
- <property name="flexible_direction">wxBOTH</property>
- <property name="growablecols">1</property>
- <property name="growablerows"></property>
- <property name="hgap">0</property>
- <property name="minimum_size"></property>
- <property name="name">fgSizer4</property>
- <property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
- <property name="permission">none</property>
- <property name="rows">0</property>
- <property name="vgap">0</property>
- <object class="sizeritem" expanded="0">
- <property name="border">5</property>
- <property name="flag">wxLEFT|wxRIGHT|wxTOP</property>
- <property name="proportion">0</property>
- <object class="wxStaticText" expanded="0">
- <property name="BottomDockable">1</property>
- <property name="LeftDockable">1</property>
- <property name="RightDockable">1</property>
- <property name="TopDockable">1</property>
- <property name="aui_layer"></property>
- <property name="aui_name"></property>
- <property name="aui_position"></property>
- <property name="aui_row"></property>
- <property name="best_size"></property>
- <property name="bg"></property>
- <property name="caption"></property>
- <property name="caption_visible">1</property>
- <property name="center_pane">0</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="label">Na&me</property>
- <property name="max_size"></property>
- <property name="maximize_button">0</property>
- <property name="maximum_size"></property>
- <property name="min_size"></property>
- <property name="minimize_button">0</property>
- <property name="minimum_size"></property>
- <property name="moveable">1</property>
- <property name="name">fieldNameLabel</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="resize">Resizable</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="window_extra_style"></property>
- <property name="window_name"></property>
- <property name="window_style"></property>
- <property name="wrap">-1</property>
- <event name="OnChar"></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 class="sizeritem" expanded="0">
- <property name="border">5</property>
- <property name="flag">wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT</property>
- <property name="proportion">0</property>
- <object class="wxTextCtrl" expanded="0">
- <property name="BottomDockable">1</property>
- <property name="LeftDockable">1</property>
- <property name="RightDockable">1</property>
- <property name="TopDockable">1</property>
- <property name="aui_layer"></property>
- <property name="aui_name"></property>
- <property name="aui_position"></property>
- <property name="aui_row"></property>
- <property name="best_size"></property>
- <property name="bg"></property>
- <property name="caption"></property>
- <property name="caption_visible">1</property>
- <property name="center_pane">0</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="max_size"></property>
- <property name="maximize_button">0</property>
- <property name="maximum_size"></property>
- <property name="maxlength"></property>
- <property name="min_size"></property>
- <property name="minimize_button">0</property>
- <property name="minimum_size"></property>
- <property name="moveable">1</property>
- <property name="name">fieldNameTextCtrl</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="resize">Resizable</property>
- <property name="show">1</property>
- <property name="size"></property>
- <property name="style">wxTE_PROCESS_ENTER</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="value"></property>
- <property name="window_extra_style"></property>
- <property name="window_name"></property>
- <property name="window_style"></property>
- <event name="OnChar"></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="OnText"></event>
- <event name="OnTextEnter">OnEnterKey</event>
- <event name="OnTextMaxLen"></event>
- <event name="OnTextURL"></event>
- <event name="OnUpdateUI"></event>
- </object>
- </object>
- <object class="sizeritem" expanded="0">
- <property name="border">5</property>
- <property name="flag">wxLEFT|wxRIGHT|wxTOP</property>
- <property name="proportion">0</property>
- <object class="wxStaticText" expanded="0">
- <property name="BottomDockable">1</property>
- <property name="LeftDockable">1</property>
- <property name="RightDockable">1</property>
- <property name="TopDockable">1</property>
- <property name="aui_layer"></property>
- <property name="aui_name"></property>
- <property name="aui_position"></property>
- <property name="aui_row"></property>
- <property name="best_size"></property>
- <property name="bg"></property>
- <property name="caption"></property>
- <property name="caption_visible">1</property>
- <property name="center_pane">0</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="label">Defa&ult Value</property>
- <property name="max_size"></property>
- <property name="maximize_button">0</property>
- <property name="maximum_size"></property>
- <property name="min_size"></property>
- <property name="minimize_button">0</property>
- <property name="minimum_size"></property>
- <property name="moveable">1</property>
- <property name="name">fieldDefaultValueLabel</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="resize">Resizable</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="window_extra_style"></property>
- <property name="window_name"></property>
- <property name="window_style"></property>
- <property name="wrap">-1</property>
- <event name="OnChar"></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 class="sizeritem" expanded="0">
- <property name="border">5</property>
- <property name="flag">wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT</property>
- <property name="proportion">0</property>
- <object class="wxTextCtrl" expanded="0">
- <property name="BottomDockable">1</property>
- <property name="LeftDockable">1</property>
- <property name="RightDockable">1</property>
- <property name="TopDockable">1</property>
- <property name="aui_layer"></property>
- <property name="aui_name"></property>
- <property name="aui_position"></property>
- <property name="aui_row"></property>
- <property name="best_size"></property>
- <property name="bg"></property>
- <property name="caption"></property>
- <property name="caption_visible">1</property>
- <property name="center_pane">0</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="max_size"></property>
- <property name="maximize_button">0</property>
- <property name="maximum_size"></property>
- <property name="maxlength"></property>
- <property name="min_size"></property>
- <property name="minimize_button">0</property>
- <property name="minimum_size"></property>
- <property name="moveable">1</property>
- <property name="name">fieldDefaultValueTextCtrl</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="resize">Resizable</property>
- <property name="show">1</property>
- <property name="size"></property>
- <property name="style">wxTE_PROCESS_ENTER</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="value"></property>
- <property name="window_extra_style"></property>
- <property name="window_name"></property>
- <property name="window_style"></property>
- <event name="OnChar"></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="OnText"></event>
- <event name="OnTextEnter">OnEnterKey</event>
- <event name="OnTextMaxLen"></event>
- <event name="OnTextURL"></event>
- <event name="OnUpdateUI"></event>
- </object>
- </object>
- <object class="sizeritem" expanded="0">
- <property name="border">5</property>
- <property name="flag">wxALL</property>
- <property name="proportion">0</property>
- <object class="wxCheckBox" expanded="0">
- <property name="BottomDockable">1</property>
- <property name="LeftDockable">1</property>
- <property name="RightDockable">1</property>
- <property name="TopDockable">1</property>
- <property name="aui_layer"></property>
- <property name="aui_name"></property>
- <property name="aui_position"></property>
- <property name="aui_row"></property>
- <property name="best_size"></property>
- <property name="bg"></property>
- <property name="caption"></property>
- <property name="caption_visible">1</property>
- <property name="center_pane">0</property>
- <property name="checked">0</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="label">&Visible</property>
- <property name="max_size"></property>
- <property name="maximize_button">0</property>
- <property name="maximum_size"></property>
- <property name="min_size"></property>
- <property name="minimize_button">0</property>
- <property name="minimum_size"></property>
- <property name="moveable">1</property>
- <property name="name">fieldVisibleCheckbox</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="resize">Resizable</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="OnCheckBox">OnVisibleFieldClick</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 class="sizeritem" expanded="0">
- <property name="border">5</property>
- <property name="flag">wxEXPAND</property>
- <property name="proportion">1</property>
- <object class="spacer" expanded="0">
- <property name="height">0</property>
- <property name="permission">protected</property>
- <property name="width">0</property>
- </object>
- </object>
- </object>
- </object>
</object>
</object>
<object class="sizeritem" expanded="1">
diff --git a/eeschema/dialogs/dialog_eeschema_options_base.h b/eeschema/dialogs/dialog_eeschema_options_base.h
index b4a2663..2cd29b6 100644
--- a/eeschema/dialogs/dialog_eeschema_options_base.h
+++ b/eeschema/dialogs/dialog_eeschema_options_base.h
@@ -12,7 +12,6 @@
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
class DIALOG_SHIM;
-class wxListView;
#include "dialog_shim.h"
#include <wx/string.h>
@@ -30,8 +29,7 @@ class wxListView;
#include <wx/bitmap.h>
#include <wx/image.h>
#include <wx/icon.h>
-#include <wx/listctrl.h>
-#include <wx/textctrl.h>
+#include <wx/grid.h>
#include <wx/button.h>
#include <wx/notebook.h>
#include <wx/dialog.h>
@@ -50,10 +48,6 @@ class DIALOG_EESCHEMA_OPTIONS_BASE : public DIALOG_SHIM
void _wxFB_OnSize( wxSizeEvent& event ){ OnSize( event ); }
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_OnEnterKey( wxCommandEvent& event ){ OnEnterKey( event ); }
- void _wxFB_OnVisibleFieldClick( wxCommandEvent& event ){ OnVisibleFieldClick( event ); }
void _wxFB_OnAddButtonClick( wxCommandEvent& event ){ OnAddButtonClick( event ); }
void _wxFB_OnDeleteButtonClick( wxCommandEvent& event ){ OnDeleteButtonClick( event ); }
@@ -115,12 +109,7 @@ class DIALOG_EESCHEMA_OPTIONS_BASE : public DIALOG_SHIM
wxCheckBox* m_checkMiddleButtonPanLimited;
wxCheckBox* m_checkAutoPan;
wxPanel* m_panel2;
- wxListView* templateFieldListCtrl;
- wxStaticText* fieldNameLabel;
- wxTextCtrl* fieldNameTextCtrl;
- wxStaticText* fieldDefaultValueLabel;
- wxTextCtrl* fieldDefaultValueTextCtrl;
- wxCheckBox* fieldVisibleCheckbox;
+ wxGrid* m_fieldGrid;
wxButton* addFieldButton;
wxButton* deleteFieldButton;
wxStdDialogButtonSizer* m_sdbSizer;
@@ -131,10 +120,6 @@ class DIALOG_EESCHEMA_OPTIONS_BASE : public DIALOG_SHIM
virtual void OnSize( wxSizeEvent& event ) { event.Skip(); }
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 OnEnterKey( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnVisibleFieldClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnAddButtonClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnDeleteButtonClick( wxCommandEvent& event ) { event.Skip(); }
Follow ups