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

  1. /****************************************/
  2. /******* initpcb.cpp ********************/
  3. /****************************************/
  4. #include "fctsys.h"
  5. #include "common.h"
  6. #include "class_drawpanel.h"
  7. #include "confirm.h"
  8. #include "gerbview.h"
  9. #include "class_gerber_draw_item.h"
  10. #include "class_GERBER.h"
  11. bool WinEDA_GerberFrame::Clear_Pcb( bool query )
  12. {
  13. int layer;
  14. if( GetBoard() == NULL )
  15. return FALSE;
  16. if( query && GetScreen()->IsModify() )
  17. {
  18. if( !IsOK( this, _( "Current data will be lost?" ) ) )
  19. return FALSE;
  20. }
  21. GetBoard()->m_Drawings.DeleteAll();
  22. for( layer = 0; layer < 32; layer++ )
  23. {
  24. if( g_GERBER_List[layer] )
  25. {
  26. g_GERBER_List[layer]->InitToolTable();
  27. g_GERBER_List[layer]->ResetDefaultValues();
  28. }
  29. }
  30. GetBoard()->m_BoundaryBox.SetOrigin( 0, 0 );
  31. GetBoard()->m_BoundaryBox.SetSize( 0, 0 );
  32. GetBoard()->m_Status_Pcb = 0;
  33. GetBoard()->m_NbNodes = 0;
  34. GetBoard()->m_NbNoconnect = 0;
  35. SetBaseScreen( ActiveScreen = ScreenPcb );
  36. GetScreen()->Init();
  37. setActiveLayer(LAYER_N_BACK);
  38. SetCurItem( NULL );
  39. return TRUE;
  40. }
  41. void WinEDA_GerberFrame::Erase_Current_Layer( bool query )
  42. {
  43. int layer = getActiveLayer();
  44. wxString msg;
  45. msg.Printf( _( "Delete layer %d?" ), layer + 1 );
  46. if( query && !IsOK( this, msg ) )
  47. return;
  48. SetCurItem( NULL );
  49. BOARD_ITEM* item = GetBoard()->m_Drawings;
  50. BOARD_ITEM * next;
  51. for( ; item; item = next )
  52. {
  53. next = item->Next();
  54. GERBER_DRAW_ITEM* gerb_item = (GERBER_DRAW_ITEM*) item;
  55. if( gerb_item->GetLayer() != layer )
  56. continue;
  57. gerb_item->DeleteStructure();
  58. }
  59. if( g_GERBER_List[layer] )
  60. {
  61. g_GERBER_List[layer]->InitToolTable();
  62. g_GERBER_List[layer]->ResetDefaultValues();
  63. }
  64. ScreenPcb->SetModify();
  65. ScreenPcb->SetRefreshReq();
  66. }