You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							84 lines
						
					
					
						
							1.9 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							84 lines
						
					
					
						
							1.9 KiB
						
					
					
				| /****************************************/ | |
| /******* initpcb.cpp ********************/ | |
| /****************************************/ | |
| 
 | |
| 
 | |
| #include "fctsys.h" | |
| #include "common.h" | |
| #include "class_drawpanel.h" | |
| #include "confirm.h" | |
|  | |
| #include "gerbview.h" | |
| #include "class_gerber_draw_item.h" | |
| #include "class_GERBER.h" | |
|  | |
| 
 | |
| bool WinEDA_GerberFrame::Clear_Pcb( bool query ) | |
| { | |
|     int layer; | |
| 
 | |
|     if( GetBoard() == NULL ) | |
|         return FALSE; | |
| 
 | |
|     if( query && GetScreen()->IsModify() ) | |
|     { | |
|         if( !IsOK( this, _( "Current data will be lost?" ) ) ) | |
|             return FALSE; | |
|     } | |
|     GetBoard()->m_Drawings.DeleteAll(); | |
| 
 | |
|     for( layer = 0; layer < 32; layer++ ) | |
|     { | |
|         if( g_GERBER_List[layer] ) | |
|         { | |
|             g_GERBER_List[layer]->InitToolTable(); | |
|             g_GERBER_List[layer]->ResetDefaultValues(); | |
|         } | |
|     } | |
| 
 | |
|     GetBoard()->m_BoundaryBox.SetOrigin( 0, 0 ); | |
|     GetBoard()->m_BoundaryBox.SetSize( 0, 0 ); | |
|     GetBoard()->m_Status_Pcb  = 0; | |
|     GetBoard()->m_NbNodes     = 0; | |
|     GetBoard()->m_NbNoconnect = 0; | |
| 
 | |
|     SetBaseScreen( ActiveScreen = ScreenPcb ); | |
|     GetScreen()->Init(); | |
|     setActiveLayer(LAYER_N_BACK); | |
| 
 | |
|     SetCurItem( NULL ); | |
|     return TRUE; | |
| } | |
| 
 | |
| 
 | |
| void WinEDA_GerberFrame::Erase_Current_Layer( bool query ) | |
| { | |
|     int      layer = getActiveLayer(); | |
|     wxString msg; | |
| 
 | |
|     msg.Printf( _( "Delete layer %d?" ), layer + 1 ); | |
|     if( query && !IsOK( this, msg ) ) | |
|         return; | |
| 
 | |
|     SetCurItem( NULL ); | |
| 
 | |
|     BOARD_ITEM* item = GetBoard()->m_Drawings; | |
|     BOARD_ITEM * next; | |
|     for( ; item; item = next ) | |
|     { | |
|         next = item->Next(); | |
|         GERBER_DRAW_ITEM* gerb_item = (GERBER_DRAW_ITEM*) item; | |
|         if( gerb_item->GetLayer() != layer ) | |
|             continue; | |
|         gerb_item->DeleteStructure(); | |
|     } | |
| 
 | |
|     if( g_GERBER_List[layer] ) | |
|     { | |
|         g_GERBER_List[layer]->InitToolTable(); | |
|         g_GERBER_List[layer]->ResetDefaultValues(); | |
|     } | |
| 
 | |
|     ScreenPcb->SetModify(); | |
|     ScreenPcb->SetRefreshReq(); | |
| }
 |