Commit 39476ccd authored by jean-pierre charras's avatar jean-pierre charras
Browse files

added track posture patch from lorenzo marcantonio

parents 700dc818 2f5c24ae
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
    case ID_POPUP_PCB_STOP_CURRENT_DRAWING:
    case ID_POPUP_PCB_END_TRACK:
    case ID_POPUP_PCB_PLACE_VIA:
    case ID_POPUP_PCB_SWITCH_TRACK_POSTURE:
    case ID_POPUP_PCB_PLACE_MICROVIA:
    case ID_POPUP_PCB_IMPORT_PAD_SETTINGS:
    case ID_POPUP_PCB_EXPORT_PAD_SETTINGS:
@@ -339,6 +340,13 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
        }
        break;

    case ID_POPUP_PCB_SWITCH_TRACK_POSTURE:
	/* XXX POSTURE XXX */
	ShowNewTrackWhenMovingCursor( DrawPanel, &dc, true );
	g_Alternate_Track_Posture = !g_Alternate_Track_Posture;
	ShowNewTrackWhenMovingCursor( DrawPanel, &dc, false );
	break;

    case ID_POPUP_PCB_PLACE_MICROVIA:
        if( !IsMicroViaAcceptable() )
            break;
+6 −1
Original line number Diff line number Diff line
@@ -906,11 +906,16 @@ void ComputeBreakPoint( TRACK* track, int SegmentCount, wxPoint end )
    TRACK* lastTrack = track ? track->Back() : NULL;
    if( lastTrack )
    {
        if( (lastTrack->m_End.x == lastTrack->m_Start.x)
        if(( (lastTrack->m_End.x == lastTrack->m_Start.x)
           || (lastTrack->m_End.y == lastTrack->m_Start.y) )
		&& !g_Alternate_Track_Posture)
        {
            iAngle = 45;
        }
    } else {
	if (g_Alternate_Track_Posture) {
	    iAngle = 45;
	}
    }

    if( iAngle == 0 )
+9 −0
Original line number Diff line number Diff line
@@ -67,6 +67,8 @@ static Ki_HotkeyInfo HkBackspace( wxT( "Delete track segment" ), HK_BACK_SPACE,
                                  WXK_BACK );
static Ki_HotkeyInfo HkAddNewTrack( wxT( "Add new track" ), HK_ADD_NEW_TRACK, 'X' );
static Ki_HotkeyInfo HkAddVia( wxT( "Add Via" ), HK_ADD_VIA, 'V' );
static Ki_HotkeyInfo HkSwitchTrackPosture( wxT( "Switch Track Posture" ),
                                        HK_SWITCH_TRACK_POSTURE, '/' );
static Ki_HotkeyInfo HkAddMicroVia( wxT( "Add MicroVia" ), HK_ADD_MICROVIA, 'V'
                                    + GR_KB_CTRL );
static Ki_HotkeyInfo HkEndTrack( wxT( "End Track" ), HK_END_TRACK, WXK_END );
@@ -157,6 +159,7 @@ Ki_HotkeyInfo* s_board_edit_Hotkey_List[] =
    &HkTrackDisplayMode,       &HkDelete,
    &HkBackspace,
    &HkAddNewTrack,            &HkAddVia,                    &HkAddMicroVia,
    &HkSwitchTrackPosture,
    &HkEndTrack,               &HkMoveFootprint,
    &HkFlipFootprint,          &HkRotateFootprint,           &HkDragFootprint,
    &HkGetAndMoveFootprint,    &HkLock_Unlock_Footprint,     &HkSavefile,
@@ -496,6 +499,12 @@ void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey, EDA_BaseStruct* DrawStruct
            DrawPanel->Refresh();
        break;

    case HK_SWITCH_TRACK_POSTURE:   // change the position of initial segment when creating new tracks
        ShowNewTrackWhenMovingCursor( DrawPanel, DC, false );
        g_Alternate_Track_Posture = !g_Alternate_Track_Posture;
        ShowNewTrackWhenMovingCursor( DrawPanel, DC, false );
        break;

    case HK_ADD_NEW_TRACK: // Start new track
        if( getActiveLayer() > LAYER_N_FRONT )
            break;
+1 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ enum hotkey_id_commnand {
    HK_ADD_NEW_TRACK,
    HK_ADD_VIA,
    HK_ADD_MICROVIA,
    HK_SWITCH_TRACK_POSTURE,
    HK_END_TRACK,
    HK_SAVE_BOARD, HK_LOAD_BOARD,
    HK_SWITCH_UNITS,
+3 −0
Original line number Diff line number Diff line
@@ -448,6 +448,9 @@ void WinEDA_PcbFrame::createPopupMenuForTracks( TRACK* Track, wxMenu* PopMenu )
        msg = AddHotkeyName( _( "Place Via" ), s_Board_Editor_Hokeys_Descr, HK_ADD_VIA );
        PopMenu->Append( ID_POPUP_PCB_PLACE_VIA, msg );

        msg = AddHotkeyName( _( "Switch Track Posture" ), s_Board_Editor_Hokeys_Descr, HK_SWITCH_TRACK_POSTURE );
        PopMenu->Append( ID_POPUP_PCB_SWITCH_TRACK_POSTURE, msg );

        // See if we can place a Micro Via (4 or more layers, and start from an external layer):
        if( IsMicroViaAcceptable() )
        {
Loading