Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kicad-source-mirror
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
kicad-source-mirror
Commits
671fabe1
Commit
671fabe1
authored
Nov 26, 2008
by
dickelbeck
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
edit component in schematic work
parent
a1659e41
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
706 additions
and
548 deletions
+706
-548
change_log.txt
change_log.txt
+6
-0
wxwineda.cpp
common/wxwineda.cpp
+288
-208
component_class.cpp
eeschema/component_class.cpp
+8
-4
component_class.h
eeschema/component_class.h
+6
-0
dialog_edit_component_in_schematic.cpp
eeschema/dialog_edit_component_in_schematic.cpp
+292
-314
dialog_edit_component_in_schematic.fbp
eeschema/dialog_edit_component_in_schematic.fbp
+64
-9
dialog_edit_component_in_schematic.h
eeschema/dialog_edit_component_in_schematic.h
+10
-3
dialog_edit_component_in_schematic_fbp.cpp
eeschema/dialog_edit_component_in_schematic_fbp.cpp
+18
-8
dialog_edit_component_in_schematic_fbp.h
eeschema/dialog_edit_component_in_schematic_fbp.h
+6
-2
wxstruct.h
include/wxstruct.h
+8
-0
No files found.
change_log.txt
View file @
671fabe1
...
@@ -5,6 +5,12 @@ Started 2007-June-11
...
@@ -5,6 +5,12 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with
Please add newer entries at the top, list the date and your name with
email address.
email address.
2008-Nov-25 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+eeschema
edit component in schematic editor. works except for field add, remove, move up.
2008-Nov-24 UPDATE Dick Hollenbeck <dick@softplc.com>
2008-Nov-24 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
================================================================================
+eeschema
+eeschema
...
...
common/wxwineda.cpp
View file @
671fabe1
/**********************************************************/
/**********************************************************/
/* wxwineda.cpp - fonctions des classes du type WinEDAxxxx */
/* wxwineda.cpp - fonctions des classes du type WinEDAxxxx */
/**********************************************************/
/**********************************************************/
#ifdef __GNUG__
#ifdef __GNUG__
#pragma implementation
#pragma implementation
...
@@ -10,23 +10,31 @@
...
@@ -10,23 +10,31 @@
#include "common.h"
#include "common.h"
/**********************************************************************************/
/**********************************************************************************/
/* Classe WinEDA_EnterText pour entrer une ligne texte au clavier dans les frames */
/* Classe WinEDA_EnterText pour entrer une ligne texte au clavier dans les frames */
/**********************************************************************************/
/**********************************************************************************/
WinEDA_EnterText
::
WinEDA_EnterText
(
wxWindow
*
parent
,
const
wxString
&
Title
,
WinEDA_EnterText
::
WinEDA_EnterText
(
wxWindow
*
parent
,
const
wxString
&
TextToEdit
,
wxBoxSizer
*
BoxSizer
,
const
wxSize
&
Size
)
const
wxString
&
Title
,
const
wxString
&
TextToEdit
,
wxBoxSizer
*
BoxSizer
,
const
wxSize
&
Size
)
{
{
m_Modify
=
FALSE
;
m_Modify
=
FALSE
;
if
(
TextToEdit
)
m_NewText
=
TextToEdit
;
if
(
TextToEdit
)
m_NewText
=
TextToEdit
;
m_Title
=
new
wxStaticText
(
parent
,
-
1
,
Title
);
m_Title
->
SetForegroundColour
(
wxColour
(
200
,
0
,
0
)
);
BoxSizer
->
Add
(
m_Title
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxTOP
|
wxADJUST_MINSIZE
,
5
);
m_Title
=
new
wxStaticText
(
parent
,
-
1
,
Title
);
m_FrameText
=
new
wxTextCtrl
(
parent
,
-
1
,
TextToEdit
,
wxDefaultPosition
,
Size
);
m_Title
->
SetForegroundColour
(
wxColour
(
200
,
0
,
0
)
);
BoxSizer
->
Add
(
m_Title
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxTOP
|
wxADJUST_MINSIZE
,
5
);
m_FrameText
=
new
wxTextCtrl
(
parent
,
-
1
,
TextToEdit
,
wxDefaultPosition
,
Size
);
m_FrameText
->
SetInsertionPoint
(
1
);
m_FrameText
->
SetInsertionPoint
(
1
);
BoxSizer
->
Add
(
m_FrameText
,
BoxSizer
->
Add
(
m_FrameText
,
0
,
wxGROW
|
wxALIGN_CENTER_VERTICAL
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
0
,
wxGROW
|
wxALIGN_CENTER_VERTICAL
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
}
}
...
@@ -39,152 +47,201 @@ wxString WinEDA_EnterText::GetValue()
...
@@ -39,152 +47,201 @@ wxString WinEDA_EnterText::GetValue()
return
m_NewText
;
return
m_NewText
;
}
}
void
WinEDA_EnterText
::
GetValue
(
char
*
buffer
,
int
lenmax
)
void
WinEDA_EnterText
::
GetValue
(
char
*
buffer
,
int
lenmax
)
{
{
m_Modify
=
m_FrameText
->
IsModified
();
m_Modify
=
m_FrameText
->
IsModified
();
if
(
buffer
)
if
(
buffer
)
{
{
m_NewText
=
m_FrameText
->
GetValue
();
m_NewText
=
m_FrameText
->
GetValue
();
int
ii
,
ll
=
m_NewText
.
Len
();
int
ii
,
ll
=
m_NewText
.
Len
();
for
(
ii
=
0
;
ii
<
ll
&&
ii
<
(
lenmax
-
1
);
ii
++
);
for
(
ii
=
0
;
ii
<
ll
&&
ii
<
(
lenmax
-
1
);
ii
++
)
buffer
[
ii
]
=
m_NewText
.
GetChar
(
ii
);
;
buffer
[
lenmax
-
1
]
=
0
;
buffer
[
ii
]
=
m_NewText
.
GetChar
(
ii
);
buffer
[
lenmax
-
1
]
=
0
;
}
}
}
}
void
WinEDA_EnterText
::
SetValue
(
const
wxString
&
new_text
)
void
WinEDA_EnterText
::
SetValue
(
const
wxString
&
new_text
)
{
{
m_FrameText
->
SetValue
(
new_text
);
m_FrameText
->
SetValue
(
new_text
);
}
}
void
WinEDA_EnterText
::
Enable
(
bool
enbl
)
void
WinEDA_EnterText
::
Enable
(
bool
enbl
)
{
{
m_Title
->
Enable
(
enbl
);
m_Title
->
Enable
(
enbl
);
m_FrameText
->
Enable
(
enbl
);
m_FrameText
->
Enable
(
enbl
);
}
}
/*********************************************************************/
/*********************************************************************/
/* Classe pour editer un texte graphique + dimension en INCHES ou MM */
/* Classe pour editer un texte graphique + dimension en INCHES ou MM */
/*********************************************************************/
/*********************************************************************/
WinEDA_GraphicTextCtrl
::
WinEDA_GraphicTextCtrl
(
wxWindow
*
parent
,
WinEDA_GraphicTextCtrl
::
WinEDA_GraphicTextCtrl
(
wxWindow
*
parent
,
const
wxString
&
Title
,
const
wxString
&
Title
,
const
wxString
&
TextToEdit
,
int
textsize
,
const
wxString
&
TextToEdit
,
int
textsize
,
int
units
,
wxBoxSizer
*
BoxSizer
,
int
framelen
,
int
units
,
wxBoxSizer
*
BoxSizer
,
int
framelen
,
int
internal_unit
)
int
internal_unit
)
{
{
m_Units
=
units
;
m_Units
=
units
;
m_Internal_Unit
=
internal_unit
;
m_Internal_Unit
=
internal_unit
;
m_Title
=
NULL
;
m_Title
=
NULL
;
// Limitation de la taille du texte a de valeurs raisonnables
if
(
textsize
<
10
)
textsize
=
10
;
if
(
textsize
>
3000
)
textsize
=
3000
;
m_Title
=
new
wxStaticText
(
parent
,
-
1
,
Title
);
m_Title
=
new
wxStaticText
(
parent
,
-
1
,
Title
);
BoxSizer
->
Add
(
m_Title
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxTOP
|
wxADJUST_MINSIZE
,
5
);
m_FrameText
=
new
wxTextCtrl
(
parent
,
-
1
,
TextToEdit
);
BoxSizer
->
Add
(
m_Title
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxTOP
|
wxADJUST_MINSIZE
,
5
);
BoxSizer
->
Add
(
m_FrameText
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
if
(
!
Title
.
IsEmpty
())
m_FrameText
=
new
wxTextCtrl
(
parent
,
-
1
,
TextToEdit
);
BoxSizer
->
Add
(
m_FrameText
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
if
(
!
Title
.
IsEmpty
()
)
{
{
wxString
msg
;
msg
=
_
(
"Size"
)
+
ReturnUnitSymbol
(
m_Units
);
wxString
msg
=
_
(
"Size"
)
+
ReturnUnitSymbol
(
m_Units
);
wxStaticText
*
text
=
new
wxStaticText
(
parent
,
-
1
,
msg
);
wxStaticText
*
text
=
new
wxStaticText
(
parent
,
-
1
,
msg
);
BoxSizer
->
Add
(
text
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxADJUST_MINSIZE
,
5
);
BoxSizer
->
Add
(
text
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxADJUST_MINSIZE
,
5
);
}
}
wxString
value
;
wxString
value
=
FormatSize
(
m_Internal_Unit
,
m_Units
,
textsize
)
;
value
.
Printf
((
m_Internal_Unit
>
1000
)
?
wxT
(
"%.4f"
)
:
wxT
(
"%.3f"
),
To_User_Unit
(
m_Units
,
textsize
,
m_Internal_Unit
)
);
m_FrameSize
=
new
wxTextCtrl
(
parent
,
-
1
,
value
,
wxDefaultPosition
,
wxSize
(
70
,
-
1
)
);
m_FrameSize
=
new
wxTextCtrl
(
parent
,
-
1
,
value
,
wxDefaultPosition
,
wxSize
(
70
,
-
1
));
BoxSizer
->
Add
(
m_FrameSize
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
BoxSizer
->
Add
(
m_FrameSize
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
}
}
WinEDA_GraphicTextCtrl
::~
WinEDA_GraphicTextCtrl
()
WinEDA_GraphicTextCtrl
::~
WinEDA_GraphicTextCtrl
()
{
{
/* no, these are deleted by the BoxSizer
delete m_FrameText;
delete m_FrameText;
delete m_Title;
delete m_Title;
*/
}
}
void
WinEDA_GraphicTextCtrl
::
SetTitle
(
const
wxString
&
title
)
wxString
WinEDA_GraphicTextCtrl
::
FormatSize
(
int
internalUnit
,
int
units
,
int
textSize
)
{
{
m_Title
->
SetLabel
(
title
);
wxString
value
;
// Limitation de la taille du texte a de valeurs raisonnables
if
(
textSize
<
10
)
textSize
=
10
;
if
(
textSize
>
3000
)
textSize
=
3000
;
value
.
Printf
(
(
internalUnit
>
1000
)
?
wxT
(
"%.4f"
)
:
wxT
(
"%.3f"
),
To_User_Unit
(
units
,
textSize
,
internalUnit
)
);
return
value
;
}
}
void
WinEDA_GraphicTextCtrl
::
SetValue
(
const
wxString
&
value
)
void
WinEDA_GraphicTextCtrl
::
SetTitle
(
const
wxString
&
title
)
{
{
m_FrameText
->
SetValue
(
value
);
m_Title
->
SetLabel
(
title
);
}
}
void
WinEDA_GraphicTextCtrl
::
SetValue
(
int
value
)
void
WinEDA_GraphicTextCtrl
::
SetValue
(
const
wxString
&
value
)
{
{
wxString
msg
;
m_FrameText
->
SetValue
(
value
);
msg
.
Printf
((
m_Internal_Unit
>
1000
)
?
wxT
(
"%.4f"
)
:
wxT
(
"%.3f"
),
}
To_User_Unit
(
m_Units
,
value
,
m_Internal_Unit
)
);
m_FrameSize
->
SetValue
(
msg
);
void
WinEDA_GraphicTextCtrl
::
SetValue
(
int
textSize
)
{
wxString
value
=
FormatSize
(
m_Internal_Unit
,
m_Units
,
textSize
);
m_FrameSize
->
SetValue
(
value
);
}
}
wxString
WinEDA_GraphicTextCtrl
::
GetText
()
wxString
WinEDA_GraphicTextCtrl
::
GetText
()
{
{
wxString
text
=
m_FrameText
->
GetValue
();
wxString
text
=
m_FrameText
->
GetValue
();
return
text
;
return
text
;
}
}
int
WinEDA_GraphicTextCtrl
::
GetTextSize
()
int
WinEDA_GraphicTextCtrl
::
ParseSize
(
const
wxString
&
sizeText
,
int
internalUnit
,
int
units
)
{
{
int
textsize
;
int
textsize
;
double
dtmp
;
double
dtmp
;
sizeText
.
ToDouble
(
&
dtmp
);
textsize
=
(
int
)
From_User_Unit
(
units
,
dtmp
,
internalUnit
);
// Limit to reasonable size
if
(
textsize
<
10
)
textsize
=
10
;
if
(
textsize
>
3000
)
textsize
=
3000
;
m_FrameSize
->
GetValue
().
ToDouble
(
&
dtmp
);
textsize
=
(
int
)
From_User_Unit
(
m_Units
,
dtmp
,
m_Internal_Unit
);
// Limitation de la taille du texte a de valeurs raisonnables
if
(
textsize
<
10
)
textsize
=
10
;
if
(
textsize
>
3000
)
textsize
=
3000
;
return
textsize
;
return
textsize
;
}
}
void
WinEDA_GraphicTextCtrl
::
Enable
(
bool
state
)
int
WinEDA_GraphicTextCtrl
::
GetTextSize
()
{
{
m_FrameText
->
Enable
(
state
);
return
ParseSize
(
m_FrameSize
->
GetValue
(),
m_Internal_Unit
,
m_Units
);
}
}
void
WinEDA_GraphicTextCtrl
::
Enable
(
bool
state
)
{
m_FrameText
->
Enable
(
state
);
}
/*****************************************************************/
/*****************************************************************/
/* Classe pour afficher et editer une coordonne en INCHES ou MM */
/* Classe pour afficher et editer une coordonne en INCHES ou MM */
/*****************************************************************/
/*****************************************************************/
WinEDA_PositionCtrl
::
WinEDA_PositionCtrl
(
wxWindow
*
parent
,
const
wxString
&
title
,
WinEDA_PositionCtrl
::
WinEDA_PositionCtrl
(
wxWindow
*
parent
,
const
wxPoint
&
pos_to_edit
,
int
units
,
wxBoxSizer
*
BoxSizer
,
const
wxString
&
title
,
const
wxPoint
&
pos_to_edit
,
int
units
,
wxBoxSizer
*
BoxSizer
,
int
internal_unit
)
int
internal_unit
)
{
{
wxString
text
;
wxString
text
;
m_Units
=
units
;
m_Units
=
units
;
m_Internal_Unit
=
internal_unit
;
m_Internal_Unit
=
internal_unit
;
if
(
title
.
IsEmpty
()
)
text
=
_
(
"Pos "
);
if
(
title
.
IsEmpty
()
)
else
text
=
title
;
text
=
_
(
"Pos "
);
text
+=
_
(
"X"
)
+
ReturnUnitSymbol
(
m_Units
);
else
m_TextX
=
new
wxStaticText
(
parent
,
-
1
,
text
);
text
=
title
;
BoxSizer
->
Add
(
m_TextX
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxTOP
|
wxADJUST_MINSIZE
,
5
);
text
+=
_
(
"X"
)
+
ReturnUnitSymbol
(
m_Units
);
m_FramePosX
=
new
wxTextCtrl
(
parent
,
-
1
,
wxEmptyString
,
wxDefaultPosition
);
m_TextX
=
new
wxStaticText
(
parent
,
-
1
,
text
);
BoxSizer
->
Add
(
m_FramePosX
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
BoxSizer
->
Add
(
m_TextX
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxTOP
|
wxADJUST_MINSIZE
,
5
);
m_FramePosX
=
new
wxTextCtrl
(
parent
,
-
1
,
wxEmptyString
,
wxDefaultPosition
);
BoxSizer
->
Add
(
m_FramePosX
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
if
(
title
.
IsEmpty
()
)
text
=
_
(
"Pos "
);
if
(
title
.
IsEmpty
()
)
else
text
=
title
;
text
=
_
(
"Pos "
);
text
+=
_
(
"Y"
)
+
ReturnUnitSymbol
(
m_Units
);
else
m_TextY
=
new
wxStaticText
(
parent
,
-
1
,
text
);
text
=
title
;
BoxSizer
->
Add
(
m_TextY
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxTOP
|
wxADJUST_MINSIZE
,
5
);
text
+=
_
(
"Y"
)
+
ReturnUnitSymbol
(
m_Units
);
m_TextY
=
new
wxStaticText
(
parent
,
-
1
,
text
);
m_FramePosY
=
new
wxTextCtrl
(
parent
,
-
1
,
wxEmptyString
);
BoxSizer
->
Add
(
m_TextY
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxTOP
|
wxADJUST_MINSIZE
,
5
);
BoxSizer
->
Add
(
m_FramePosY
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
SetValue
(
pos_to_edit
.
x
,
pos_to_edit
.
y
);
m_FramePosY
=
new
wxTextCtrl
(
parent
,
-
1
,
wxEmptyString
);
BoxSizer
->
Add
(
m_FramePosY
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
SetValue
(
pos_to_edit
.
x
,
pos_to_edit
.
y
);
}
}
...
@@ -196,69 +253,75 @@ WinEDA_PositionCtrl::~WinEDA_PositionCtrl()
...
@@ -196,69 +253,75 @@ WinEDA_PositionCtrl::~WinEDA_PositionCtrl()
delete
m_FramePosY
;
delete
m_FramePosY
;
}
}
/******************************************/
/******************************************/
wxPoint
WinEDA_PositionCtrl
::
GetValue
()
wxPoint
WinEDA_PositionCtrl
::
GetValue
()
/******************************************/
/******************************************/
/* Retourne (en unites internes) les coordonnes entrees (en unites utilisateur)
/* Retourne (en unites internes) les coordonnes entrees (en unites utilisateur)
*/
*/
{
{
wxPoint
coord
;
wxPoint
coord
;
double
value
=
0
;
double
value
=
0
;
m_FramePosX
->
GetValue
().
ToDouble
(
&
value
);
m_FramePosX
->
GetValue
().
ToDouble
(
&
value
);
coord
.
x
=
From_User_Unit
(
m_Units
,
value
,
m_Internal_Unit
);
coord
.
x
=
From_User_Unit
(
m_Units
,
value
,
m_Internal_Unit
);
m_FramePosY
->
GetValue
().
ToDouble
(
&
value
);
m_FramePosY
->
GetValue
().
ToDouble
(
&
value
);
coord
.
y
=
From_User_Unit
(
m_Units
,
value
,
m_Internal_Unit
);
coord
.
y
=
From_User_Unit
(
m_Units
,
value
,
m_Internal_Unit
);
return
coord
;
return
coord
;
}
}
/************************************************************/
/************************************************************/
void
WinEDA_PositionCtrl
::
Enable
(
bool
x_win_on
,
bool
y_win_on
)
void
WinEDA_PositionCtrl
::
Enable
(
bool
x_win_on
,
bool
y_win_on
)
/************************************************************/
/************************************************************/
{
{
m_FramePosX
->
Enable
(
x_win_on
);
m_FramePosX
->
Enable
(
x_win_on
);
m_FramePosY
->
Enable
(
y_win_on
);
m_FramePosY
->
Enable
(
y_win_on
);
}
}
/***********************************************************/
/***********************************************************/
void
WinEDA_PositionCtrl
::
SetValue
(
int
x_value
,
int
y_value
)
void
WinEDA_PositionCtrl
::
SetValue
(
int
x_value
,
int
y_value
)
/***********************************************************/
/***********************************************************/
{
{
wxString
msg
;
wxString
msg
;
m_Pos_To_Edit
.
x
=
x_value
;
m_Pos_To_Edit
.
x
=
x_value
;
m_Pos_To_Edit
.
y
=
y_value
;
m_Pos_To_Edit
.
y
=
y_value
;
msg
=
ReturnStringFromValue
(
m_Units
,
m_Pos_To_Edit
.
x
,
m_Internal_Unit
);
msg
=
ReturnStringFromValue
(
m_Units
,
m_Pos_To_Edit
.
x
,
m_Internal_Unit
);
m_FramePosX
->
Clear
();
m_FramePosX
->
Clear
();
m_FramePosX
->
SetValue
(
msg
);
m_FramePosX
->
SetValue
(
msg
);
msg
=
ReturnStringFromValue
(
m_Units
,
m_Pos_To_Edit
.
y
,
m_Internal_Unit
);
msg
=
ReturnStringFromValue
(
m_Units
,
m_Pos_To_Edit
.
y
,
m_Internal_Unit
);
m_FramePosY
->
Clear
();
m_FramePosY
->
Clear
();
m_FramePosY
->
SetValue
(
msg
);
m_FramePosY
->
SetValue
(
msg
);
}
}
/*******************/
/* WinEDA_SizeCtrl */
/*******************/
/*******************/
/* WinEDA_SizeCtrl */
WinEDA_SizeCtrl
::
WinEDA_SizeCtrl
(
wxWindow
*
parent
,
const
wxString
&
title
,
/*******************/
const
wxSize
&
size_to_edit
,
WinEDA_SizeCtrl
::
WinEDA_SizeCtrl
(
wxWindow
*
parent
,
const
wxString
&
title
,
int
units
,
wxBoxSizer
*
BoxSizer
,
const
wxSize
&
size_to_edit
,
int
internal_unit
)
:
int
units
,
wxBoxSizer
*
BoxSizer
,
WinEDA_PositionCtrl
(
parent
,
title
,
int
internal_unit
)
:
wxPoint
(
size_to_edit
.
x
,
size_to_edit
.
y
),
WinEDA_PositionCtrl
(
parent
,
title
,
units
,
BoxSizer
,
internal_unit
)
wxPoint
(
size_to_edit
.
x
,
size_to_edit
.
y
),
units
,
BoxSizer
,
internal_unit
)
{
{
}
}
/*************************************/
/*************************************/
wxSize
WinEDA_SizeCtrl
::
GetValue
()
wxSize
WinEDA_SizeCtrl
::
GetValue
()
/*************************************/
/*************************************/
{
{
wxPoint
pos
=
WinEDA_PositionCtrl
::
GetValue
();
wxPoint
pos
=
WinEDA_PositionCtrl
::
GetValue
();
wxSize
size
;
wxSize
size
;
size
.
x
=
pos
.
x
;
size
.
x
=
pos
.
x
;
size
.
y
=
pos
.
y
;
size
.
y
=
pos
.
y
;
return
size
;
return
size
;
...
@@ -270,110 +333,127 @@ wxSize size;
...
@@ -270,110 +333,127 @@ wxSize size;
/***********************************************************************/
/***********************************************************************/
/* Unites:
/* Unites:
si units = 0 : unite = inch
*
si units = 0 : unite = inch
si units = 1 : unite = mm
*
si units = 1 : unite = mm
si units >1 : affichage direct
*
si units >1 : affichage direct
*/
*/
WinEDA_ValueCtrl
::
WinEDA_ValueCtrl
(
wxWindow
*
parent
,
const
wxString
&
title
,
WinEDA_ValueCtrl
::
WinEDA_ValueCtrl
(
wxWindow
*
parent
,
const
wxString
&
title
,
int
value
,
int
units
,
wxBoxSizer
*
BoxSizer
,
int
value
,
int
units
,
wxBoxSizer
*
BoxSizer
,
int
internal_unit
)
int
internal_unit
)
{
{
wxString
label
=
title
;
wxString
label
=
title
;
m_Units
=
units
;
m_Units
=
units
;
m_Internal_Unit
=
internal_unit
;
m_Internal_Unit
=
internal_unit
;
m_Value
=
value
;
m_Value
=
value
;
label
+=
ReturnUnitSymbol
(
m_Units
);
label
+=
ReturnUnitSymbol
(
m_Units
);
m_Text
=
new
wxStaticText
(
parent
,
-
1
,
label
);
BoxSizer
->
Add
(
m_Text
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxTOP
|
wxADJUST_MINSIZE
,
5
);
m_Text
=
new
wxStaticText
(
parent
,
-
1
,
label
);
wxString
stringvalue
=
ReturnStringFromValue
(
m_Units
,
m_Value
,
m_Internal_Unit
);
BoxSizer
->
Add
(
m_Text
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxTOP
|
wxADJUST_MINSIZE
,
5
);
m_ValueCtrl
=
new
wxTextCtrl
(
parent
,
-
1
,
stringvalue
);
wxString
stringvalue
=
ReturnStringFromValue
(
m_Units
,
m_Value
,
m_Internal_Unit
);
BoxSizer
->
Add
(
m_ValueCtrl
,
m_ValueCtrl
=
new
wxTextCtrl
(
parent
,
-
1
,
stringvalue
);
0
,
BoxSizer
->
Add
(
m_ValueCtrl
,
0
,
wxGROW
|
wxALIGN_CENTER_VERTICAL
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
wxGROW
|
wxALIGN_CENTER_VERTICAL
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
}
}
WinEDA_ValueCtrl
::~
WinEDA_ValueCtrl
()
WinEDA_ValueCtrl
::~
WinEDA_ValueCtrl
()
{
{
delete
m_ValueCtrl
;
delete
m_ValueCtrl
;
delete
m_Text
;
delete
m_Text
;
}
}
/***********************************/
/***********************************/
int
WinEDA_ValueCtrl
::
GetValue
()
int
WinEDA_ValueCtrl
::
GetValue
()
/***********************************/
/***********************************/
{
{
int
coord
;
int
coord
;
wxString
txtvalue
=
m_ValueCtrl
->
GetValue
();
wxString
txtvalue
=
m_ValueCtrl
->
GetValue
();
coord
=
ReturnValueFromString
(
m_Units
,
txtvalue
,
m_Internal_Unit
);
coord
=
ReturnValueFromString
(
m_Units
,
txtvalue
,
m_Internal_Unit
);
return
coord
;
return
coord
;
}
}
/********************************************/
/********************************************/
void
WinEDA_ValueCtrl
::
SetValue
(
int
new_value
)
void
WinEDA_ValueCtrl
::
SetValue
(
int
new_value
)
/********************************************/
/********************************************/
{
{
wxString
buffer
;
wxString
buffer
;
m_Value
=
new_value
;
m_Value
=
new_value
;
buffer
=
ReturnStringFromValue
(
m_Units
,
m_Value
,
m_Internal_Unit
);
buffer
=
ReturnStringFromValue
(
m_Units
,
m_Value
,
m_Internal_Unit
);
m_ValueCtrl
->
SetValue
(
buffer
);
m_ValueCtrl
->
SetValue
(
buffer
);
}
}
/* Active ou desactive la frame: */
/* Active ou desactive la frame: */
void
WinEDA_ValueCtrl
::
Enable
(
bool
enbl
)
void
WinEDA_ValueCtrl
::
Enable
(
bool
enbl
)
{
{
m_ValueCtrl
->
Enable
(
enbl
);
m_ValueCtrl
->
Enable
(
enbl
);
m_Text
->
Enable
(
enbl
);
m_Text
->
Enable
(
enbl
);
}
}
/***************************************************************/
/***************************************************************/
/* Classe pour afficher et editer une valeur en double flottant*/
/* Classe pour afficher et editer une valeur en double flottant*/
/***************************************************************/
/***************************************************************/
WinEDA_DFloatValueCtrl
::
WinEDA_DFloatValueCtrl
(
wxWindow
*
parent
,
const
wxString
&
title
,
WinEDA_DFloatValueCtrl
::
WinEDA_DFloatValueCtrl
(
wxWindow
*
parent
,
const
wxString
&
title
,
double
value
,
wxBoxSizer
*
BoxSizer
)
double
value
,
wxBoxSizer
*
BoxSizer
)
{
{
wxString
buffer
;
wxString
buffer
;
wxString
label
=
title
;
wxString
label
=
title
;
m_Value
=
value
;
m_Value
=
value
;
m_Text
=
new
wxStaticText
(
parent
,
-
1
,
label
);
m_Text
=
new
wxStaticText
(
parent
,
-
1
,
label
);
BoxSizer
->
Add
(
m_Text
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxTOP
,
5
);
buffer
.
Printf
(
wxT
(
"%lf"
),
m_Value
);
BoxSizer
->
Add
(
m_Text
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxTOP
,
5
);
m_ValueCtrl
=
new
wxTextCtrl
(
parent
,
-
1
,
buffer
);
BoxSizer
->
Add
(
m_ValueCtrl
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
buffer
.
Printf
(
wxT
(
"%lf"
),
m_Value
);
m_ValueCtrl
=
new
wxTextCtrl
(
parent
,
-
1
,
buffer
);
BoxSizer
->
Add
(
m_ValueCtrl
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
}
}
WinEDA_DFloatValueCtrl
::~
WinEDA_DFloatValueCtrl
()
WinEDA_DFloatValueCtrl
::~
WinEDA_DFloatValueCtrl
()
{
{
delete
m_ValueCtrl
;
delete
m_ValueCtrl
;
delete
m_Text
;
delete
m_Text
;
}
}
double
WinEDA_DFloatValueCtrl
::
GetValue
()
double
WinEDA_DFloatValueCtrl
::
GetValue
()
{
{
double
coord
=
0
;
double
coord
=
0
;
m_ValueCtrl
->
GetValue
().
ToDouble
(
&
coord
);
m_ValueCtrl
->
GetValue
().
ToDouble
(
&
coord
);
return
coord
;
return
coord
;
}
}
void
WinEDA_DFloatValueCtrl
::
SetValue
(
double
new_value
)
void
WinEDA_DFloatValueCtrl
::
SetValue
(
double
new_value
)
{
{
wxString
buffer
;
wxString
buffer
;
m_Value
=
new_value
;
m_Value
=
new_value
;
buffer
.
Printf
(
wxT
(
"%lf"
),
m_Value
);
buffer
.
Printf
(
wxT
(
"%lf"
),
m_Value
);
m_ValueCtrl
->
SetValue
(
buffer
);
m_ValueCtrl
->
SetValue
(
buffer
);
}
}
/* Active ou desactive la frame: */
/* Active ou desactive la frame: */
void
WinEDA_DFloatValueCtrl
::
Enable
(
bool
enbl
)
void
WinEDA_DFloatValueCtrl
::
Enable
(
bool
enbl
)
{
{
m_ValueCtrl
->
Enable
(
enbl
);
m_ValueCtrl
->
Enable
(
enbl
);
m_Text
->
Enable
(
enbl
);
m_Text
->
Enable
(
enbl
);
}
}
eeschema/component_class.cpp
View file @
671fabe1
...
@@ -683,7 +683,8 @@ int SCH_COMPONENT::GetRotationMiroir()
...
@@ -683,7 +683,8 @@ int SCH_COMPONENT::GetRotationMiroir()
{
{
if
(
memcmp
(
TempMat
,
m_Transform
,
sizeof
(
MatNormal
)
)
==
0
)
if
(
memcmp
(
TempMat
,
m_Transform
,
sizeof
(
MatNormal
)
)
==
0
)
{
{
found
=
TRUE
;
break
;
found
=
TRUE
;
break
;
}
}
SetRotationMiroir
(
CMP_ROTATE_COUNTERCLOCKWISE
);
SetRotationMiroir
(
CMP_ROTATE_COUNTERCLOCKWISE
);
}
}
...
@@ -697,7 +698,8 @@ int SCH_COMPONENT::GetRotationMiroir()
...
@@ -697,7 +698,8 @@ int SCH_COMPONENT::GetRotationMiroir()
{
{
if
(
memcmp
(
TempMat
,
m_Transform
,
sizeof
(
MatNormal
)
)
==
0
)
if
(
memcmp
(
TempMat
,
m_Transform
,
sizeof
(
MatNormal
)
)
==
0
)
{
{
found
=
TRUE
;
break
;
found
=
TRUE
;
break
;
}
}
SetRotationMiroir
(
CMP_ROTATE_COUNTERCLOCKWISE
);
SetRotationMiroir
(
CMP_ROTATE_COUNTERCLOCKWISE
);
}
}
...
@@ -712,7 +714,8 @@ int SCH_COMPONENT::GetRotationMiroir()
...
@@ -712,7 +714,8 @@ int SCH_COMPONENT::GetRotationMiroir()
{
{
if
(
memcmp
(
TempMat
,
m_Transform
,
sizeof
(
MatNormal
)
)
==
0
)
if
(
memcmp
(
TempMat
,
m_Transform
,
sizeof
(
MatNormal
)
)
==
0
)
{
{
found
=
TRUE
;
break
;
found
=
TRUE
;
break
;
}
}
SetRotationMiroir
(
CMP_ROTATE_COUNTERCLOCKWISE
);
SetRotationMiroir
(
CMP_ROTATE_COUNTERCLOCKWISE
);
}
}
...
@@ -726,7 +729,8 @@ int SCH_COMPONENT::GetRotationMiroir()
...
@@ -726,7 +729,8 @@ int SCH_COMPONENT::GetRotationMiroir()
}
}
else
else
{
{
wxBell
();
return
CMP_NORMAL
;
wxBell
();
return
CMP_NORMAL
;
}
}
}
}
...
...
eeschema/component_class.h
View file @
671fabe1
...
@@ -193,6 +193,12 @@ public:
...
@@ -193,6 +193,12 @@ public:
*/
*/
void
AddField
(
const
SCH_CMP_FIELD
&
aField
);
void
AddField
(
const
SCH_CMP_FIELD
&
aField
);
void
SetFields
(
const
SCH_CMP_FIELDS
&
aFields
)
{
m_Fields
=
aFields
;
// vector copying, length is changed possibly
}
/**
/**
* Function GetFieldCount
* Function GetFieldCount
* returns the number of fields in this component.
* returns the number of fields in this component.
...
...
eeschema/dialog_edit_component_in_schematic.cpp
View file @
671fabe1
...
@@ -15,6 +15,9 @@
...
@@ -15,6 +15,9 @@
#include "dialog_edit_component_in_schematic.h"
#include "dialog_edit_component_in_schematic.h"
int
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
::
s_SelectedRow
;
/**********************************************************************/
/**********************************************************************/
void
InstallCmpeditFrame
(
WinEDA_SchematicFrame
*
parent
,
wxPoint
&
pos
,
void
InstallCmpeditFrame
(
WinEDA_SchematicFrame
*
parent
,
wxPoint
&
pos
,
SCH_COMPONENT
*
aComponent
)
SCH_COMPONENT
*
aComponent
)
...
@@ -35,8 +38,6 @@ void InstallCmpeditFrame( WinEDA_SchematicFrame* parent, wxPoint& pos,
...
@@ -35,8 +38,6 @@ void InstallCmpeditFrame( WinEDA_SchematicFrame* parent, wxPoint& pos,
frame
->
InitBuffers
(
aComponent
);
frame
->
InitBuffers
(
aComponent
);
// frame->Layout();
frame
->
ShowModal
();
frame
->
ShowModal
();
frame
->
Destroy
();
frame
->
Destroy
();
}
}
...
@@ -45,54 +46,12 @@ void InstallCmpeditFrame( WinEDA_SchematicFrame* parent, wxPoint& pos,
...
@@ -45,54 +46,12 @@ void InstallCmpeditFrame( WinEDA_SchematicFrame* parent, wxPoint& pos,
parent
->
DrawPanel
->
m_IgnoreMouseEvents
=
FALSE
;
parent
->
DrawPanel
->
m_IgnoreMouseEvents
=
FALSE
;
}
}
#if 0
/*********************************************************************/
void SCH_CMP_FIELD::Place( WinEDA_SchematicFrame* frame, wxDC* DC )
/*********************************************************************/
{
frame->DrawPanel->ManageCurseur = NULL;
frame->DrawPanel->ForceCloseManageCurseur = NULL;
SCH_COMPONENT* component = (SCH_COMPONENT*) m_Parent;
// save old component in undo list
if( g_ItemToUndoCopy && g_ItemToUndoCopy->Type() == component->Type() )
{
component->SwapData( (SCH_COMPONENT*) g_ItemToUndoCopy );
frame->SaveCopyInUndoList( component, IS_CHANGED );
component->SwapData( (SCH_COMPONENT*) g_ItemToUndoCopy );
}
m_AddExtraText = 0;
if( m_FieldId == REFERENCE )
{
EDA_LibComponentStruct* part;
part = FindLibPart( component->m_ChipName.GetData(), wxEmptyString, FIND_ROOT );
if( part )
{
if( part->m_UnitCount > 1 )
m_AddExtraText = 1;
}
}
Draw( frame->DrawPanel, DC, wxPoint(0,0), GR_DEFAULT_DRAWMODE );
m_Flags = 0;
frame->GetScreen()->SetCurItem( NULL );
frame->GetScreen()->SetModify();
}
#endif
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
::
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
(
wxWindow
*
parent
)
:
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
::
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
(
wxWindow
*
parent
)
:
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
(
parent
)
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
(
parent
)
{
{
m_Parent
=
(
WinEDA_SchematicFrame
*
)
parent
;
m_Parent
=
(
WinEDA_SchematicFrame
*
)
parent
;
m_
SelectedRow
=
0
;
m_
LibEntry
=
0
;
wxListItem
columnLabel
;
wxListItem
columnLabel
;
...
@@ -104,9 +63,18 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC( wxWindow
...
@@ -104,9 +63,18 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC( wxWindow
columnLabel
.
SetText
(
_
(
"Value"
)
);
columnLabel
.
SetText
(
_
(
"Value"
)
);
fieldListCtrl
->
InsertColumn
(
1
,
columnLabel
);
fieldListCtrl
->
InsertColumn
(
1
,
columnLabel
);
// these must go here late in the game.
wxString
label
=
_
(
"Size"
)
+
ReturnUnitSymbol
(
g_UnitMetric
);
fieldListCtrl
->
SetColumnWidth
(
0
,
wxLIST_AUTOSIZE
);
textSizeLabel
->
SetLabel
(
label
);
fieldListCtrl
->
SetColumnWidth
(
1
,
wxLIST_AUTOSIZE
);
label
=
_
(
"Pos "
);
label
+=
_
(
"X"
);
label
+=
ReturnUnitSymbol
(
g_UnitMetric
);
posXLabel
->
SetLabel
(
label
);
label
=
_
(
"Pos "
);
label
+=
_
(
"Y"
);
label
+=
ReturnUnitSymbol
(
g_UnitMetric
);
posYLabel
->
SetLabel
(
label
);
copySelectedFieldToPanel
();
copySelectedFieldToPanel
();
...
@@ -117,7 +85,9 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC( wxWindow
...
@@ -117,7 +85,9 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC( wxWindow
void
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
::
OnListItemDeselected
(
wxListEvent
&
event
)
void
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
::
OnListItemDeselected
(
wxListEvent
&
event
)
{
{
D
(
printf
(
"OnListItemDeselected()
\n
"
);)
D
(
printf
(
"OnListItemDeselected()
\n
"
);)
copyPanelToSelectedField
();
if
(
!
copyPanelToSelectedField
()
)
event
.
Skip
();
// do not go to the next row
}
}
...
@@ -125,80 +95,163 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnListItemSelected( wxListEvent& event
...
@@ -125,80 +95,163 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnListItemSelected( wxListEvent& event
{
{
D
(
printf
(
"OnListItemSelected()
\n
"
);)
D
(
printf
(
"OnListItemSelected()
\n
"
);)
m_SelectedRow
=
event
.
GetIndex
();
// remember the selected row, statically
s_SelectedRow
=
event
.
GetIndex
();
copySelectedFieldToPanel
();
copySelectedFieldToPanel
();
}
}
void
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
::
setSelectedFieldNdx
(
int
aFieldNdx
)
void
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
::
OnCancelButtonClick
(
wxCommandEvent
&
event
)
{
{
fieldListCtrl
->
SetItemState
(
aFieldNdx
,
wxLIST_STATE_SELECTED
,
wxLIST_STATE_SELECTED
);
EndModal
(
1
);
fieldListCtrl
->
EnsureVisible
(
aFieldNdx
);
}
}
int
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
::
getSelectedFieldNdx
()
void
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
::
copyPanelToOptions
()
{
{
return
m_SelectedRow
;
wxString
newname
=
chipnameTextCtrl
->
GetValue
();
}
newname
.
MakeUpper
();
newname
.
Replace
(
wxT
(
" "
),
wxT
(
"_"
)
);
if
(
newname
.
IsEmpty
()
)
DisplayError
(
this
,
_
(
"No Component Name!"
)
);
#if 0
else
if
(
newname
.
CmpNoCase
(
m_Cmp
->
m_ChipName
)
)
/*****************************************************************************/
{
void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp( wxCommandEvent& event )
if
(
FindLibPart
(
newname
.
GetData
(),
wxEmptyString
,
FIND_ALIAS
)
==
NULL
)
/*****************************************************************************/
{
wxString
message
;
message
.
Printf
(
_
(
"Component [%s] not found!"
),
newname
.
GetData
()
);
DisplayError
(
this
,
message
);
}
else
// Changement de composant!
{
m_Cmp
->
m_ChipName
=
newname
;
}
}
/* Replace le composant en position normale, dimensions et positions
// Mise a jour de la representation:
* fields comme definies en librairie
if
(
convertCheckBox
->
IsEnabled
()
)
*/
{
{
m_Cmp
->
m_Convert
=
convertCheckBox
->
GetValue
()
?
2
:
1
;
EDA_LibComponentStruct* Entry;
}
if( m_Cmp == NULL )
//Set the part selection in multiple part per pakcage
return;
if
(
m_Cmp
->
m_Multi
)
{
int
unit_selection
=
unitChoice
->
GetCurrentSelection
()
+
1
;
m_Cmp
->
SetUnitSelection
(
m_Parent
->
GetSheet
(),
unit_selection
);
m_Cmp
->
m_Multi
=
unit_selection
;
}
Entry = FindLibPart( m_Cmp->m_ChipName.GetData(), wxEmptyString, FIND_ROOT );
switch
(
orientationRadioBox
->
GetSelection
()
)
{
case
0
:
m_Cmp
->
SetRotationMiroir
(
CMP_ORIENT_0
);
break
;
if( Entry == NULL )
case
1
:
return;
m_Cmp
->
SetRotationMiroir
(
CMP_ORIENT_90
);
break
;
wxClientDC dc( m_Parent->DrawPanel );
case
2
:
m_Parent->DrawPanel->PrepareGraphicContext( &dc );
m_Cmp
->
SetRotationMiroir
(
CMP_ORIENT_180
);
break
;
RedrawOneStruct( m_Parent->DrawPanel, &dc, m_Cmp, g_XorMode );
case
3
:
m_Cmp
->
SetRotationMiroir
(
CMP_ORIENT_270
);
break
;
}
/* Mise aux valeurs par defaut des champs et orientation */
int
mirror
=
mirrorRadioBox
->
GetSelection
();
m_Cmp->GetField( REFERENCE )->m_Pos.x =
switch
(
mirror
)
Entry->m_Prefix.m_Pos.x + m_Cmp->m_Pos.x;
{
case
0
:
break
;
m_Cmp->GetField( REFERENCE )->m_Pos.y =
case
1
:
Entry->m_Prefix.m_Pos.y + m_Cmp->m_Pos.y;
m_Cmp
->
SetRotationMiroir
(
CMP_MIROIR_X
);
break
;
m_Cmp->GetField( REFERENCE )->m_Orient = Entry->m_Prefix.m_Orient;
case
2
:
m_Cmp->GetField( REFERENCE )->m_Size = Entry->m_Prefix.m_Size;
m_Cmp
->
SetRotationMiroir
(
CMP_MIROIR_Y
);
m_Cmp->GetField( REFERENCE )->m_HJustify = Entry->m_Prefix.m_HJustify;
break
;
m_Cmp->GetField( REFERENCE )->m_VJustify = Entry->m_Prefix.m_VJustify;
}
}
m_Cmp->GetField( VALUE )->m_Pos.x =
Entry->m_Name.m_Pos.x + m_Cmp->m_Pos.x;
m_Cmp->GetField( VALUE )->m_Pos.y =
void
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
::
OnOKButtonClick
(
wxCommandEvent
&
event
)
Entry->m_Name.m_Pos.y + m_Cmp->m_Pos.y;
{
if
(
!
copyPanelToSelectedField
()
)
return
;
m_Cmp->GetField( VALUE )->m_Orient = Entry->m_Name.m_Orient;
copyPanelToOptions
();
m_Cmp->GetField( VALUE )->m_Size = Entry->m_Name.m_Size;
m_Cmp->GetField( VALUE )->m_HJustify = Entry->m_Name.m_HJustify;
m_Cmp->GetField( VALUE )->m_VJustify = Entry->m_Name.m_VJustify;
m_Cmp->SetRotationMiroir( CMP_NORMAL );
/* save old cmp in undo list if not already in edit, or moving ... */
if
(
m_Cmp
->
m_Flags
==
0
)
m_Parent
->
SaveCopyInUndoList
(
m_Cmp
,
IS_CHANGED
);
// change all field positions from relative to absolute
for
(
unsigned
i
=
0
;
i
<
m_FieldsBuf
.
size
();
++
i
)
{
m_FieldsBuf
[
i
].
m_Pos
+=
m_Cmp
->
m_Pos
;
}
// delete any fields with no name
for
(
unsigned
i
=
FIELD1
;
i
<
m_FieldsBuf
.
size
();
)
{
if
(
m_FieldsBuf
[
i
].
m_Name
.
IsEmpty
()
)
{
m_FieldsBuf
.
erase
(
m_FieldsBuf
.
begin
()
+
i
);
continue
;
}
++
i
;
}
EDA_LibComponentStruct
*
entry
=
FindLibPart
(
m_Cmp
->
m_ChipName
.
GetData
(),
wxEmptyString
,
FIND_ROOT
);
if
(
entry
&&
entry
->
m_Options
==
ENTRY_POWER
)
m_FieldsBuf
[
VALUE
].
m_Text
=
m_Cmp
->
m_ChipName
;
// copy all the fields back, and change the length of m_Fields.
m_Cmp
->
SetFields
(
m_FieldsBuf
);
m_Parent
->
GetScreen
()
->
SetModify
();
m_Parent
->
GetScreen
()
->
SetModify
();
RedrawOneStruct( m_Parent->DrawPanel, &dc, m_Cmp, GR_DEFAULT_DRAWMODE );
m_Parent
->
TestDanglingEnds
(
m_Parent
->
GetScreen
()
->
EEDrawList
,
NULL
);
EndModal( 1 );
m_Parent
->
DrawPanel
->
Refresh
(
TRUE
);
EndModal
(
0
);
}
void
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
::
setSelectedFieldNdx
(
int
aFieldNdx
)
{
/* deselect old selection, but I think this is done by single selection flag within fieldListCtrl
fieldListCtrl->SetItemState( s_SelectedRow, 0, wxLIST_STATE_SELECTED|wxLIST_STATE_FOCUSED);
*/
if
(
aFieldNdx
>=
(
int
)
m_FieldsBuf
.
size
()
)
aFieldNdx
=
m_FieldsBuf
.
size
()
-
1
;
if
(
aFieldNdx
<
0
)
aFieldNdx
=
0
;
fieldListCtrl
->
SetItemState
(
aFieldNdx
,
wxLIST_STATE_SELECTED
,
wxLIST_STATE_SELECTED
);
fieldListCtrl
->
EnsureVisible
(
aFieldNdx
);
s_SelectedRow
=
aFieldNdx
;
}
int
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
::
getSelectedFieldNdx
()
{
return
s_SelectedRow
;
}
}
#endif
/*******************************************************************************/
/*******************************************************************************/
...
@@ -207,20 +260,52 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::InitBuffers( SCH_COMPONENT* aComponent
...
@@ -207,20 +260,52 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::InitBuffers( SCH_COMPONENT* aComponent
{
{
m_Cmp
=
aComponent
;
m_Cmp
=
aComponent
;
m_LibEntry
=
FindLibPart
(
m_Cmp
->
m_ChipName
.
GetData
(),
wxEmptyString
,
FIND_ROOT
);
#if 0 && defined(DEBUG)
for( int i=0; i<aComponent->GetFieldCount(); ++i )
{
printf("Orig[%d] (x=%d, y=%d)\n", i, aComponent->m_Fields[i].m_Pos.x,
aComponent->m_Fields[i].m_Pos.y );
}
#endif
// copy all the fields to a work area
// copy all the fields to a work area
m_FieldsBuf
=
aComponent
->
m_Fields
;
m_FieldsBuf
=
aComponent
->
m_Fields
;
#if 0 && defined(DEBUG)
for( unsigned i=0; i<m_FieldsBuf.size(); ++i )
{
printf("m_FieldsBuf[%d] (x=%d, y=%d)\n", i, m_FieldsBuf[i].m_Pos.x,
m_FieldsBuf[i].m_Pos.y );
}
#endif
m_FieldsBuf
[
REFERENCE
].
m_Text
=
m_Cmp
->
GetRef
(
m_Parent
->
GetSheet
()
);
m_FieldsBuf
[
REFERENCE
].
m_Text
=
m_Cmp
->
GetRef
(
m_Parent
->
GetSheet
()
);
for
(
int
ii
=
0
;
ii
<
aComponent
->
GetFieldCount
();
++
i
i
)
for
(
unsigned
i
=
0
;
i
<
m_FieldsBuf
.
size
();
++
i
)
{
{
// make the editable field position relative to the component
// make the editable field position relative to the component
m_FieldsBuf
[
ii
].
m_Pos
-=
m_Cmp
->
m_Pos
;
m_FieldsBuf
[
i
].
m_Pos
-=
m_Cmp
->
m_Pos
;
setRowItem
(
i
,
m_FieldsBuf
[
i
]
);
}
setRowItem
(
ii
,
m_FieldsBuf
[
ii
]
);
#if 0 && defined(DEBUG)
for( unsigned i=0; i<m_FieldsBuf.size(); ++i )
{
printf("after[%d] (x=%d, y=%d)\n", i, m_FieldsBuf[i].m_Pos.x,
m_FieldsBuf[i].m_Pos.y );
}
}
#endif
copyOptionsToPanel
();
// put focus on the list ctrl
fieldListCtrl
->
SetFocus
();
setSelectedFieldNdx
(
REFERENCE
);
// resume editing at the last row edited, last time dialog was up.
setSelectedFieldNdx
(
s_SelectedRow
);
}
}
...
@@ -228,7 +313,7 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::setRowItem( int aFieldNdx, const SCH_CM
...
@@ -228,7 +313,7 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::setRowItem( int aFieldNdx, const SCH_CM
{
{
wxASSERT
(
aFieldNdx
>=
0
);
wxASSERT
(
aFieldNdx
>=
0
);
// insert blanks if aFieldNdx is referencing a
yet to be defined
row
// insert blanks if aFieldNdx is referencing a
"yet to be defined"
row
while
(
aFieldNdx
>=
fieldListCtrl
->
GetItemCount
()
)
while
(
aFieldNdx
>=
fieldListCtrl
->
GetItemCount
()
)
{
{
long
ndx
=
fieldListCtrl
->
InsertItem
(
fieldListCtrl
->
GetItemCount
(),
wxEmptyString
);
long
ndx
=
fieldListCtrl
->
InsertItem
(
fieldListCtrl
->
GetItemCount
(),
wxEmptyString
);
...
@@ -247,7 +332,6 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::setRowItem( int aFieldNdx, const SCH_CM
...
@@ -247,7 +332,6 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::setRowItem( int aFieldNdx, const SCH_CM
}
}
/****************************************************************/
/****************************************************************/
void
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
::
copySelectedFieldToPanel
()
void
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
::
copySelectedFieldToPanel
()
/****************************************************************/
/****************************************************************/
...
@@ -259,294 +343,188 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copySelectedFieldToPanel()
...
@@ -259,294 +343,188 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copySelectedFieldToPanel()
SCH_CMP_FIELD
&
field
=
m_FieldsBuf
[
fieldNdx
];
SCH_CMP_FIELD
&
field
=
m_FieldsBuf
[
fieldNdx
];
showCheckBox
->
SetValue
(
!
(
field
.
m_Attributs
&
TEXT_NO_VISIBLE
)
);
rotateCheckBox
->
SetValue
(
field
.
m_Orient
==
TEXT_ORIENT_VERT
);
fieldNameTextCtrl
->
SetValue
(
field
.
m_Name
);
fieldNameTextCtrl
->
SetValue
(
field
.
m_Name
);
// if fieldNdx == REFERENCE, VALUE, FOOTPRINT, or DATASHEET, then disable editing
// if fieldNdx == REFERENCE, VALUE, FOOTPRINT, or DATASHEET, then disable editing
fieldNameTextCtrl
->
Enable
(
fieldNdx
>=
FIELD1
);
// fieldNameTextCtrl->Enable( fieldNdx >= FIELD1 );
fieldNameTextCtrl
->
SetEditable
(
fieldNdx
>=
FIELD1
);
fieldValueTextCtrl
->
SetValue
(
field
.
m_Text
);
fieldValueTextCtrl
->
SetValue
(
field
.
m_Text
);
/*
if
(
fieldNdx
==
VALUE
&&
m_LibEntry
&&
m_LibEntry
->
m_Options
==
ENTRY_POWER
)
if
(
fieldNdx
==
VALUE
&&
m_LibEntry
&&
m_LibEntry
->
m_Options
==
ENTRY_POWER
)
m_FieldTextCtrl->Enable( FALSE );
fieldValueTextCtrl
->
Enable
(
FALSE
);
*/
showCheckBox
->
SetValue
(
!
(
field
.
m_Attributs
&
TEXT_NO_VISIBLE
)
);
textSizeTextCtrl
->
SetValue
(
WinEDA_GraphicTextCtrl
::
FormatSize
(
EESCHEMA_INTERNAL_UNIT
,
g_UnitMetric
,
field
.
m_Size
.
x
)
);
wxPoint
coord
=
field
.
m_Pos
;
wxPoint
zero
=
-
m_Cmp
->
m_Pos
;
// relative zero
// If the field value is empty and the position is zero, we set the
// If the field value is empty and the position is
at relative
zero, we set the
// initial position as a small offset from the ref field, and orient
// initial position as a small offset from the ref field, and orient
// it the same as the ref field. That is likely to put it at least
// it the same as the ref field. That is likely to put it at least
// close to the desired position.
// close to the desired position.
if
(
field
.
m_Pos
==
wxPoint
(
0
,
0
)
&&
field
.
m_Text
.
IsEmpty
()
)
if
(
coord
==
zero
&&
field
.
m_Text
.
IsEmpty
()
)
{
{
wxString
dim
;
rotateCheckBox
->
SetValue
(
m_FieldsBuf
[
REFERENCE
].
m_Orient
==
TEXT_ORIENT_VERT
)
;
// @todo look at the dedicated position control for this.
coord
.
x
=
m_FieldsBuf
[
REFERENCE
].
m_Pos
.
x
+
(
fieldNdx
-
FIELD1
+
1
)
*
100
;
dim
.
Printf
(
wxT
(
"%d"
),
m_FieldsBuf
[
REFERENCE
].
m_Pos
.
x
+
(
fieldNdx
-
FIELD1
+
1
)
*
100
);
coord
.
y
=
m_FieldsBuf
[
REFERENCE
].
m_Pos
.
y
+
(
fieldNdx
-
FIELD1
+
1
)
*
100
;
posXTextCtrl
->
SetValue
(
dim
);
dim
.
Printf
(
wxT
(
"%d"
),
m_FieldsBuf
[
REFERENCE
].
m_Pos
.
y
+
(
fieldNdx
-
FIELD1
+
1
)
*
100
);
// coord can compute negative if field is < FIELD1, e.g. FOOTPRINT.
posYTextCtrl
->
SetValue
(
dim
);
// That is ok, we basically don't want all the new empty fields on
// top of each other.
}
}
else
{
wxString
dim
;
dim
.
Printf
(
wxT
(
"%d"
),
field
.
m_Pos
.
x
);
wxString
coordText
=
ReturnStringFromValue
(
g_UnitMetric
,
coord
.
x
,
EESCHEMA_INTERNAL_UNIT
);
posXTextCtrl
->
SetValue
(
dim
);
posXTextCtrl
->
SetValue
(
coordText
);
dim
.
Printf
(
wxT
(
"%d"
),
field
.
m_Pos
.
y
);
coordText
=
ReturnStringFromValue
(
g_UnitMetric
,
coord
.
y
,
EESCHEMA_INTERNAL_UNIT
);
posYTextCtrl
->
SetValue
(
dim
);
posYTextCtrl
->
SetValue
(
coordText
);
}
rotateCheckBox
->
SetValue
(
field
.
m_Orient
==
TEXT_ORIENT_VERT
);
#if 0
m_FieldNameCtrl->SetValue( m_FieldName[fieldNdx] );
m_FieldTextCtrl->SetValue( m_FieldText[fieldNdx] );
m_FieldTextCtrl->SetValue( m_FieldSize[fieldNdx] );
#endif
}
}
/*****************************************************************/
/*****************************************************************/
void
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
::
copyPanelToSelectedField
()
bool
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
::
copyPanelToSelectedField
()
/*****************************************************************/
/*****************************************************************/
{
{
unsigned
fieldNdx
=
getSelectedFieldNdx
();
unsigned
fieldNdx
=
getSelectedFieldNdx
();
if
(
fieldNdx
>=
m_FieldsBuf
.
size
()
)
if
(
fieldNdx
>=
m_FieldsBuf
.
size
()
)
// traps the -1 case too
return
;
return
true
;
SCH_CMP_FIELD
&
field
=
m_FieldsBuf
[
fieldNdx
];
SCH_CMP_FIELD
&
field
=
m_FieldsBuf
[
fieldNdx
];
if
(
showCheckBox
->
GetValue
()
)
field
.
m_Attributs
&=
~
TEXT_NO_VISIBLE
;
else
field
.
m_Attributs
|=
TEXT_NO_VISIBLE
;
if
(
rotateCheckBox
->
GetValue
()
)
field
.
m_Orient
=
TEXT_ORIENT_VERT
;
else
field
.
m_Orient
=
TEXT_ORIENT_HORIZ
;
rotateCheckBox
->
SetValue
(
field
.
m_Orient
==
TEXT_ORIENT_VERT
);
field
.
m_Name
=
fieldNameTextCtrl
->
GetValue
();
field
.
m_Name
=
fieldNameTextCtrl
->
GetValue
();
field
.
m_Text
=
fieldValueTextCtrl
->
GetValue
();
field
.
m_Text
=
fieldValueTextCtrl
->
GetValue
();
// field.m_Size =
setRowItem
(
fieldNdx
,
field
);
// update fieldListCtrl
// m_FieldPosition[id] = m_FieldPositionCtrl->GetValue();
field
.
m_Size
.
x
=
WinEDA_GraphicTextCtrl
::
ParseSize
(
textSizeTextCtrl
->
GetValue
(),
EESCHEMA_INTERNAL_UNIT
,
g_UnitMetric
);
// m_FieldSize[id] = m_FieldTextCtrl->GetTextSize();
field
.
m_Size
.
y
=
field
.
m_Size
.
x
;
}
double
value
;
#if 0
posXTextCtrl
->
GetValue
().
ToDouble
(
&
value
);
field
.
m_Pos
.
x
=
From_User_Unit
(
g_UnitMetric
,
value
,
EESCHEMA_INTERNAL_UNIT
);
/*************************************************************/
posYTextCtrl
->
GetValue
().
ToDouble
(
&
value
);
void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::fillTableModel()
field
.
m_Pos
.
y
=
From_User_Unit
(
g_UnitMetric
,
value
,
EESCHEMA_INTERNAL_UNIT
);
/*************************************************************/
{
}
return
true
;
}
/**********************************************************/
void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::buildPanelBasic()
/**********************************************************/
/* create the basic panel for component properties editing
void
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
::
copyOptionsToPanel
()
*/
{
{
int Nb_Max_Unit = m_SelectUnit->GetCount();
int
choiceCount
=
unitChoice
->
GetCount
();
int ii;
int nb_units = m_LibEntry ? MAX( m_LibEntry->m_UnitCount, 1 ) : 0;
// Disable non existant units selection buttons
if
(
m_Cmp
->
m_Multi
<=
choiceCount
)
for( ii = nb_units; ii < Nb_Max_Unit; ii++ )
unitChoice
->
SetSelection
(
m_Cmp
->
m_Multi
-
1
);
{
m_SelectUnit->Enable( ii, FALSE );
}
if( m_Cmp->m_Multi <= Nb_Max_Unit )
int
orientation
=
m_Cmp
->
GetRotationMiroir
()
&
~
(
CMP_MIROIR_X
|
CMP_MIROIR_Y
);
m_SelectUnit->SetSelection( m_Cmp->m_Multi - 1 );
ii = m_Cmp->GetRotationMiroir() & ~(CMP_MIROIR_X | CMP_MIROIR_Y);
// if we don't change it, the default selection of the radio box is "0".
if
(
orientation
==
CMP_ORIENT_90
)
orientationRadioBox
->
SetSelection
(
1
);
else
if
(
orientation
==
CMP_ORIENT_180
)
orientationRadioBox
->
SetSelection
(
2
);
else
if
(
orientation
==
CMP_ORIENT_270
)
orientationRadioBox
->
SetSelection
(
3
);
if( ii == CMP_ORIENT_90 )
int
mirror
=
m_Cmp
->
GetRotationMiroir
()
&
(
CMP_MIROIR_X
|
CMP_MIROIR_Y
);
m_OrientUnit->SetSelection( 1 );
else if( ii == CMP_ORIENT_180 )
m_OrientUnit->SetSelection( 2 );
else if( ii == CMP_ORIENT_270 )
m_OrientUnit->SetSelection( 3 );
ii = m_Cmp->GetRotationMiroir() & (CMP_MIROIR_X | CMP_MIROIR_Y);
if
(
mirror
==
CMP_MIROIR_X
)
if( ii == CMP_MIROIR_X )
{
m_MirrorUnit->SetSelection( 1 );
mirrorRadioBox
->
SetSelection
(
1
);
else if( ii == CMP_MIROIR_Y )
D
(
printf
(
"mirror=X,1
\n
"
);)
m_MirrorUnit->SetSelection( 2 );
}
else
if
(
mirror
==
CMP_MIROIR_Y
)
{
mirrorRadioBox
->
SetSelection
(
2
);
D
(
printf
(
"mirror=Y,2
\n
"
);)
}
// Positionnement de la selection normal/convert
// Positionnement de la selection normal/convert
if
(
m_Cmp
->
m_Convert
>
1
)
if
(
m_Cmp
->
m_Convert
>
1
)
m_ConvertButt->SetValue( TRUE
);
convertCheckBox
->
SetValue
(
true
);
if(
(m_LibEntry == NULL)
|| LookForConvertPart( m_LibEntry ) <= 1 )
if
(
m_LibEntry
==
NULL
||
LookForConvertPart
(
m_LibEntry
)
<=
1
)
{
{
m_ConvertButt->Enable( FALSE
);
convertCheckBox
->
Enable
(
false
);
}
}
// Show the "Parts Locked" option
:
// Show the "Parts Locked" option
?
if
(
!
m_LibEntry
||
!
m_LibEntry
->
m_UnitSelectionLocked
)
if
(
!
m_LibEntry
||
!
m_LibEntry
->
m_UnitSelectionLocked
)
{
{
m_MsgPartLocked->Show( false );
D
(
printf
(
"partsAreLocked->false
\n
"
);)
partsAreLockedLabel
->
Show
(
false
);
}
}
// Positionnement de la reference en librairie
// Positionnement de la reference en librairie
m_RefInLib
->SetValue( m_Cmp->m_ChipName );
chipnameTextCtrl
->
SetValue
(
m_Cmp
->
m_ChipName
);
}
}
/*************************************************************************/
/*****************************************************************************/
void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::selectNewField( wxCommandEvent& event )
void
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC
::
SetInitCmp
(
wxCommandEvent
&
event
)
/*************************************************************************/
/*****************************************************************************/
/* called when changing the current field selected
* Save the current field settings in buffer and display the new one
*/
{
{
CopyPanelFieldToData();
EDA_LibComponentStruct
*
entry
;
m_CurrentFieldId = m_FieldSelection->GetSelection();
CopyDataToPanelField();
}
if
(
m_Cmp
==
NULL
)
return
;
/***********************************************************************************/
entry
=
FindLibPart
(
m_Cmp
->
m_ChipName
.
GetData
(),
wxEmptyString
,
FIND_ROOT
);
void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::ComponentPropertiesAccept( wxCommandEvent& event )
/***********************************************************************************/
/* Update the new parameters for the current edited component
*/
{
wxPoint cmp_pos = m_Cmp->m_Pos;
wxClientDC dc( m_Parent->DrawPanel );
wxString newname;
/* save old cmp in undo list if not already in edit, or moving ... */
if( m_Cmp->m_Flags == 0 )
m_Parent->SaveCopyInUndoList( m_Cmp, IS_CHANGED );
CopyPanelFieldToData();
if
(
entry
==
NULL
)
return
;
wxClientDC
dc
(
m_Parent
->
DrawPanel
);
m_Parent
->
DrawPanel
->
PrepareGraphicContext
(
&
dc
);
m_Parent
->
DrawPanel
->
PrepareGraphicContext
(
&
dc
);
RedrawOneStruct
(
m_Parent
->
DrawPanel
,
&
dc
,
m_Cmp
,
g_XorMode
);
RedrawOneStruct
(
m_Parent
->
DrawPanel
,
&
dc
,
m_Cmp
,
g_XorMode
);
newname = m_RefInLib->GetValue();
/* Mise aux valeurs par defaut des champs et orientation */
newname.MakeUpper();
m_Cmp
->
GetField
(
REFERENCE
)
->
m_Pos
.
x
=
newname.Replace( wxT( " " ), wxT( "_" ) );
entry
->
m_Prefix
.
m_Pos
.
x
+
m_Cmp
->
m_Pos
.
x
;
m_Cmp
->
GetField
(
REFERENCE
)
->
m_Pos
.
y
=
if( newname.IsEmpty() )
entry
->
m_Prefix
.
m_Pos
.
y
+
m_Cmp
->
m_Pos
.
y
;
DisplayError( this, _( "No Component Name!" ) );
m_Cmp
->
GetField
(
REFERENCE
)
->
m_Orient
=
entry
->
m_Prefix
.
m_Orient
;
m_Cmp
->
GetField
(
REFERENCE
)
->
m_Size
=
entry
->
m_Prefix
.
m_Size
;
else if( newname.CmpNoCase( m_Cmp->m_ChipName ) )
m_Cmp
->
GetField
(
REFERENCE
)
->
m_HJustify
=
entry
->
m_Prefix
.
m_HJustify
;
{
m_Cmp
->
GetField
(
REFERENCE
)
->
m_VJustify
=
entry
->
m_Prefix
.
m_VJustify
;
if( FindLibPart( newname.GetData(), wxEmptyString, FIND_ALIAS ) == NULL )
{
wxString message;
message.Printf( _( "Component [%s] not found!" ), newname.GetData() );
DisplayError( this, message );
}
else // Changement de composant!
{
m_Cmp->m_ChipName = newname;
}
}
// Mise a jour de la representation:
if( m_ConvertButt->IsEnabled() )
(m_ConvertButt->GetValue() == TRUE) ?
m_Cmp->m_Convert = 2 : m_Cmp->m_Convert = 1;
//Set the part selection in multiple part per pakcage
if( m_Cmp->m_Multi )
{
int unit_selection = m_SelectUnit->GetSelection() + 1;
m_Cmp->SetUnitSelection( m_Parent->GetSheet(), unit_selection );
m_Cmp->m_Multi = unit_selection;
}
//Mise a jour de l'orientation:
switch( m_OrientUnit->GetSelection() )
{
case 0:
m_Cmp->SetRotationMiroir( CMP_ORIENT_0 );
break;
case 1:
m_Cmp->SetRotationMiroir( CMP_ORIENT_90 );
break;
case 2:
m_Cmp->SetRotationMiroir( CMP_ORIENT_180 );
break;
case 3:
m_Cmp->SetRotationMiroir( CMP_ORIENT_270 );
break;
}
switch( m_MirrorUnit->GetSelection() )
{
case 0:
break;
case 1:
m_Cmp->SetRotationMiroir( CMP_MIROIR_X );
break;
case 2:
m_Cmp->SetRotationMiroir( CMP_MIROIR_Y );
break;
}
// Mise a jour des textes (update the texts)
for( int ii = REFERENCE; ii < NUMBER_OF_FIELDS; ii++ )
{
if( ii == REFERENCE ) // la reference ne peut etre vide
{
if( !m_FieldText[ii].IsEmpty() )
m_Cmp->SetRef(m_Parent->GetSheet(), m_FieldText[ii]);
}
else if( ii == VALUE ) // la valeur ne peut etre vide et ne peut etre change sur un POWER
{
EDA_LibComponentStruct* Entry = FindLibPart( m_Cmp->m_ChipName.GetData(
), wxEmptyString, FIND_ROOT );
if( Entry && (Entry->m_Options == ENTRY_POWER) )
m_Cmp->GetField( ii )->m_Text = m_Cmp->m_ChipName;
else if( !m_FieldText[ii].IsEmpty() )
{
m_Cmp->GetField( ii )->m_Text = m_FieldText[ii];
}
}
else
m_Cmp->GetField( ii )->m_Text = m_FieldText[ii];
if( ii >= FIELD1 && m_FieldName[ii] != ReturnDefaultFieldName( ii ) )
m_Cmp
->
GetField
(
VALUE
)
->
m_Pos
.
x
=
m_Cmp->GetField( ii )->m_Name = m_FieldName[ii];
entry
->
m_Name
.
m_Pos
.
x
+
m_Cmp
->
m_Pos
.
x
;
else
m_Cmp
->
GetField
(
VALUE
)
->
m_Pos
.
y
=
m_Cmp->GetField( ii )->m_Name.Empty();
entry
->
m_Name
.
m_Pos
.
y
+
m_Cmp
->
m_Pos
.
y
;
m_Cmp
->
GetField
(
VALUE
)
->
m_Orient
=
entry
->
m_Name
.
m_Orient
;
m_Cmp
->
GetField
(
VALUE
)
->
m_Size
=
entry
->
m_Name
.
m_Size
;
m_Cmp
->
GetField
(
VALUE
)
->
m_HJustify
=
entry
->
m_Name
.
m_HJustify
;
m_Cmp
->
GetField
(
VALUE
)
->
m_VJustify
=
entry
->
m_Name
.
m_VJustify
;
m_Cmp->GetField( ii )->m_Size.x =
m_Cmp
->
SetRotationMiroir
(
CMP_NORMAL
);
m_Cmp->GetField( ii )->m_Size.y = m_FieldSize[ii];
if( m_FieldFlags[ii] )
m_Cmp->GetField( ii )->m_Attributs &= ~TEXT_NO_VISIBLE;
else
m_Cmp->GetField( ii )->m_Attributs |= TEXT_NO_VISIBLE;
m_Cmp->GetField( ii )->m_Orient = m_FieldOrient[ii] ? TEXT_ORIENT_VERT : TEXT_ORIENT_HORIZ;
m_Cmp->GetField( ii )->m_Pos = m_FieldPosition[ii];
m_Cmp->GetField( ii )->m_Pos.x += cmp_pos.x;
m_Cmp->GetField( ii )->m_Pos.y += cmp_pos.y;
}
m_Parent
->
GetScreen
()
->
SetModify
();
m_Parent
->
GetScreen
()
->
SetModify
();
RedrawOneStruct
(
m_Parent
->
DrawPanel
,
&
dc
,
m_Cmp
,
GR_DEFAULT_DRAWMODE
);
RedrawOneStruct
(
m_Parent
->
DrawPanel
,
&
dc
,
m_Cmp
,
GR_DEFAULT_DRAWMODE
);
m_Parent->TestDanglingEnds( m_Parent->GetScreen()->EEDrawList, &dc );
EndModal
(
1
);
EndModal( 0 );
}
}
#endif
eeschema/dialog_edit_component_in_schematic.fbp
View file @
671fabe1
...
@@ -198,7 +198,7 @@
...
@@ -198,7 +198,7 @@
<property
name=
"name"
>
orientationRadioBox
</property>
<property
name=
"name"
>
orientationRadioBox
</property>
<property
name=
"permission"
>
protected
</property>
<property
name=
"permission"
>
protected
</property>
<property
name=
"pos"
></property>
<property
name=
"pos"
></property>
<property
name=
"selection"
>
0
</property>
<property
name=
"selection"
>
3
</property>
<property
name=
"size"
></property>
<property
name=
"size"
></property>
<property
name=
"style"
>
wxRA_SPECIFY_COLS
</property>
<property
name=
"style"
>
wxRA_SPECIFY_COLS
</property>
<property
name=
"subclass"
></property>
<property
name=
"subclass"
></property>
...
@@ -267,7 +267,7 @@
...
@@ -267,7 +267,7 @@
<property
name=
"name"
>
mirrorRadioBox
</property>
<property
name=
"name"
>
mirrorRadioBox
</property>
<property
name=
"permission"
>
protected
</property>
<property
name=
"permission"
>
protected
</property>
<property
name=
"pos"
></property>
<property
name=
"pos"
></property>
<property
name=
"selection"
>
1
</property>
<property
name=
"selection"
>
0
</property>
<property
name=
"size"
></property>
<property
name=
"size"
></property>
<property
name=
"style"
>
wxRA_SPECIFY_COLS
</property>
<property
name=
"style"
>
wxRA_SPECIFY_COLS
</property>
<property
name=
"subclass"
></property>
<property
name=
"subclass"
></property>
...
@@ -334,7 +334,7 @@
...
@@ -334,7 +334,7 @@
<property
name=
"maximum_size"
></property>
<property
name=
"maximum_size"
></property>
<property
name=
"maxlength"
>
32
</property>
<property
name=
"maxlength"
>
32
</property>
<property
name=
"minimum_size"
></property>
<property
name=
"minimum_size"
></property>
<property
name=
"name"
>
chipnameT
xtContro
l
</property>
<property
name=
"name"
>
chipnameT
extCtr
l
</property>
<property
name=
"permission"
>
protected
</property>
<property
name=
"permission"
>
protected
</property>
<property
name=
"pos"
></property>
<property
name=
"pos"
></property>
<property
name=
"size"
></property>
<property
name=
"size"
></property>
...
@@ -381,7 +381,7 @@
...
@@ -381,7 +381,7 @@
</object>
</object>
</object>
</object>
<object
class=
"sizeritem"
expanded=
"1"
>
<object
class=
"sizeritem"
expanded=
"1"
>
<property
name=
"border"
>
12
</property>
<property
name=
"border"
>
8
</property>
<property
name=
"flag"
>
wxALL
</property>
<property
name=
"flag"
>
wxALL
</property>
<property
name=
"proportion"
>
0
</property>
<property
name=
"proportion"
>
0
</property>
<object
class=
"wxCheckBox"
expanded=
"1"
>
<object
class=
"wxCheckBox"
expanded=
"1"
>
...
@@ -436,6 +436,61 @@
...
@@ -436,6 +436,61 @@
<event
name=
"OnUpdateUI"
></event>
<event
name=
"OnUpdateUI"
></event>
</object>
</object>
</object>
</object>
<object
class=
"sizeritem"
expanded=
"1"
>
<property
name=
"border"
>
8
</property>
<property
name=
"flag"
>
wxALL|wxEXPAND
</property>
<property
name=
"proportion"
>
0
</property>
<object
class=
"wxStaticText"
expanded=
"1"
>
<property
name=
"bg"
></property>
<property
name=
"context_help"
></property>
<property
name=
"enabled"
>
1
</property>
<property
name=
"fg"
></property>
<property
name=
"font"
></property>
<property
name=
"hidden"
>
0
</property>
<property
name=
"id"
>
wxID_ANY
</property>
<property
name=
"label"
>
Parts are locked
</property>
<property
name=
"maximum_size"
></property>
<property
name=
"minimum_size"
></property>
<property
name=
"name"
>
partsAreLockedLabel
</property>
<property
name=
"permission"
>
protected
</property>
<property
name=
"pos"
></property>
<property
name=
"size"
></property>
<property
name=
"style"
></property>
<property
name=
"subclass"
></property>
<property
name=
"tooltip"
></property>
<property
name=
"validator_data_type"
></property>
<property
name=
"validator_style"
>
wxFILTER_NONE
</property>
<property
name=
"validator_type"
>
wxDefaultValidator
</property>
<property
name=
"validator_variable"
></property>
<property
name=
"window_extra_style"
></property>
<property
name=
"window_name"
></property>
<property
name=
"window_style"
></property>
<property
name=
"wrap"
>
-1
</property>
<event
name=
"OnChar"
></event>
<event
name=
"OnEnterWindow"
></event>
<event
name=
"OnEraseBackground"
></event>
<event
name=
"OnKeyDown"
></event>
<event
name=
"OnKeyUp"
></event>
<event
name=
"OnKillFocus"
></event>
<event
name=
"OnLeaveWindow"
></event>
<event
name=
"OnLeftDClick"
></event>
<event
name=
"OnLeftDown"
></event>
<event
name=
"OnLeftUp"
></event>
<event
name=
"OnMiddleDClick"
></event>
<event
name=
"OnMiddleDown"
></event>
<event
name=
"OnMiddleUp"
></event>
<event
name=
"OnMotion"
></event>
<event
name=
"OnMouseEvents"
></event>
<event
name=
"OnMouseWheel"
></event>
<event
name=
"OnPaint"
></event>
<event
name=
"OnRightDClick"
></event>
<event
name=
"OnRightDown"
></event>
<event
name=
"OnRightUp"
></event>
<event
name=
"OnSetFocus"
></event>
<event
name=
"OnSize"
></event>
<event
name=
"OnUpdateUI"
></event>
</object>
</object>
</object>
</object>
</object>
</object>
<object
class=
"sizeritem"
expanded=
"1"
>
<object
class=
"sizeritem"
expanded=
"1"
>
...
@@ -453,7 +508,7 @@
...
@@ -453,7 +508,7 @@
<object
class=
"sizeritem"
expanded=
"1"
>
<object
class=
"sizeritem"
expanded=
"1"
>
<property
name=
"border"
>
8
</property>
<property
name=
"border"
>
8
</property>
<property
name=
"flag"
>
wxALL|wxEXPAND
</property>
<property
name=
"flag"
>
wxALL|wxEXPAND
</property>
<property
name=
"proportion"
>
4
</property>
<property
name=
"proportion"
>
5
</property>
<object
class=
"wxStaticBoxSizer"
expanded=
"1"
>
<object
class=
"wxStaticBoxSizer"
expanded=
"1"
>
<property
name=
"id"
>
wxID_ANY
</property>
<property
name=
"id"
>
wxID_ANY
</property>
<property
name=
"label"
></property>
<property
name=
"label"
></property>
...
@@ -1094,7 +1149,7 @@
...
@@ -1094,7 +1149,7 @@
<property
name=
"border"
>
5
</property>
<property
name=
"border"
>
5
</property>
<property
name=
"flag"
>
wxALL|wxEXPAND
</property>
<property
name=
"flag"
>
wxALL|wxEXPAND
</property>
<property
name=
"proportion"
>
0
</property>
<property
name=
"proportion"
>
0
</property>
<object
class=
"wxBoxSizer"
expanded=
"
0
"
>
<object
class=
"wxBoxSizer"
expanded=
"
1
"
>
<property
name=
"minimum_size"
></property>
<property
name=
"minimum_size"
></property>
<property
name=
"name"
>
textSizeBoxSizer
</property>
<property
name=
"name"
>
textSizeBoxSizer
</property>
<property
name=
"orient"
>
wxVERTICAL
</property>
<property
name=
"orient"
>
wxVERTICAL
</property>
...
@@ -1516,7 +1571,7 @@
...
@@ -1516,7 +1571,7 @@
<property
name=
"window_extra_style"
></property>
<property
name=
"window_extra_style"
></property>
<property
name=
"window_name"
></property>
<property
name=
"window_name"
></property>
<property
name=
"window_style"
></property>
<property
name=
"window_style"
></property>
<event
name=
"OnButtonClick"
></event>
<event
name=
"OnButtonClick"
>
SetInitCmp
</event>
<event
name=
"OnChar"
></event>
<event
name=
"OnChar"
></event>
<event
name=
"OnEnterWindow"
></event>
<event
name=
"OnEnterWindow"
></event>
<event
name=
"OnEraseBackground"
></event>
<event
name=
"OnEraseBackground"
></event>
...
@@ -1575,11 +1630,11 @@
...
@@ -1575,11 +1630,11 @@
<property
name=
"name"
>
stdDialogButtonSizer
</property>
<property
name=
"name"
>
stdDialogButtonSizer
</property>
<property
name=
"permission"
>
protected
</property>
<property
name=
"permission"
>
protected
</property>
<event
name=
"OnApplyButtonClick"
></event>
<event
name=
"OnApplyButtonClick"
></event>
<event
name=
"OnCancelButtonClick"
></event>
<event
name=
"OnCancelButtonClick"
>
OnCancelButtonClick
</event>
<event
name=
"OnContextHelpButtonClick"
></event>
<event
name=
"OnContextHelpButtonClick"
></event>
<event
name=
"OnHelpButtonClick"
></event>
<event
name=
"OnHelpButtonClick"
></event>
<event
name=
"OnNoButtonClick"
></event>
<event
name=
"OnNoButtonClick"
></event>
<event
name=
"OnOKButtonClick"
></event>
<event
name=
"OnOKButtonClick"
>
OnOKButtonClick
</event>
<event
name=
"OnSaveButtonClick"
></event>
<event
name=
"OnSaveButtonClick"
></event>
<event
name=
"OnYesButtonClick"
></event>
<event
name=
"OnYesButtonClick"
></event>
</object>
</object>
...
...
eeschema/dialog_edit_component_in_schematic.h
View file @
671fabe1
...
@@ -16,7 +16,7 @@ class DIALOG_EDIT_COMPONENT_IN_SCHEMATIC : public DIALOG_EDIT_COMPONENT_IN_SCHEM
...
@@ -16,7 +16,7 @@ class DIALOG_EDIT_COMPONENT_IN_SCHEMATIC : public DIALOG_EDIT_COMPONENT_IN_SCHEM
SCH_COMPONENT
*
m_Cmp
;
SCH_COMPONENT
*
m_Cmp
;
EDA_LibComponentStruct
*
m_LibEntry
;
EDA_LibComponentStruct
*
m_LibEntry
;
int
m
_SelectedRow
;
static
int
s
_SelectedRow
;
/// a copy of the edited component's SCH_CMP_FIELDs
/// a copy of the edited component's SCH_CMP_FIELDs
SCH_CMP_FIELDS
m_FieldsBuf
;
SCH_CMP_FIELDS
m_FieldsBuf
;
...
@@ -36,17 +36,24 @@ class DIALOG_EDIT_COMPONENT_IN_SCHEMATIC : public DIALOG_EDIT_COMPONENT_IN_SCHEM
...
@@ -36,17 +36,24 @@ class DIALOG_EDIT_COMPONENT_IN_SCHEMATIC : public DIALOG_EDIT_COMPONENT_IN_SCHEM
/**
/**
* Function copyPanelToSelectedField
* Function copyPanelToSelectedField
* copies the values displayed on the panel fields to the currently selected field
* copies the values displayed on the panel fields to the currently selected field
* @return bool - true if all fields are OK, else false if the user has put
* bad data into a field, and this value can be used to deny a row change.
*/
*/
void
copyPanelToSelectedField
();
bool
copyPanelToSelectedField
();
void
copyOptionsToPanel
();
void
fillTableModel
();
void
copyPanelToOptions
();
void
setRowItem
(
int
aFieldNdx
,
const
SCH_CMP_FIELD
&
aField
);
void
setRowItem
(
int
aFieldNdx
,
const
SCH_CMP_FIELD
&
aField
);
// event handlers
// event handlers
void
OnListItemDeselected
(
wxListEvent
&
event
);
void
OnListItemDeselected
(
wxListEvent
&
event
);
void
OnListItemSelected
(
wxListEvent
&
event
);
void
OnListItemSelected
(
wxListEvent
&
event
);
void
OnCancelButtonClick
(
wxCommandEvent
&
event
);
void
OnOKButtonClick
(
wxCommandEvent
&
event
);
void
SetInitCmp
(
wxCommandEvent
&
event
);
protected
:
protected
:
...
...
eeschema/dialog_edit_component_in_schematic_fbp.cpp
View file @
671fabe1
...
@@ -39,7 +39,7 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
...
@@ -39,7 +39,7 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
wxString
orientationRadioBoxChoices
[]
=
{
_
(
"0"
),
_
(
"+90"
),
_
(
"180"
),
_
(
"-90"
)
};
wxString
orientationRadioBoxChoices
[]
=
{
_
(
"0"
),
_
(
"+90"
),
_
(
"180"
),
_
(
"-90"
)
};
int
orientationRadioBoxNChoices
=
sizeof
(
orientationRadioBoxChoices
)
/
sizeof
(
wxString
);
int
orientationRadioBoxNChoices
=
sizeof
(
orientationRadioBoxChoices
)
/
sizeof
(
wxString
);
orientationRadioBox
=
new
wxRadioBox
(
this
,
wxID_ANY
,
_
(
"Orientation (Degrees)"
),
wxDefaultPosition
,
wxDefaultSize
,
orientationRadioBoxNChoices
,
orientationRadioBoxChoices
,
1
,
wxRA_SPECIFY_COLS
);
orientationRadioBox
=
new
wxRadioBox
(
this
,
wxID_ANY
,
_
(
"Orientation (Degrees)"
),
wxDefaultPosition
,
wxDefaultSize
,
orientationRadioBoxNChoices
,
orientationRadioBoxChoices
,
1
,
wxRA_SPECIFY_COLS
);
orientationRadioBox
->
SetSelection
(
0
);
orientationRadioBox
->
SetSelection
(
3
);
orientationRadioBox
->
SetToolTip
(
_
(
"Select if the component is to be rotated when drawn"
)
);
orientationRadioBox
->
SetToolTip
(
_
(
"Select if the component is to be rotated when drawn"
)
);
orientationSizer
->
Add
(
orientationRadioBox
,
1
,
wxALL
,
8
);
orientationSizer
->
Add
(
orientationRadioBox
,
1
,
wxALL
,
8
);
...
@@ -52,7 +52,7 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
...
@@ -52,7 +52,7 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
wxString
mirrorRadioBoxChoices
[]
=
{
_
(
"Normal"
),
_
(
"Mirror ---"
),
_
(
"Mirror |"
)
};
wxString
mirrorRadioBoxChoices
[]
=
{
_
(
"Normal"
),
_
(
"Mirror ---"
),
_
(
"Mirror |"
)
};
int
mirrorRadioBoxNChoices
=
sizeof
(
mirrorRadioBoxChoices
)
/
sizeof
(
wxString
);
int
mirrorRadioBoxNChoices
=
sizeof
(
mirrorRadioBoxChoices
)
/
sizeof
(
wxString
);
mirrorRadioBox
=
new
wxRadioBox
(
this
,
wxID_ANY
,
_
(
"Mirror"
),
wxDefaultPosition
,
wxDefaultSize
,
mirrorRadioBoxNChoices
,
mirrorRadioBoxChoices
,
1
,
wxRA_SPECIFY_COLS
);
mirrorRadioBox
=
new
wxRadioBox
(
this
,
wxID_ANY
,
_
(
"Mirror"
),
wxDefaultPosition
,
wxDefaultSize
,
mirrorRadioBoxNChoices
,
mirrorRadioBoxChoices
,
1
,
wxRA_SPECIFY_COLS
);
mirrorRadioBox
->
SetSelection
(
1
);
mirrorRadioBox
->
SetSelection
(
0
);
mirrorRadioBox
->
SetToolTip
(
_
(
"Pick the graphical transformation to be used when displaying the component, if any"
)
);
mirrorRadioBox
->
SetToolTip
(
_
(
"Pick the graphical transformation to be used when displaying the component, if any"
)
);
mirrorSizer
->
Add
(
mirrorRadioBox
,
1
,
wxALL
,
8
);
mirrorSizer
->
Add
(
mirrorRadioBox
,
1
,
wxALL
,
8
);
...
@@ -62,18 +62,22 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
...
@@ -62,18 +62,22 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
wxStaticBoxSizer
*
chipnameSizer
;
wxStaticBoxSizer
*
chipnameSizer
;
chipnameSizer
=
new
wxStaticBoxSizer
(
new
wxStaticBox
(
this
,
wxID_ANY
,
_
(
"Chip Name"
)
),
wxHORIZONTAL
);
chipnameSizer
=
new
wxStaticBoxSizer
(
new
wxStaticBox
(
this
,
wxID_ANY
,
_
(
"Chip Name"
)
),
wxHORIZONTAL
);
chipnameT
xtContro
l
=
new
wxTextCtrl
(
this
,
wxID_ANY
,
wxEmptyString
,
wxDefaultPosition
,
wxDefaultSize
,
0
);
chipnameT
extCtr
l
=
new
wxTextCtrl
(
this
,
wxID_ANY
,
wxEmptyString
,
wxDefaultPosition
,
wxDefaultSize
,
0
);
chipnameT
xtContro
l
->
SetMaxLength
(
32
);
chipnameT
extCtr
l
->
SetMaxLength
(
32
);
chipnameT
xtContro
l
->
SetToolTip
(
_
(
"The name of the symbol in the library from which this component came"
)
);
chipnameT
extCtr
l
->
SetToolTip
(
_
(
"The name of the symbol in the library from which this component came"
)
);
chipnameSizer
->
Add
(
chipnameT
xtContro
l
,
1
,
wxALL
|
wxEXPAND
,
5
);
chipnameSizer
->
Add
(
chipnameT
extCtr
l
,
1
,
wxALL
|
wxEXPAND
,
5
);
optionsSizer
->
Add
(
chipnameSizer
,
0
,
wxEXPAND
|
wxLEFT
|
wxRIGHT
|
wxTOP
,
8
);
optionsSizer
->
Add
(
chipnameSizer
,
0
,
wxEXPAND
|
wxLEFT
|
wxRIGHT
|
wxTOP
,
8
);
convertCheckBox
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Convert"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
convertCheckBox
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Convert"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
convertCheckBox
->
SetToolTip
(
_
(
"No Friggin Idea what this is!"
)
);
convertCheckBox
->
SetToolTip
(
_
(
"No Friggin Idea what this is!"
)
);
optionsSizer
->
Add
(
convertCheckBox
,
0
,
wxALL
,
12
);
optionsSizer
->
Add
(
convertCheckBox
,
0
,
wxALL
,
8
);
partsAreLockedLabel
=
new
wxStaticText
(
this
,
wxID_ANY
,
_
(
"Parts are locked"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
partsAreLockedLabel
->
Wrap
(
-
1
);
optionsSizer
->
Add
(
partsAreLockedLabel
,
0
,
wxALL
|
wxEXPAND
,
8
);
upperSizer
->
Add
(
optionsSizer
,
0
,
wxALIGN_TOP
|
wxALL
|
wxEXPAND
,
5
);
upperSizer
->
Add
(
optionsSizer
,
0
,
wxALIGN_TOP
|
wxALL
|
wxEXPAND
,
5
);
...
@@ -101,7 +105,7 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
...
@@ -101,7 +105,7 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
gridStaticBoxSizer
->
Add
(
moveUpButton
,
0
,
wxALL
|
wxEXPAND
,
5
);
gridStaticBoxSizer
->
Add
(
moveUpButton
,
0
,
wxALL
|
wxEXPAND
,
5
);
fieldsSizer
->
Add
(
gridStaticBoxSizer
,
4
,
wxALL
|
wxEXPAND
,
8
);
fieldsSizer
->
Add
(
gridStaticBoxSizer
,
5
,
wxALL
|
wxEXPAND
,
8
);
wxBoxSizer
*
fieldEditBoxSizer
;
wxBoxSizer
*
fieldEditBoxSizer
;
fieldEditBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
fieldEditBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
...
@@ -223,6 +227,9 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
...
@@ -223,6 +227,9 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
// Connect Events
// Connect Events
fieldListCtrl
->
Connect
(
wxEVT_COMMAND_LIST_ITEM_DESELECTED
,
wxListEventHandler
(
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
::
OnListItemDeselected
),
NULL
,
this
);
fieldListCtrl
->
Connect
(
wxEVT_COMMAND_LIST_ITEM_DESELECTED
,
wxListEventHandler
(
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
::
OnListItemDeselected
),
NULL
,
this
);
fieldListCtrl
->
Connect
(
wxEVT_COMMAND_LIST_ITEM_SELECTED
,
wxListEventHandler
(
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
::
OnListItemSelected
),
NULL
,
this
);
fieldListCtrl
->
Connect
(
wxEVT_COMMAND_LIST_ITEM_SELECTED
,
wxListEventHandler
(
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
::
OnListItemSelected
),
NULL
,
this
);
defaultsButton
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
::
SetInitCmp
),
NULL
,
this
);
stdDialogButtonSizerCancel
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
::
OnCancelButtonClick
),
NULL
,
this
);
stdDialogButtonSizerOK
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
::
OnOKButtonClick
),
NULL
,
this
);
}
}
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
::~
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
()
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
::~
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
()
...
@@ -230,4 +237,7 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::~DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
...
@@ -230,4 +237,7 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::~DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
// Disconnect Events
// Disconnect Events
fieldListCtrl
->
Disconnect
(
wxEVT_COMMAND_LIST_ITEM_DESELECTED
,
wxListEventHandler
(
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
::
OnListItemDeselected
),
NULL
,
this
);
fieldListCtrl
->
Disconnect
(
wxEVT_COMMAND_LIST_ITEM_DESELECTED
,
wxListEventHandler
(
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
::
OnListItemDeselected
),
NULL
,
this
);
fieldListCtrl
->
Disconnect
(
wxEVT_COMMAND_LIST_ITEM_SELECTED
,
wxListEventHandler
(
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
::
OnListItemSelected
),
NULL
,
this
);
fieldListCtrl
->
Disconnect
(
wxEVT_COMMAND_LIST_ITEM_SELECTED
,
wxListEventHandler
(
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
::
OnListItemSelected
),
NULL
,
this
);
defaultsButton
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
::
SetInitCmp
),
NULL
,
this
);
stdDialogButtonSizerCancel
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
::
OnCancelButtonClick
),
NULL
,
this
);
stdDialogButtonSizerOK
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP
::
OnOKButtonClick
),
NULL
,
this
);
}
}
eeschema/dialog_edit_component_in_schematic_fbp.h
View file @
671fabe1
...
@@ -21,9 +21,9 @@
...
@@ -21,9 +21,9 @@
#include <wx/radiobox.h>
#include <wx/radiobox.h>
#include <wx/textctrl.h>
#include <wx/textctrl.h>
#include <wx/checkbox.h>
#include <wx/checkbox.h>
#include <wx/stattext.h>
#include <wx/listctrl.h>
#include <wx/listctrl.h>
#include <wx/button.h>
#include <wx/button.h>
#include <wx/stattext.h>
#include <wx/dialog.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
...
@@ -40,8 +40,9 @@ class DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP : public wxDialog
...
@@ -40,8 +40,9 @@ class DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP : public wxDialog
wxChoice
*
unitChoice
;
wxChoice
*
unitChoice
;
wxRadioBox
*
orientationRadioBox
;
wxRadioBox
*
orientationRadioBox
;
wxRadioBox
*
mirrorRadioBox
;
wxRadioBox
*
mirrorRadioBox
;
wxTextCtrl
*
chipnameT
xtContro
l
;
wxTextCtrl
*
chipnameT
extCtr
l
;
wxCheckBox
*
convertCheckBox
;
wxCheckBox
*
convertCheckBox
;
wxStaticText
*
partsAreLockedLabel
;
wxListCtrl
*
fieldListCtrl
;
wxListCtrl
*
fieldListCtrl
;
wxButton
*
addFieldButton
;
wxButton
*
addFieldButton
;
wxButton
*
deleteFieldButton
;
wxButton
*
deleteFieldButton
;
...
@@ -68,6 +69,9 @@ class DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP : public wxDialog
...
@@ -68,6 +69,9 @@ class DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP : public wxDialog
// Virtual event handlers, overide them in your derived class
// Virtual event handlers, overide them in your derived class
virtual
void
OnListItemDeselected
(
wxListEvent
&
event
){
event
.
Skip
();
}
virtual
void
OnListItemDeselected
(
wxListEvent
&
event
){
event
.
Skip
();
}
virtual
void
OnListItemSelected
(
wxListEvent
&
event
){
event
.
Skip
();
}
virtual
void
OnListItemSelected
(
wxListEvent
&
event
){
event
.
Skip
();
}
virtual
void
SetInitCmp
(
wxCommandEvent
&
event
){
event
.
Skip
();
}
virtual
void
OnCancelButtonClick
(
wxCommandEvent
&
event
){
event
.
Skip
();
}
virtual
void
OnOKButtonClick
(
wxCommandEvent
&
event
){
event
.
Skip
();
}
public
:
public
:
...
...
include/wxstruct.h
View file @
671fabe1
...
@@ -469,6 +469,14 @@ public:
...
@@ -469,6 +469,14 @@ public:
void
SetFocus
()
{
m_FrameText
->
SetFocus
();
}
void
SetFocus
()
{
m_FrameText
->
SetFocus
();
}
void
SetValue
(
const
wxString
&
value
);
void
SetValue
(
const
wxString
&
value
);
void
SetValue
(
int
value
);
void
SetValue
(
int
value
);
/**
* Function FormatSize
* formats a string containing the size in the desired units.
*/
static
wxString
FormatSize
(
int
internalUnit
,
int
units
,
int
textSize
);
static
int
ParseSize
(
const
wxString
&
sizeText
,
int
internalUnit
,
int
units
);
};
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment