/* * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2015 Jean-Pierre Charras, jp.charras at wanadoo.fr * Copyright (C) 2009 Wayne Stambaugh * Copyright (C) 2004-2019 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, you may find one here: * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html * or you may search the http://www.gnu.org website for the version 2 license, * or you may write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include void SCH_EDIT_FRAME::InitBlockPasteInfos() { wxFAIL_MSG( "How did we get here? Should have gone through modern toolset..." ); return; } void SCH_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) { wxFAIL_MSG( "How did we get here? Should have gone through modern toolset..." ); return; } bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* aDC ) { wxFAIL_MSG( "How did we get here? Should have gone through modern toolset..." ); return false; } void DrawAndSizingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition, bool aErase ) { auto panel =static_cast(aPanel); auto area = panel->GetView()->GetSelectionArea(); auto frame = static_cast(aPanel->GetParent()); BLOCK_SELECTOR* block; bool isLibEdit = frame->IsType( FRAME_SCH_LIB_EDITOR ); block = &aPanel->GetScreen()->m_BlockLocate; block->SetMoveVector( wxPoint( 0, 0 ) ); block->SetLastCursorPosition( aPanel->GetParent()->GetCrossHairPosition( isLibEdit ) ); block->SetEnd( aPanel->GetParent()->GetCrossHairPosition() ); panel->GetView()->ClearPreview(); panel->GetView()->ClearHiddenFlags(); area->SetOrigin( block->GetOrigin() );; area->SetEnd( block->GetEnd() ); panel->GetView()->SetVisible( area ); panel->GetView()->Hide( area, false ); panel->GetView()->Update( area ); if( block->GetState() == STATE_BLOCK_INIT ) { if( block->GetWidth() || block->GetHeight() ) // 2nd point exists: the rectangle is not surface anywhere block->SetState( STATE_BLOCK_END ); } }