88
88
LIB_ITEM* LIB_EDIT_FRAME::m_drawItem = NULL;
89
89
bool LIB_EDIT_FRAME:: m_showDeMorgan = false;
90
90
wxSize LIB_EDIT_FRAME:: m_clientSize = wxSize( -1, -1 );
91
int LIB_EDIT_FRAME:: m_textSize = DEFAULT_SIZE_TEXT;
91
int LIB_EDIT_FRAME:: m_textSize = -1;
92
92
int LIB_EDIT_FRAME:: m_textOrientation = TEXT_ORIENT_HORIZ;
93
93
int LIB_EDIT_FRAME:: m_drawLineWidth = 0;
94
94
FILL_T LIB_EDIT_FRAME:: m_drawFillStyle = NO_FILL;
99
99
EVT_SIZE( LIB_EDIT_FRAME::OnSize )
100
100
EVT_ACTIVATE( LIB_EDIT_FRAME::OnActivate )
102
/* Main horizontal toolbar. */
102
// Main horizontal toolbar.
103
103
EVT_TOOL( ID_LIBEDIT_SAVE_CURRENT_LIB, LIB_EDIT_FRAME::OnSaveActiveLibrary )
104
104
EVT_TOOL( ID_LIBEDIT_SELECT_CURRENT_LIB, LIB_EDIT_FRAME::Process_Special_Functions )
105
105
EVT_TOOL( ID_LIBEDIT_DELETE_PART, LIB_EDIT_FRAME::DeleteOnePart )
125
125
EVT_COMBOBOX( ID_LIBEDIT_SELECT_PART_NUMBER, LIB_EDIT_FRAME::OnSelectPart )
126
126
EVT_COMBOBOX( ID_LIBEDIT_SELECT_ALIAS, LIB_EDIT_FRAME::OnSelectAlias )
128
/* Right vertical toolbar. */
128
// Right vertical toolbar.
129
129
EVT_TOOL( ID_NO_TOOL_SELECTED, LIB_EDIT_FRAME::OnSelectTool )
130
130
EVT_TOOL_RANGE( ID_LIBEDIT_PIN_BUTT, ID_LIBEDIT_DELETE_ITEM_BUTT,
131
131
LIB_EDIT_FRAME::OnSelectTool )
133
/* menubar commands */
134
134
EVT_MENU( wxID_EXIT, LIB_EDIT_FRAME::CloseWindow )
135
135
EVT_MENU( ID_LIBEDIT_SAVE_CURRENT_LIB_AS, LIB_EDIT_FRAME::OnSaveActiveLibrary )
136
136
EVT_MENU( ID_LIBEDIT_GEN_PNG_FILE, LIB_EDIT_FRAME::OnPlotCurrentComponent )
152
152
EVT_MENU_RANGE( ID_PREFERENCES_HOTKEY_START, ID_PREFERENCES_HOTKEY_END,
153
153
LIB_EDIT_FRAME::Process_Config )
155
EVT_MENU_RANGE( ID_LANGUAGE_CHOICE, ID_LANGUAGE_CHOICE_END, LIB_EDIT_FRAME::SetLanguage )
157
/* Context menu events and commands. */
155
// Context menu events and commands.
158
156
EVT_MENU( ID_LIBEDIT_EDIT_PIN, LIB_EDIT_FRAME::OnEditPin )
159
157
EVT_MENU( ID_LIBEDIT_ROTATE_ITEM, LIB_EDIT_FRAME::OnRotateItem )
165
163
EVT_MENU_RANGE( ID_POPUP_GENERAL_START_RANGE, ID_POPUP_GENERAL_END_RANGE,
166
164
LIB_EDIT_FRAME::Process_Special_Functions )
168
/* Update user interface elements. */
166
// Update user interface elements.
169
167
EVT_UPDATE_UI( ExportPartId, LIB_EDIT_FRAME::OnUpdateEditingPart )
170
168
EVT_UPDATE_UI( CreateNewLibAndSavePartId, LIB_EDIT_FRAME::OnUpdateEditingPart )
171
169
EVT_UPDATE_UI( ID_LIBEDIT_SAVE_CURRENT_PART, LIB_EDIT_FRAME::OnUpdateEditingPart )
190
188
#define LIB_EDIT_FRAME_NAME wxT( "LibeditFrame" )
192
LIB_EDIT_FRAME::LIB_EDIT_FRAME( KIWAY* aKiway, SCH_EDIT_FRAME* aParent ) :
193
SCH_BASE_FRAME( aKiway, aParent, LIBEDITOR_FRAME_TYPE, _( "Library Editor" ),
190
LIB_EDIT_FRAME::LIB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
191
SCH_BASE_FRAME( aKiway, aParent, FRAME_SCH_LIB_EDITOR, _( "Library Editor" ),
194
192
wxDefaultPosition, wxDefaultSize, KICAD_DEFAULT_DRAWFRAME_STYLE, GetLibEditFrameName() )
196
wxASSERT( aParent ); // LIB_EDIT_FRAME needs a parent, since it peeks up there.
198
196
m_FrameName = GetLibEditFrameName();
199
197
m_showAxis = true; // true to draw axis
204
202
m_tempCopyComponent = NULL;
205
203
m_HotkeysZoomAndGridList = s_Libedit_Hokeys_Descr;
206
204
m_editPinsPerPartOrConvert = false;
206
// Delayed initialization
207
if( m_textSize == -1 )
208
m_textSize = GetDefaultTextSize();
207
210
// Initialize grid id to the default value 50 mils:
208
211
m_LastGridSizeId = ID_POPUP_GRID_LEVEL_50 - ID_POPUP_GRID_LEVEL_1000;
292
295
return LIB_EDIT_FRAME_NAME;
296
LIB_EDIT_FRAME* LIB_EDIT_FRAME::GetActiveLibraryEditor()
298
return (LIB_EDIT_FRAME*) wxWindow::FindWindowByName(GetLibEditFrameName());
298
static const wxChar drawBgColorKey[] = wxT( "LibeditBgColor" );
302
300
void LIB_EDIT_FRAME::LoadSettings( wxConfigBase* aCfg )
316
314
wxConfigPathChanger cpc( aCfg, m_configPath );
316
EDA_COLOR_T itmp = ColorByName( aCfg->Read( drawBgColorKey, wxT("WHITE") ) );
317
SetDrawBgColor( itmp );
318
319
m_lastLibExportPath = aCfg->Read( lastLibExportPathEntry, ::wxGetCwd() );
319
320
m_lastLibImportPath = aCfg->Read( lastLibImportPathEntry, ::wxGetCwd() );
339
340
wxConfigPathChanger cpc( aCfg, m_configPath );
342
aCfg->Write( drawBgColorKey, ColorGetName( GetDrawBgColor() ) );
341
343
aCfg->Write( lastLibExportPathEntry, m_lastLibExportPath );
342
344
aCfg->Write( lastLibImportPathEntry, m_lastLibImportPath );
390
392
double LIB_EDIT_FRAME::BestZoom()
392
/* Please, note: wxMSW before version 2.9 seems have
393
* problems with zoom values < 1 ( i.e. userscale > 1) and needs to be patched:
394
* edit file <wxWidgets>/src/msw/dc.cpp
395
* search for line static const int VIEWPORT_EXTENT = 1000;
396
* and replace by static const int VIEWPORT_EXTENT = 10000;
394
/* Please, note: wxMSW before version 2.9 seems have
395
* problems with zoom values < 1 ( i.e. userscale > 1) and needs to be patched:
396
* edit file <wxWidgets>/src/msw/dc.cpp
397
* search for line static const int VIEWPORT_EXTENT = 1000;
398
* and replace by static const int VIEWPORT_EXTENT = 10000;
400
402
EDA_RECT BoundaryBox;
752
754
case ID_POPUP_LIBEDIT_DELETE_CURRENT_POLY_SEGMENT:
754
// Delete the last created segment, while creating a polyline draw item
755
if( m_drawItem == NULL )
756
// Delete the last created segment, while creating a polyline draw item
757
if( m_drawItem == NULL )
758
m_canvas->MoveCursorToCrossHair();
759
STATUS_FLAGS oldFlags = m_drawItem->GetFlags();
760
m_drawItem->ClearFlags();
761
m_drawItem->Draw( m_canvas, &dc, wxPoint( 0, 0 ), UNSPECIFIED_COLOR, g_XorMode, NULL,
763
( (LIB_POLYLINE*) m_drawItem )->DeleteSegment( GetCrossHairPosition( true ) );
764
m_drawItem->Draw( m_canvas, &dc, wxPoint( 0, 0 ), UNSPECIFIED_COLOR, g_XorMode, NULL,
766
m_drawItem->SetFlags( oldFlags );
767
m_lastDrawItem = NULL;
760
m_canvas->MoveCursorToCrossHair();
761
STATUS_FLAGS oldFlags = m_drawItem->GetFlags();
762
m_drawItem->ClearFlags();
763
m_drawItem->Draw( m_canvas, &dc, wxPoint( 0, 0 ), UNSPECIFIED_COLOR, g_XorMode, NULL,
765
( (LIB_POLYLINE*) m_drawItem )->DeleteSegment( GetCrossHairPosition( true ) );
766
m_drawItem->Draw( m_canvas, &dc, wxPoint( 0, 0 ), UNSPECIFIED_COLOR, g_XorMode, NULL,
768
m_drawItem->SetFlags( oldFlags );
769
m_lastDrawItem = NULL;
771
773
case ID_POPUP_LIBEDIT_DELETE_ITEM:
921
void LIB_EDIT_FRAME::SetLanguage( wxCommandEvent& event )
923
EDA_BASE_FRAME::SetLanguage( event );
924
SCH_EDIT_FRAME *parent = (SCH_EDIT_FRAME *)GetParent();
925
// Call parent->EDA_BASE_FRAME::SetLanguage and NOT
926
// parent->SetLanguage because parent->SetLanguage call
927
// LIB_EDIT_FRAME::SetLanguage
928
parent->EDA_BASE_FRAME::SetLanguage( event );
932
923
void LIB_EDIT_FRAME::TempCopyComponent()
934
925
if( m_tempCopyComponent )