Enhance EESCHEMA Options Dialog
* Include new field template editor - Removes 10 template limitation - Adds ability to set default value - Adds ability to set default visibility * Documentation to follow * Tested in Linux (Ubuntu 14.04) + Windows, Windows has issue with displaying highlight for selected template, fix to follow
This commit is contained in:
commit
753d834029
|
@ -31,12 +31,57 @@
|
||||||
|
|
||||||
#include <dialog_eeschema_options.h>
|
#include <dialog_eeschema_options.h>
|
||||||
|
|
||||||
|
#include "wx/settings.h"
|
||||||
|
|
||||||
DIALOG_EESCHEMA_OPTIONS::DIALOG_EESCHEMA_OPTIONS( wxWindow* parent ) :
|
DIALOG_EESCHEMA_OPTIONS::DIALOG_EESCHEMA_OPTIONS( wxWindow* parent ) :
|
||||||
DIALOG_EESCHEMA_OPTIONS_BASE( parent )
|
DIALOG_EESCHEMA_OPTIONS_BASE( parent )
|
||||||
{
|
{
|
||||||
m_choiceUnits->SetFocus();
|
m_choiceUnits->SetFocus();
|
||||||
m_sdbSizer1OK->SetDefault();
|
m_sdbSizer1OK->SetDefault();
|
||||||
|
|
||||||
|
// 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 and don't ignore selection events because
|
||||||
|
// they'll be from the user
|
||||||
|
selectedField = 0;
|
||||||
|
selectionValid = false;
|
||||||
|
ignoreSelection = false;
|
||||||
|
|
||||||
|
// Make sure we select the first tab of the options tab page
|
||||||
|
m_notebook1->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 );
|
||||||
|
|
||||||
|
fieldVisibleCheckbox->Connect( wxEVT_KILL_FOCUS,
|
||||||
|
wxFocusEventHandler( DIALOG_EESCHEMA_OPTIONS::OnEditControlKillFocus ), NULL, this );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -49,6 +94,7 @@ void DIALOG_EESCHEMA_OPTIONS::SetUnits( const wxArrayString& units, int select )
|
||||||
m_choiceUnits->SetSelection( select );
|
m_choiceUnits->SetSelection( select );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void DIALOG_EESCHEMA_OPTIONS::SetRefIdSeparator( wxChar aSep, wxChar aFirstId)
|
void DIALOG_EESCHEMA_OPTIONS::SetRefIdSeparator( wxChar aSep, wxChar aFirstId)
|
||||||
{
|
{
|
||||||
// m_choiceSeparatorRefId displays one of
|
// m_choiceSeparatorRefId displays one of
|
||||||
|
@ -101,107 +147,196 @@ void DIALOG_EESCHEMA_OPTIONS::GetRefIdSeparator( int& aSep, int& aFirstId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void DIALOG_EESCHEMA_OPTIONS::SetGridSizes( const GRIDS& grid_sizes, int grid_id )
|
void DIALOG_EESCHEMA_OPTIONS::SetGridSizes( const GRIDS& aGridSizes, int aGridId )
|
||||||
{
|
{
|
||||||
wxASSERT( grid_sizes.size() > 0 );
|
wxASSERT( aGridSizes.size() > 0 );
|
||||||
|
|
||||||
int select = wxNOT_FOUND;
|
int select = wxNOT_FOUND;
|
||||||
|
|
||||||
for( size_t i = 0; i < grid_sizes.size(); i++ )
|
for( size_t i = 0; i < aGridSizes.size(); i++ )
|
||||||
{
|
{
|
||||||
wxString tmp;
|
wxString tmp;
|
||||||
tmp.Printf( wxT( "%0.1f" ), grid_sizes[i].m_Size.x );
|
tmp.Printf( wxT( "%0.1f" ), aGridSizes[i].m_Size.x );
|
||||||
m_choiceGridSize->Append( tmp );
|
m_choiceGridSize->Append( tmp );
|
||||||
|
|
||||||
if( grid_sizes[i].m_Id == grid_id )
|
if( aGridSizes[i].m_Id == aGridId )
|
||||||
select = (int) i;
|
select = (int) i;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_choiceGridSize->SetSelection( select );
|
m_choiceGridSize->SetSelection( select );
|
||||||
}
|
}
|
||||||
|
|
||||||
void DIALOG_EESCHEMA_OPTIONS::SetFieldName( int aNdx, wxString aName )
|
|
||||||
|
void DIALOG_EESCHEMA_OPTIONS::RefreshTemplateFieldView( void )
|
||||||
{
|
{
|
||||||
switch( aNdx )
|
// Delete all items in the template field list control and add all of the
|
||||||
|
// current template fields
|
||||||
|
templateFieldListCtrl->DeleteAllItems();
|
||||||
|
|
||||||
|
// Loop through the template fieldnames and add then to the list control
|
||||||
|
for( TEMPLATE_FIELDNAMES::iterator fld = templateFields.begin();
|
||||||
|
fld != templateFields.end(); ++fld )
|
||||||
{
|
{
|
||||||
case 0:
|
long itemindex = templateFieldListCtrl->InsertItem(
|
||||||
m_fieldName1->SetValue( aName );
|
templateFieldListCtrl->GetItemCount(), fld->m_Name );
|
||||||
break;
|
|
||||||
|
|
||||||
case 1:
|
templateFieldListCtrl->SetItem( itemindex, 1, fld->m_Value );
|
||||||
m_fieldName2->SetValue( aName );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2:
|
templateFieldListCtrl->SetItem( itemindex, 2,
|
||||||
m_fieldName3->SetValue( aName );
|
( fld->m_Visible == true ) ? _( "Visible" ) : _( "Hidden" ) );
|
||||||
break;
|
|
||||||
|
|
||||||
case 3:
|
|
||||||
m_fieldName4->SetValue( aName );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 4:
|
|
||||||
m_fieldName5->SetValue( aName );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 5:
|
|
||||||
m_fieldName6->SetValue( aName );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 6:
|
|
||||||
m_fieldName7->SetValue( aName );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 7:
|
|
||||||
m_fieldName8->SetValue( aName );
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString DIALOG_EESCHEMA_OPTIONS::GetFieldName( int aNdx )
|
|
||||||
|
void DIALOG_EESCHEMA_OPTIONS::SelectTemplateField( int aItem )
|
||||||
{
|
{
|
||||||
wxString nme;
|
// Only select valid items!
|
||||||
|
if( !selectionValid || ( aItem >= templateFieldListCtrl->GetItemCount() ) )
|
||||||
|
return;
|
||||||
|
|
||||||
switch ( aNdx )
|
// Make sure we select the new item
|
||||||
|
ignoreSelection = true;
|
||||||
|
templateFieldListCtrl->SetItemState( aItem, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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( selectionValid && ( selectedField < templateFields.size() ) )
|
||||||
|
copyPanelToSelected();
|
||||||
|
|
||||||
|
// 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;
|
||||||
|
selectionValid = true;
|
||||||
|
|
||||||
|
// Update the display to reflect the new data
|
||||||
|
RefreshTemplateFieldView();
|
||||||
|
copySelectedToPanel();
|
||||||
|
|
||||||
|
// Make sure we select the new item
|
||||||
|
SelectTemplateField( selectedField );
|
||||||
|
|
||||||
|
event.Skip();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DIALOG_EESCHEMA_OPTIONS::OnDeleteButtonClick( wxCommandEvent& event )
|
||||||
|
{
|
||||||
|
// If there is currently a valid selection, delete the template field from
|
||||||
|
// the template field list
|
||||||
|
if( selectionValid && ( selectedField < templateFields.size() ) )
|
||||||
{
|
{
|
||||||
case 0:
|
// Delete the fieldname from the fieldname list
|
||||||
nme = m_fieldName1->GetValue();
|
templateFields.erase( templateFields.begin() + selectedField );
|
||||||
break;
|
|
||||||
|
|
||||||
case 1:
|
// If the selectedField is still not in the templateField range now,
|
||||||
nme = m_fieldName2->GetValue();
|
// make sure we stay in range and when there are no fields present
|
||||||
break;
|
// move to -1
|
||||||
|
if( selectedField >= templateFields.size() )
|
||||||
|
selectedField = templateFields.size() - 1;
|
||||||
|
|
||||||
case 2:
|
// Update the display to reflect the new data
|
||||||
nme = m_fieldName3->GetValue();
|
RefreshTemplateFieldView();
|
||||||
break;
|
copySelectedToPanel();
|
||||||
|
|
||||||
case 3:
|
// Make sure after the refresh that the selected item is correct
|
||||||
nme = m_fieldName4->GetValue();
|
SelectTemplateField( selectedField );
|
||||||
break;
|
|
||||||
|
|
||||||
case 4:
|
|
||||||
nme = m_fieldName5->GetValue();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 5:
|
|
||||||
nme = m_fieldName6->GetValue();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 6:
|
|
||||||
nme = m_fieldName7->GetValue();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 7:
|
|
||||||
nme = m_fieldName8->GetValue();
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nme;
|
event.Skip();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DIALOG_EESCHEMA_OPTIONS::copyPanelToSelected( void )
|
||||||
|
{
|
||||||
|
if( !selectionValid || ( selectedField >= templateFields.size() ) )
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DIALOG_EESCHEMA_OPTIONS::OnEditControlKillFocus( wxFocusEvent& event )
|
||||||
|
{
|
||||||
|
// Update the data + UI
|
||||||
|
copyPanelToSelected();
|
||||||
|
RefreshTemplateFieldView();
|
||||||
|
SelectTemplateField( selectedField );
|
||||||
|
|
||||||
|
event.Skip();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DIALOG_EESCHEMA_OPTIONS::copySelectedToPanel( void )
|
||||||
|
{
|
||||||
|
if( !selectionValid || ( selectedField >= templateFields.size() ) )
|
||||||
|
return;
|
||||||
|
|
||||||
|
// 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 );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DIALOG_EESCHEMA_OPTIONS::OnTemplateFieldSelected( wxListEvent& event )
|
||||||
|
{
|
||||||
|
// If the class has generated the event and asked to ignore it, honour that and reset the
|
||||||
|
// ignore flag for the next user event.
|
||||||
|
if( ignoreSelection )
|
||||||
|
{
|
||||||
|
ignoreSelection = false;
|
||||||
|
event.Skip();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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();
|
||||||
|
selectionValid = true;
|
||||||
|
copySelectedToPanel();
|
||||||
|
|
||||||
|
// Refresh the template field view - this deletes all fields and then
|
||||||
|
// re-fills the entire data grid. It then re-selects the currently
|
||||||
|
// selected field. This will be recursive, so disable this event while
|
||||||
|
// we refresh the view
|
||||||
|
RefreshTemplateFieldView();
|
||||||
|
|
||||||
|
// If an item was selected, make sure we re-select it, or at least the
|
||||||
|
// same position in the grid
|
||||||
|
SelectTemplateField( selectedField );
|
||||||
|
|
||||||
|
event.Skip();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DIALOG_EESCHEMA_OPTIONS::SetTemplateFields( const TEMPLATE_FIELDNAMES& aFields )
|
||||||
|
{
|
||||||
|
// Set the template fields object
|
||||||
|
templateFields = aFields;
|
||||||
|
|
||||||
|
// Refresh the view
|
||||||
|
RefreshTemplateFieldView();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TEMPLATE_FIELDNAMES DIALOG_EESCHEMA_OPTIONS::GetTemplateFields( void )
|
||||||
|
{
|
||||||
|
return templateFields;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,100 +32,400 @@
|
||||||
#define __dialog_eeschema_options__
|
#define __dialog_eeschema_options__
|
||||||
|
|
||||||
#include <dialog_eeschema_options_base.h>
|
#include <dialog_eeschema_options_base.h>
|
||||||
|
#include <template_fieldnames.h>
|
||||||
|
|
||||||
class DIALOG_EESCHEMA_OPTIONS : public DIALOG_EESCHEMA_OPTIONS_BASE
|
class DIALOG_EESCHEMA_OPTIONS : public DIALOG_EESCHEMA_OPTIONS_BASE
|
||||||
{
|
{
|
||||||
|
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 */
|
||||||
|
size_t selectedField;
|
||||||
|
|
||||||
|
/** @brief The selectedField value is only valid when this bool is set to true */
|
||||||
|
bool selectionValid;
|
||||||
|
|
||||||
|
/** @brief Set to true internally when OnTemplateFieldSelected() an event needs to be
|
||||||
|
ignored */
|
||||||
|
bool ignoreSelection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function OnAddButtonClick
|
||||||
|
* Process the wxWidgets @a event produced when the user presses the Add buton for the
|
||||||
|
* template fieldnames control
|
||||||
|
*
|
||||||
|
* @param event The wxWidgets produced event information
|
||||||
|
*
|
||||||
|
* Adds a new template fieldname (with default values) to the template fieldnames data
|
||||||
|
*/
|
||||||
|
|
||||||
|
void OnAddButtonClick( wxCommandEvent& event );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function OnDeleteButtonClick
|
||||||
|
* Process the wxWidgets @a event produced when the user presses the Delete button for the
|
||||||
|
* template fieldnames control
|
||||||
|
*
|
||||||
|
* @param event The wxWidgets produced event information
|
||||||
|
*
|
||||||
|
* Deletes the selected template fieldname from the template fieldnames data
|
||||||
|
*/
|
||||||
|
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
|
||||||
|
*/
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
void SelectTemplateField( int aItem );
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* Public constructor
|
||||||
|
*
|
||||||
|
* @param parent The dialog's parent
|
||||||
|
*/
|
||||||
DIALOG_EESCHEMA_OPTIONS( wxWindow* parent );
|
DIALOG_EESCHEMA_OPTIONS( wxWindow* parent );
|
||||||
|
|
||||||
void SetUnits( const wxArrayString& units, int select = 0 );
|
/**
|
||||||
|
* Function GetUnitsSelection
|
||||||
|
* Returns the currently selected grid size in the dialog
|
||||||
|
*/
|
||||||
int GetUnitsSelection( void ) { return m_choiceUnits->GetSelection(); }
|
int GetUnitsSelection( void ) { return m_choiceUnits->GetSelection(); }
|
||||||
|
|
||||||
void SetGridSelection( int select ) { m_choiceGridSize->SetSelection( select ); }
|
/**
|
||||||
|
* Function SetUnits
|
||||||
|
* Set the unit options
|
||||||
|
*
|
||||||
|
* @param units The array of strings representing the unit options
|
||||||
|
* @param select The unit to select from the unit options
|
||||||
|
*
|
||||||
|
* Appends the @a units options to the list of unit options and selects the @a aSelect option
|
||||||
|
*/
|
||||||
|
void SetUnits( const wxArrayString& units, int aSelect = 0 );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function GetGridSelection
|
||||||
|
* Returns the curent grid size selected in the dialog
|
||||||
|
*/
|
||||||
int GetGridSelection( void ) { return m_choiceGridSize->GetSelection(); }
|
int GetGridSelection( void ) { return m_choiceGridSize->GetSelection(); }
|
||||||
void SetGridSizes( const GRIDS& grid_sizes, int grid_id );
|
|
||||||
|
|
||||||
void SetBusWidth( int aWidth )
|
/**
|
||||||
{
|
* Function SetGridSizes
|
||||||
m_spinBusWidth->SetValue( aWidth );
|
* Sets the available grid size choices @a aGridSizes and selectd the current option @a aGridId
|
||||||
}
|
*
|
||||||
|
* @param aGridSizes The grid sizes that are able to be chosen from
|
||||||
|
* @param aGridId The grid size to select from the grid size options
|
||||||
|
*/
|
||||||
|
void SetGridSizes( const GRIDS& aGridSizes, int aGridId );
|
||||||
|
|
||||||
int GetBusWidth( void )
|
/**
|
||||||
{
|
* Function GetBusWidth
|
||||||
return m_spinBusWidth->GetValue();
|
* Get the current bus width setting from the dialog
|
||||||
}
|
*/
|
||||||
|
int GetBusWidth( void ) { return m_spinBusWidth->GetValue(); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetBusWidth
|
||||||
|
* Sets the bus width setting in the dialog
|
||||||
|
*
|
||||||
|
* @param aWidth The bus width to set the dialog edit spinbox with
|
||||||
|
*/
|
||||||
|
void SetBusWidth( int aWidth ) { m_spinBusWidth->SetValue( aWidth ); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetLineWidth
|
||||||
|
* Sets the current LineWidth value in the dialog
|
||||||
|
* @param aWidth The line width to set in the dialog
|
||||||
|
*/
|
||||||
void SetLineWidth( int aWidth ) { m_spinLineWidth->SetValue( aWidth ); }
|
void SetLineWidth( int aWidth ) { m_spinLineWidth->SetValue( aWidth ); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function GetLineWidth
|
||||||
|
* Returns the current LineWidth value from the dialog
|
||||||
|
*/
|
||||||
int GetLineWidth( void ) { return m_spinLineWidth->GetValue(); }
|
int GetLineWidth( void ) { return m_spinLineWidth->GetValue(); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetTextSize
|
||||||
|
* Sets the current default TextSize value in the dialog
|
||||||
|
* @param text_size The text size to set in the dialog
|
||||||
|
*/
|
||||||
void SetTextSize( int text_size ) { m_spinTextSize->SetValue( text_size ); }
|
void SetTextSize( int text_size ) { m_spinTextSize->SetValue( text_size ); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function GetTextSize
|
||||||
|
* Returns the current default TextSize value from the dialog
|
||||||
|
*/
|
||||||
int GetTextSize( void ) { return m_spinTextSize->GetValue(); }
|
int GetTextSize( void ) { return m_spinTextSize->GetValue(); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetRepeatHorizontal
|
||||||
|
* Sets the current RepeatHorizontal displacement value in the dialog
|
||||||
|
* @param displacement The displacement to set in the dialog
|
||||||
|
*/
|
||||||
void SetRepeatHorizontal( int displacement )
|
void SetRepeatHorizontal( int displacement )
|
||||||
{
|
{
|
||||||
m_spinRepeatHorizontal->SetValue( displacement );
|
m_spinRepeatHorizontal->SetValue( displacement );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function GetRepeatHorizontal
|
||||||
|
* Returns the current RepeatHorizontal displacement value from the dialog
|
||||||
|
*/
|
||||||
int GetRepeatHorizontal( void ) { return m_spinRepeatHorizontal->GetValue(); }
|
int GetRepeatHorizontal( void ) { return m_spinRepeatHorizontal->GetValue(); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetRepeatVertical
|
||||||
|
* Sets the current RepeatVertical displacement value in the dialog
|
||||||
|
* @param displacement The displacement to set in the dialog
|
||||||
|
*/
|
||||||
void SetRepeatVertical( int displacement ) { m_spinRepeatVertical->SetValue( displacement ); }
|
void SetRepeatVertical( int displacement ) { m_spinRepeatVertical->SetValue( displacement ); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function GetRepeatVertical
|
||||||
|
* Returns the current RepeatVertical displacement value from the dialog
|
||||||
|
*/
|
||||||
int GetRepeatVertical( void ) { return m_spinRepeatVertical->GetValue(); }
|
int GetRepeatVertical( void ) { return m_spinRepeatVertical->GetValue(); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetRepeatLabel
|
||||||
|
* Sets the current RepeatLabel increment value in the dialog
|
||||||
|
* @param increment The increment to set in the dialog
|
||||||
|
*/
|
||||||
void SetRepeatLabel( int increment ) { m_spinRepeatLabel->SetValue( increment ); }
|
void SetRepeatLabel( int increment ) { m_spinRepeatLabel->SetValue( increment ); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function GetRepeatLabel
|
||||||
|
* Returns the current RepeatLabel increment value from the dialog
|
||||||
|
*/
|
||||||
int GetRepeatLabel( void ) { return m_spinRepeatLabel->GetValue(); }
|
int GetRepeatLabel( void ) { return m_spinRepeatLabel->GetValue(); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetAutoSaveInterval
|
||||||
|
* Sets the current AutoSaveInterval value in the dialog
|
||||||
|
* @param aInterval The interval to set in the dialog
|
||||||
|
*/
|
||||||
void SetAutoSaveInterval( int aInterval ) { m_spinAutoSaveInterval->SetValue( aInterval ); }
|
void SetAutoSaveInterval( int aInterval ) { m_spinAutoSaveInterval->SetValue( aInterval ); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function GetAutoSaveInterval
|
||||||
|
* Returns the current AutoSaveInterval value from the dialog
|
||||||
|
*/
|
||||||
int GetAutoSaveInterval() const { return m_spinAutoSaveInterval->GetValue(); }
|
int GetAutoSaveInterval() const { return m_spinAutoSaveInterval->GetValue(); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetRefIdSeparator
|
||||||
|
* Sets the current RefIdSeparator value in the dialog
|
||||||
|
* @param aSep The seperator to use between the reference and the part ID
|
||||||
|
* @param aFirstId The first part ID, currently either 'A' or '1'
|
||||||
|
*/
|
||||||
void SetRefIdSeparator( wxChar aSep, wxChar aFirstId);
|
void SetRefIdSeparator( wxChar aSep, wxChar aFirstId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function GetRefIdSeparator
|
||||||
|
* Returns the current RefIdSeparator value from the dialog
|
||||||
|
* @param aSep The OUTPUT seperator value
|
||||||
|
* @param aFirstId The OUTPUT reference first ID
|
||||||
|
*/
|
||||||
void GetRefIdSeparator( int& aSep, int& aFirstId);
|
void GetRefIdSeparator( int& aSep, int& aFirstId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetShowGrid
|
||||||
|
* Sets the current ShowGrid value in the dialog
|
||||||
|
* @param show The ShowGrid value to set in the dialog
|
||||||
|
*/
|
||||||
void SetShowGrid( bool show ) { m_checkShowGrid->SetValue( show ); }
|
void SetShowGrid( bool show ) { m_checkShowGrid->SetValue( show ); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function GetShowGrid
|
||||||
|
* Returns the current ShowGrid value from the dialog
|
||||||
|
*/
|
||||||
bool GetShowGrid( void ) { return m_checkShowGrid->GetValue(); }
|
bool GetShowGrid( void ) { return m_checkShowGrid->GetValue(); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetShowHiddenPins
|
||||||
|
* Sets the current ShowHiddenPins value in the dialog
|
||||||
|
* @param show The ShowHiddenPins value to set in the dialog
|
||||||
|
*/
|
||||||
void SetShowHiddenPins( bool show ) { m_checkShowHiddenPins->SetValue( show ); }
|
void SetShowHiddenPins( bool show ) { m_checkShowHiddenPins->SetValue( show ); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function GetShowHiddenPins
|
||||||
|
* Returns the current ShowHiddenPins value from the dialog
|
||||||
|
*/
|
||||||
bool GetShowHiddenPins( void ) { return m_checkShowHiddenPins->GetValue(); }
|
bool GetShowHiddenPins( void ) { return m_checkShowHiddenPins->GetValue(); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetEnableZoomNoCenter
|
||||||
|
* Sets the current ZoomNoCenter value in the dialog
|
||||||
|
* @param enable The ZoomNoCenter value to set in the dialog
|
||||||
|
*/
|
||||||
void SetEnableZoomNoCenter( bool enable )
|
void SetEnableZoomNoCenter( bool enable )
|
||||||
{
|
{
|
||||||
m_checkEnableZoomNoCenter->SetValue( enable );
|
m_checkEnableZoomNoCenter->SetValue( enable );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function GetEnableZoomNoCenter
|
||||||
|
* Returns the current ZoomNoCenter value from the dialog
|
||||||
|
*/
|
||||||
bool GetEnableZoomNoCenter( void )
|
bool GetEnableZoomNoCenter( void )
|
||||||
{
|
{
|
||||||
return m_checkEnableZoomNoCenter->GetValue();
|
return m_checkEnableZoomNoCenter->GetValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetEnableMiddleButtonPan
|
||||||
|
* Sets the current MiddleButtonPan value in the dialog
|
||||||
|
*
|
||||||
|
* @param enable The boolean value to set the MiddleButtonPan value in the dialog
|
||||||
|
*/
|
||||||
void SetEnableMiddleButtonPan( bool enable )
|
void SetEnableMiddleButtonPan( bool enable )
|
||||||
{
|
{
|
||||||
m_checkEnableMiddleButtonPan->SetValue( enable );
|
m_checkEnableMiddleButtonPan->SetValue( enable );
|
||||||
m_checkMiddleButtonPanLimited->Enable( enable );
|
m_checkMiddleButtonPanLimited->Enable( enable );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function GetEnableMiddleButtonPan
|
||||||
|
* Returns the current MiddleButtonPan setting from the dialog
|
||||||
|
*/
|
||||||
bool GetEnableMiddleButtonPan( void )
|
bool GetEnableMiddleButtonPan( void )
|
||||||
{
|
{
|
||||||
return m_checkEnableMiddleButtonPan->GetValue();
|
return m_checkEnableMiddleButtonPan->GetValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetMiddleButtonPanLimited
|
||||||
|
* Sets the MiddleButtonPanLimited value in the dialog
|
||||||
|
*
|
||||||
|
* @param enable The boolean value to set the MiddleButtonPanLimted value in the dialog
|
||||||
|
*/
|
||||||
void SetMiddleButtonPanLimited( bool enable )
|
void SetMiddleButtonPanLimited( bool enable )
|
||||||
{
|
{
|
||||||
m_checkMiddleButtonPanLimited->SetValue( enable );
|
m_checkMiddleButtonPanLimited->SetValue( enable );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function GetMiddleButtonPanLimited
|
||||||
|
* Returns the MiddleButtonPanLimited setting from the dialog
|
||||||
|
*/
|
||||||
bool GetMiddleButtonPanLimited( void )
|
bool GetMiddleButtonPanLimited( void )
|
||||||
{
|
{
|
||||||
return m_checkMiddleButtonPanLimited->GetValue();
|
return m_checkMiddleButtonPanLimited->GetValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetEnableAutoPan
|
||||||
|
* Sets the AutoPan setting in the dialog
|
||||||
|
*
|
||||||
|
* @param enable The boolean value to set the AutoPan value in the dialog
|
||||||
|
*/
|
||||||
void SetEnableAutoPan( bool enable ) { m_checkAutoPan->SetValue( enable ); }
|
void SetEnableAutoPan( bool enable ) { m_checkAutoPan->SetValue( enable ); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function GetEnableAutoPan
|
||||||
|
* Return the AutoPan setting from the dialog
|
||||||
|
*/
|
||||||
bool GetEnableAutoPan( void ) { return m_checkAutoPan->GetValue(); }
|
bool GetEnableAutoPan( void ) { return m_checkAutoPan->GetValue(); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetEnableHVBusOrientation
|
||||||
|
* Set the HVBusOrientation setting in the dialog
|
||||||
|
*
|
||||||
|
* @param enable The boolean value to set the HVBusOrientation value in the dialog
|
||||||
|
*/
|
||||||
void SetEnableHVBusOrientation( bool enable ) { m_checkHVOrientation->SetValue( enable ); }
|
void SetEnableHVBusOrientation( bool enable ) { m_checkHVOrientation->SetValue( enable ); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function GetEnableHVBusOrientation
|
||||||
|
* Get the HVBusOrientation setting from the dialog
|
||||||
|
*/
|
||||||
bool GetEnableHVBusOrientation( void ) { return m_checkHVOrientation->GetValue(); }
|
bool GetEnableHVBusOrientation( void ) { return m_checkHVOrientation->GetValue(); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function
|
||||||
|
* Set the ShowPageLimits setting in the dialog
|
||||||
|
*/
|
||||||
void SetShowPageLimits( bool show ) { m_checkPageLimits->SetValue( show ); }
|
void SetShowPageLimits( bool show ) { m_checkPageLimits->SetValue( show ); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function
|
||||||
|
* Return the current ShowPageLimits setting from the dialog
|
||||||
|
*/
|
||||||
bool GetShowPageLimits( void ) { return m_checkPageLimits->GetValue(); }
|
bool GetShowPageLimits( void ) { return m_checkPageLimits->GetValue(); }
|
||||||
|
|
||||||
/** Set the field \a aNdx textctrl to \a aName */
|
/**
|
||||||
void SetFieldName( int aNdx, wxString aName );
|
* Function SetTemplateFields
|
||||||
|
* Set the template field data in the dialog
|
||||||
|
*
|
||||||
|
* @param aFields The template fieldnames that the dialog should start with before any editing
|
||||||
|
*/
|
||||||
|
void SetTemplateFields( const TEMPLATE_FIELDNAMES& aFields );
|
||||||
|
|
||||||
/** Get the field \a aNdx name from the fields textctrl */
|
/**
|
||||||
wxString GetFieldName( int aNdx );
|
* Function GetTemplateFields
|
||||||
|
* Get the dialog's template field data
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
TEMPLATE_FIELDNAMES GetTemplateFields( void );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void OnMiddleBtnPanEnbl( wxCommandEvent& event )
|
void OnMiddleBtnPanEnbl( wxCommandEvent& event )
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// C++ code generated with wxFormBuilder (version Jun 5 2014)
|
// C++ code generated with wxFormBuilder (version Jun 6 2014)
|
||||||
// http://www.wxformbuilder.org/
|
// http://www.wxformbuilder.org/
|
||||||
//
|
//
|
||||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||||
|
@ -10,8 +10,13 @@
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE( DIALOG_EESCHEMA_OPTIONS_BASE, DIALOG_SHIM )
|
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_CHOICE( wxID_ANY, DIALOG_EESCHEMA_OPTIONS_BASE::_wxFB_OnChooseUnits )
|
||||||
EVT_CHECKBOX( xwID_ANY, DIALOG_EESCHEMA_OPTIONS_BASE::_wxFB_OnMiddleBtnPanEnbl )
|
EVT_CHECKBOX( xwID_ANY, DIALOG_EESCHEMA_OPTIONS_BASE::_wxFB_OnMiddleBtnPanEnbl )
|
||||||
|
EVT_LIST_ITEM_DESELECTED( wxID_ANY, DIALOG_EESCHEMA_OPTIONS_BASE::_wxFB_OnTemplateFieldDeselected )
|
||||||
|
EVT_LIST_ITEM_SELECTED( wxID_ANY, DIALOG_EESCHEMA_OPTIONS_BASE::_wxFB_OnTemplateFieldSelected )
|
||||||
|
EVT_BUTTON( wxID_ADD_FIELD, DIALOG_EESCHEMA_OPTIONS_BASE::_wxFB_OnAddButtonClick )
|
||||||
|
EVT_BUTTON( wxID_DELETE_FIELD, DIALOG_EESCHEMA_OPTIONS_BASE::_wxFB_OnDeleteButtonClick )
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style )
|
DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style )
|
||||||
|
@ -205,109 +210,54 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx
|
||||||
m_panel1->SetSizer( p1mainSizer );
|
m_panel1->SetSizer( p1mainSizer );
|
||||||
m_panel1->Layout();
|
m_panel1->Layout();
|
||||||
p1mainSizer->Fit( m_panel1 );
|
p1mainSizer->Fit( m_panel1 );
|
||||||
m_notebook1->AddPage( m_panel1, _("General Options"), true );
|
m_notebook1->AddPage( m_panel1, _("General Options"), false );
|
||||||
m_panel2 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
m_panel2 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
||||||
m_panel2->SetToolTip( _("User defined field names for schematic components. ") );
|
m_panel2->SetToolTip( _("User defined field names for schematic components. ") );
|
||||||
|
|
||||||
wxBoxSizer* bSizer6;
|
wxBoxSizer* bSizer6;
|
||||||
bSizer6 = new wxBoxSizer( wxVERTICAL );
|
bSizer6 = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
wxBoxSizer* bSizer8;
|
templateFieldListCtrl = new wxListCtrl( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VRULES );
|
||||||
bSizer8 = new wxBoxSizer( wxVERTICAL );
|
templateFieldListCtrl->SetMinSize( wxSize( 500,-1 ) );
|
||||||
|
|
||||||
m_staticText211 = new wxStaticText( m_panel2, wxID_ANY, _("Please enter fieldnames which you want presented in the component fieldname (property) editors. Names may not include (, ), or \" characters."), wxDefaultPosition, wxDefaultSize, 0 );
|
bSizer6->Add( templateFieldListCtrl, 1, wxALIGN_TOP|wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 8 );
|
||||||
m_staticText211->Wrap( 400 );
|
|
||||||
bSizer8->Add( m_staticText211, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
|
wxStaticBoxSizer* fieldSizer;
|
||||||
|
fieldSizer = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Field Settings") ), wxVERTICAL );
|
||||||
|
|
||||||
|
fieldNameLabel = new wxStaticText( m_panel2, wxID_ANY, _("Name"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
fieldNameLabel->Wrap( -1 );
|
||||||
|
fieldSizer->Add( fieldNameLabel, 0, wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||||
|
|
||||||
|
fieldNameTextCtrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
fieldSizer->Add( fieldNameTextCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
|
||||||
|
|
||||||
|
fieldDefaultValueLabel = new wxStaticText( m_panel2, wxID_ANY, _("Default Value"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
fieldDefaultValueLabel->Wrap( -1 );
|
||||||
|
fieldSizer->Add( fieldDefaultValueLabel, 0, wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||||
|
|
||||||
|
fieldDefaultValueTextCtrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
fieldSizer->Add( fieldDefaultValueTextCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
|
||||||
|
|
||||||
|
fieldVisibleCheckbox = new wxCheckBox( m_panel2, wxID_ANY, _("Visible"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
fieldSizer->Add( fieldVisibleCheckbox, 0, wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
bSizer6->Add( bSizer8, 0, wxEXPAND, 5 );
|
bSizer6->Add( fieldSizer, 0, wxEXPAND, 5 );
|
||||||
|
|
||||||
wxBoxSizer* bSizer7;
|
addFieldButton = new wxButton( m_panel2, wxID_ADD_FIELD, _("Add"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
bSizer7 = new wxBoxSizer( wxVERTICAL );
|
bSizer6->Add( addFieldButton, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
wxFlexGridSizer* fgSizer2;
|
deleteFieldButton = new wxButton( m_panel2, wxID_DELETE_FIELD, _("Delete"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
fgSizer2 = new wxFlexGridSizer( 8, 2, 0, 0 );
|
bSizer6->Add( deleteFieldButton, 0, wxALL|wxEXPAND, 5 );
|
||||||
fgSizer2->AddGrowableCol( 1 );
|
|
||||||
fgSizer2->SetFlexibleDirection( wxHORIZONTAL );
|
|
||||||
fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
|
||||||
|
|
||||||
m_staticText15 = new wxStaticText( m_panel2, wxID_ANY, _("Custom field 1"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_staticText15->Wrap( -1 );
|
|
||||||
fgSizer2->Add( m_staticText15, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 3 );
|
|
||||||
|
|
||||||
m_fieldName1 = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_fieldName1->SetMaxLength( 0 );
|
|
||||||
fgSizer2->Add( m_fieldName1, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 );
|
|
||||||
|
|
||||||
m_staticText161 = new wxStaticText( m_panel2, wxID_ANY, _("Custom field 2"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_staticText161->Wrap( -1 );
|
|
||||||
fgSizer2->Add( m_staticText161, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 3 );
|
|
||||||
|
|
||||||
m_fieldName2 = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_fieldName2->SetMaxLength( 0 );
|
|
||||||
fgSizer2->Add( m_fieldName2, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 );
|
|
||||||
|
|
||||||
m_staticText17 = new wxStaticText( m_panel2, wxID_ANY, _("Custom field 3"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_staticText17->Wrap( -1 );
|
|
||||||
fgSizer2->Add( m_staticText17, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 3 );
|
|
||||||
|
|
||||||
m_fieldName3 = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_fieldName3->SetMaxLength( 0 );
|
|
||||||
fgSizer2->Add( m_fieldName3, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 );
|
|
||||||
|
|
||||||
m_staticText18 = new wxStaticText( m_panel2, wxID_ANY, _("Custom field 4"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_staticText18->Wrap( -1 );
|
|
||||||
fgSizer2->Add( m_staticText18, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 3 );
|
|
||||||
|
|
||||||
m_fieldName4 = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_fieldName4->SetMaxLength( 0 );
|
|
||||||
fgSizer2->Add( m_fieldName4, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 );
|
|
||||||
|
|
||||||
m_staticText19 = new wxStaticText( m_panel2, wxID_ANY, _("Custom field 5"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_staticText19->Wrap( -1 );
|
|
||||||
fgSizer2->Add( m_staticText19, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 3 );
|
|
||||||
|
|
||||||
m_fieldName5 = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_fieldName5->SetMaxLength( 0 );
|
|
||||||
fgSizer2->Add( m_fieldName5, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 );
|
|
||||||
|
|
||||||
m_staticText20 = new wxStaticText( m_panel2, wxID_ANY, _("Custom field 6"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_staticText20->Wrap( -1 );
|
|
||||||
fgSizer2->Add( m_staticText20, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 3 );
|
|
||||||
|
|
||||||
m_fieldName6 = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_fieldName6->SetMaxLength( 0 );
|
|
||||||
fgSizer2->Add( m_fieldName6, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 );
|
|
||||||
|
|
||||||
m_staticText21 = new wxStaticText( m_panel2, wxID_ANY, _("Custom field 7"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_staticText21->Wrap( -1 );
|
|
||||||
fgSizer2->Add( m_staticText21, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 3 );
|
|
||||||
|
|
||||||
m_fieldName7 = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_fieldName7->SetMaxLength( 0 );
|
|
||||||
fgSizer2->Add( m_fieldName7, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 );
|
|
||||||
|
|
||||||
m_staticText22 = new wxStaticText( m_panel2, wxID_ANY, _("Custom field 8"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_staticText22->Wrap( -1 );
|
|
||||||
fgSizer2->Add( m_staticText22, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 3 );
|
|
||||||
|
|
||||||
m_fieldName8 = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_fieldName8->SetMaxLength( 0 );
|
|
||||||
fgSizer2->Add( m_fieldName8, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 );
|
|
||||||
|
|
||||||
|
|
||||||
bSizer7->Add( fgSizer2, 1, wxALIGN_CENTER|wxEXPAND, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
bSizer6->Add( bSizer7, 1, wxALL|wxEXPAND, 12 );
|
|
||||||
|
|
||||||
|
|
||||||
m_panel2->SetSizer( bSizer6 );
|
m_panel2->SetSizer( bSizer6 );
|
||||||
m_panel2->Layout();
|
m_panel2->Layout();
|
||||||
bSizer6->Fit( m_panel2 );
|
bSizer6->Fit( m_panel2 );
|
||||||
m_notebook1->AddPage( m_panel2, _("Template Field Names"), false );
|
m_notebook1->AddPage( m_panel2, _("Template Field Names"), true );
|
||||||
|
|
||||||
bOptionsSizer->Add( m_notebook1, 1, wxEXPAND, 0 );
|
bOptionsSizer->Add( m_notebook1, 1, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_sdbSizer1 = new wxStdDialogButtonSizer();
|
m_sdbSizer1 = new wxStdDialogButtonSizer();
|
||||||
m_sdbSizer1OK = new wxButton( this, wxID_OK );
|
m_sdbSizer1OK = new wxButton( this, wxID_OK );
|
||||||
|
@ -316,7 +266,7 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx
|
||||||
m_sdbSizer1->AddButton( m_sdbSizer1Cancel );
|
m_sdbSizer1->AddButton( m_sdbSizer1Cancel );
|
||||||
m_sdbSizer1->Realize();
|
m_sdbSizer1->Realize();
|
||||||
|
|
||||||
bOptionsSizer->Add( m_sdbSizer1, 0, wxALL|wxEXPAND, 6 );
|
bOptionsSizer->Add( m_sdbSizer1, 0, wxALIGN_BOTTOM|wxALL|wxEXPAND, 6 );
|
||||||
|
|
||||||
|
|
||||||
mainSizer->Add( bOptionsSizer, 1, wxEXPAND, 12 );
|
mainSizer->Add( bOptionsSizer, 1, wxEXPAND, 12 );
|
||||||
|
@ -324,6 +274,7 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx
|
||||||
|
|
||||||
this->SetSizer( mainSizer );
|
this->SetSizer( mainSizer );
|
||||||
this->Layout();
|
this->Layout();
|
||||||
|
mainSizer->Fit( this );
|
||||||
|
|
||||||
this->Centre( wxBOTH );
|
this->Centre( wxBOTH );
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +1,5 @@
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// C++ code generated with wxFormBuilder (version Jun 5 2014)
|
// C++ code generated with wxFormBuilder (version Jun 6 2014)
|
||||||
// http://www.wxformbuilder.org/
|
// http://www.wxformbuilder.org/
|
||||||
//
|
//
|
||||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||||
|
@ -29,9 +29,11 @@ class DIALOG_SHIM;
|
||||||
#include <wx/bitmap.h>
|
#include <wx/bitmap.h>
|
||||||
#include <wx/image.h>
|
#include <wx/image.h>
|
||||||
#include <wx/icon.h>
|
#include <wx/icon.h>
|
||||||
|
#include <wx/listctrl.h>
|
||||||
#include <wx/textctrl.h>
|
#include <wx/textctrl.h>
|
||||||
#include <wx/notebook.h>
|
#include <wx/statbox.h>
|
||||||
#include <wx/button.h>
|
#include <wx/button.h>
|
||||||
|
#include <wx/notebook.h>
|
||||||
#include <wx/dialog.h>
|
#include <wx/dialog.h>
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -45,15 +47,22 @@ class DIALOG_EESCHEMA_OPTIONS_BASE : public DIALOG_SHIM
|
||||||
private:
|
private:
|
||||||
|
|
||||||
// Private event handlers
|
// Private event handlers
|
||||||
|
void _wxFB_OnSize( wxSizeEvent& event ){ OnSize( event ); }
|
||||||
void _wxFB_OnChooseUnits( wxCommandEvent& event ){ OnChooseUnits( event ); }
|
void _wxFB_OnChooseUnits( wxCommandEvent& event ){ OnChooseUnits( event ); }
|
||||||
void _wxFB_OnMiddleBtnPanEnbl( wxCommandEvent& event ){ OnMiddleBtnPanEnbl( event ); }
|
void _wxFB_OnMiddleBtnPanEnbl( wxCommandEvent& event ){ OnMiddleBtnPanEnbl( event ); }
|
||||||
|
void _wxFB_OnTemplateFieldDeselected( wxListEvent& event ){ OnTemplateFieldDeselected( event ); }
|
||||||
|
void _wxFB_OnTemplateFieldSelected( wxListEvent& event ){ OnTemplateFieldSelected( event ); }
|
||||||
|
void _wxFB_OnAddButtonClick( wxCommandEvent& event ){ OnAddButtonClick( event ); }
|
||||||
|
void _wxFB_OnDeleteButtonClick( wxCommandEvent& event ){ OnDeleteButtonClick( event ); }
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
ID_M_SPINAUTOSAVEINTERVAL = 1000,
|
ID_M_SPINAUTOSAVEINTERVAL = 1000,
|
||||||
xwID_ANY
|
xwID_ANY,
|
||||||
|
wxID_ADD_FIELD,
|
||||||
|
wxID_DELETE_FIELD
|
||||||
};
|
};
|
||||||
|
|
||||||
wxNotebook* m_notebook1;
|
wxNotebook* m_notebook1;
|
||||||
|
@ -95,35 +104,31 @@ class DIALOG_EESCHEMA_OPTIONS_BASE : public DIALOG_SHIM
|
||||||
wxCheckBox* m_checkHVOrientation;
|
wxCheckBox* m_checkHVOrientation;
|
||||||
wxCheckBox* m_checkPageLimits;
|
wxCheckBox* m_checkPageLimits;
|
||||||
wxPanel* m_panel2;
|
wxPanel* m_panel2;
|
||||||
wxStaticText* m_staticText211;
|
wxListCtrl* templateFieldListCtrl;
|
||||||
wxStaticText* m_staticText15;
|
wxStaticText* fieldNameLabel;
|
||||||
wxTextCtrl* m_fieldName1;
|
wxTextCtrl* fieldNameTextCtrl;
|
||||||
wxStaticText* m_staticText161;
|
wxStaticText* fieldDefaultValueLabel;
|
||||||
wxTextCtrl* m_fieldName2;
|
wxTextCtrl* fieldDefaultValueTextCtrl;
|
||||||
wxStaticText* m_staticText17;
|
wxCheckBox* fieldVisibleCheckbox;
|
||||||
wxTextCtrl* m_fieldName3;
|
wxButton* addFieldButton;
|
||||||
wxStaticText* m_staticText18;
|
wxButton* deleteFieldButton;
|
||||||
wxTextCtrl* m_fieldName4;
|
|
||||||
wxStaticText* m_staticText19;
|
|
||||||
wxTextCtrl* m_fieldName5;
|
|
||||||
wxStaticText* m_staticText20;
|
|
||||||
wxTextCtrl* m_fieldName6;
|
|
||||||
wxStaticText* m_staticText21;
|
|
||||||
wxTextCtrl* m_fieldName7;
|
|
||||||
wxStaticText* m_staticText22;
|
|
||||||
wxTextCtrl* m_fieldName8;
|
|
||||||
wxStdDialogButtonSizer* m_sdbSizer1;
|
wxStdDialogButtonSizer* m_sdbSizer1;
|
||||||
wxButton* m_sdbSizer1OK;
|
wxButton* m_sdbSizer1OK;
|
||||||
wxButton* m_sdbSizer1Cancel;
|
wxButton* m_sdbSizer1Cancel;
|
||||||
|
|
||||||
// Virtual event handlers, overide them in your derived class
|
// Virtual event handlers, overide them in your derived class
|
||||||
|
virtual void OnSize( wxSizeEvent& event ) { event.Skip(); }
|
||||||
virtual void OnChooseUnits( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnChooseUnits( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void OnMiddleBtnPanEnbl( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnMiddleBtnPanEnbl( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
virtual void OnTemplateFieldDeselected( wxListEvent& event ) { event.Skip(); }
|
||||||
|
virtual void OnTemplateFieldSelected( wxListEvent& event ) { event.Skip(); }
|
||||||
|
virtual void OnAddButtonClick( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
virtual void OnDeleteButtonClick( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Schematic Editor Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 508,583 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Schematic Editor Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE );
|
||||||
~DIALOG_EESCHEMA_OPTIONS_BASE();
|
~DIALOG_EESCHEMA_OPTIONS_BASE();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -323,7 +323,7 @@ void SCH_EDIT_FRAME::OnPreferencesOptions( wxCommandEvent& event )
|
||||||
dlg.SetRepeatVertical( g_RepeatStep.y );
|
dlg.SetRepeatVertical( g_RepeatStep.y );
|
||||||
dlg.SetRepeatLabel( g_RepeatDeltaLabel );
|
dlg.SetRepeatLabel( g_RepeatDeltaLabel );
|
||||||
dlg.SetAutoSaveInterval( GetAutoSaveInterval() / 60 );
|
dlg.SetAutoSaveInterval( GetAutoSaveInterval() / 60 );
|
||||||
dlg.SetRefIdSeparator( LIB_PART::GetSubpartIdSeparator( ),
|
dlg.SetRefIdSeparator( LIB_PART::GetSubpartIdSeparator(),
|
||||||
LIB_PART::GetSubpartFirstId() );
|
LIB_PART::GetSubpartFirstId() );
|
||||||
|
|
||||||
dlg.SetShowGrid( IsGridVisible() );
|
dlg.SetShowGrid( IsGridVisible() );
|
||||||
|
@ -337,15 +337,7 @@ void SCH_EDIT_FRAME::OnPreferencesOptions( wxCommandEvent& event )
|
||||||
dlg.Layout();
|
dlg.Layout();
|
||||||
dlg.Fit();
|
dlg.Fit();
|
||||||
dlg.SetMinSize( dlg.GetSize() );
|
dlg.SetMinSize( dlg.GetSize() );
|
||||||
|
dlg.SetTemplateFields( m_TemplateFieldNames.GetTemplateFieldNames() );
|
||||||
const TEMPLATE_FIELDNAMES& tfnames = m_TemplateFieldNames.GetTemplateFieldNames();
|
|
||||||
|
|
||||||
for( unsigned i=0; i<tfnames.size(); ++i )
|
|
||||||
{
|
|
||||||
DBG(printf("dlg.SetFieldName(%d, '%s')\n", i, TO_UTF8( tfnames[i].m_Name) );)
|
|
||||||
|
|
||||||
dlg.SetFieldName( i, tfnames[i].m_Name );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( dlg.ShowModal() == wxID_CANCEL )
|
if( dlg.ShowModal() == wxID_CANCEL )
|
||||||
return;
|
return;
|
||||||
|
@ -394,26 +386,17 @@ void SCH_EDIT_FRAME::OnPreferencesOptions( wxCommandEvent& event )
|
||||||
SetForceHVLines( dlg.GetEnableHVBusOrientation() );
|
SetForceHVLines( dlg.GetEnableHVBusOrientation() );
|
||||||
m_showPageLimits = dlg.GetShowPageLimits();
|
m_showPageLimits = dlg.GetShowPageLimits();
|
||||||
|
|
||||||
wxString templateFieldName;
|
// Delete all template fieldnames and then restore them using the template field data from
|
||||||
|
// the options dialog
|
||||||
// @todo this will change when the template field editor is redone to
|
|
||||||
// look like the component field property editor, showing visibility and value also
|
|
||||||
|
|
||||||
DeleteAllTemplateFieldNames();
|
DeleteAllTemplateFieldNames();
|
||||||
|
TEMPLATE_FIELDNAMES newFieldNames = dlg.GetTemplateFields();
|
||||||
|
|
||||||
for( int i=0; i<8; ++i ) // no. fields in this dialog window
|
for( TEMPLATE_FIELDNAMES::iterator dlgfld = newFieldNames.begin();
|
||||||
|
dlgfld != newFieldNames.end(); ++dlgfld )
|
||||||
{
|
{
|
||||||
templateFieldName = dlg.GetFieldName( i );
|
TEMPLATE_FIELDNAME fld = *dlgfld;
|
||||||
|
|
||||||
if( !templateFieldName.IsEmpty() )
|
|
||||||
{
|
|
||||||
TEMPLATE_FIELDNAME fld( dlg.GetFieldName( i ) );
|
|
||||||
|
|
||||||
// @todo set visibility and value also from a better editor
|
|
||||||
|
|
||||||
AddTemplateFieldName( fld );
|
AddTemplateFieldName( fld );
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
SaveSettings( config() ); // save values shared by eeschema applications.
|
SaveSettings( config() ); // save values shared by eeschema applications.
|
||||||
|
|
||||||
|
@ -728,11 +711,8 @@ void SCH_EDIT_FRAME::SaveSettings( wxConfigBase* aCfg )
|
||||||
|
|
||||||
// Save template fieldnames
|
// Save template fieldnames
|
||||||
STRING_FORMATTER sf;
|
STRING_FORMATTER sf;
|
||||||
|
|
||||||
m_TemplateFieldNames.Format( &sf, 0 );
|
m_TemplateFieldNames.Format( &sf, 0 );
|
||||||
|
|
||||||
DBG(printf("saving formatted template fieldnames:'%s'\n", sf.GetString().c_str() );)
|
|
||||||
|
|
||||||
wxString record = FROM_UTF8( sf.GetString().c_str() );
|
wxString record = FROM_UTF8( sf.GetString().c_str() );
|
||||||
record.Replace( wxT("\n"), wxT(""), true ); // strip all newlines
|
record.Replace( wxT("\n"), wxT(""), true ); // strip all newlines
|
||||||
record.Replace( wxT(" "), wxT(" "), true ); // double space to single
|
record.Replace( wxT(" "), wxT(" "), true ); // double space to single
|
||||||
|
|
|
@ -62,6 +62,13 @@ struct TEMPLATE_FIELDNAME
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEMPLATE_FIELDNAME( const TEMPLATE_FIELDNAME& ref )
|
||||||
|
{
|
||||||
|
m_Name = ref.m_Name;
|
||||||
|
m_Value = ref.m_Value;
|
||||||
|
m_Visible = ref.m_Visible;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Format
|
* Function Format
|
||||||
* serializes this object out as text into the given OUTPUTFORMATTER.
|
* serializes this object out as text into the given OUTPUTFORMATTER.
|
||||||
|
|
Loading…
Reference in New Issue