Loading change_log.txt +4 −3 Original line number Original line Diff line number Diff line Loading @@ -9,9 +9,10 @@ email address. 2008-May-2 UPDATE Dick Hollenbeck <dick@softplc.com> 2008-May-2 UPDATE Dick Hollenbeck <dick@softplc.com> ================================================================================ ================================================================================ +pcbnew +pcbnew Added ZONE_CONTAINER::GetBoundingBox() and used it to clean up * Added ZONE_CONTAINER::GetBoundingBox() and used it to clean up ZONE_CONTAINER deletion. There is still a problem dragging a zone container ZONE_CONTAINER deletion. edge that I will not get to. * For end of edge dragging activity: used full DrawPanel->Refresh() to clean up all XOR artifacts. 2008-May-1 UPDATE Dick Hollenbeck <dick@softplc.com> 2008-May-1 UPDATE Dick Hollenbeck <dick@softplc.com> Loading pcbnew/zones_by_polygon.cpp +11 −5 Original line number Original line Diff line number Diff line Loading @@ -322,15 +322,18 @@ void WinEDA_PcbFrame::End_Move_Zone_Corner_Or_Outlines( wxDC* DC, ZONE_CONTAINER /* Combine zones if possible */ /* Combine zones if possible */ wxBusyCursor dummy; wxBusyCursor dummy; int layer = zone_container->GetLayer(); // int layer = zone_container->GetLayer(); m_Pcb->RedrawAreasOutlines( DrawPanel, DC, GR_XOR, layer ); // m_Pcb->RedrawAreasOutlines( DrawPanel, DC, GR_XOR, layer ); m_Pcb->AreaPolygonModified( zone_container, true, verbose ); m_Pcb->AreaPolygonModified( zone_container, true, verbose ); m_Pcb->RedrawAreasOutlines( DrawPanel, DC, GR_OR, layer ); // m_Pcb->RedrawAreasOutlines( DrawPanel, DC, GR_OR, layer ); DrawPanel->Refresh(); int ii = m_Pcb->GetAreaIndex( zone_container ); // test if zone_container exists int ii = m_Pcb->GetAreaIndex( zone_container ); // test if zone_container exists if( ii < 0 ) if( ii < 0 ) zone_container = NULL; // was removed by combining zones zone_container = NULL; // was removed by combining zones int error_count = m_Pcb->Test_Drc_Areas_Outlines_To_Areas_Outlines( zone_container, true ); int error_count = m_Pcb->Test_Drc_Areas_Outlines_To_Areas_Outlines( zone_container, true ); if( error_count ) if( error_count ) { { Loading Loading @@ -392,7 +395,7 @@ void Abort_Zone_Move_Corner_Or_Outlines( WinEDA_DrawPanel* Panel, wxDC* DC ) WinEDA_PcbFrame* pcbframe = (WinEDA_PcbFrame*) Panel->m_Parent; WinEDA_PcbFrame* pcbframe = (WinEDA_PcbFrame*) Panel->m_Parent; ZONE_CONTAINER* zone_container = (ZONE_CONTAINER*) pcbframe->GetCurItem(); ZONE_CONTAINER* zone_container = (ZONE_CONTAINER*) pcbframe->GetCurItem(); zone_container->Draw( Panel, DC, GR_XOR ); // zone_container->Draw( Panel, DC, GR_XOR ); if( zone_container->m_Flags == IS_MOVED ) if( zone_container->m_Flags == IS_MOVED ) { { Loading @@ -418,7 +421,10 @@ void Abort_Zone_Move_Corner_Or_Outlines( WinEDA_DrawPanel* Panel, wxDC* DC ) zone_container->m_Poly->MoveCorner( zone_container->m_CornerSelection, pos.x, pos.y ); zone_container->m_Poly->MoveCorner( zone_container->m_CornerSelection, pos.x, pos.y ); } } } } zone_container->Draw( Panel, DC, GR_XOR ); // zone_container->Draw( Panel, DC, GR_XOR ); Panel->Refresh(); Panel->ManageCurseur = NULL; Panel->ManageCurseur = NULL; Panel->ForceCloseManageCurseur = NULL; Panel->ForceCloseManageCurseur = NULL; Loading Loading
change_log.txt +4 −3 Original line number Original line Diff line number Diff line Loading @@ -9,9 +9,10 @@ email address. 2008-May-2 UPDATE Dick Hollenbeck <dick@softplc.com> 2008-May-2 UPDATE Dick Hollenbeck <dick@softplc.com> ================================================================================ ================================================================================ +pcbnew +pcbnew Added ZONE_CONTAINER::GetBoundingBox() and used it to clean up * Added ZONE_CONTAINER::GetBoundingBox() and used it to clean up ZONE_CONTAINER deletion. There is still a problem dragging a zone container ZONE_CONTAINER deletion. edge that I will not get to. * For end of edge dragging activity: used full DrawPanel->Refresh() to clean up all XOR artifacts. 2008-May-1 UPDATE Dick Hollenbeck <dick@softplc.com> 2008-May-1 UPDATE Dick Hollenbeck <dick@softplc.com> Loading
pcbnew/zones_by_polygon.cpp +11 −5 Original line number Original line Diff line number Diff line Loading @@ -322,15 +322,18 @@ void WinEDA_PcbFrame::End_Move_Zone_Corner_Or_Outlines( wxDC* DC, ZONE_CONTAINER /* Combine zones if possible */ /* Combine zones if possible */ wxBusyCursor dummy; wxBusyCursor dummy; int layer = zone_container->GetLayer(); // int layer = zone_container->GetLayer(); m_Pcb->RedrawAreasOutlines( DrawPanel, DC, GR_XOR, layer ); // m_Pcb->RedrawAreasOutlines( DrawPanel, DC, GR_XOR, layer ); m_Pcb->AreaPolygonModified( zone_container, true, verbose ); m_Pcb->AreaPolygonModified( zone_container, true, verbose ); m_Pcb->RedrawAreasOutlines( DrawPanel, DC, GR_OR, layer ); // m_Pcb->RedrawAreasOutlines( DrawPanel, DC, GR_OR, layer ); DrawPanel->Refresh(); int ii = m_Pcb->GetAreaIndex( zone_container ); // test if zone_container exists int ii = m_Pcb->GetAreaIndex( zone_container ); // test if zone_container exists if( ii < 0 ) if( ii < 0 ) zone_container = NULL; // was removed by combining zones zone_container = NULL; // was removed by combining zones int error_count = m_Pcb->Test_Drc_Areas_Outlines_To_Areas_Outlines( zone_container, true ); int error_count = m_Pcb->Test_Drc_Areas_Outlines_To_Areas_Outlines( zone_container, true ); if( error_count ) if( error_count ) { { Loading Loading @@ -392,7 +395,7 @@ void Abort_Zone_Move_Corner_Or_Outlines( WinEDA_DrawPanel* Panel, wxDC* DC ) WinEDA_PcbFrame* pcbframe = (WinEDA_PcbFrame*) Panel->m_Parent; WinEDA_PcbFrame* pcbframe = (WinEDA_PcbFrame*) Panel->m_Parent; ZONE_CONTAINER* zone_container = (ZONE_CONTAINER*) pcbframe->GetCurItem(); ZONE_CONTAINER* zone_container = (ZONE_CONTAINER*) pcbframe->GetCurItem(); zone_container->Draw( Panel, DC, GR_XOR ); // zone_container->Draw( Panel, DC, GR_XOR ); if( zone_container->m_Flags == IS_MOVED ) if( zone_container->m_Flags == IS_MOVED ) { { Loading @@ -418,7 +421,10 @@ void Abort_Zone_Move_Corner_Or_Outlines( WinEDA_DrawPanel* Panel, wxDC* DC ) zone_container->m_Poly->MoveCorner( zone_container->m_CornerSelection, pos.x, pos.y ); zone_container->m_Poly->MoveCorner( zone_container->m_CornerSelection, pos.x, pos.y ); } } } } zone_container->Draw( Panel, DC, GR_XOR ); // zone_container->Draw( Panel, DC, GR_XOR ); Panel->Refresh(); Panel->ManageCurseur = NULL; Panel->ManageCurseur = NULL; Panel->ForceCloseManageCurseur = NULL; Panel->ForceCloseManageCurseur = NULL; Loading