Add zone duplication to pcbnew.

This commit is contained in:
Marco Mattila 2012-06-04 22:04:12 +03:00
parent e936d3c13a
commit e7817f3e84
3 changed files with 22 additions and 0 deletions

View File

@ -467,6 +467,24 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
SetCurItem( NULL ); // Outlines can have changed
break;
case ID_POPUP_PCB_ZONE_DUPLICATE:
{
ZONE_CONTAINER* zone = (ZONE_CONTAINER*) GetCurItem();
ZONE_CONTAINER* newZone = new ZONE_CONTAINER( m_Pcb );
newZone->Copy( zone );
ZONE_SETTINGS zoneSettings;
zoneSettings << *zone;
if( InvokeCopperZonesEditor( this, &zoneSettings ) )
{
zoneSettings.ExportSetting( *newZone );
m_Pcb->Add( newZone );
newZone->Draw( m_canvas, &dc, GR_OR );
}
else
delete newZone;
}
break;
case ID_POPUP_PCB_ZONE_ADD_SIMILAR_ZONE:
m_canvas->MoveCursorToCrossHair();
m_canvas->SetAutoPanRequest( true );

View File

@ -621,6 +621,9 @@ void PCB_EDIT_FRAME::createPopUpMenuForZones( ZONE_CONTAINER* edge_zone, wxMenu*
}
zones_menu->AppendSeparator();
AddMenuItem( zones_menu, ID_POPUP_PCB_ZONE_DUPLICATE,
_( "Duplicate Zone" ), KiBitmap( add_zone_xpm ) );
AddMenuItem( zones_menu, ID_POPUP_PCB_ZONE_ADD_SIMILAR_ZONE,
_( "Add Similar Zone" ), KiBitmap( add_zone_xpm ) );

View File

@ -92,6 +92,7 @@ enum pcbnew_ids
ID_POPUP_PCB_FILL_ALL_ZONES,
ID_POPUP_PCB_FILL_ZONE,
ID_POPUP_PCB_DELETE_ZONE_CONTAINER,
ID_POPUP_PCB_ZONE_DUPLICATE,
ID_POPUP_PCB_ZONE_ADD_SIMILAR_ZONE,
ID_POPUP_PCB_ZONE_ADD_CUTOUT_ZONE,
ID_POPUP_PCB_DELETE_ZONE_CUTOUT,