KiCad PCB EDA Suite
dialog_lib_edit_draw_item.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 (C) 2006-2018 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 
28 #include <lib_draw_item.h>
30 #include <lib_edit_frame.h>
31 
32 
35  m_frame( aParent ),
36  m_item( aItem ),
37  m_lineWidth( aParent, m_widthLabel, m_widthCtrl, m_widthUnits, true )
38 {
39  SetTitle( aItem->GetTypeName() + wxT( " " ) + GetTitle() );
40 
42 
43  // Required under wxGTK if we want to dismiss the dialog with the ESC key
44  SetFocus();
45  m_sdbSizerOK->SetDefault();
46 
47  // Now all widgets have the size fixed, call FinishDialogSettings
49 }
50 
51 
53 {
54  LIB_PART* symbol = m_item->GetParent();
55 
57  m_checkApplyToAllUnits->SetValue( m_item->GetUnit() == 0 );
58  m_checkApplyToAllUnits->Enable( symbol && symbol->GetUnitCount() > 1 );
59  m_checkApplyToAllConversions->SetValue( m_item->GetConvert() == 0 );
60 
61  bool enblConvOptStyle = symbol && symbol->HasConversion();
62  // if a symbol contains no graphic items, symbol->HasConversion() returns false.
63  // but when creating a new symbol, with DeMorgan option set, the ApplyToAllConversions
64  // must be enabled even if symbol->HasConversion() returns false in order to be able
65  // to create graphic items shared by all body styles
66  if( m_frame->GetShowDeMorgan() )
67  enblConvOptStyle = true;
68 
69  m_checkApplyToAllConversions->Enable( enblConvOptStyle );
70 
71  m_fillCtrl->SetSelection( m_item->GetFillMode() );
72  m_fillCtrl->Enable( m_item->IsFillable() );
73 
74  return true;
75 }
76 
77 
79 {
80  return m_lineWidth.GetValue();
81 }
82 
83 
85 {
86  return m_checkApplyToAllConversions->IsChecked();
87 }
88 
89 
91 {
92  return m_checkApplyToAllUnits->IsChecked();
93 }
94 
95 
97 {
98  return std::max( m_fillCtrl->GetSelection(), 0 );
99 }
100 
FILL_T GetFillMode() const
bool HasConversion() const
Test if part has more than one body conversion type (DeMorgan).
int GetUnit() const
void FinishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
Class DIALOG_LIB_EDIT_DRAW_ITEM_BASE.
void SetInitialFocus(wxWindow *aWindow)
Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown.
Definition: dialog_shim.h:115
The base class for drawable items used by schematic library components.
Definition: lib_draw_item.h:67
virtual int GetValue()
Function GetValue Returns the current value in Internal Units.
LIB_PART * GetParent() const
Define a library symbol object.
int GetUnitCount() const
DIALOG_LIB_EDIT_DRAW_ITEM(LIB_EDIT_FRAME *parent, LIB_ITEM *aItem)
Constructor.
virtual int GetWidth() const =0
Return the width of the draw item.
The symbol library editor main window.
bool GetShowDeMorgan()
#define max(a, b)
Definition: auxiliary.h:86
virtual void SetValue(int aValue)
Function SetValue Sets new value (in Internal Units) for the text field, taking care of units convers...
virtual wxString GetTypeName()=0
Provide a user-consumable name of the object type.
bool IsFillable() const
Check if draw object can be filled.
Definition of class LIB_EDIT_FRAME.
int GetConvert() const