本文整理汇总了C++中LIB_ALIAS::GetLib方法的典型用法代码示例。如果您正苦于以下问题:C++ LIB_ALIAS::GetLib方法的具体用法?C++ LIB_ALIAS::GetLib怎么用?C++ LIB_ALIAS::GetLib使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LIB_ALIAS
的用法示例。
在下文中一共展示了LIB_ALIAS::GetLib方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: LoadOneLibraryPart
void LIB_EDIT_FRAME::LoadOneLibraryPart( wxCommandEvent& event )
{
wxString cmp_name;
LIB_ALIAS* libEntry = NULL;
m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor() );
if( GetScreen()->IsModify()
&& !IsOK( this, _( "The current component is not saved.\n\nDiscard current changes?" ) ) )
return;
PART_LIB* lib = GetCurLib();
// No current lib, ask user for the library to use.
if( !lib )
{
SelectActiveLibrary();
lib = GetCurLib();
if( !lib )
return;
}
// Get the name of the current part to preselect it
LIB_PART* current_part = GetCurPart();
wxString part_name = current_part ? current_part->GetName() : wxString( wxEmptyString );
wxArrayString dummyHistoryList;
int dummyLastUnit;
SCHLIB_FILTER filter;
filter.LoadFrom( lib->GetName() );
cmp_name = SelectComponentFromLibrary( &filter, dummyHistoryList, dummyLastUnit,
true, NULL, NULL, part_name );
if( cmp_name.IsEmpty() )
return;
GetScreen()->ClrModify();
m_lastDrawItem = m_drawItem = NULL;
// Delete previous library component, if any
SetCurPart( NULL );
m_aliasName.Empty();
// Load the new library component
libEntry = lib->FindAlias( cmp_name );
PART_LIB* searchLib = lib;
if( !libEntry )
{
// Not found in the active library: search inside the full list
// (can happen when using Viewlib to load a component)
libEntry = Prj().SchLibs()->FindLibraryAlias( LIB_ID( wxEmptyString, cmp_name ) );
if( libEntry )
{
searchLib = libEntry->GetLib();
// The entry to load is not in the active lib
// Ask for a new active lib
wxString msg = _( "The selected component is not in the active library." );
msg += "\n\n";
msg += _( "Do you want to change the active library?" );
if( IsOK( this, msg ) )
SelectActiveLibrary( searchLib );
}
}
if( !libEntry )
{
wxString msg = wxString::Format( _( "Part name '%s' not found in library '%s'" ),
GetChars( cmp_name ),
GetChars( searchLib->GetName() ) );
DisplayError( this, msg );
return;
}
PART_LIB* old = SetCurLib( searchLib );
LoadComponentFromCurrentLib( libEntry );
SetCurLib( old );
DisplayLibInfos();
}