Loading pcbnew/edit.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -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: Loading Loading @@ -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; Loading pcbnew/editrack.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -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 ) Loading pcbnew/hotkeys.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -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 ); Loading Loading @@ -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, Loading Loading @@ -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; Loading pcbnew/hotkeys.h +1 −0 Original line number Diff line number Diff line Loading @@ -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, Loading pcbnew/onrightclick.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
pcbnew/edit.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -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: Loading Loading @@ -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; Loading
pcbnew/editrack.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -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 ) Loading
pcbnew/hotkeys.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -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 ); Loading Loading @@ -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, Loading Loading @@ -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; Loading
pcbnew/hotkeys.h +1 −0 Original line number Diff line number Diff line Loading @@ -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, Loading
pcbnew/onrightclick.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -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