kicad/eeschema/dialog_edit_component_in_sc...

309 lines
11 KiB
C++
Raw Normal View History

/////////////////////////////////////////////////////////////////////////////
// Name: dialog_edit_component_in_schematic.cpp
2008-03-20 01:50:21 +00:00
// Purpose:
// Author: jean-pierre Charras
2008-03-20 01:50:21 +00:00
// Modified by:
// Created: 03/03/2006 15:02:54
2008-03-20 01:50:21 +00:00
// RCS-ID:
// Copyright: License GNU
2008-03-20 01:50:21 +00:00
// Licence:
/////////////////////////////////////////////////////////////////////////////
// Generated by DialogBlocks (unregistered), 03/03/2006 15:02:54
////@begin includes
////@end includes
#include "dialog_edit_component_in_schematic.h"
////@begin XPM images
////@end XPM images
/*!
* WinEDA_ComponentPropertiesFrame type definition
*/
IMPLEMENT_DYNAMIC_CLASS( WinEDA_ComponentPropertiesFrame, wxDialog )
/*!
* WinEDA_ComponentPropertiesFrame event table definition
*/
BEGIN_EVENT_TABLE( WinEDA_ComponentPropertiesFrame, wxDialog )
////@begin WinEDA_ComponentPropertiesFrame event table entries
2007-11-07 04:24:25 +00:00
EVT_BUTTON( wxID_CANCEL, WinEDA_ComponentPropertiesFrame::OnCancelClick )
EVT_BUTTON( ID_RESTORE_CMP_DEFAULTS, WinEDA_ComponentPropertiesFrame::OnRestoreCmpDefaultsClick )
EVT_BUTTON( wxID_OK, WinEDA_ComponentPropertiesFrame::OnOkClick )
////@end WinEDA_ComponentPropertiesFrame event table entries
2008-03-20 01:50:21 +00:00
EVT_RADIOBOX(ID_ON_SELECT_FIELD, WinEDA_ComponentPropertiesFrame::SelectNewField)
END_EVENT_TABLE()
/*!
* WinEDA_ComponentPropertiesFrame constructors
*/
WinEDA_ComponentPropertiesFrame::WinEDA_ComponentPropertiesFrame( )
{
}
WinEDA_ComponentPropertiesFrame::WinEDA_ComponentPropertiesFrame( WinEDA_SchematicFrame* parent,
2008-03-20 01:50:21 +00:00
SCH_COMPONENT * cmp,
wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
{
2008-03-20 01:50:21 +00:00
m_Parent = parent;
m_Cmp = cmp;
m_LibEntry = FindLibPart(m_Cmp->m_ChipName.GetData(), wxEmptyString, FIND_ROOT);
2008-03-20 01:50:21 +00:00
InitBuffers();
Create(parent, id, caption, pos, size, style);
2008-03-20 01:50:21 +00:00
if ( m_LibEntry == NULL )
{
SetTitle(_("Component properties (Not found in lib)"));
}
}
/*!
* WinEDA_ComponentPropertiesFrame creator
*/
bool WinEDA_ComponentPropertiesFrame::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
{
2008-03-20 01:50:21 +00:00
m_FieldNameCtrl = NULL;
////@begin WinEDA_ComponentPropertiesFrame member initialisation
m_GeneralBoxSizer = NULL;
m_NoteBook = NULL;
m_PanelBasic = NULL;
m_SelectUnit = NULL;
m_OrientUnit = NULL;
m_MirrorUnit = NULL;
m_MsgPartLocked = NULL;
m_ConvertButt = NULL;
m_RefInLib = NULL;
m_PanelField = NULL;
m_ShowFieldTextCtrl = NULL;
m_VorientFieldText = NULL;
m_FieldDatasBoxSizer = NULL;
m_FieldSelectionBoxSizer = NULL;
////@end WinEDA_ComponentPropertiesFrame member initialisation
////@begin WinEDA_ComponentPropertiesFrame creation
SetExtraStyle(GetExtraStyle()|wxWS_EX_BLOCK_EVENTS);
wxDialog::Create( parent, id, caption, pos, size, style );
CreateControls();
if (GetSizer())
{
GetSizer()->SetSizeHints(this);
}
Centre();
////@end WinEDA_ComponentPropertiesFrame creation
return true;
}
/*!
* Control creation for WinEDA_ComponentPropertiesFrame
*/
void WinEDA_ComponentPropertiesFrame::CreateControls()
2008-03-20 01:50:21 +00:00
{
SetFont(*g_DialogFont);
////@begin WinEDA_ComponentPropertiesFrame content construction
2007-11-07 04:24:25 +00:00
// Generated by DialogBlocks, 07/11/2007 08:28:00 (unregistered)
WinEDA_ComponentPropertiesFrame* itemDialog1 = this;
m_GeneralBoxSizer = new wxBoxSizer(wxVERTICAL);
itemDialog1->SetSizer(m_GeneralBoxSizer);
m_NoteBook = new wxNotebook( itemDialog1, ID_SCHEDIT_NOTEBOOK, wxDefaultPosition, wxDefaultSize, wxNB_DEFAULT|wxNB_TOP );
m_PanelBasic = new wxPanel( m_NoteBook, ID_PANEL_BASIC, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL );
wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxHORIZONTAL);
m_PanelBasic->SetSizer(itemBoxSizer5);
2007-11-07 04:24:25 +00:00
wxArrayString m_SelectUnitStrings;
m_SelectUnitStrings.Add(_("Unit 1"));
m_SelectUnitStrings.Add(_("Unit 2"));
m_SelectUnitStrings.Add(_("Unit 3"));
m_SelectUnitStrings.Add(_("Unit 4"));
m_SelectUnitStrings.Add(_("Unit 5"));
m_SelectUnitStrings.Add(_("Unit 6"));
m_SelectUnitStrings.Add(_("Unit 7"));
m_SelectUnitStrings.Add(_("Unit 8"));
m_SelectUnitStrings.Add(_("Unit 9"));
m_SelectUnitStrings.Add(_("Unit 10"));
m_SelectUnitStrings.Add(_("Unit 11"));
m_SelectUnitStrings.Add(_("Unit 12"));
m_SelectUnitStrings.Add(_("Unit 13"));
m_SelectUnitStrings.Add(_("Unit 14"));
m_SelectUnitStrings.Add(_("Unit 15"));
m_SelectUnitStrings.Add(_("Unit 16"));
m_SelectUnitStrings.Add(_("Unit 16"));
m_SelectUnitStrings.Add(_("Unit 17"));
m_SelectUnitStrings.Add(_("Unit 18"));
m_SelectUnitStrings.Add(_("Unit 19"));
m_SelectUnitStrings.Add(_("Unit 20"));
m_SelectUnitStrings.Add(_("Unit 21"));
m_SelectUnitStrings.Add(_("Unit 22"));
m_SelectUnitStrings.Add(_("Unit 23"));
m_SelectUnitStrings.Add(_("Unit 24"));
m_SelectUnitStrings.Add(_("Unit 25"));
m_SelectUnitStrings.Add(_("Unit 26"));
m_SelectUnit = new wxRadioBox( m_PanelBasic, ID_RADIOBOX_UNIT, _("Unit:"), wxDefaultPosition, wxDefaultSize, m_SelectUnitStrings, 9, wxRA_SPECIFY_ROWS );
m_SelectUnit->SetSelection(0);
itemBoxSizer5->Add(m_SelectUnit, 0, wxGROW|wxALL, 5);
wxBoxSizer* itemBoxSizer7 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer5->Add(itemBoxSizer7, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer8 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer7->Add(itemBoxSizer8, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
2007-11-07 04:24:25 +00:00
wxArrayString m_OrientUnitStrings;
m_OrientUnitStrings.Add(_("0"));
m_OrientUnitStrings.Add(_("+90"));
m_OrientUnitStrings.Add(_("180"));
m_OrientUnitStrings.Add(_("-90"));
m_OrientUnit = new wxRadioBox( m_PanelBasic, ID_RADIOBOX_ORIENT, _("Orient:"), wxDefaultPosition, wxDefaultSize, m_OrientUnitStrings, 1, wxRA_SPECIFY_COLS );
m_OrientUnit->SetSelection(0);
itemBoxSizer8->Add(m_OrientUnit, 0, wxGROW|wxLEFT|wxRIGHT, 5);
2007-11-07 04:24:25 +00:00
wxArrayString m_MirrorUnitStrings;
m_MirrorUnitStrings.Add(_("Normal"));
m_MirrorUnitStrings.Add(_("Mirror --"));
m_MirrorUnitStrings.Add(_("Mirror !"));
m_MirrorUnit = new wxRadioBox( m_PanelBasic, ID_RADIOBOX_MIRROR, _("Mirror:"), wxDefaultPosition, wxDefaultSize, m_MirrorUnitStrings, 1, wxRA_SPECIFY_COLS );
m_MirrorUnit->SetSelection(0);
itemBoxSizer8->Add(m_MirrorUnit, 0, wxGROW|wxLEFT|wxRIGHT, 5);
m_MsgPartLocked = new wxStaticText( m_PanelBasic, wxID_STATIC, _("Parts are locked"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer7->Add(m_MsgPartLocked, 0, wxALIGN_LEFT|wxALL|wxADJUST_MINSIZE, 5);
m_ConvertButt = new wxCheckBox( m_PanelBasic, ID_CHECKBOX, _("Convert"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
m_ConvertButt->SetValue(false);
itemBoxSizer7->Add(m_ConvertButt, 0, wxALIGN_LEFT|wxALL, 5);
wxStaticText* itemStaticText13 = new wxStaticText( m_PanelBasic, wxID_STATIC, _("Chip Name:"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticText13->SetForegroundColour(wxColour(202, 0, 0));
itemBoxSizer7->Add(itemStaticText13, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
m_RefInLib = new wxTextCtrl( m_PanelBasic, ID_TEXTCTRL, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer7->Add(m_RefInLib, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
m_NoteBook->AddPage(m_PanelBasic, _("Options"));
m_PanelField = new wxPanel( m_NoteBook, ID_PANEL_FIELD, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL );
wxBoxSizer* itemBoxSizer16 = new wxBoxSizer(wxHORIZONTAL);
m_PanelField->SetSizer(itemBoxSizer16);
wxBoxSizer* itemBoxSizer17 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer16->Add(itemBoxSizer17, 0, wxALIGN_TOP|wxALL, 5);
wxBoxSizer* itemBoxSizer18 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer17->Add(itemBoxSizer18, 0, wxGROW|wxALL, 5);
m_ShowFieldTextCtrl = new wxCheckBox( m_PanelField, ID_CHECKBOX_SHOW_FILED, _("Show Text"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
m_ShowFieldTextCtrl->SetValue(false);
itemBoxSizer18->Add(m_ShowFieldTextCtrl, 0, wxGROW|wxALL, 5);
m_VorientFieldText = new wxCheckBox( m_PanelField, ID_CHECKBOX_FILED_ORIENT, _("Vertical"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
m_VorientFieldText->SetValue(false);
itemBoxSizer18->Add(m_VorientFieldText, 0, wxGROW|wxALL, 5);
m_FieldDatasBoxSizer = new wxBoxSizer(wxVERTICAL);
itemBoxSizer17->Add(m_FieldDatasBoxSizer, 0, wxGROW|wxALL, 5);
m_FieldSelectionBoxSizer = new wxBoxSizer(wxVERTICAL);
itemBoxSizer16->Add(m_FieldSelectionBoxSizer, 0, wxGROW|wxALL, 5);
m_NoteBook->AddPage(m_PanelField, _("Fields"));
m_GeneralBoxSizer->Add(m_NoteBook, 0, wxGROW|wxALL, 5);
wxBoxSizer* itemBoxSizer23 = new wxBoxSizer(wxHORIZONTAL);
m_GeneralBoxSizer->Add(itemBoxSizer23, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
2007-11-07 04:24:25 +00:00
wxButton* itemButton24 = new wxButton( itemDialog1, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton24->SetForegroundColour(wxColour(0, 0, 255));
itemBoxSizer23->Add(itemButton24, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxButton* itemButton25 = new wxButton( itemDialog1, ID_RESTORE_CMP_DEFAULTS, _("Defaults"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton25->SetForegroundColour(wxColour(206, 0, 0));
itemBoxSizer23->Add(itemButton25, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxButton* itemButton26 = new wxButton( itemDialog1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton26->SetForegroundColour(wxColour(0, 128, 0));
itemBoxSizer23->Add(itemButton26, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
////@end WinEDA_ComponentPropertiesFrame content construction
2008-03-20 01:50:21 +00:00
BuildPanelBasic();
BuildPanelFields();
}
/*!
* Should we show tooltips?
*/
bool WinEDA_ComponentPropertiesFrame::ShowToolTips()
{
return true;
}
/*!
* Get bitmap resources
*/
wxBitmap WinEDA_ComponentPropertiesFrame::GetBitmapResource( const wxString& name )
{
// Bitmap retrieval
////@begin WinEDA_ComponentPropertiesFrame bitmap retrieval
wxUnusedVar(name);
return wxNullBitmap;
////@end WinEDA_ComponentPropertiesFrame bitmap retrieval
}
/*!
* Get icon resources
*/
wxIcon WinEDA_ComponentPropertiesFrame::GetIconResource( const wxString& name )
{
// Icon retrieval
////@begin WinEDA_ComponentPropertiesFrame icon retrieval
wxUnusedVar(name);
return wxNullIcon;
////@end WinEDA_ComponentPropertiesFrame icon retrieval
}
/*!
2007-11-07 04:24:25 +00:00
* wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
*/
2007-11-07 04:24:25 +00:00
void WinEDA_ComponentPropertiesFrame::OnCancelClick( wxCommandEvent& event )
{
2007-11-07 04:24:25 +00:00
EndModal( -1 );
}
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RESTORE_CMP_DEFAULTS
*/
void WinEDA_ComponentPropertiesFrame::OnRestoreCmpDefaultsClick( wxCommandEvent& event )
{
2008-03-20 01:50:21 +00:00
SetInitCmp(event);
}
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK
*/
void WinEDA_ComponentPropertiesFrame::OnOkClick( wxCommandEvent& event )
{
2008-03-20 01:50:21 +00:00
ComponentPropertiesAccept(event);
}