KiCad PCB EDA Suite
Loading...
Searching...
No Matches
dialog_paste_special.cpp
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, you may find one here:
18 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
19 * or you may search the http://www.gnu.org website for the version 2 license,
20 * or you may write to the Free Software Foundation, Inc.,
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
22 */
23
25
26
27DIALOG_PASTE_SPECIAL::DIALOG_PASTE_SPECIAL( wxWindow* aParent, PASTE_MODE* aMode, const wxString& aDefaultRef ) :
29 m_mode( aMode )
30{
31 m_options->SetItemToolTip( static_cast<int>( PASTE_MODE::UNIQUE_ANNOTATIONS ),
32 _( "Finds the next available reference designator for any designators that already "
33 "exist in the design." ) );
34
35 m_options->SetItemToolTip( static_cast<int>( PASTE_MODE::KEEP_ANNOTATIONS ),
36 wxT( "" ) ); // Self explanatory
37
38 m_options->SetItemToolTip( static_cast<int>( PASTE_MODE::REMOVE_ANNOTATIONS ),
39 wxString::Format( _( "Replaces reference designators with '%s'." ), aDefaultRef ) );
40
41 m_options->SetFocus();
42
43 // Now all widgets have the size fixed, call FinishDialogSettings
45}
46
47
49{
50 switch( *m_mode )
51 {
52 case PASTE_MODE::UNIQUE_ANNOTATIONS: m_options->SetSelection( 0 ); break;
53 case PASTE_MODE::KEEP_ANNOTATIONS: m_options->SetSelection( 1 ); break;
54 case PASTE_MODE::REMOVE_ANNOTATIONS: m_options->SetSelection( 2 ); break;
55 }
56
57 return true;
58}
59
60
62{
63 switch( m_options->GetSelection() )
64 {
65 case 0: *m_mode = PASTE_MODE::UNIQUE_ANNOTATIONS; break;
66 case 1: *m_mode = PASTE_MODE::KEEP_ANNOTATIONS; break;
67 case 2: *m_mode = PASTE_MODE::REMOVE_ANNOTATIONS; break;
68 }
69
70 return true;
71}
72
73
74void DIALOG_PASTE_SPECIAL::onRadioBoxEvent( wxCommandEvent& event )
75{
76 event.Skip();
77
78 m_sdbSizerOK->SetFocus();
79}
DIALOG_PASTE_SPECIAL_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Paste Special"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
DIALOG_PASTE_SPECIAL(wxWindow *aParent, PASTE_MODE *aMode, const wxString &aDefaultRef=wxS("?"))
bool TransferDataFromWindow() override
virtual void onRadioBoxEvent(wxCommandEvent &event) override
bool TransferDataToWindow() override
void finishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
#define _(s)