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 Diff line number Diff line
add_definitions(-DEESCHEMA)

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

set(EESCHEMA_SRCS
    affiche.cpp
+2 −1
Original line number Diff line number Diff line
@@ -41,7 +41,8 @@ void SCH_COMPONENT::Display_Infos( WinEDA_DrawFrame* frame )
        msg = _( "Pwr Symb" );
    else
        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 );

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

            BaseListeCmp[NbrCmp].m_NumRef = -1;

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

            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++;
        }
    }
+10 −9
Original line number Diff line number Diff line
@@ -48,22 +48,23 @@ bool WinEDA_SchematicFrame::FillFootprintFieldForAllInstancesofComponent(

            Cmp = (SCH_COMPONENT*) DrawList;
            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
                  * the text is empty at position 0, because it is probably not yet initialised
                  */
                if( Cmp->m_Field[FOOTPRINT].m_Text.IsEmpty()
                   && ( Cmp->m_Field[FOOTPRINT].m_Pos == wxPoint( 0, 0 ) ) )
                if( Cmp->GetField(FOOTPRINT)->m_Text.IsEmpty()
                   && ( Cmp->GetField(FOOTPRINT)->m_Pos == wxPoint( 0, 0 ) ) )
                {
                    Cmp->m_Field[FOOTPRINT].m_Orient = Cmp->m_Field[VALUE].m_Orient;
                    Cmp->m_Field[FOOTPRINT].m_Pos    = Cmp->m_Field[VALUE].m_Pos;
                    Cmp->m_Field[FOOTPRINT].m_Pos.y -= 100;
                    Cmp->GetField(FOOTPRINT)->m_Orient = Cmp->GetField(VALUE)->m_Orient;
                    Cmp->GetField(FOOTPRINT)->m_Pos    = Cmp->GetField(VALUE)->m_Pos;
                    Cmp->GetField(FOOTPRINT)->m_Pos.y -= 100;
                }
                Cmp->m_Field[FOOTPRINT].m_Text = aFootPrint;
                Cmp->GetField(FOOTPRINT)->m_Text = aFootPrint;
                if( aSetVisible )
                    Cmp->m_Field[FOOTPRINT].m_Attributs &= ~TEXT_NO_VISIBLE;
                    Cmp->GetField(FOOTPRINT)->m_Attributs &= ~TEXT_NO_VISIBLE;
                else
                    Cmp->m_Field[FOOTPRINT].m_Attributs |= TEXT_NO_VISIBLE;
                    Cmp->GetField(FOOTPRINT)->m_Attributs |= TEXT_NO_VISIBLE;
                found = true;
            }
        }
+7 −6
Original line number Diff line number Diff line
@@ -711,11 +711,12 @@ void MirrorOneStruct( SCH_ITEM * DrawStruct, wxPoint& Center )
                                                         NULL, CMP_MIROIR_Y );
        MirrorYPoint( DrawLibItem->m_Pos, Center );
        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;

    case DRAW_SHEET_STRUCT_TYPE:
@@ -1232,9 +1233,9 @@ void MoveOneStruct( SCH_ITEM * DrawStruct, const wxPoint& move_vector )
    case TYPE_SCH_COMPONENT:
        DrawLibItem = (SCH_COMPONENT*) DrawStruct;
        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;
Loading