void TEXTE_PCB::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList ) { wxString msg; wxCHECK_RET( m_Parent != NULL, wxT( "TEXTE_PCB::GetMsgPanelInfo() m_Parent is NULL." ) ); if( m_Parent->Type() == PCB_DIMENSION_T ) aList.push_back( MSG_PANEL_ITEM( _( "Dimension" ), GetShownText(), DARKGREEN ) ); else aList.push_back( MSG_PANEL_ITEM( _( "PCB Text" ), GetShownText(), DARKGREEN ) ); aList.push_back( MSG_PANEL_ITEM( _( "Layer" ), GetLayerName(), BLUE ) ); if( !m_Mirror ) aList.push_back( MSG_PANEL_ITEM( _( "Mirror" ), _( "No" ), DARKGREEN ) ); else aList.push_back( MSG_PANEL_ITEM( _( "Mirror" ), _( "Yes" ), DARKGREEN ) ); msg.Printf( wxT( "%.1f" ), m_Orient / 10.0 ); aList.push_back( MSG_PANEL_ITEM( _( "Angle" ), msg, DARKGREEN ) ); msg = ::CoordinateToString( m_Thickness ); aList.push_back( MSG_PANEL_ITEM( _( "Thickness" ), msg, MAGENTA ) ); 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 ) ); }
// see class_edge_mod.h void EDGE_MODULE::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList ) { wxString msg; MODULE* module = (MODULE*) m_Parent; if( !module ) return; BOARD* board = (BOARD*) module->GetParent(); if( !board ) return; aList.push_back( MSG_PANEL_ITEM( _( "Graphic Item" ), wxEmptyString, DARKCYAN ) ); aList.push_back( MSG_PANEL_ITEM( _( "Module" ), module->GetReference(), DARKCYAN ) ); aList.push_back( MSG_PANEL_ITEM( _( "Value" ), module->GetValue(), BLUE ) ); msg.Printf( wxT( "%8.8lX" ), module->GetTimeStamp() ); aList.push_back( MSG_PANEL_ITEM( _( "TimeStamp" ), msg, BROWN ) ); aList.push_back( MSG_PANEL_ITEM( _( "Mod Layer" ), module->GetLayerName(), RED ) ); aList.push_back( MSG_PANEL_ITEM( _( "Seg Layer" ), GetLayerName(), RED ) ); msg = ::CoordinateToString( m_Width ); aList.push_back( MSG_PANEL_ITEM( _( "Width" ), msg, BLUE ) ); }
void TEXTE_PCB::GetMsgPanelInfo( EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM >& aList ) { wxString msg; wxCHECK_RET( m_Parent != NULL, wxT( "TEXTE_PCB::GetMsgPanelInfo() m_Parent is NULL." ) ); if( m_Parent->Type() == PCB_DIMENSION_T ) aList.push_back( MSG_PANEL_ITEM( _( "Dimension" ), GetShownText(), DARKGREEN ) ); else aList.push_back( MSG_PANEL_ITEM( _( "PCB Text" ), GetShownText(), DARKGREEN ) ); aList.push_back( MSG_PANEL_ITEM( _( "Layer" ), GetLayerName(), BLUE ) ); if( !IsMirrored() ) aList.push_back( MSG_PANEL_ITEM( _( "Mirror" ), _( "No" ), DARKGREEN ) ); else aList.push_back( MSG_PANEL_ITEM( _( "Mirror" ), _( "Yes" ), DARKGREEN ) ); msg.Printf( wxT( "%.1f" ), GetTextAngle() / 10.0 ); aList.push_back( MSG_PANEL_ITEM( _( "Angle" ), msg, DARKGREEN ) ); msg = MessageTextFromValue( aUnits, GetThickness() ); aList.push_back( MSG_PANEL_ITEM( _( "Thickness" ), msg, MAGENTA ) ); msg = MessageTextFromValue( aUnits, GetTextWidth() ); aList.push_back( MSG_PANEL_ITEM( _( "Width" ), msg, RED ) ); msg = MessageTextFromValue( aUnits, GetTextHeight() ); aList.push_back( MSG_PANEL_ITEM( _( "Height" ), msg, RED ) ); }
wxString TRACK::GetSelectMenuText() const { wxString text; wxString netname; NETINFO_ITEM* net; BOARD* board = GetBoard(); // deleting tracks requires all the information we can get to // disambiguate all the choices under the cursor! if( board ) { net = GetNet(); if( net ) netname = net->GetNetname(); else netname = _("Not found"); } else { wxFAIL_MSG( wxT( "TRACK::GetSelectMenuText: BOARD is NULL" ) ); netname = wxT( "???" ); } text.Printf( _("Track %s, net [%s] (%d) on layer %s, length: %s" ), GetChars( ShowWidth() ), GetChars( netname ), GetNetCode(), GetChars( GetLayerName() ), GetChars( ::LengthDoubleToString( GetLength() ) ) ); return text; }
void GBR_LAYER_BOX_SELECTOR::Resync() { #define BM_SIZE 14 Freeze(); Clear(); GERBER_FILE_IMAGE_LIST& images = GERBER_FILE_IMAGE_LIST::GetImagesList(); for( unsigned layerid = 0; layerid < images.ImagesMaxCount(); ++layerid ) { wxBitmap layerbmp( BM_SIZE, BM_SIZE ); wxString layername; if( !IsLayerEnabled( layerid ) ) continue; // Prepare Bitmap SetBitmapLayer( layerbmp, layerid ); layername = GetLayerName( layerid ); Append( layername, layerbmp, (void*)(intptr_t) layerid ); } // Ensure the width of the widget is enough to show the text and the icon SetMinSize( wxSize( -1, -1 ) ); int minwidth = GetBestSize().x + BM_SIZE + 10; SetMinSize( wxSize( minwidth, -1 ) ); Thaw(); }
wxString DIMENSION::GetSelectMenuText() const { wxString text; text.Printf( _( "Dimension \"%s\" on %s" ), GetChars( GetText() ), GetChars( GetLayerName() ) ); return text; }
wxString MODULE::GetSelectMenuText() const { wxString text; text.Printf( _( "Footprint %s on %s" ), GetChars ( GetReference() ), GetChars ( GetLayerName() ) ); return text; }
wxString TEXTE_PCB::GetSelectMenuText() const { wxString text; text.Printf( _( "Pcb Text \"%s\" on %s"), GetChars ( ShortenedShownText() ), GetChars( GetLayerName() ) ); return text; }
wxString EDGE_MODULE::GetSelectMenuText() const { wxString text; text.Printf( _( "Graphic (%s) on %s of %s" ), GetChars( ShowShape( (STROKE_T) m_Shape ) ), GetChars( GetLayerName() ), GetChars( ((MODULE*) GetParent())->GetReference() ) ); return text; }
void SELECT_COPPER_LAYERS_PAIR_DIALOG::buildList() { m_leftGridLayers->SetColSize( COLOR_COLNUM, 20 ); m_rightGridLayers->SetColSize( COLOR_COLNUM, 20 ); // Select a not show cell, to avoid a wrong cell selection for user int row = 0; wxString layername; for( LSEQ ui_seq = m_brd->GetEnabledLayers().UIOrder(); ui_seq; ++ui_seq ) { LAYER_ID layerid = *ui_seq; if( !IsCopperLayer( layerid ) ) break; COLOR4D color = GetLayerColor( layerid ); layername = GetLayerName( layerid ); if( row ) m_leftGridLayers->AppendRows( 1 ); m_leftGridLayers->SetCellBackgroundColour( row, COLOR_COLNUM, color.ToColour() ); m_leftGridLayers->SetCellValue( row, LAYERNAME_COLNUM, layername ); m_layersId.push_back( layerid ); if( m_frontLayer == layerid ) { SetGridCursor( m_leftGridLayers, row, true ); m_leftRowSelected = row; } if( row ) m_rightGridLayers->AppendRows( 1 ); m_rightGridLayers->SetCellBackgroundColour ( row, COLOR_COLNUM, color.ToColour() ); m_rightGridLayers->SetCellValue( row, LAYERNAME_COLNUM, layername ); if( m_backLayer == layerid ) { SetGridCursor( m_rightGridLayers, row, true ); m_rightRowSelected = row; } row++; } m_leftGridLayers->AutoSizeColumn(LAYERNAME_COLNUM); m_rightGridLayers->AutoSizeColumn(LAYERNAME_COLNUM); m_leftGridLayers->AutoSizeColumn(SELECT_COLNUM); m_rightGridLayers->AutoSizeColumn(SELECT_COLNUM); }
wxString DRAWSEGMENT::GetSelectMenuText() const { wxString text; wxString temp = ::LengthDoubleToString( GetLength() ); text.Printf( _( "Pcb Graphic: %s, length %s on %s" ), GetChars( ShowShape( (STROKE_T) m_Shape ) ), GetChars( temp ), GetChars( GetLayerName() ) ); return text; }
wxString PCB_TARGET::GetSelectMenuText() const { wxString text; wxString msg; msg = ::CoordinateToString( m_Size ); text.Printf( _( "Target on %s size %s" ), GetChars( GetLayerName() ), GetChars( msg ) ); return text; }
int TWArxLayerMan::GetLayerNames( OUT vector<CString>& vLayerNames ) const { int nSize = m_vLayers.size(); for ( int i = 0; i < nSize; i++ ) { CString strName; if( Acad::eOk == GetLayerName(m_vLayers[i], strName) ) vLayerNames.push_back( strName ); } return vLayerNames.size(); }
// 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( _( "Module" ), Line, DARKCYAN ) ); Line = m_Text; 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" ), m_Orient / 10.0 ); aList.push_back( MSG_PANEL_ITEM( _( "Orient" ), 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( _( "H Size" ), msg, RED ) ); msg = ::CoordinateToString( m_Size.y ); aList.push_back( MSG_PANEL_ITEM( _( "V Size" ), msg, RED ) ); }
// 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( !IsVisible() ) 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( IsMirrored() ) msg = _( "Yes" ); else msg = _( "No" ); aList.push_back( MSG_PANEL_ITEM( _( "Mirror" ), msg, DARKGREEN ) ); msg.Printf( wxT( "%.1f" ), GetTextAngleDegrees() ); aList.push_back( MSG_PANEL_ITEM( _( "Angle" ), msg, DARKGREEN ) ); msg = ::CoordinateToString( GetThickness() ); aList.push_back( MSG_PANEL_ITEM( _( "Thickness" ), msg, DARKGREEN ) ); msg = ::CoordinateToString( GetTextWidth() ); aList.push_back( MSG_PANEL_ITEM( _( "Width" ), msg, RED ) ); msg = ::CoordinateToString( GetTextHeight() ); aList.push_back( MSG_PANEL_ITEM( _( "Height" ), msg, RED ) ); }
wxString TEXTE_PCB::GetSelectMenuText() const { wxString text, shorttxt; if( m_Text.Len() < 12 ) shorttxt << m_Text; else shorttxt += m_Text.Left( 10 ) + wxT( ".." ); text.Printf( _( "Pcb Text %s on %s"), GetChars ( shorttxt ), GetChars( GetLayerName() ) ); return text; }
// Reload the Layers void PCB_LAYER_BOX_SELECTOR::Resync() { Clear(); // Tray to fix a minimum width fot the BitmapComboBox int minwidth = 80; wxClientDC dc( GetParent() ); // The DC for "this" is not always initialized const int BM_SIZE = 14; LSET show = LSET::AllLayersMask() & ~m_layerMaskDisable; LSET activated = getEnabledLayers() & ~m_layerMaskDisable; wxString layerstatus; for( LSEQ seq = show.UIOrder(); seq; ++seq ) { LAYER_ID layerid = *seq; if( !m_showNotEnabledBrdlayers && !activated[layerid] ) continue; else if( !activated[layerid] ) layerstatus = wxT( " " ) + _( "(not activated)" ); else layerstatus.Empty(); wxBitmap layerbmp( BM_SIZE, BM_SIZE ); SetBitmapLayer( layerbmp, layerid ); wxString layername = GetLayerName( layerid ) + layerstatus; if( m_layerhotkeys && m_hotkeys ) { int id = layer2hotkey_id( layerid ); if( id != -1 ) layername = AddHotkeyName( layername, m_hotkeys, id, IS_COMMENT ); } Append( layername, layerbmp, (void*)(intptr_t) layerid ); int w, h; dc.GetTextExtent ( layername, &w, &h ); minwidth = std::max( minwidth, w ); } minwidth += BM_SIZE + 35; // Take in account the bitmap size and margins SetMinSize( wxSize( minwidth, -1 ) ); }
wxString ZONE_CONTAINER::GetSelectMenuText() const { wxString text; NETINFO_ITEM* net; BOARD* board = GetBoard(); int ncont = m_Poly->GetContour( m_CornerSelection ); if( ncont ) text << wxT( " " ) << _( "(Cutout)" ); if( GetIsKeepout() ) text << wxT( " " ) << _( "(Keepout)" ); text << wxString::Format( wxT( " (%08lX)" ), m_TimeStamp ); // Display net name for copper zones if( !GetIsKeepout() ) { if( GetNetCode() >= 0 ) { if( board ) { net = GetNet(); if( net ) { text << wxT( " [" ) << net->GetNetname() << wxT( "]" ); } } else { text << _( "** NO BOARD DEFINED **" ); } } else { // A netcode < 0 is an error: // Netname not found or area not initialised text << wxT( " [" ) << GetNetname() << wxT( "]" ); text << wxT( " <" ) << _( "Not Found" ) << wxT( ">" ); } } wxString msg; msg.Printf( _( "Zone Outline %s on %s" ), GetChars( text ), GetChars( GetLayerName() ) ); return msg; }
// Reload the Layers void PCB_LAYER_BOX_SELECTOR::Resync() { Clear(); static DECLARE_LAYERS_ORDER_LIST( layertranscode ); static DECLARE_LAYERS_HOTKEY( layerhk ); // Tray to fix a minimum width fot the BitmapComboBox int minwidth = 80, h; wxClientDC dc( GetParent() ); // The DC for "this" is not always initialized #define BM_SIZE 14 for( LAYER_NUM i = FIRST_LAYER; i < NB_LAYERS; ++i ) { wxBitmap layerbmp( BM_SIZE, BM_SIZE ); wxString layername; LAYER_NUM layerid = i; if( m_layerorder ) layerid = layertranscode[i]; if( ! IsLayerEnabled( layerid ) ) continue; if( ( m_layerMaskDisable & GetLayerMask( layerid ) ) ) continue; SetBitmapLayer( layerbmp, layerid ); layername = GetLayerName( layerid ); if( m_layerhotkeys && m_hotkeys != NULL ) layername = AddHotkeyName( layername, m_hotkeys, layerhk[layerid], IS_COMMENT ); Append( layername, layerbmp, (void*)(intptr_t) layerid ); int w; dc.GetTextExtent ( layername, &w, &h ); minwidth = std::max( minwidth, w ); } minwidth += BM_SIZE + 35; // Take in account the bitmap size and margins SetMinSize( wxSize( minwidth, -1 ) ); }
// see pcbstruct.h void DRAWSEGMENT::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList ) { wxString msg; wxString coords; wxASSERT( m_Parent ); msg = wxT( "DRAWING" ); aList.push_back( MSG_PANEL_ITEM( _( "Type" ), msg, DARKCYAN ) ); wxString shape = _( "Shape" ); switch( m_Shape ) { case S_CIRCLE: aList.push_back( MSG_PANEL_ITEM( shape, _( "Circle" ), RED ) ); break; case S_ARC: aList.push_back( MSG_PANEL_ITEM( shape, _( "Arc" ), RED ) ); msg.Printf( wxT( "%.1f" ), m_Angle / 10.0 ); aList.push_back( MSG_PANEL_ITEM( _("Angle"), msg, RED ) ); break; case S_CURVE: aList.push_back( MSG_PANEL_ITEM( shape, _( "Curve" ), RED ) ); break; default: aList.push_back( MSG_PANEL_ITEM( shape, _( "Segment" ), RED ) ); } wxString start; start << GetStart(); wxString end; end << GetEnd(); aList.push_back( MSG_PANEL_ITEM( start, end, DARKGREEN ) ); aList.push_back( MSG_PANEL_ITEM( _( "Layer" ), GetLayerName(), DARKBROWN ) ); msg = ::CoordinateToString( m_Width ); aList.push_back( MSG_PANEL_ITEM( _( "Width" ), msg, DARKCYAN ) ); }
wxString SEGZONE::GetSelectMenuText() const { wxString text, nettxt; BOARD* board = GetBoard(); if( board ) { nettxt = GetNetname(); } else { wxFAIL_MSG( wxT( "SEGZONE::GetSelectMenuText: BOARD is NULL" ) ); nettxt = wxT( "???" ); } text.Printf( _( "Zone (%08lX) [%s] on %s" ), m_TimeStamp, GetChars( nettxt ), GetChars( GetLayerName() ) ); return text; }
void GBR_LAYER_BOX_SELECTOR::Resync() { Clear(); for( int layerid = 0; layerid < GERBER_DRAWLAYERS_COUNT; ++layerid ) { wxBitmap layerbmp( 14, 14 ); wxString layername; if( !IsLayerEnabled( layerid ) ) continue; // Prepare Bitmap SetBitmapLayer( layerbmp, layerid ); layername = GetLayerName( layerid ); Append( layername, layerbmp, (void*)(intptr_t) layerid ); } }
Acad::ErrorStatus TWArxLayerMan::GetLayerId( IN const CString& strLayerName, OUT AcDbObjectId& IdLayer ) const { int nSize = m_vLayers.size(); Acad::ErrorStatus es = Acad::eRecordNotInTable; for ( int i = 0; i < nSize; i++ ) { CString strName; if( Acad::eOk == GetLayerName(m_vLayers[i], strName) ) { if( strLayerName.CompareNoCase(strName) == 0 ) { IdLayer = m_vLayers[i]; return Acad::eOk; } } } // vector< TWArxLayer> v, v2; // GetLayer( v ); return es; }
wxString TEXTE_MODULE::GetSelectMenuText() const { wxString text; const wxChar *reference = GetChars( static_cast<MODULE*>( GetParent() )->GetReference() ); switch( m_Type ) { case TEXT_is_REFERENCE: text.Printf( _( "Reference %s" ), reference ); break; case TEXT_is_VALUE: text.Printf( _( "Value %s of %s" ), GetChars( GetShownText() ), reference ); break; default: // wrap this one in quotes: text.Printf( _( "Text \"%s\" on %s of %s" ), GetChars( ShortenedShownText() ), GetChars( GetLayerName() ), reference ); break; } return text; }
wxString TEXTE_MODULE::GetSelectMenuText() const { wxString text; switch( m_Type ) { case TEXT_is_REFERENCE: text.Printf( _( "Reference %s" ), GetChars( m_Text ) ); break; case TEXT_is_VALUE: text.Printf( _( "Value %s of %s" ), GetChars( m_Text ), GetChars( ( (MODULE*) GetParent() )->GetReference() ) ); break; default: // wrap this one in quotes: text.Printf( _( "Text \"%s\" on %s of %s" ), GetChars( m_Text ), GetChars( GetLayerName() ), GetChars( ( (MODULE*) GetParent() )->GetReference() ) ); break; } return text; }
/* Virtual function, from EDA_ITEM. * display module info on MsgPanel */ void MODULE::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList ) { int nbpad; char bufcar[512], Line[512]; wxString msg; aList.push_back( MSG_PANEL_ITEM( m_Reference->GetText(), m_Value->GetText(), DARKCYAN ) ); // Display last date the component was edited (useful in Module Editor). time_t edit_time = m_LastEditTime; strcpy( Line, ctime( &edit_time ) ); strtok( Line, " \n\r" ); strcpy( bufcar, strtok( NULL, " \n\r" ) ); strcat( bufcar, " " ); strcat( bufcar, strtok( NULL, " \n\r" ) ); strcat( bufcar, ", " ); strtok( NULL, " \n\r" ); strcat( bufcar, strtok( NULL, " \n\r" ) ); msg = FROM_UTF8( bufcar ); aList.push_back( MSG_PANEL_ITEM( _( "Last Change" ), msg, BROWN ) ); // display schematic path aList.push_back( MSG_PANEL_ITEM( _( "Netlist path" ), m_Path, BROWN ) ); aList.push_back( MSG_PANEL_ITEM( _( "Layer" ), GetLayerName(), 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( _( "Stat" ), msg, MAGENTA ) ); msg.Printf( wxT( "%.1f" ), m_Orient / 10.0 ); aList.push_back( MSG_PANEL_ITEM( _( "Orient" ), 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( _( "Attrib" ), msg, BROWN ) ); aList.push_back( MSG_PANEL_ITEM( _( "Module" ), FROM_UTF8( m_fpid.Format().c_str() ), BLUE ) ); msg = _( "No 3D shape" ); // Search the first active 3D shape in list for( S3D_MASTER* struct3D = m_3D_Drawings; struct3D; struct3D = struct3D->Next() ) { if( !struct3D->GetShape3DName().IsEmpty() ) { msg = struct3D->GetShape3DName(); break; } } aList.push_back( MSG_PANEL_ITEM( _( "3D-Shape" ), msg, RED ) ); wxString doc, keyword; doc.Printf( _( "Doc: %s" ), GetChars( m_Doc ) ); keyword.Printf( _( "KeyW: %s" ), GetChars( m_KeyWord ) ); aList.push_back( MSG_PANEL_ITEM( doc, keyword, BLACK ) ); }
int ILI1Reader::ReadModel(const char *pszModelFilename) { IOM_BASKET model; IOM_ITERATOR modelelei; IOM_OBJECT modelele; iom_init(); // set error listener to a iom provided one, that just // dumps all errors to stderr iom_seterrlistener(iom_stderrlistener); // compile ili model char *iomarr[1] = {(char *)pszModelFilename}; model=iom_compileIli(1, iomarr); if(!model){ CPLError( CE_Failure, CPLE_FileIO, "iom_compileIli failed." ); iom_end(); return FALSE; } // create new layer with meta information (ILI table name and geometry column index) // while reading the features from the ITF we have to know which column is the geometry column metaLayer = new OGRILI1Layer("Metatable", NULL, 0, wkbUnknown, NULL); OGRFieldDefn fieldDef1("layername", OFTString); metaLayer->GetLayerDefn()->AddFieldDefn(&fieldDef1); OGRFieldDefn fieldDef2("geomIdx", OFTInteger); metaLayer->GetLayerDefn()->AddFieldDefn(&fieldDef2); OGRFieldDefn fieldDef3("geomlayername", OFTString); metaLayer->GetLayerDefn()->AddFieldDefn(&fieldDef3); // read tables int j = 0; modelelei=iom_iteratorobject(model); modelele=iom_nextobject(modelelei); while(modelele){ const char *tag=iom_getobjecttag(modelele); if (tag && EQUAL(tag,"iom04.metamodel.Table")) { const char* topic = iom_getattrvalue(GetAttrObj(model, modelele, "container"), "name"); if (!EQUAL(topic, "INTERLIS")) { const char* layername = GetLayerName(model, modelele); OGRSpatialReference *poSRSIn = NULL; int bWriterIn = 0; OGRwkbGeometryType eReqType = wkbUnknown; OGRILI1DataSource *poDSIn = NULL; CPLDebug( "OGR_ILI", "Reading table model '%s'", layername ); // read fields IOM_OBJECT fields[255]; IOM_OBJECT roledefs[255]; memset(fields, 0, 255); memset(roledefs, 0, 255); int maxIdx = -1; IOM_ITERATOR fieldit=iom_iteratorobject(model); std::vector<IOM_OBJECT> attributes; for (IOM_OBJECT fieldele=iom_nextobject(fieldit); fieldele; fieldele=iom_nextobject(fieldit)){ const char *etag=iom_getobjecttag(fieldele); if (etag && (EQUAL(etag,"iom04.metamodel.ViewableAttributesAndRoles"))) { IOM_OBJECT table = GetAttrObj(model, fieldele, "viewable"); if (table == modelele) { IOM_OBJECT obj = GetAttrObj(model, fieldele, "attributesAndRoles"); int ili1AttrIdx = GetAttrObjPos(fieldele, "attributesAndRoles")-1; if (EQUAL(iom_getobjecttag(obj),"iom04.metamodel.RoleDef")) { int ili1AttrIdxOppend = atoi(iom_getattrvalue(GetAttrObj(model, obj, "oppend"), "ili1AttrIdx")); if (ili1AttrIdxOppend>=0) { roledefs[ili1AttrIdxOppend] = obj; if (ili1AttrIdxOppend > maxIdx) maxIdx = ili1AttrIdxOppend; } } else { fields[ili1AttrIdx] = obj; if (ili1AttrIdx > maxIdx) maxIdx = ili1AttrIdx; } } } iom_releaseobject(fieldele); } iom_releaseiterator(fieldit); // if multiple gets positive we have more than one geometry column (only points) int multiple = -1; for (int i=0; i<=maxIdx; i++) { IOM_OBJECT obj = fields[i]; if (obj) { attributes.push_back(obj); if (EQUAL(GetTypeName(model, obj), "iom04.metamodel.CoordType")) multiple++; } } std::vector<IOM_OBJECT>::iterator it = attributes.begin(); for (int i=0; i<=maxIdx; i++) { IOM_OBJECT obj = roledefs[i]; if (obj) attributes.insert(attributes.begin() + i, obj); } OGRFeature *feature = NULL; char* geomlayername = '\0'; OGRILI1Layer* layer = NULL; for(int i=0; i<attributes.size(); i++) { IOM_OBJECT obj = attributes.at(i); const char* typenam = GetTypeName(model, obj); if (EQUAL(typenam, "iom04.metamodel.CoordType") || EQUAL(typenam, "iom04.metamodel.AreaType")) { feature = OGRFeature::CreateFeature(metaLayer->GetLayerDefn()); feature->SetFID(j+1); feature->SetField("layername", layername); feature->SetField("geomIdx", i); if(multiple > 0) { geomlayername = GetPointLayerName(layername, iom_getattrvalue(obj, "name")); feature->SetField("geomlayername", geomlayername); layer = new OGRILI1Layer(geomlayername, poSRSIn, bWriterIn, eReqType, poDSIn); AddLayer(layer); } else { feature->SetField("geomlayername", layername); layer = new OGRILI1Layer(layername, poSRSIn, bWriterIn, eReqType, poDSIn); AddLayer(layer); } metaLayer->AddFeature(feature); } } if(layer == NULL) { layer = new OGRILI1Layer(layername, poSRSIn, bWriterIn, eReqType, poDSIn); AddLayer(layer); } OGRFieldDefn fieldDef("_TID", OFTString); layer->GetLayerDefn()->AddFieldDefn(&fieldDef); for(int i=0; i<attributes.size(); i++) { IOM_OBJECT obj = attributes.at(i); AddField(layer, model, obj); } // additional point layer added if(multiple > 0) { for(int i = 1; i <= multiple; i++) { OGRILI1Layer* pointLayer = papoLayers[nLayers-(i+1)]; for (int j=0; j < layer->GetLayerDefn()->GetFieldCount(); j++) { pointLayer->CreateField(layer->GetLayerDefn()->GetFieldDefn(j)); } if (pointLayer->GetLayerDefn()->GetGeomType() == wkbUnknown) pointLayer->GetLayerDefn()->SetGeomType(wkbPoint); } } if (papoLayers[nLayers-1]->GetLayerDefn()->GetFieldCount() == 0) { //Area layer added OGRILI1Layer* areaLayer = papoLayers[nLayers-1]; for (int i=0; i < layer->GetLayerDefn()->GetFieldCount(); i++) { areaLayer->CreateField(layer->GetLayerDefn()->GetFieldDefn(i)); } } } } iom_releaseobject(modelele); modelele=iom_nextobject(modelelei); j++; } iom_releaseiterator(modelelei); iom_releasebasket(model); iom_end(); return 0; }
wxString TEXTE_PCB::GetSelectMenuText( EDA_UNITS_T aUnits ) const { return wxString::Format( _( "Pcb Text \"%s\" on %s"), ShortenedShownText(), GetLayerName() ); }
void ZONE_CONTAINER::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList ) { wxString msg; msg = _( "Zone Outline" ); // Display Cutout instead of Outline for holes inside a zone // i.e. when num contour !=0 int ncont = m_Poly->GetContour( m_CornerSelection ); if( ncont ) msg << wxT( " " ) << _( "(Cutout)" ); aList.push_back( MSG_PANEL_ITEM( _( "Type" ), msg, DARKCYAN ) ); if( GetIsKeepout() ) { msg.Empty(); if( GetDoNotAllowVias() ) AccumulateDescription( msg, _("No via") ); if( GetDoNotAllowTracks() ) AccumulateDescription( msg, _("No track") ); if( GetDoNotAllowCopperPour() ) AccumulateDescription( msg, _("No copper pour") ); aList.push_back( MSG_PANEL_ITEM( _( "Keepout" ), msg, RED ) ); } else if( IsOnCopperLayer() ) { if( GetNetCode() >= 0 ) { NETINFO_ITEM* equipot = GetNet(); if( equipot ) msg = equipot->GetNetname(); else msg = wxT( "<noname>" ); } else // a netcode < 0 is an error { msg = wxT( " [" ); msg << GetNetname() + wxT( "]" ); msg << wxT( " <" ) << _( "Not Found" ) << wxT( ">" ); } aList.push_back( MSG_PANEL_ITEM( _( "NetName" ), msg, RED ) ); #if 1 // Display net code : (useful in test or debug) msg.Printf( wxT( "%d" ), GetNetCode() ); aList.push_back( MSG_PANEL_ITEM( _( "NetCode" ), msg, RED ) ); #endif // Display priority level msg.Printf( wxT( "%d" ), GetPriority() ); aList.push_back( MSG_PANEL_ITEM( _( "Priority" ), msg, BLUE ) ); } else { aList.push_back( MSG_PANEL_ITEM( _( "Non Copper Zone" ), wxEmptyString, RED ) ); } aList.push_back( MSG_PANEL_ITEM( _( "Layer" ), GetLayerName(), BROWN ) ); msg.Printf( wxT( "%d" ), (int) m_Poly->m_CornersList.GetCornersCount() ); aList.push_back( MSG_PANEL_ITEM( _( "Corners" ), msg, BLUE ) ); if( m_FillMode ) msg = _( "Segments" ); else msg = _( "Polygons" ); aList.push_back( MSG_PANEL_ITEM( _( "Fill mode" ), msg, BROWN ) ); // Useful for statistics : msg.Printf( wxT( "%d" ), (int) m_Poly->m_HatchLines.size() ); aList.push_back( MSG_PANEL_ITEM( _( "Hatch lines" ), msg, BLUE ) ); if( m_FilledPolysList.GetCornersCount() ) { msg.Printf( wxT( "%d" ), (int) m_FilledPolysList.GetCornersCount() ); aList.push_back( MSG_PANEL_ITEM( _( "Corners in DrawList" ), msg, BLUE ) ); } }
/* Virtual function, from EDA_ITEM. * display module info on MsgPanel */ 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 ) ); aList.push_back( MSG_PANEL_ITEM( _( "Layer" ), GetLayerName(), 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" ), m_Orient / 10.0 ); aList.push_back( MSG_PANEL_ITEM( _( "Angle" ), 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 ) ); msg = _( "No 3D shape" ); // Search the first active 3D shape in list for( S3D_MASTER* struct3D = m_3D_Drawings; struct3D; struct3D = struct3D->Next() ) { if( !struct3D->GetShape3DName().IsEmpty() ) { msg = struct3D->GetShape3DName(); break; } } 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 ) ); }