Commit 9dca39f1 authored by dickelbeck's avatar dickelbeck
Browse files

SEGVIA::Show() & BOARD_ITEM::MenuText()

parent 08315e73
Loading
Loading
Loading
Loading
+7 −0
Original line number Original line Diff line number Diff line
@@ -5,6 +5,13 @@ Please add newer entries at the top, list the date and your name with
email address.
email address.




2007-Sep-30 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
    Added dedicated Show() function for SEGVIA.  Enhanced BOARD_ITEM::MenuText()
    for SEGVIA.  Added to todo.txt.


2007-Sep-29 UPDATE   Dick Hollenbeck <dick@softplc.com>
2007-Sep-29 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
================================================================================
+ pcbnew
+ pcbnew
+7 −10
Original line number Original line Diff line number Diff line
@@ -265,7 +265,7 @@ void MyFree( void* pt_mem )




/**************************************************************/
/**************************************************************/
wxString ReturnPcbLayerName( int layer_number, bool is_filename )
wxString ReturnPcbLayerName( int layer_number, bool omitSpacePadding )
/**************************************************************/
/**************************************************************/


/* Return the name of the layer number "layer_number".
/* Return the name of the layer number "layer_number".
@@ -273,7 +273,6 @@ wxString ReturnPcbLayerName( int layer_number, bool is_filename )
 *  (not internatinalized, no space)
 *  (not internatinalized, no space)
 */
 */
{
{
    wxString layer_name;
    static const wxString layer_name_list[] = {
    static const wxString layer_name_list[] = {
        _( "Copper   " ), _( "Inner L1 " ), _( "Inner L2 " ), _( "Inner L3 " ),
        _( "Copper   " ), _( "Inner L1 " ), _( "Inner L2 " ), _( "Inner L3 " ),
        _( "Inner L4 " ), _( "Inner L5 " ), _( "Inner L6 " ), _( "Inner L7 " ),
        _( "Inner L4 " ), _( "Inner L5 " ), _( "Inner L6 " ), _( "Inner L7 " ),
@@ -285,6 +284,7 @@ wxString ReturnPcbLayerName( int layer_number, bool is_filename )
        _( "Edges Pcb" ), _( "---      " ), _( "---      " ), _( "---      " )
        _( "Edges Pcb" ), _( "---      " ), _( "---      " ), _( "---      " )
    };
    };


    
    // Same as layer_name_list, without space, not internationalized
    // Same as layer_name_list, without space, not internationalized
    static const wxString layer_name_list_for_filename[] = {
    static const wxString layer_name_list_for_filename[] = {
        wxT( "Copper" ),   wxT( "InnerL1" ),  wxT( "InnerL2" ),  wxT( "InnerL3" ),
        wxT( "Copper" ),   wxT( "InnerL1" ),  wxT( "InnerL2" ),  wxT( "InnerL3" ),
@@ -297,15 +297,12 @@ wxString ReturnPcbLayerName( int layer_number, bool is_filename )
        wxT( "EdgesPcb" ), wxT( "---" ),      wxT( "---" ),      wxT( "---" )
        wxT( "EdgesPcb" ), wxT( "---" ),      wxT( "---" ),      wxT( "---" )
    };
    };


    if( layer_number >= 31 )
    if( (unsigned) layer_number >= 31u )
        layer_number = 31;
        layer_number = 31;


    if( is_filename )
    return omitSpacePadding  ? 
        layer_name = layer_name_list_for_filename[layer_number];
        layer_name_list_for_filename[layer_number] :
    else
        layer_name_list[layer_number];
        layer_name = layer_name_list[layer_number];

    return layer_name;
}
}




+28 −10
Original line number Original line Diff line number Diff line
@@ -38,7 +38,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const


    case TYPEMODULE:
    case TYPEMODULE:
        text << _( "Footprint" ) << wxT( " " ) << ( (MODULE*) item )->GetReference();
        text << _( "Footprint" ) << wxT( " " ) << ( (MODULE*) item )->GetReference();
        text << wxT( " (" ) << ReturnPcbLayerName( item->m_Layer ) << wxT( ")" );
        text << wxT( " (" ) << ReturnPcbLayerName( item->m_Layer ).Trim() << wxT( ")" );
        break;
        break;


    case TYPEPAD:
    case TYPEPAD:
