Commit 514de91e authored by charras's avatar charras
Browse files

More about undo/redo in pcbnew

parent 148a574e
Loading
Loading
Loading
Loading
+23 −19
Original line number Original line Diff line number Diff line
@@ -569,15 +569,6 @@ enum main_id {
	ID_POPUP_PCB_SELECT_WIDTH6,
	ID_POPUP_PCB_SELECT_WIDTH6,
	ID_POPUP_PCB_SELECT_WIDTH7,
	ID_POPUP_PCB_SELECT_WIDTH7,
	ID_POPUP_PCB_SELECT_WIDTH8,
	ID_POPUP_PCB_SELECT_WIDTH8,
	ID_POPUP_PCB_SELECT_VIASIZE,
	ID_POPUP_PCB_SELECT_VIASIZE1,
	ID_POPUP_PCB_SELECT_VIASIZE2,
	ID_POPUP_PCB_SELECT_VIASIZE3,
	ID_POPUP_PCB_SELECT_VIASIZE4,
	ID_POPUP_PCB_SELECT_VIASIZE5,
	ID_POPUP_PCB_SELECT_VIASIZE6,
	ID_POPUP_PCB_SELECT_VIASIZE7,
	ID_POPUP_PCB_SELECT_VIASIZE8,
	ID_POPUP_PCB_EDIT_TRACKSEG,
	ID_POPUP_PCB_EDIT_TRACKSEG,
	ID_POPUP_PCB_EDIT_TRACK_MNU,
	ID_POPUP_PCB_EDIT_TRACK_MNU,
	ID_POPUP_PCB_EDIT_NET,
	ID_POPUP_PCB_EDIT_NET,
@@ -613,13 +604,6 @@ enum main_id {
	ID_POPUP_PCB_MOVE_TRACK_NODE,
	ID_POPUP_PCB_MOVE_TRACK_NODE,
	ID_POPUP_PCB_BREAK_TRACK,
	ID_POPUP_PCB_BREAK_TRACK,
	ID_POPUP_PCB_PLACE_MOVED_TRACK_NODE,
	ID_POPUP_PCB_PLACE_MOVED_TRACK_NODE,
	ID_POPUP_PCB_VIA_EDITING,
	ID_POPUP_PCB_VIA_HOLE_TO_DEFAULT,
	ID_POPUP_PCB_VIA_HOLE_TO_VALUE,
	ID_POPUP_PCB_VIA_HOLE_ENTER_VALUE,
	ID_POPUP_PCB_VIA_HOLE_EXPORT,
	ID_POPUP_PCB_VIA_HOLE_RESET_TO_DEFAULT,
	ID_POPUP_PCB_VIA_HOLE_EXPORT_TO_OTHERS,
	ID_POPUP_PCB_DRAG_TRACK_SEGMENT_KEEP_SLOPE,
	ID_POPUP_PCB_DRAG_TRACK_SEGMENT_KEEP_SLOPE,
	ID_POPUP_PCB_DRAG_TRACK_SEGMENT,
	ID_POPUP_PCB_DRAG_TRACK_SEGMENT,
	ID_POPUP_PCB_MOVE_TRACK_SEGMENT,
	ID_POPUP_PCB_MOVE_TRACK_SEGMENT,
@@ -630,6 +614,26 @@ enum main_id {
	ID_POPUP_PCB_UNUSED8,
	ID_POPUP_PCB_UNUSED8,
	ID_POPUP_PCB_END_RANGE,
	ID_POPUP_PCB_END_RANGE,


    // Via edition
	ID_POPUP_VIA_EDIT_START_RANGE,
	ID_POPUP_PCB_SELECT_VIASIZE,
	ID_POPUP_PCB_SELECT_VIASIZE1,
	ID_POPUP_PCB_SELECT_VIASIZE2,
	ID_POPUP_PCB_SELECT_VIASIZE3,
	ID_POPUP_PCB_SELECT_VIASIZE4,
	ID_POPUP_PCB_SELECT_VIASIZE5,
	ID_POPUP_PCB_SELECT_VIASIZE6,
	ID_POPUP_PCB_SELECT_VIASIZE7,
	ID_POPUP_PCB_SELECT_VIASIZE8,
	ID_POPUP_PCB_VIA_EDITING,
	ID_POPUP_PCB_VIA_HOLE_TO_DEFAULT,
	ID_POPUP_PCB_VIA_HOLE_TO_VALUE,
	ID_POPUP_PCB_VIA_HOLE_ENTER_VALUE,
	ID_POPUP_PCB_VIA_HOLE_EXPORT,
	ID_POPUP_PCB_VIA_HOLE_RESET_TO_DEFAULT,
	ID_POPUP_PCB_VIA_HOLE_EXPORT_TO_OTHERS,
    ID_POPUP_VIA_EDIT_END_RANGE,

    // reserve a block of MAX_ITEMS_IN_PICKER ids for the item selection popup
    // reserve a block of MAX_ITEMS_IN_PICKER ids for the item selection popup
    ID_POPUP_PCB_ITEM_SELECTION_START,
    ID_POPUP_PCB_ITEM_SELECTION_START,
    ID_POPUP_PCB_ITEM_SELECTION_END = MAX_ITEMS_IN_PICKER + ID_POPUP_PCB_ITEM_SELECTION_START,
    ID_POPUP_PCB_ITEM_SELECTION_END = MAX_ITEMS_IN_PICKER + ID_POPUP_PCB_ITEM_SELECTION_START,
+1 −1
Original line number Original line Diff line number Diff line
@@ -356,13 +356,13 @@ public:


    // Board handling
    // Board handling
    void             RemoveStruct( BOARD_ITEM* Item, wxDC* DC );
    void             RemoveStruct( BOARD_ITEM* Item, wxDC* DC );
    void             Via_Edit_Control( wxDC* DC, int command_type, SEGVIA* via );


    // Hightlight functions:
    // Hightlight functions:
    int              Select_High_Light( wxDC* DC );
    int              Select_High_Light( wxDC* DC );
    void             Hight_Light( wxDC* DC );
    void             Hight_Light( wxDC* DC );


    // Track and via edition:
    // Track and via edition:
    void             Via_Edit_Control( wxCommandEvent& event );
    void             DisplayTrackSettings();
    void             DisplayTrackSettings();


    /**
    /**
+11 −1
Original line number Original line Diff line number Diff line
@@ -164,11 +164,20 @@ void SwapData( BOARD_ITEM* aItem, BOARD_ITEM* aImage )


    case TYPE_TRACK:
    case TYPE_TRACK:
    case TYPE_VIA:
    case TYPE_VIA:
    case TYPE_ZONE:
        EXCHG( ( (TRACK*) aItem )->m_Start, ( (TRACK*) aImage )->m_Start );
        EXCHG( ( (TRACK*) aItem )->m_Start, ( (TRACK*) aImage )->m_Start );
        EXCHG( ( (TRACK*) aItem )->m_End, ( (TRACK*) aImage )->m_End );
        EXCHG( ( (TRACK*) aItem )->m_End, ( (TRACK*) aImage )->m_End );
        EXCHG( ( (TRACK*) aItem )->m_Width, ( (TRACK*) aImage )->m_Width );
        EXCHG( ( (TRACK*) aItem )->m_Width, ( (TRACK*) aImage )->m_Width );
        EXCHG( ( (TRACK*) aItem )->m_Shape, ( (TRACK*) aImage )->m_Shape );
        EXCHG( ( (TRACK*) aItem )->m_Shape, ( (TRACK*) aImage )->m_Shape );
    {
        int itmp = ((TRACK*) aItem )->GetDrillValue();
        if( ((TRACK*) aItem )->IsDrillDefault() )
            itmp = -1;
        int atmp = ((TRACK*) aImage )->GetDrillValue();
        if( ((TRACK*) aImage )->IsDrillDefault() )
            atmp = -1;
        ( (TRACK*) aItem )->SetDrillValue( atmp );
        ( (TRACK*) aImage )->SetDrillValue(itmp);
    }
        break;
        break;


    case TYPE_TEXTE:
    case TYPE_TEXTE:
@@ -202,6 +211,7 @@ void SwapData( BOARD_ITEM* aItem, BOARD_ITEM* aImage )
    }
    }
    break;
    break;


    case TYPE_ZONE:
    default:
    default:
        wxMessageBox( wxT( "SwapData() error: unexpected type" ) );
        wxMessageBox( wxT( "SwapData() error: unexpected type" ) );
        break;
        break;
+0 −36
Original line number Original line Diff line number Diff line
@@ -104,15 +104,6 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
    case ID_POPUP_PCB_SELECT_WIDTH6:
    case ID_POPUP_PCB_SELECT_WIDTH6:
    case ID_POPUP_PCB_SELECT_WIDTH7:
    case ID_POPUP_PCB_SELECT_WIDTH7:
    case ID_POPUP_PCB_SELECT_WIDTH8:
    case ID_POPUP_PCB_SELECT_WIDTH8:
    case ID_POPUP_PCB_SELECT_VIASIZE:
    case ID_POPUP_PCB_SELECT_VIASIZE1:
    case ID_POPUP_PCB_SELECT_VIASIZE2:
    case ID_POPUP_PCB_SELECT_VIASIZE3:
    case ID_POPUP_PCB_SELECT_VIASIZE4:
    case ID_POPUP_PCB_SELECT_VIASIZE5:
    case ID_POPUP_PCB_SELECT_VIASIZE6:
    case ID_POPUP_PCB_SELECT_VIASIZE7:
    case ID_POPUP_PCB_SELECT_VIASIZE8:
    case ID_POPUP_PCB_MOVE_TRACK_NODE:
    case ID_POPUP_PCB_MOVE_TRACK_NODE:
    case ID_POPUP_PCB_DRAG_TRACK_SEGMENT_KEEP_SLOPE:
    case ID_POPUP_PCB_DRAG_TRACK_SEGMENT_KEEP_SLOPE:
    case ID_POPUP_PCB_DRAG_TRACK_SEGMENT:
    case ID_POPUP_PCB_DRAG_TRACK_SEGMENT:
@@ -135,12 +126,6 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
    case ID_POPUP_ROTATE_BLOCK:
    case ID_POPUP_ROTATE_BLOCK:
    case ID_POPUP_COPY_BLOCK:
    case ID_POPUP_COPY_BLOCK:
    case ID_POPUP_PCB_VIA_EDITING:
    case ID_POPUP_PCB_VIA_EDITING:
    case ID_POPUP_PCB_VIA_HOLE_TO_DEFAULT:
    case ID_POPUP_PCB_VIA_HOLE_TO_VALUE:
    case ID_POPUP_PCB_VIA_HOLE_ENTER_VALUE:
    case ID_POPUP_PCB_VIA_HOLE_EXPORT:
    case ID_POPUP_PCB_VIA_HOLE_RESET_TO_DEFAULT:
    case ID_POPUP_PCB_VIA_HOLE_EXPORT_TO_OTHERS:
    case ID_POPUP_PCB_EDIT_DRAWING:
    case ID_POPUP_PCB_EDIT_DRAWING:
    case ID_POPUP_PCB_GETINFO_MARKER:
    case ID_POPUP_PCB_GETINFO_MARKER:
        break;
        break;
@@ -1058,9 +1043,6 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
        g_DesignSettings.m_UseConnectedTrackWidth = true;
        g_DesignSettings.m_UseConnectedTrackWidth = true;
        break;
        break;


    case ID_POPUP_PCB_SELECT_VIASIZE:
        break;

    case ID_AUX_TOOLBAR_PCB_VIA_SIZE:
    case ID_AUX_TOOLBAR_PCB_VIA_SIZE:
    {
    {
        int ii = m_SelViaSizeBox->GetChoice();
        int ii = m_SelViaSizeBox->GetChoice();
@@ -1072,24 +1054,6 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
    }
    }
    break;
    break;


    case ID_POPUP_PCB_SELECT_VIASIZE1:
    case ID_POPUP_PCB_SELECT_VIASIZE2:
    case ID_POPUP_PCB_SELECT_VIASIZE3:
    case ID_POPUP_PCB_SELECT_VIASIZE4:
    case ID_POPUP_PCB_SELECT_VIASIZE5:
    case ID_POPUP_PCB_SELECT_VIASIZE6:
    case ID_POPUP_PCB_SELECT_VIASIZE7:
    case ID_POPUP_PCB_SELECT_VIASIZE8:
    case ID_POPUP_PCB_VIA_EDITING:
    case ID_POPUP_PCB_VIA_HOLE_TO_DEFAULT:
    case ID_POPUP_PCB_VIA_HOLE_TO_VALUE:
    case ID_POPUP_PCB_VIA_HOLE_ENTER_VALUE:
    case ID_POPUP_PCB_VIA_HOLE_EXPORT:
    case ID_POPUP_PCB_VIA_HOLE_RESET_TO_DEFAULT:
    case ID_POPUP_PCB_VIA_HOLE_EXPORT_TO_OTHERS:
        Via_Edit_Control( &dc, id, (SEGVIA*) GetScreen()->GetCurItem() );
        break;

    case ID_POPUP_PCB_MOVE_TRACK_SEGMENT:
    case ID_POPUP_PCB_MOVE_TRACK_SEGMENT:
        DrawPanel->MouseToCursorSchema();
        DrawPanel->MouseToCursorSchema();
        Start_MoveOneNodeOrSegment( (TRACK*) GetScreen()->GetCurItem(),
        Start_MoveOneNodeOrSegment( (TRACK*) GetScreen()->GetCurItem(),
+5 −2
Original line number Original line Diff line number Diff line
@@ -194,10 +194,13 @@ BEGIN_EVENT_TABLE( WinEDA_PcbFrame, WinEDA_BasePcbFrame )
    EVT_MENU_RANGE( ID_POPUP_PCB_START_RANGE, ID_POPUP_PCB_END_RANGE,
    EVT_MENU_RANGE( ID_POPUP_PCB_START_RANGE, ID_POPUP_PCB_END_RANGE,
                    WinEDA_PcbFrame::Process_Special_Functions )
                    WinEDA_PcbFrame::Process_Special_Functions )


// Annulation de commande en cours
    // popup menus
    EVT_MENU_RANGE( ID_POPUP_GENERAL_START_RANGE, ID_POPUP_GENERAL_END_RANGE,
    EVT_MENU_RANGE( ID_POPUP_GENERAL_START_RANGE, ID_POPUP_GENERAL_END_RANGE,
                    WinEDA_PcbFrame::Process_Special_Functions )
                    WinEDA_PcbFrame::Process_Special_Functions )


EVT_MENU_RANGE( ID_POPUP_VIA_EDIT_START_RANGE, ID_POPUP_VIA_EDIT_END_RANGE,
                    WinEDA_PcbFrame::Via_Edit_Control )

// PopUp Menus pour Zooms traites dans drawpanel.cpp
// PopUp Menus pour Zooms traites dans drawpanel.cpp
END_EVENT_TABLE()
END_EVENT_TABLE()


Loading