done with "edit component in schematic editor"
This commit is contained in:
parent
226648f67a
commit
4f1c146957
|
@ -8,7 +8,7 @@ email address.
|
||||||
2008-Nov-25 UPDATE Dick Hollenbeck <dick@softplc.com>
|
2008-Nov-25 UPDATE Dick Hollenbeck <dick@softplc.com>
|
||||||
================================================================================
|
================================================================================
|
||||||
+eeschema
|
+eeschema
|
||||||
edit component in schematic editor. works except for field add, remove, move up.
|
edit component in schematic editor. works pretty well, I'm done.
|
||||||
|
|
||||||
|
|
||||||
2008-Nov-24 UPDATE Dick Hollenbeck <dick@softplc.com>
|
2008-Nov-24 UPDATE Dick Hollenbeck <dick@softplc.com>
|
||||||
|
|
|
@ -52,6 +52,7 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC( wxWindow
|
||||||
m_Parent = (WinEDA_SchematicFrame*) parent;
|
m_Parent = (WinEDA_SchematicFrame*) parent;
|
||||||
|
|
||||||
m_LibEntry = 0;
|
m_LibEntry = 0;
|
||||||
|
m_skipCopyFromPanel = false;
|
||||||
|
|
||||||
wxListItem columnLabel;
|
wxListItem columnLabel;
|
||||||
|
|
||||||
|
@ -86,8 +87,11 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnListItemDeselected( wxListEvent& even
|
||||||
{
|
{
|
||||||
D(printf("OnListItemDeselected()\n");)
|
D(printf("OnListItemDeselected()\n");)
|
||||||
|
|
||||||
if( !copyPanelToSelectedField() )
|
if( !m_skipCopyFromPanel )
|
||||||
event.Skip(); // do not go to the next row
|
{
|
||||||
|
if( !copyPanelToSelectedField() )
|
||||||
|
event.Skip(); // do not go to the next row
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -229,6 +233,89 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnOKButtonClick( wxCommandEvent& event
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::addFieldButtonHandler( wxCommandEvent& event )
|
||||||
|
{
|
||||||
|
// in case m_FieldsBuf[REFERENCE].m_Orient has changed on screen only, grab
|
||||||
|
// screen contents.
|
||||||
|
if( !copyPanelToSelectedField() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
unsigned fieldNdx = m_FieldsBuf.size();
|
||||||
|
|
||||||
|
SCH_CMP_FIELD blank( wxPoint(), fieldNdx, m_Cmp );
|
||||||
|
|
||||||
|
blank.m_Orient = m_FieldsBuf[REFERENCE].m_Orient;
|
||||||
|
|
||||||
|
m_FieldsBuf.push_back( blank );
|
||||||
|
|
||||||
|
setRowItem( fieldNdx, m_FieldsBuf[fieldNdx] );
|
||||||
|
|
||||||
|
m_skipCopyFromPanel = true;
|
||||||
|
setSelectedFieldNdx( fieldNdx );
|
||||||
|
m_skipCopyFromPanel = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::deleteFieldButtonHandler( wxCommandEvent& event )
|
||||||
|
{
|
||||||
|
unsigned fieldNdx = getSelectedFieldNdx();
|
||||||
|
|
||||||
|
if( fieldNdx >= m_FieldsBuf.size() ) // traps the -1 case too
|
||||||
|
return;
|
||||||
|
|
||||||
|
if( fieldNdx < FIELD1 )
|
||||||
|
{
|
||||||
|
wxBell();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_FieldsBuf.erase( m_FieldsBuf.begin() + fieldNdx );
|
||||||
|
fieldListCtrl->DeleteItem( fieldNdx );
|
||||||
|
|
||||||
|
if( fieldNdx >= m_FieldsBuf.size() )
|
||||||
|
--fieldNdx;
|
||||||
|
|
||||||
|
m_skipCopyFromPanel = true;
|
||||||
|
setSelectedFieldNdx( fieldNdx );
|
||||||
|
m_skipCopyFromPanel = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC:: moveUpButtonHandler( wxCommandEvent& event )
|
||||||
|
{
|
||||||
|
unsigned fieldNdx = getSelectedFieldNdx();
|
||||||
|
|
||||||
|
if( fieldNdx >= m_FieldsBuf.size() ) // traps the -1 case too
|
||||||
|
return;
|
||||||
|
|
||||||
|
if( fieldNdx <= FIELD1 )
|
||||||
|
{
|
||||||
|
wxBell();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( !copyPanelToSelectedField() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
// swap the fieldNdx field with the one before it, in both the vector
|
||||||
|
// and in the fieldListCtrl
|
||||||
|
SCH_CMP_FIELD tmp = m_FieldsBuf[fieldNdx-1];
|
||||||
|
|
||||||
|
D(printf("tmp.m_Text=\"%s\" tmp.m_Name=\"%s\"\n",
|
||||||
|
CONV_TO_UTF8(tmp.m_Text), CONV_TO_UTF8(tmp.m_Name) ); )
|
||||||
|
|
||||||
|
m_FieldsBuf[fieldNdx-1] = m_FieldsBuf[fieldNdx];
|
||||||
|
setRowItem( fieldNdx-1, m_FieldsBuf[fieldNdx] );
|
||||||
|
|
||||||
|
m_FieldsBuf[fieldNdx] = tmp;
|
||||||
|
setRowItem( fieldNdx, tmp );
|
||||||
|
|
||||||
|
m_skipCopyFromPanel = true;
|
||||||
|
setSelectedFieldNdx( fieldNdx - 1 );
|
||||||
|
m_skipCopyFromPanel = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::setSelectedFieldNdx( int aFieldNdx )
|
void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::setSelectedFieldNdx( int aFieldNdx )
|
||||||
{
|
{
|
||||||
/* deselect old selection, but I think this is done by single selection flag within fieldListCtrl
|
/* deselect old selection, but I think this is done by single selection flag within fieldListCtrl
|
||||||
|
|
|
@ -620,7 +620,7 @@
|
||||||
<property name="window_extra_style"></property>
|
<property name="window_extra_style"></property>
|
||||||
<property name="window_name"></property>
|
<property name="window_name"></property>
|
||||||
<property name="window_style"></property>
|
<property name="window_style"></property>
|
||||||
<event name="OnButtonClick"></event>
|
<event name="OnButtonClick">addFieldButtonHandler</event>
|
||||||
<event name="OnChar"></event>
|
<event name="OnChar"></event>
|
||||||
<event name="OnEnterWindow"></event>
|
<event name="OnEnterWindow"></event>
|
||||||
<event name="OnEraseBackground"></event>
|
<event name="OnEraseBackground"></event>
|
||||||
|
@ -676,7 +676,7 @@
|
||||||
<property name="window_extra_style"></property>
|
<property name="window_extra_style"></property>
|
||||||
<property name="window_name"></property>
|
<property name="window_name"></property>
|
||||||
<property name="window_style"></property>
|
<property name="window_style"></property>
|
||||||
<event name="OnButtonClick"></event>
|
<event name="OnButtonClick">deleteFieldButtonHandler</event>
|
||||||
<event name="OnChar"></event>
|
<event name="OnChar"></event>
|
||||||
<event name="OnEnterWindow"></event>
|
<event name="OnEnterWindow"></event>
|
||||||
<event name="OnEraseBackground"></event>
|
<event name="OnEraseBackground"></event>
|
||||||
|
@ -732,7 +732,7 @@
|
||||||
<property name="window_extra_style"></property>
|
<property name="window_extra_style"></property>
|
||||||
<property name="window_name"></property>
|
<property name="window_name"></property>
|
||||||
<property name="window_style"></property>
|
<property name="window_style"></property>
|
||||||
<event name="OnButtonClick"></event>
|
<event name="OnButtonClick">moveUpButtonHandler</event>
|
||||||
<event name="OnChar"></event>
|
<event name="OnChar"></event>
|
||||||
<event name="OnEnterWindow"></event>
|
<event name="OnEnterWindow"></event>
|
||||||
<event name="OnEraseBackground"></event>
|
<event name="OnEraseBackground"></event>
|
||||||
|
|
|
@ -15,6 +15,7 @@ class DIALOG_EDIT_COMPONENT_IN_SCHEMATIC : public DIALOG_EDIT_COMPONENT_IN_SCHEM
|
||||||
WinEDA_SchematicFrame* m_Parent;
|
WinEDA_SchematicFrame* m_Parent;
|
||||||
SCH_COMPONENT* m_Cmp;
|
SCH_COMPONENT* m_Cmp;
|
||||||
EDA_LibComponentStruct* m_LibEntry;
|
EDA_LibComponentStruct* m_LibEntry;
|
||||||
|
bool m_skipCopyFromPanel;
|
||||||
|
|
||||||
static int s_SelectedRow;
|
static int s_SelectedRow;
|
||||||
|
|
||||||
|
@ -53,7 +54,9 @@ class DIALOG_EDIT_COMPONENT_IN_SCHEMATIC : public DIALOG_EDIT_COMPONENT_IN_SCHEM
|
||||||
void OnCancelButtonClick( wxCommandEvent& event );
|
void OnCancelButtonClick( wxCommandEvent& event );
|
||||||
void OnOKButtonClick( wxCommandEvent& event );
|
void OnOKButtonClick( wxCommandEvent& event );
|
||||||
void SetInitCmp( wxCommandEvent& event );
|
void SetInitCmp( wxCommandEvent& event );
|
||||||
|
void addFieldButtonHandler( wxCommandEvent& event );
|
||||||
|
void deleteFieldButtonHandler( wxCommandEvent& event );
|
||||||
|
void moveUpButtonHandler( wxCommandEvent& event );
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -227,6 +227,9 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
|
||||||
// Connect Events
|
// Connect Events
|
||||||
fieldListCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnListItemDeselected ), NULL, this );
|
fieldListCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnListItemDeselected ), NULL, this );
|
||||||
fieldListCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnListItemSelected ), NULL, this );
|
fieldListCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnListItemSelected ), NULL, this );
|
||||||
|
addFieldButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::addFieldButtonHandler ), NULL, this );
|
||||||
|
deleteFieldButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::deleteFieldButtonHandler ), NULL, this );
|
||||||
|
moveUpButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::moveUpButtonHandler ), NULL, this );
|
||||||
defaultsButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::SetInitCmp ), NULL, this );
|
defaultsButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::SetInitCmp ), NULL, this );
|
||||||
stdDialogButtonSizerCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnCancelButtonClick ), NULL, this );
|
stdDialogButtonSizerCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnCancelButtonClick ), NULL, this );
|
||||||
stdDialogButtonSizerOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnOKButtonClick ), NULL, this );
|
stdDialogButtonSizerOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnOKButtonClick ), NULL, this );
|
||||||
|
@ -237,6 +240,9 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::~DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
|
||||||
// Disconnect Events
|
// Disconnect Events
|
||||||
fieldListCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnListItemDeselected ), NULL, this );
|
fieldListCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnListItemDeselected ), NULL, this );
|
||||||
fieldListCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnListItemSelected ), NULL, this );
|
fieldListCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnListItemSelected ), NULL, this );
|
||||||
|
addFieldButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::addFieldButtonHandler ), NULL, this );
|
||||||
|
deleteFieldButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::deleteFieldButtonHandler ), NULL, this );
|
||||||
|
moveUpButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::moveUpButtonHandler ), NULL, this );
|
||||||
defaultsButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::SetInitCmp ), NULL, this );
|
defaultsButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::SetInitCmp ), NULL, this );
|
||||||
stdDialogButtonSizerCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnCancelButtonClick ), NULL, this );
|
stdDialogButtonSizerCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnCancelButtonClick ), NULL, this );
|
||||||
stdDialogButtonSizerOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnOKButtonClick ), NULL, this );
|
stdDialogButtonSizerOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnOKButtonClick ), NULL, this );
|
||||||
|
|
|
@ -69,6 +69,9 @@ class DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP : public wxDialog
|
||||||
// Virtual event handlers, overide them in your derived class
|
// Virtual event handlers, overide them in your derived class
|
||||||
virtual void OnListItemDeselected( wxListEvent& event ){ event.Skip(); }
|
virtual void OnListItemDeselected( wxListEvent& event ){ event.Skip(); }
|
||||||
virtual void OnListItemSelected( wxListEvent& event ){ event.Skip(); }
|
virtual void OnListItemSelected( wxListEvent& event ){ event.Skip(); }
|
||||||
|
virtual void addFieldButtonHandler( wxCommandEvent& event ){ event.Skip(); }
|
||||||
|
virtual void deleteFieldButtonHandler( wxCommandEvent& event ){ event.Skip(); }
|
||||||
|
virtual void moveUpButtonHandler( wxCommandEvent& event ){ event.Skip(); }
|
||||||
virtual void SetInitCmp( wxCommandEvent& event ){ event.Skip(); }
|
virtual void SetInitCmp( wxCommandEvent& event ){ event.Skip(); }
|
||||||
virtual void OnCancelButtonClick( wxCommandEvent& event ){ event.Skip(); }
|
virtual void OnCancelButtonClick( wxCommandEvent& event ){ event.Skip(); }
|
||||||
virtual void OnOKButtonClick( wxCommandEvent& event ){ event.Skip(); }
|
virtual void OnOKButtonClick( wxCommandEvent& event ){ event.Skip(); }
|
||||||
|
|
Loading…
Reference in New Issue