@@ -47,7 +47,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
        break;
        break;


    case TYPEDRAWSEGMENT:
    case TYPEDRAWSEGMENT:
        text << _( "Pcb Graphic" ) << _( " on " ) << ReturnPcbLayerName( item->GetLayer() );  // @todo: extend text
        text << _( "Pcb Graphic" ) << _( " on " ) << ReturnPcbLayerName( item->GetLayer() ).Trim();  // @todo: extend text
        break;
        break;


    case TYPETEXTE:
    case TYPETEXTE:
@@ -56,7 +56,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
            text << ( (TEXTE_PCB*) item )->m_Text;
            text << ( (TEXTE_PCB*) item )->m_Text;
        else
        else
            text += ( (TEXTE_PCB*) item )->m_Text.Left( 10 ) + wxT( ".." );
            text += ( (TEXTE_PCB*) item )->m_Text.Left( 10 ) + wxT( ".." );
        text << _( " on " ) << ReturnPcbLayerName( item->GetLayer() );
        text << _( " on " ) << ReturnPcbLayerName( item->GetLayer() ).Trim();
        break;
        break;


    case TYPETEXTEMODULE:
    case TYPETEXTEMODULE:
@@ -130,7 +130,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
        {
        {
            text << wxT( " [" ) << net->m_Netname << wxT( "]" );
            text << wxT( " [" ) << net->m_Netname << wxT( "]" );
        }
        }
        text << _( " on " ) << ReturnPcbLayerName( item->GetLayer() );
        text << _( " on " ) << ReturnPcbLayerName( item->GetLayer() ).Trim();
        break;
        break;


    case TYPEZONE:
    case TYPEZONE:
@@ -145,16 +145,34 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
        {
        {
            text << wxT( " [" ) << net->m_Netname << wxT( "]" );
            text << wxT( " [" ) << net->m_Netname << wxT( "]" );
        }
        }
        text << _( " on " ) << ReturnPcbLayerName( item->GetLayer() );
        text << _( " on " ) << ReturnPcbLayerName( item->GetLayer() ).Trim();
        break;
        break;


    case TYPEVIA:
    case TYPEVIA:
        text << _( "Via" ) << wxT( " " ) << ( (SEGVIA*) item )->m_NetCode;
        {
        net = aPcb->FindNet( ( (TRACK*) item )->m_NetCode );
            SEGVIA* via = (SEGVIA*) item;
            text << _( "Via" ) << wxT( " " ) << via->m_NetCode;
            
            int shape = via->Shape(); 
            if( shape == VIA_ENTERREE )
                text << wxT(" ") << _( "Blind" );
            else if( shape == VIA_BORGNE )
                text << wxT(" ") << _("Buried");
            // else say nothing about normal vias
            
            net = aPcb->FindNet( via->m_NetCode );
            if( net )
            if( net )
            {
            {
                text << wxT( " [" ) << net->m_Netname << wxT( "]" );
                text << wxT( " [" ) << net->m_Netname << wxT( "]" );
            }
            }
            
            // say which layers, only two for now
            int topLayer;
            int botLayer;
            via->ReturnLayerPair( &topLayer, &botLayer );
            text << _( " on " ) << ReturnPcbLayerName( topLayer).Trim() << wxT(" <-> ") 
                << ReturnPcbLayerName( botLayer ).Trim();
        }
        break;
        break;


    case TYPEMARQUEUR:
    case TYPEMARQUEUR:
@@ -170,7 +188,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
        break;
        break;


    case TYPEEDGEZONE:
    case TYPEEDGEZONE:
        text << _( "Edge Zone" ) << _( " on " ) << ReturnPcbLayerName( item->GetLayer() );  // @todo: extend text
        text << _( "Edge Zone" ) << _( " on " ) << ReturnPcbLayerName( item->GetLayer() ).Trim();  // @todo: extend text
        break;
        break;


    default:
    default:
