// see class_text_mod.h void TEXTE_MODULE::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList ) { MODULE* module = (MODULE*) m_Parent; if( module == NULL ) // Happens in modedit, and for new texts return; wxString msg, Line; static const wxString text_type_msg[3] = { _( "Ref." ), _( "Value" ), _( "Text" ) }; Line = module->GetReference(); aList.push_back( MSG_PANEL_ITEM( _( "Footprint" ), Line, DARKCYAN ) ); Line = GetShownText(); aList.push_back( MSG_PANEL_ITEM( _( "Text" ), Line, BROWN ) ); wxASSERT( m_Type >= TEXT_is_REFERENCE && m_Type <= TEXT_is_DIVERS ); aList.push_back( MSG_PANEL_ITEM( _( "Type" ), text_type_msg[m_Type], DARKGREEN ) ); if( m_NoShow ) msg = _( "No" ); else msg = _( "Yes" ); aList.push_back( MSG_PANEL_ITEM( _( "Display" ), msg, DARKGREEN ) ); // Display text layer aList.push_back( MSG_PANEL_ITEM( _( "Layer" ), GetLayerName(), DARKGREEN ) ); if( m_Mirror ) msg = _( " Yes" ); else msg = _( " No" ); aList.push_back( MSG_PANEL_ITEM( _( "Mirror" ), msg, DARKGREEN ) ); msg.Printf( wxT( "%.1f" ), GetOrientationDegrees() ); aList.push_back( MSG_PANEL_ITEM( _( "Angle" ), msg, DARKGREEN ) ); msg = ::CoordinateToString( m_Thickness ); aList.push_back( MSG_PANEL_ITEM( _( "Thickness" ), msg, DARKGREEN ) ); msg = ::CoordinateToString( m_Size.x ); aList.push_back( MSG_PANEL_ITEM( _( "Width" ), msg, RED ) ); msg = ::CoordinateToString( m_Size.y ); aList.push_back( MSG_PANEL_ITEM( _( "Height" ), msg, RED ) ); }
void D_PAD::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM>& aList ) { MODULE* module; wxString Line; BOARD* board; module = (MODULE*) m_Parent; if( module ) { aList.push_back( MSG_PANEL_ITEM( _( "Footprint" ), module->GetReference(), DARKCYAN ) ); aList.push_back( MSG_PANEL_ITEM( _( "Pad" ), m_name, BROWN ) ); } aList.push_back( MSG_PANEL_ITEM( _( "Net" ), GetNetname(), DARKCYAN ) ); board = GetBoard(); aList.push_back( MSG_PANEL_ITEM( _( "Layer" ), LayerMaskDescribe( board, m_layerMask ), DARKGREEN ) ); aList.push_back( MSG_PANEL_ITEM( ShowPadShape(), ShowPadAttr(), DARKGREEN ) ); Line = ::CoordinateToString( m_Size.x ); aList.push_back( MSG_PANEL_ITEM( _( "Width" ), Line, RED ) ); Line = ::CoordinateToString( m_Size.y ); aList.push_back( MSG_PANEL_ITEM( _( "Height" ), Line, RED ) ); Line = ::CoordinateToString( (unsigned) m_Drill.x ); if( GetDrillShape() == PAD_DRILL_SHAPE_CIRCLE ) { aList.push_back( MSG_PANEL_ITEM( _( "Drill" ), Line, RED ) ); } else { Line = ::CoordinateToString( (unsigned) m_Drill.x ); wxString msg; msg = ::CoordinateToString( (unsigned) m_Drill.y ); Line += wxT( "/" ) + msg; aList.push_back( MSG_PANEL_ITEM( _( "Drill X / Y" ), Line, RED ) ); } double module_orient_degrees = module ? module->GetOrientationDegrees() : 0; if( module_orient_degrees != 0.0 ) Line.Printf( wxT( "%3.1f(+%3.1f)" ), GetOrientationDegrees() - module_orient_degrees, module_orient_degrees ); else Line.Printf( wxT( "%3.1f" ), GetOrientationDegrees() ); aList.push_back( MSG_PANEL_ITEM( _( "Angle" ), Line, LIGHTBLUE ) ); Line = ::CoordinateToString( m_Pos.x ) + wxT( ", " ) + ::CoordinateToString( m_Pos.y ); aList.push_back( MSG_PANEL_ITEM( _( "Position" ), Line, LIGHTBLUE ) ); if( GetPadToDieLength() ) { Line = ::CoordinateToString( GetPadToDieLength() ); aList.push_back( MSG_PANEL_ITEM( _( "Length in package" ), Line, CYAN ) ); } }
void MODULE::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList ) { int nbpad; wxString msg; aList.push_back( MSG_PANEL_ITEM( m_Reference->GetShownText(), m_Value->GetShownText(), DARKCYAN ) ); // Display last date the component was edited (useful in Module Editor). wxDateTime date( m_LastEditTime ); if( m_LastEditTime && date.IsValid() ) // Date format: see http://www.cplusplus.com/reference/ctime/strftime msg = date.Format( wxT( "%b %d, %Y" ) ); // Abbreviated_month_name Day, Year else msg = _( "Unknown" ); aList.push_back( MSG_PANEL_ITEM( _( "Last Change" ), msg, BROWN ) ); // display schematic path aList.push_back( MSG_PANEL_ITEM( _( "Netlist Path" ), m_Path, BROWN ) ); // display the board side placement aList.push_back( MSG_PANEL_ITEM( _( "Board Side" ), IsFlipped()? _( "Back (Flipped)" ) : _( "Front" ), RED ) ); EDA_ITEM* PtStruct = m_Pads; nbpad = 0; while( PtStruct ) { nbpad++; PtStruct = PtStruct->Next(); } msg.Printf( wxT( "%d" ), nbpad ); aList.push_back( MSG_PANEL_ITEM( _( "Pads" ), msg, BLUE ) ); msg = wxT( ".." ); if( IsLocked() ) msg[0] = 'L'; if( m_ModuleStatus & MODULE_is_PLACED ) msg[1] = 'P'; aList.push_back( MSG_PANEL_ITEM( _( "Status" ), msg, MAGENTA ) ); msg.Printf( wxT( "%.1f" ), GetOrientationDegrees() ); aList.push_back( MSG_PANEL_ITEM( _( "Rotation" ), msg, BROWN ) ); // Controls on right side of the dialog switch( m_Attributs & 255 ) { case 0: msg = _( "Normal" ); break; case MOD_CMS: msg = _( "Insert" ); break; case MOD_VIRTUAL: msg = _( "Virtual" ); break; default: msg = wxT( "???" ); break; } aList.push_back( MSG_PANEL_ITEM( _( "Attributes" ), msg, BROWN ) ); aList.push_back( MSG_PANEL_ITEM( _( "Footprint" ), FROM_UTF8( m_fpid.Format().c_str() ), BLUE ) ); if( m_3D_Drawings.empty() ) msg = _( "No 3D shape" ); else msg = m_3D_Drawings.front().m_Filename; // Search the first active 3D shape in list aList.push_back( MSG_PANEL_ITEM( _( "3D-Shape" ), msg, RED ) ); wxString doc, keyword; doc.Printf( _( "Doc: %s" ), GetChars( m_Doc ) ); keyword.Printf( _( "Key Words: %s" ), GetChars( m_KeyWord ) ); aList.push_back( MSG_PANEL_ITEM( doc, keyword, BLACK ) ); }
void D_PAD::GetMsgPanelInfo( EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM>& aList ) { MODULE* module; wxString msg; BOARD* board; module = (MODULE*) m_Parent; if( module ) { aList.push_back( MSG_PANEL_ITEM( _( "Footprint" ), module->GetReference(), DARKCYAN ) ); aList.push_back( MSG_PANEL_ITEM( _( "Pad" ), m_name, BROWN ) ); } aList.push_back( MSG_PANEL_ITEM( _( "Net" ), UnescapeString( GetNetname() ), DARKCYAN ) ); board = GetBoard(); aList.push_back( MSG_PANEL_ITEM( _( "Layer" ), LayerMaskDescribe( board, m_layerMask ), DARKGREEN ) ); aList.push_back( MSG_PANEL_ITEM( ShowPadShape(), ShowPadAttr(), DARKGREEN ) ); msg = MessageTextFromValue( aUnits, m_Size.x, true ); aList.push_back( MSG_PANEL_ITEM( _( "Width" ), msg, RED ) ); msg = MessageTextFromValue( aUnits, m_Size.y, true ); aList.push_back( MSG_PANEL_ITEM( _( "Height" ), msg, RED ) ); msg = MessageTextFromValue( aUnits, m_Drill.x, true ); if( GetDrillShape() == PAD_DRILL_SHAPE_CIRCLE ) { aList.push_back( MSG_PANEL_ITEM( _( "Drill" ), msg, RED ) ); } else { msg = MessageTextFromValue( aUnits, m_Drill.x, true ) + wxT( "/" ) + MessageTextFromValue( aUnits, m_Drill.y, true ); aList.push_back( MSG_PANEL_ITEM( _( "Drill X / Y" ), msg, RED ) ); } double module_orient_degrees = module ? module->GetOrientationDegrees() : 0; if( module_orient_degrees != 0.0 ) msg.Printf( wxT( "%3.1f(+%3.1f)" ), GetOrientationDegrees() - module_orient_degrees, module_orient_degrees ); else msg.Printf( wxT( "%3.1f" ), GetOrientationDegrees() ); aList.push_back( MSG_PANEL_ITEM( _( "Angle" ), msg, LIGHTBLUE ) ); msg = MessageTextFromValue( aUnits, m_Pos.x ) + wxT( ", " ) + MessageTextFromValue( aUnits, m_Pos.y ); aList.push_back( MSG_PANEL_ITEM( _( "Position" ), msg, LIGHTBLUE ) ); if( GetPadToDieLength() ) { msg = MessageTextFromValue( aUnits, GetPadToDieLength(), true ); aList.push_back( MSG_PANEL_ITEM( _( "Length in package" ), msg, CYAN ) ); } }
void D_PAD::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM>& aList ) { MODULE* module; wxString Line; BOARD* board; module = (MODULE*) m_Parent; if( module ) { wxString msg = module->GetReference(); aList.push_back( MSG_PANEL_ITEM( _( "Footprint" ), msg, DARKCYAN ) ); StringPadName( Line ); aList.push_back( MSG_PANEL_ITEM( _( "Pad" ), Line, BROWN ) ); } aList.push_back( MSG_PANEL_ITEM( _( "Net" ), GetNetname(), DARKCYAN ) ); /* For test and debug only: display m_physical_connexion and * m_logical_connexion */ #if 1 // Used only to debug connectivity calculations Line.Printf( wxT( "%d-%d-%d " ), GetSubRatsnest(), GetSubNet(), GetZoneSubNet() ); aList.push_back( MSG_PANEL_ITEM( wxT( "L-P-Z" ), Line, DARKGREEN ) ); #endif board = GetBoard(); aList.push_back( MSG_PANEL_ITEM( _( "Layer" ), LayerMaskDescribe( board, m_layerMask ), DARKGREEN ) ); aList.push_back( MSG_PANEL_ITEM( ShowPadShape(), ShowPadAttr(), DARKGREEN ) ); Line = ::CoordinateToString( m_Size.x ); aList.push_back( MSG_PANEL_ITEM( _( "Width" ), Line, RED ) ); Line = ::CoordinateToString( m_Size.y ); aList.push_back( MSG_PANEL_ITEM( _( "Height" ), Line, RED ) ); Line = ::CoordinateToString( (unsigned) m_Drill.x ); if( GetDrillShape() == PAD_DRILL_SHAPE_CIRCLE ) { aList.push_back( MSG_PANEL_ITEM( _( "Drill" ), Line, RED ) ); } else { Line = ::CoordinateToString( (unsigned) m_Drill.x ); wxString msg; msg = ::CoordinateToString( (unsigned) m_Drill.y ); Line += wxT( "/" ) + msg; aList.push_back( MSG_PANEL_ITEM( _( "Drill X / Y" ), Line, RED ) ); } double module_orient_degrees = module ? module->GetOrientationDegrees() : 0; if( module_orient_degrees != 0.0 ) Line.Printf( wxT( "%3.1f(+%3.1f)" ), GetOrientationDegrees() - module_orient_degrees, module_orient_degrees ); else Line.Printf( wxT( "%3.1f" ), GetOrientationDegrees() ); aList.push_back( MSG_PANEL_ITEM( _( "Angle" ), Line, LIGHTBLUE ) ); Line = ::CoordinateToString( m_Pos.x ) + wxT( ", " ) + ::CoordinateToString( m_Pos.y ); aList.push_back( MSG_PANEL_ITEM( _( "Position" ), Line, LIGHTBLUE ) ); if( GetPadToDieLength() ) { Line = ::CoordinateToString( GetPadToDieLength() ); aList.push_back( MSG_PANEL_ITEM( _( "Length in package" ), Line, CYAN ) ); } }