KiCad PCB EDA Suite
dialog_edit_one_field.h
Go to the documentation of this file.
1 
2 #ifndef DIALOG_EDIT_ONE_FIELD_H_
3 #define DIALOG_EDIT_ONE_FIELD_H_
4 
5 /*
6  * This program source code file is part of KiCad, a free EDA CAD application.
7  *
8  * Copyright (C) 2012 Jean-Pierre Charras, jean-pierre.charras@gipsa-lab.inpg.com
9  * Copyright (C) 2016 Wayne Stambaugh, stambaughw@gmail.com
10  * Copyright (C) 2004-2016 KiCad Developers, see change_log.txt for contributors.
11  *
12  * This program is free software; you can redistribute it and/or
13  * modify it under the terms of the GNU General Public License
14  * as published by the Free Software Foundation; either version 2
15  * of the License, or (at your option) any later version.
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * GNU General Public License for more details.
21  *
22  * You should have received a copy of the GNU General Public License
23  * along with this program; if not, you may find one here:
24  * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
25  * or you may search the http://www.gnu.org website for the version 2 license,
26  * or you may write to the Free Software Foundation, Inc.,
27  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
28  */
29 
31 #include <widgets/unit_binder.h>
32 #include <lib_field.h>
33 #include <class_libentry.h>
34 #include <template_fieldnames.h>
35 
36 class SCH_BASE_FRAME;
37 class SCH_FIELD;
38 class EDA_TEXT;
39 
40 
51 {
52 public:
53  DIALOG_EDIT_ONE_FIELD( SCH_BASE_FRAME* aParent, const wxString& aTitle,
54  const EDA_TEXT* aTextItem );
55 
56  ~DIALOG_EDIT_ONE_FIELD() override {}
57 
58  bool TransferDataToWindow() override;
59  bool TransferDataFromWindow() override;
60 
61  SCH_BASE_FRAME* GetParent() { return dynamic_cast< SCH_BASE_FRAME* >( wxDialog::GetParent() ); }
62 
63  const wxString& GetText() const { return m_text; }
64 
65 protected:
66 
67  void init();
68 
69  void updateText( EDA_TEXT* aText );
70 
80  void OnTextValueSelectButtonClick( wxCommandEvent& aEvent ) override;
81 
87  virtual void OnSetFocusText( wxFocusEvent& event ) override;
88 
92 
93  int m_fieldId;
94  bool m_isPower;
95  wxString m_text;
96  bool m_isItalic;
97  bool m_isBold;
99  int m_size;
104 };
105 
106 
115 {
116 public:
117  DIALOG_LIB_EDIT_ONE_FIELD( SCH_BASE_FRAME* aParent, const wxString& aTitle,
118  const LIB_FIELD* aField );
119 
121 
122  void UpdateField( LIB_FIELD* aField )
123  {
124  aField->SetText( m_text );
125 
126  // VALUE === component name, so update the parent component if it changes.
127  if( aField->GetId() == VALUE && aField->GetParent() )
128  aField->GetParent()->SetName( m_text );
129 
130  updateText( aField );
131  }
132 };
133 
134 
143 {
144 public:
145  DIALOG_SCH_EDIT_ONE_FIELD( SCH_BASE_FRAME* aParent, const wxString& aTitle,
146  const SCH_FIELD* aField );
147 
149 
150  void UpdateField( SCH_FIELD* aField, SCH_SHEET_PATH* aSheetPath );
151 };
152 
153 #endif // DIALOG_EDIT_ONE_FIELD_H_
Class SCH_FIELD instances are attached to a component and provide a place for the component&#39;s value...
Definition: sch_field.h:56
Field object used in symbol libraries.
Definition: lib_field.h:59
void UpdateField(LIB_FIELD *aField)
DIALOG_EDIT_ONE_FIELD(SCH_BASE_FRAME *aParent, const wxString &aTitle, const EDA_TEXT *aTextItem)
Class EDA_TEXT is a mix-in class (via multiple inheritance) that handles texts such as labels...
Definition: eda_text.h:127
Class DIALOG_EDIT_ONE_FIELD is a base class to edit schematic and component library fields...
Class DIALOG_LIB_EDIT_ONE_FIELD is a the class to handle editing a single component field in the libr...
LIB_PART * GetParent() const
void SetText(const wxString &aText) override
Sets the field text to aText.
Definition: lib_field.cpp:510
int GetId() const
Definition: lib_field.h:138
Class LIB_ITEM definition.
Class SCH_SHEET_PATH.
Class DIALOG_SCH_EDIT_ONE_FIELD is a the class to handle editing a single component field in the sche...
bool TransferDataToWindow() override
const wxString & GetText() const
void updateText(EDA_TEXT *aText)
Class DIALOG_LIB_EDIT_TEXT_BASE.
SCH_BASE_FRAME * GetParent()
void OnTextValueSelectButtonClick(wxCommandEvent &aEvent) override
Function OnTextValueSelectButtonClick Handles the select button next to the text value field...
bool TransferDataFromWindow() override
virtual void SetName(const wxString &aName)
#define VALUE
A shim class between EDA_DRAW_FRAME and several derived classes: LIB_EDIT_FRAME, LIB_VIEW_FRAME, and SCH_EDIT_FRAME, and it brings in a common way of handling the provided virtual functions for the derived classes.
virtual void OnSetFocusText(wxFocusEvent &event) override
Used to select the variant part of some text fields (for instance, the question mark or number in a r...