+46 −2
Original line number Original line Diff line number Diff line
@@ -816,6 +816,7 @@ bool TRACK::HitTest( const wxPoint& ref_pos )




#if defined(DEBUG)
#if defined(DEBUG)

/**
/**
 * Function Show
 * Function Show
 * is used to output the object tree, currently for debugging only.
 * is used to output the object tree, currently for debugging only.
@@ -826,10 +827,10 @@ bool TRACK::HitTest( const wxPoint& ref_pos )
void TRACK::Show( int nestLevel, std::ostream& os )
void TRACK::Show( int nestLevel, std::ostream& os )
{
{
    NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() <<
    NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() <<
        " shape=\""     << m_Shape      << '"' <<
//        " shape=\""     << m_Shape      << '"' <<
        " layer=\""     << m_Layer      << '"' <<
        " layer=\""     << m_Layer      << '"' <<
        " width=\""     << m_Width      << '"' <<
        " width=\""     << m_Width      << '"' <<
        " drill=\""     << m_Drill      << '"' <<
//        " drill=\""     << m_Drill      << '"' <<
        " netcode=\""   << m_NetCode    << "\">" <<
        " netcode=\""   << m_NetCode    << "\">" <<
        "<start"        << m_Start      << "/>" <<
        "<start"        << m_Start      << "/>" <<
        "<end"          << m_End        << "/>";
        "<end"          << m_End        << "/>";
@@ -837,6 +838,49 @@ void TRACK::Show( int nestLevel, std::ostream& os )
    os << "</" << GetClass().Lower().mb_str() << ">\n"; 
    os << "</" << GetClass().Lower().mb_str() << ">\n"; 
}
}



/**
 * Function Show
 * is used to output the object tree, currently for debugging only.
 * @param nestLevel An aid to prettier tree indenting, and is the level 
 *          of nesting of this object within the overall tree.
 * @param os The ostream& to output to.
 */
void SEGVIA::Show( int nestLevel, std::ostream& os )
{
    const char* cp;
    
    switch( Shape() )
    {
    case VIA_NORMALE:       cp = "through";     break;
    case VIA_ENTERREE:      cp = "blind";       break;
    case VIA_BORGNE:        cp = "buried";      break;
    default:
    case VIA_NOT_DEFINED:   cp = "undefined";   break;
    }

    int topLayer;
    int botLayer;
    
    ReturnLayerPair( &topLayer, &botLayer );
    
    NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() <<
        " type=\""      << cp           << '"' <<
        " layers=\""    << ReturnPcbLayerName( topLayer).Trim().mb_str() << ","  
                        << ReturnPcbLayerName( botLayer ).Trim().mb_str() << '"' <<
        " width=\""     << m_Width      << '"' <<
        " drill=\""     << m_Drill      << '"' <<
        " netcode=\""   << m_NetCode    << "\">" <<
        "<pos"          << m_Start      << "/>";
        
    os << "</" << GetClass().Lower().mb_str() << ">\n"; 
}






#endif
#endif


+16 −1
Original line number Original line Diff line number Diff line
@@ -146,6 +146,8 @@ public:
        return wxT("TRACK");
        return wxT("TRACK");
    }
    }
    
    
    
#if defined(DEBUG)    
    /**
    /**
     * Function Show
     * Function Show
     * is used to output the object tree, currently for debugging only.
     * is used to output the object tree, currently for debugging only.
@@ -154,7 +156,7 @@ public:
     * @param os The ostream& to output to.
     * @param os The ostream& to output to.
     */
     */
    void Show( int nestLevel, std::ostream& os );
    void Show( int nestLevel, std::ostream& os );
    
#endif    
};
};




@@ -211,6 +213,19 @@ public:
    {
    {
        return wxT("VIA");
        return wxT("VIA");
    }
    }

    
#if defined(DEBUG)    
    /**
     * Function Show
     * is used to output the object tree, currently for debugging only.
     * @param nestLevel An aid to prettier tree indenting, and is the level 
     *          of nesting of this object within the overall tree.
     * @param os The ostream& to output to.
     */
    void Show( int nestLevel, std::ostream& os );
#endif    
    
};
};




Loading