1 /* 2 * This program source code file is part of KiCad, a free EDA CAD application. 3 * 4 * Copyright (C) 2015 CERN 5 * @author Maciej Suminski <maciej.suminski@cern.ch> 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * as published by the Free Software Foundation; either version 2 10 * of the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, you may find one here: 19 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 20 * or you may search the http://www.gnu.org website for the version 2 license, 21 * or you may write to the Free Software Foundation, Inc., 22 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 23 */ 24 25 #include <dialogs/dialog_track_via_properties_base.h> 26 #include <widgets/unit_binder.h> 27 #include <core/optional.h> 28 #include <layer_ids.h> 29 30 class PCB_SELECTION; 31 class COMMIT; 32 class PCB_BASE_FRAME; 33 class PAD; 34 35 class DIALOG_TRACK_VIA_PROPERTIES : public DIALOG_TRACK_VIA_PROPERTIES_BASE 36 { 37 public: 38 DIALOG_TRACK_VIA_PROPERTIES( PCB_BASE_FRAME* aParent, const PCB_SELECTION& aItems, 39 COMMIT& aCommit ); 40 41 bool TransferDataFromWindow() override; 42 43 private: 44 void onViaNotFreeClicked( wxCommandEvent& event ) override; 45 void onTrackNetclassCheck( wxCommandEvent& aEvent ) override; 46 void onWidthSelect( wxCommandEvent& aEvent ) override; 47 void onWidthEdit( wxCommandEvent& aEvent ) override; 48 void onViaNetclassCheck( wxCommandEvent& aEvent ) override; 49 void onViaSelect( wxCommandEvent& aEvent ) override; 50 void onViaEdit( wxCommandEvent& aEvent ) override; 51 52 bool confirmPadChange( const std::vector<PAD*>& connectedPads ); 53 54 PCB_BASE_FRAME* m_frame; 55 const PCB_SELECTION& m_items; // List of items to be modified. 56 COMMIT& m_commit; // An undo record to add any changes to. 57 58 UNIT_BINDER m_trackStartX, m_trackStartY; 59 UNIT_BINDER m_trackEndX, m_trackEndY; 60 UNIT_BINDER m_trackWidth; 61 62 UNIT_BINDER m_viaX, m_viaY; 63 UNIT_BINDER m_viaDiameter, m_viaDrill; 64 65 bool m_tracks; // True if dialog displays any track properties. 66 bool m_vias; // True if dialog displays any via properties. 67 }; 68