kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #22219
Re: [PATCH] Eeschema options step 2: template fields
Sorry, quick update - fix a couple (non-critical) signed/unsigned
mismatches and remove an unused member. This is a new version of the
patch in the previous mail, not an incremental patch.
On Sun, Dec 27, 2015 at 01:25:24PM -0500, Chris Pavlina wrote:
> 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(); }
>
commit 1b8e7c4b60f302af72a03b7876d47a370c079775
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..47ec413 100644
--- a/eeschema/dialogs/dialog_eeschema_options.cpp
+++ b/eeschema/dialogs/dialog_eeschema_options.cpp
@@ -42,40 +42,17 @@ 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 );
-
- // Invalid field selected
- selectedField = -1;
+ // 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 );
+ }
// 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 +138,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 < m_fieldGrid->GetNumberRows(); ++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 = 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 +179,73 @@ 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 );
+ // wxGrid has a somewhat complex way of detemining selection.
+ // This is pretty much the easiest way to do it, here.
- // 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;
+ std::vector<bool> rows_to_delete( templateFields.size(), false );
- // Update the display to reflect the new data
- RefreshTemplateFieldView();
-
- copySelectedToPanel();
-
- // Make sure after the refresh that the selected item is correct
- SelectTemplateField( selectedField );
+ for( int row = 0; row < m_fieldGrid->GetNumberRows(); ++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();
+ int n_rows = m_fieldGrid->GetNumberRows();
+ for( int count = 0; count < n_rows; ++count )
+ {
+ // Iterate backwards, unsigned-friendly way for future
+ int row = n_rows - 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 )
-{
- // Update the data + UI
- copyPanelToSelected();
- RefreshTemplateFieldView();
- SelectTemplateField( selectedField );
-
- event.Skip();
-}
-
-void DIALOG_EESCHEMA_OPTIONS::OnEnterKey( wxCommandEvent& event )
+bool DIALOG_EESCHEMA_OPTIONS::TransferDataToWindow()
{
- // 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();
-}
+ if( !wxDialog::TransferDataToWindow() )
+ return false;
+ m_fieldGrid->Freeze();
+ if( m_fieldGrid->GetNumberRows() )
+ m_fieldGrid->DeleteRows( 0, m_fieldGrid->GetNumberRows() );
+ m_fieldGrid->AppendRows( templateFields.size() );
-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 < m_fieldGrid->GetNumberRows(); ++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 );
+ }
+ m_fieldGrid->Thaw();
- // 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 < m_fieldGrid->GetNumberRows(); ++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..828d1b0 100644
--- a/eeschema/dialogs/dialog_eeschema_options.h
+++ b/eeschema/dialogs/dialog_eeschema_options.h
@@ -40,33 +40,6 @@ protected:
/** @brief The template fieldnames for this dialog */
TEMPLATE_FIELDNAMES templateFields;
- /** @brief The current row selected in the template fieldname wxListCtrl which is also in the
- * edit panel
- * selectedField = -1 when no valid item selected
- */
- int selectedField;
-
- /** @brief return true if aFieldId is a valid field selection
- */
- bool fieldSelectionValid( int aFieldId )
- {
- return ( aFieldId >= 0 ) && ( aFieldId < int( templateFields.size() ) );
- }
-
- /**
- * 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
@@ -90,65 +63,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
+ * Function TransferDataToWindow
+ * Transfer data into the GUI.
*/
- void OnTemplateFieldSelected( wxListEvent& event );
+ bool TransferDataToWindow();
/**
- * 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
- */
- void RefreshTemplateFieldView( void );
-
- /**
- * 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
References