Commit ff193f18 authored by dickelbeck's avatar dickelbeck
Browse files

variable number of fields per schematic component

parent 22c50612
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
add_definitions(-DEESCHEMA)
add_definitions(-DEESCHEMA)


include_directories(${CMAKE_CURRENT_SOURCE_DIR})
include_directories(${CMAKE_CURRENT_SOURCE_DIR}
#                    ${Boost_INCLUDE_DIR}
                   )


set(EESCHEMA_SRCS
set(EESCHEMA_SRCS
    affiche.cpp
    affiche.cpp
+2 −1
Original line number Original line Diff line number Diff line
@@ -41,7 +41,8 @@ void SCH_COMPONENT::Display_Infos( WinEDA_DrawFrame* frame )
        msg = _( "Pwr Symb" );
        msg = _( "Pwr Symb" );
    else
    else
        msg = _( "Val" );
        msg = _( "Val" );
    Affiche_1_Parametre( frame, 10, msg, m_Field[VALUE].m_Text, DARKCYAN );

    Affiche_1_Parametre( frame, 10, msg, GetField(VALUE)->m_Text, DARKCYAN );


    Affiche_1_Parametre( frame, 28, _( "RefLib" ), m_ChipName.GetData(), BROWN );
    Affiche_1_Parametre( frame, 28, _( "RefLib" ), m_ChipName.GetData(), BROWN );


+3 −3
Original line number Original line Diff line number Diff line
@@ -382,11 +382,11 @@ int ListeComposants( CmpListStruct* BaseListeCmp, DrawSheetPath* sheet )


            BaseListeCmp[NbrCmp].m_NumRef = -1;
            BaseListeCmp[NbrCmp].m_NumRef = -1;


            if( DrawLibItem->m_Field[VALUE].m_Text.IsEmpty() )
            if( DrawLibItem->GetField(VALUE)->m_Text.IsEmpty() )
                DrawLibItem->m_Field[VALUE].m_Text = wxT( "~" );
                DrawLibItem->GetField(VALUE)->m_Text = wxT( "~" );


            strncpy( BaseListeCmp[NbrCmp].m_TextValue,
            strncpy( BaseListeCmp[NbrCmp].m_TextValue,
                CONV_TO_UTF8( DrawLibItem->m_Field[VALUE].m_Text ), 32 );
                CONV_TO_UTF8( DrawLibItem->GetField(VALUE)->m_Text ), 32 );
            NbrCmp++;
            NbrCmp++;
        }
        }
    }
    }
+10 −9
Original line number Original line Diff line number Diff line
@@ -48,22 +48,23 @@ bool WinEDA_SchematicFrame::FillFootprintFieldForAllInstancesofComponent(


            Cmp = (SCH_COMPONENT*) DrawList;
            Cmp = (SCH_COMPONENT*) DrawList;
            if( aReference.CmpNoCase( Cmp->GetRef( sheet ) ) == 0 )
            if( aReference.CmpNoCase( Cmp->GetRef( sheet ) ) == 0 )
            {    // Found: Init Footprint Field
            {
                 // Found: Init Footprint Field
                 /* Give a reasonnable value to the fied position and orientation, if
                 /* Give a reasonnable value to the fied position and orientation, if
                  * the text is empty at position 0, because it is probably not yet initialised
                  * the text is empty at position 0, because it is probably not yet initialised
                  */
                  */
                if( Cmp->m_Field[FOOTPRINT].m_Text.IsEmpty()
                if( Cmp->GetField(FOOTPRINT)->m_Text.IsEmpty()
                   && ( Cmp->m_Field[FOOTPRINT].m_Pos == wxPoint( 0, 0 ) ) )
                   && ( Cmp->GetField(FOOTPRINT)->m_Pos == wxPoint( 0, 0 ) ) )
                {
                {
                    Cmp->m_Field[FOOTPRINT].m_Orient = Cmp->m_Field[VALUE].m_Orient;
                    Cmp->GetField(FOOTPRINT)->m_Orient = Cmp->GetField(VALUE)->m_Orient;
                    Cmp->m_Field[FOOTPRINT].m_Pos    = Cmp->m_Field[VALUE].m_Pos;
                    Cmp->GetField(FOOTPRINT)->m_Pos    = Cmp->GetField(VALUE)->m_Pos;
                    Cmp->m_Field[FOOTPRINT].m_Pos.y -= 100;
                    Cmp->GetField(FOOTPRINT)->m_Pos.y -= 100;
                }
                }
                Cmp->m_Field[FOOTPRINT].m_Text = aFootPrint;
                Cmp->GetField(FOOTPRINT)->m_Text = aFootPrint;
                if( aSetVisible )
                if( aSetVisible )
                    Cmp->m_Field[FOOTPRINT].m_Attributs &= ~TEXT_NO_VISIBLE;
                    Cmp->GetField(FOOTPRINT)->m_Attributs &= ~TEXT_NO_VISIBLE;
                else
                else
                    Cmp->m_Field[FOOTPRINT].m_Attributs |= TEXT_NO_VISIBLE;
                    Cmp->GetField(FOOTPRINT)->m_Attributs |= TEXT_NO_VISIBLE;
                found = true;
                found = true;
            }
            }
        }
        }
+7 −6
Original line number Original line Diff line number Diff line
@@ -711,11 +711,12 @@ void MirrorOneStruct( SCH_ITEM * DrawStruct, wxPoint& Center )
                                                         NULL, CMP_MIROIR_Y );
                                                         NULL, CMP_MIROIR_Y );
        MirrorYPoint( DrawLibItem->m_Pos, Center );
        MirrorYPoint( DrawLibItem->m_Pos, Center );
        dx -= DrawLibItem->m_Pos.x;
        dx -= DrawLibItem->m_Pos.x;
        for( ii = 0; ii < NUMBER_OF_FIELDS; ii++ )
        {       /* move the fields to the new position because the component itself has moved */
            DrawLibItem->m_Field[ii].m_Pos.x -= dx;
        }


        for( ii = 0; ii < DrawLibItem->GetFieldCount(); ii++ )
        {
            /* move the fields to the new position because the component itself has moved */
            DrawLibItem->GetField(ii)->m_Pos.x -= dx;
        }
        break;
        break;


    case DRAW_SHEET_STRUCT_TYPE:
    case DRAW_SHEET_STRUCT_TYPE:
@@ -1232,9 +1233,9 @@ void MoveOneStruct( SCH_ITEM * DrawStruct, const wxPoint& move_vector )
    case TYPE_SCH_COMPONENT:
    case TYPE_SCH_COMPONENT:
        DrawLibItem = (SCH_COMPONENT*) DrawStruct;
        DrawLibItem = (SCH_COMPONENT*) DrawStruct;
        DrawLibItem->m_Pos += move_vector;
        DrawLibItem->m_Pos += move_vector;
        for( ii = 0; ii < NUMBER_OF_FIELDS; ii++ )
        for( ii = 0; ii < DrawLibItem->GetFieldCount(); ii++ )
        {
        {
            DrawLibItem->m_Field[ii].m_Pos += move_vector;
            DrawLibItem->GetField(ii)->m_Pos += move_vector;
        }
        }


        break;
        break;
Loading