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
f5eae506
Commit
f5eae506
authored
Aug 30, 2007
by
CHARRAS
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
more work on hotkeys. many features are ok.
parent
90e28dd1
Changes
27
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
2819 additions
and
2385 deletions
+2819
-2385
change_log.txt
change_log.txt
+9
-0
hotkeys_basic.cpp
common/hotkeys_basic.cpp
+420
-327
controle.cpp
eeschema/controle.cpp
+3
-7
eeschema.cpp
eeschema/eeschema.cpp
+69
-65
hotkeys.cpp
eeschema/hotkeys.cpp
+335
-283
hotkeys.h
eeschema/hotkeys.h
+35
-0
onrightclick.cpp
eeschema/onrightclick.cpp
+13
-5
tool_lib.cpp
eeschema/tool_lib.cpp
+237
-234
tool_sch.cpp
eeschema/tool_sch.cpp
+244
-235
build_version.h
include/build_version.h
+1
-1
hotkeys_basic.h
include/hotkeys_basic.h
+19
-18
kicad.mo
internat/fr/kicad.mo
+0
-0
kicad.po
internat/fr/kicad.po
+377
-371
class_pad.cpp
pcbnew/class_pad.cpp
+44
-47
class_pad.h
pcbnew/class_pad.h
+51
-50
controle.cpp
pcbnew/controle.cpp
+0
-76
dialog_pad_edit.cpp
pcbnew/dialog_pad_edit.cpp
+40
-49
dialog_pad_edit.h
pcbnew/dialog_pad_edit.h
+5
-6
dialog_pad_edit.pjd
pcbnew/dialog_pad_edit.pjd
+162
-36
editpads.cpp
pcbnew/editpads.cpp
+0
-9
files.cpp
pcbnew/files.cpp
+7
-7
hotkeys.cpp
pcbnew/hotkeys.cpp
+422
-299
hotkeys.h
pcbnew/hotkeys.h
+45
-0
menubarpcb.cpp
pcbnew/menubarpcb.cpp
+2
-2
pcbnew.cpp
pcbnew/pcbnew.cpp
+4
-1
tool_modedit.cpp
pcbnew/tool_modedit.cpp
+257
-248
tool_pcb.cpp
pcbnew/tool_pcb.cpp
+18
-9
No files found.
change_log.txt
View file @
f5eae506
...
...
@@ -4,6 +4,15 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with
email address.
2007-aug-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ eeschema & pcbnew
more about programmable hotkeys.
Most existing hotkeys are programmable and displayed in popup menus or tools
Work still in progress but most features are ok.
some features are not fixed (mainly the configuration files path, which is
currently the home directory under unix systems and kicad/template under windows))
2007-Aug-29 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
...
...
common/hotkeys_basic.cpp
View file @
f5eae506
/*********************/
/* hotkeys_basic.cpp */
/*********************/
/*********************/
/* hotkeys_basic.cpp */
/*********************/
/* Some functions to handle hotkeys in kicad
*/
*/
#include "fctsys.h"
#include "common.h"
#include "wxstruct.h"
...
...
@@ -11,384 +11,477 @@
#include "macros.h"
/* Class to handle hotkey commnands. hotkeys have a default value
This class allows (for the future..) the real key code changed by user(from a key code list file, TODO)
*/
*
This class allows (for the future..) the real key code changed by user(from a key code list file, TODO)
*/
Ki_HotkeyInfo
::
Ki_HotkeyInfo
(
const
wxChar
*
infomsg
,
int
idcommand
,
int
keycode
)
Ki_HotkeyInfo
::
Ki_HotkeyInfo
(
const
wxChar
*
infomsg
,
int
idcommand
,
int
keycode
)
{
m_KeyCode
=
keycode
;
// Key code (ascii value for ascii keys or wxWidgets code for function key
m_InfoMsg
=
infomsg
;
// info message.
m_Idcommand
=
idcommand
;
// internal id for the corresponding command (see hotkey_id_commnand list)
m_KeyCode
=
keycode
;
// Key code (ascii value for ascii keys or wxWidgets code for function key
m_InfoMsg
=
infomsg
;
// info message.
m_Idcommand
=
idcommand
;
// internal id for the corresponding command (see hotkey_id_commnand list)
}
/* class to handle the printable name and the keycode
*/
struct
hotkey_name_descr
{
wxChar
*
m_Name
;
int
m_KeyCode
;
*/
struct
hotkey_name_descr
{
wxChar
*
m_Name
;
int
m_KeyCode
;
};
struct
hotkey_name_descr
s_Notkey_Name_List
[]
=
{
{
wxT
(
"F1"
),
WXK_F1
},
{
wxT
(
"F2"
),
WXK_F2
},
{
wxT
(
"F3"
),
WXK_F3
},
{
wxT
(
"F4"
),
WXK_F4
},
{
wxT
(
"F5"
),
WXK_F5
},
{
wxT
(
"F6"
),
WXK_F6
},
{
wxT
(
"F7"
),
WXK_F7
},
{
wxT
(
"F8"
),
WXK_F8
},
{
wxT
(
"F9"
),
WXK_F9
},
{
wxT
(
"F10"
),
WXK_F10
},
{
wxT
(
"F11"
),
WXK_F11
},
{
wxT
(
"F12"
),
WXK_F12
},
{
wxT
(
"Esc"
),
WXK_ESCAPE
},
{
wxT
(
"Delete"
),
WXK_DELETE
},
{
wxT
(
"Esc"
),
WXK_ESCAPE
},
{
wxT
(
"Tab"
),
'\t'
},
{
wxT
(
"Backspace"
),
WXK_BACK
},
{
wxT
(
"Insert"
),
WXK_INSERT
},
{
wxT
(
"End"
),
WXK_END
},
{
wxT
(
"Page Up"
),
WXK_PAGEUP
},
{
wxT
(
"Page Down"
),
WXK_PAGEDOWN
},
{
wxT
(
"+"
),
WXK_ADD
},
{
wxT
(
"-"
),
WXK_SUBTRACT
},
{
wxT
(
"space"
),
' '
},
{
wxT
(
"?"
),
'?'
},
{
wxT
(
"A"
),
'A'
},
{
wxT
(
"B"
),
'B'
},
{
wxT
(
"C"
),
'C'
},
{
wxT
(
"D"
),
'D'
},
{
wxT
(
"E"
),
'E'
},
{
wxT
(
"F"
),
'F'
},
{
wxT
(
"G"
),
'G'
},
{
wxT
(
"H"
),
'H'
},
{
wxT
(
"I"
),
'I'
},
{
wxT
(
"J"
),
'J'
},
{
wxT
(
"K"
),
'K'
},
{
wxT
(
"L"
),
'L'
},
{
wxT
(
"M"
),
'M'
},
{
wxT
(
"N"
),
'N'
},
{
wxT
(
"O"
),
'O'
},
{
wxT
(
"P"
),
'P'
},
{
wxT
(
"Q"
),
'Q'
},
{
wxT
(
"R"
),
'R'
},
{
wxT
(
"S"
),
'S'
},
{
wxT
(
"T"
),
'T'
},
{
wxT
(
"U"
),
'U'
},
{
wxT
(
"V"
),
'V'
},
{
wxT
(
"W"
),
'W'
},
{
wxT
(
"X"
),
'X'
},
{
wxT
(
"Y"
),
'Y'
},
{
wxT
(
"Z"
),
'Z'
},
{
wxT
(
"Ctrl A"
),
GR_KB_CTRL
+
'A'
},
{
wxT
(
"Ctrl B"
),
GR_KB_CTRL
+
'B'
},
{
wxT
(
"Ctrl C"
),
GR_KB_CTRL
+
'C'
},
{
wxT
(
"Ctrl D"
),
GR_KB_CTRL
+
'D'
},
{
wxT
(
"Ctrl E"
),
GR_KB_CTRL
+
'E'
},
{
wxT
(
"Ctrl F"
),
GR_KB_CTRL
+
'F'
},
{
wxT
(
"Ctrl G"
),
GR_KB_CTRL
+
'G'
},
{
wxT
(
"Ctrl H"
),
GR_KB_CTRL
+
'H'
},
{
wxT
(
"Ctrl I"
),
GR_KB_CTRL
+
'I'
},
{
wxT
(
"Ctrl J"
),
GR_KB_CTRL
+
'J'
},
{
wxT
(
"Ctrl K"
),
GR_KB_CTRL
+
'K'
},
{
wxT
(
"Ctrl L"
),
GR_KB_CTRL
+
'L'
},
{
wxT
(
"Ctrl M"
),
GR_KB_CTRL
+
'M'
},
{
wxT
(
"Ctrl N"
),
GR_KB_CTRL
+
'N'
},
{
wxT
(
"Ctrl O"
),
GR_KB_CTRL
+
'O'
},
{
wxT
(
"Ctrl P"
),
GR_KB_CTRL
+
'P'
},
{
wxT
(
"Ctrl Q"
),
GR_KB_CTRL
+
'Q'
},
{
wxT
(
"Ctrl R"
),
GR_KB_CTRL
+
'R'
},
{
wxT
(
"Ctrl S"
),
GR_KB_CTRL
+
'S'
},
{
wxT
(
"Ctrl T"
),
GR_KB_CTRL
+
'T'
},
{
wxT
(
"Ctrl U"
),
GR_KB_CTRL
+
'U'
},
{
wxT
(
"Ctrl V"
),
GR_KB_CTRL
+
'V'
},
{
wxT
(
"Ctrl W"
),
GR_KB_CTRL
+
'W'
},
{
wxT
(
"Ctrl X"
),
GR_KB_CTRL
+
'X'
},
{
wxT
(
"Ctrl Y"
),
GR_KB_CTRL
+
'Y'
},
{
wxT
(
"Ctrl Z"
),
GR_KB_CTRL
+
'Z'
},
{
wxT
(
""
),
0
}
// Do not change: end of list
struct
hotkey_name_descr
s_Hotkey_Name_List
[]
=
{
{
wxT
(
"F1"
),
WXK_F1
},
{
wxT
(
"F2"
),
WXK_F2
},
{
wxT
(
"F3"
),
WXK_F3
},
{
wxT
(
"F4"
),
WXK_F4
},
{
wxT
(
"F5"
),
WXK_F5
},
{
wxT
(
"F6"
),
WXK_F6
},
{
wxT
(
"F7"
),
WXK_F7
},
{
wxT
(
"F8"
),
WXK_F8
},
{
wxT
(
"F9"
),
WXK_F9
},
{
wxT
(
"F10"
),
WXK_F10
},
{
wxT
(
"F11"
),
WXK_F11
},
{
wxT
(
"F12"
),
WXK_F12
},
{
wxT
(
"Esc"
),
WXK_ESCAPE
},
{
wxT
(
"Delete"
),
WXK_DELETE
},
{
wxT
(
"Esc"
),
WXK_ESCAPE
},
{
wxT
(
"Tab"
),
'\t'
},
{
wxT
(
"Backspace"
),
WXK_BACK
},
{
wxT
(
"Insert"
),
WXK_INSERT
},
{
wxT
(
"End"
),
WXK_END
},
{
wxT
(
"Page Up"
),
WXK_PAGEUP
},
{
wxT
(
"Page Down"
),
WXK_PAGEDOWN
},
{
wxT
(
"+"
),
WXK_ADD
},
{
wxT
(
"-"
),
WXK_SUBTRACT
},
{
wxT
(
"Up"
),
WXK_UP
},
{
wxT
(
"Down"
),
WXK_DOWN
},
{
wxT
(
"Left"
),
WXK_LEFT
},
{
wxT
(
"Right"
),
WXK_RIGHT
},
{
wxT
(
"space"
),
' '
},
{
wxT
(
"?"
),
'?'
},
{
wxT
(
"!"
),
'!'
},
{
wxT
(
":"
),
':'
},
{
wxT
(
","
),
','
},
{
wxT
(
"*"
),
'*'
},
{
wxT
(
"+"
),
'+'
},
{
wxT
(
"-"
),
'-'
},
{
wxT
(
"\%"
),
'%'
},
{
wxT
(
"A"
),
'A'
},
{
wxT
(
"B"
),
'B'
},
{
wxT
(
"C"
),
'C'
},
{
wxT
(
"D"
),
'D'
},
{
wxT
(
"E"
),
'E'
},
{
wxT
(
"F"
),
'F'
},
{
wxT
(
"G"
),
'G'
},
{
wxT
(
"H"
),
'H'
},
{
wxT
(
"I"
),
'I'
},
{
wxT
(
"J"
),
'J'
},
{
wxT
(
"K"
),
'K'
},
{
wxT
(
"L"
),
'L'
},
{
wxT
(
"M"
),
'M'
},
{
wxT
(
"N"
),
'N'
},
{
wxT
(
"O"
),
'O'
},
{
wxT
(
"P"
),
'P'
},
{
wxT
(
"Q"
),
'Q'
},
{
wxT
(
"R"
),
'R'
},
{
wxT
(
"S"
),
'S'
},
{
wxT
(
"T"
),
'T'
},
{
wxT
(
"U"
),
'U'
},
{
wxT
(
"V"
),
'V'
},
{
wxT
(
"W"
),
'W'
},
{
wxT
(
"X"
),
'X'
},
{
wxT
(
"Y"
),
'Y'
},
{
wxT
(
"Z"
),
'Z'
},
{
wxT
(
"Ctrl A"
),
GR_KB_CTRL
+
'A'
},
{
wxT
(
"Ctrl B"
),
GR_KB_CTRL
+
'B'
},
{
wxT
(
"Ctrl C"
),
GR_KB_CTRL
+
'C'
},
{
wxT
(
"Ctrl D"
),
GR_KB_CTRL
+
'D'
},
{
wxT
(
"Ctrl E"
),
GR_KB_CTRL
+
'E'
},
{
wxT
(
"Ctrl F"
),
GR_KB_CTRL
+
'F'
},
{
wxT
(
"Ctrl G"
),
GR_KB_CTRL
+
'G'
},
{
wxT
(
"Ctrl H"
),
GR_KB_CTRL
+
'H'
},
{
wxT
(
"Ctrl I"
),
GR_KB_CTRL
+
'I'
},
{
wxT
(
"Ctrl J"
),
GR_KB_CTRL
+
'J'
},
{
wxT
(
"Ctrl K"
),
GR_KB_CTRL
+
'K'
},
{
wxT
(
"Ctrl L"
),
GR_KB_CTRL
+
'L'
},
{
wxT
(
"Ctrl M"
),
GR_KB_CTRL
+
'M'
},
{
wxT
(
"Ctrl N"
),
GR_KB_CTRL
+
'N'
},
{
wxT
(
"Ctrl O"
),
GR_KB_CTRL
+
'O'
},
{
wxT
(
"Ctrl P"
),
GR_KB_CTRL
+
'P'
},
{
wxT
(
"Ctrl Q"
),
GR_KB_CTRL
+
'Q'
},
{
wxT
(
"Ctrl R"
),
GR_KB_CTRL
+
'R'
},
{
wxT
(
"Ctrl S"
),
GR_KB_CTRL
+
'S'
},
{
wxT
(
"Ctrl T"
),
GR_KB_CTRL
+
'T'
},
{
wxT
(
"Ctrl U"
),
GR_KB_CTRL
+
'U'
},
{
wxT
(
"Ctrl V"
),
GR_KB_CTRL
+
'V'
},
{
wxT
(
"Ctrl W"
),
GR_KB_CTRL
+
'W'
},
{
wxT
(
"Ctrl X"
),
GR_KB_CTRL
+
'X'
},
{
wxT
(
"Ctrl Y"
),
GR_KB_CTRL
+
'Y'
},
{
wxT
(
"Ctrl Z"
),
GR_KB_CTRL
+
'Z'
},
{
wxT
(
""
),
0
}
// Do not change: end of list
};
/****************************************************/
wxString
ReturnKeyNameFromKeyCode
(
int
keycode
)
wxString
ReturnKeyNameFromKeyCode
(
int
keycode
)
/****************************************************/
/*
* return the key name from the key code
* Only some wxWidgets key values are handled for function key
* @param key = key code (ascii value, or wxWidgets value for function keys)
* @return the key name in a wxString
*/
* return the key name from the key code
* Only some wxWidgets key values are handled for function key
* @param key = key code (ascii value, or wxWidgets value for function keys)
* @return the key name in a wxString
*/
{
wxString
keyname
,
modifier
,
fullkeyname
;
int
ii
;
if
(
(
keycode
&
GR_KB_CTRL
)
!=
0
)
modifier
<<
wxT
(
"Ctrl "
);
if
(
(
keycode
&
GR_KB_ALT
)
!=
0
)
modifier
<<
wxT
(
"Alt "
);
if
(
(
keycode
&
GR_KB_SHIFT
)
!=
0
)
modifier
<<
wxT
(
"Shift "
);
keycode
&=
~
(
GR_KB_CTRL
|
GR_KB_ALT
|
GR_KB_SHIFT
);
for
(
ii
=
0
;
;
ii
++
)
{
if
(
s_Notkey_Name_List
[
ii
].
m_KeyCode
==
0
)
{
keyname
=
wxT
(
"<unknown>"
);
break
;
}
if
(
s_Notkey_Name_List
[
ii
].
m_KeyCode
==
keycode
)
{
keyname
=
s_Notkey_Name_List
[
ii
].
m_Name
;
break
;
}
}
fullkeyname
=
modifier
+
keyname
;
return
fullkeyname
;
wxString
keyname
,
modifier
,
fullkeyname
;
int
ii
;
if
(
(
keycode
&
GR_KB_CTRL
)
!=
0
)
modifier
<<
wxT
(
"Ctrl "
);
if
(
(
keycode
&
GR_KB_ALT
)
!=
0
)
modifier
<<
wxT
(
"Alt "
);
if
(
(
keycode
&
GR_KB_SHIFT
)
!=
0
)
modifier
<<
wxT
(
"Shift "
);
keycode
&=
~
(
GR_KB_CTRL
|
GR_KB_ALT
|
GR_KB_SHIFT
);
for
(
ii
=
0
;
;
ii
++
)
{
if
(
s_Hotkey_Name_List
[
ii
].
m_KeyCode
==
0
)
{
keyname
=
wxT
(
"<unknown>"
);
break
;
}
if
(
s_Hotkey_Name_List
[
ii
].
m_KeyCode
==
keycode
)
{
keyname
=
s_Hotkey_Name_List
[
ii
].
m_Name
;
break
;
}
}
fullkeyname
=
modifier
+
keyname
;
return
fullkeyname
;
}
/**********************************************************************************/
wxString
AddHotkeyName
(
const
wxString
&
text
,
Ki_HotkeyInfo
**
List
,
int
CommandId
)
/**********************************************************************************/
/*
* Add the key name from the Command id value ( m_Idcommand member value)
* @param List = pointer to a Ki_HotkeyInfo list of commands
* @param CommandId = Command Id value
* @return text (key name) in a wxString if found or text without modification
*/
{
wxString
msg
=
text
;
wxString
keyname
=
ReturnKeyNameFromCommandId
(
List
,
CommandId
);
if
(
!
keyname
.
IsEmpty
()
)
msg
<<
wxT
(
" ("
)
<<
keyname
<<
wxT
(
")"
);
return
msg
;
}
/***********************************************************************/
wxString
ReturnKeyNameFromCommandId
(
Ki_HotkeyInfo
**
List
,
int
CommandId
)
/***********************************************************************/
/*
* return the key name from the Command id value ( m_Idcommand member value)
* @param List = pointer to a Ki_HotkeyInfo list of commands
* @param CommandId = Command Id value
* @return the key name in a wxString
*/
{
wxString
keyname
;
for
(
;
*
List
!=
NULL
;
List
++
)
{
Ki_HotkeyInfo
*
hk_decr
=
*
List
;
if
(
hk_decr
->
m_Idcommand
==
CommandId
)
{
keyname
=
ReturnKeyNameFromKeyCode
(
hk_decr
->
m_KeyCode
);
break
;
}
}
return
keyname
;
}
/************************************************************/
static
int
ReturnKeyCodeFromKeyName
(
const
wxString
&
keyname
)
static
int
ReturnKeyCodeFromKeyName
(
const
wxString
&
keyname
)
/************************************************************/
/*
* return the key code from its key name
* Only some wxWidgets key values are handled for function key
* @param keyname = wxString key name to find in s_N
otkey_Name_List[]
* @return the key code
*/
* return the key code from its key name
* Only some wxWidgets key values are handled for function key
* @param keyname = wxString key name to find in s_H
otkey_Name_List[]
* @return the key code
*/
{
int
ii
,
keycode
=
0
;
for
(
ii
=
0
;
;
ii
++
)
{
if
(
s_Notkey_Name_List
[
ii
].
m_KeyCode
==
0
)
break
;
if
(
s_Notkey_Name_List
[
ii
].
m_Name
==
keyname
)
{
keycode
=
s_Notkey_Name_List
[
ii
].
m_KeyCode
;
break
;
}
}
return
keycode
;
int
ii
,
keycode
=
0
;
for
(
ii
=
0
;
;
ii
++
)
{
if
(
s_Hotkey_Name_List
[
ii
].
m_KeyCode
==
0
)
// End of list reached
break
;
if
(
keyname
.
CmpNoCase
(
s_Hotkey_Name_List
[
ii
].
m_Name
)
==
0
)
{
keycode
=
s_Hotkey_Name_List
[
ii
].
m_KeyCode
;
break
;
}
}
return
keycode
;
}
/****************************************************************************/
void
DisplayHotkeyList
(
WinEDA_DrawFrame
*
frame
,
Ki_HotkeyInfo
**
List
)
void
DisplayHotkeyList
(
WinEDA_DrawFrame
*
frame
,
Ki_HotkeyInfo
**
List
)
/*****************************************************************************/
/*
* Displays the current hotkey list
* @param frame = current open frame
* @param List = pointer to a Ki_HotkeyInfo list of commands
* @return none
*/
* Displays the current hotkey list
* @param frame = current open frame
* @param List = pointer to a Ki_HotkeyInfo list of commands
* @return none
*/
{
wxString
keyname
;
wxString
msg
=
_
(
"Current hotkey list:
\n\n
"
);
for
(
;
*
List
!=
NULL
;
List
++
)
{
Ki_HotkeyInfo
*
hk_decr
=
*
List
;
msg
+=
_
(
"key "
);
keyname
=
ReturnKeyNameFromKeyCode
(
hk_decr
->
m_KeyCode
);
msg
+=
keyname
+
wxT
(
": "
)
+
hk_decr
->
m_InfoMsg
+
wxT
(
"
\n
"
);
}
DisplayInfo
(
frame
,
msg
);
wxString
keyname
;
wxString
msg
=
_
(
"Current hotkey list:
\n\n
"
);
for
(
;
*
List
!=
NULL
;
List
++
)
{
Ki_HotkeyInfo
*
hk_decr
=
*
List
;
msg
+=
_
(
"key "
);
keyname
=
ReturnKeyNameFromKeyCode
(
hk_decr
->
m_KeyCode
);
msg
+=
keyname
+
wxT
(
": "
)
+
hk_decr
->
m_InfoMsg
+
wxT
(
"
\n
"
);
}
DisplayInfo
(
frame
,
msg
);
}
/******************************************************************/
int
GetCommandCodeFromHotkey
(
int
key
,
Ki_HotkeyInfo
**
List
)
int
GetCommandCodeFromHotkey
(
int
key
,
Ki_HotkeyInfo
**
List
)
/******************************************************************/
/*
* Return an id identifier fron a key code for OnHotKey() function
* @param key = key code (ascii value, or wxWidgets value for function keys
* @param List = pointer to a Ki_HotkeyInfo list of commands
* @return the corresponding function identifier from the Ki_HotkeyInfo List
*/
* Return an id identifier fron a key code for OnHotKey() function
* @param key = key code (ascii value, or wxWidgets value for function keys
* @param List = pointer to a Ki_HotkeyInfo list of commands
* @return the corresponding function identifier from the Ki_HotkeyInfo List
*/
{
for
(
;
*
List
!=
NULL
;
List
++
)
{
Ki_HotkeyInfo
*
hk_decr
=
*
List
;
if
(
hk_decr
->
m_KeyCode
==
key
)
return
hk_decr
->
m_Idcommand
;
}
return
0
;
for
(
;
*
List
!=
NULL
;
List
++
)
{
Ki_HotkeyInfo
*
hk_decr
=
*
List
;
if
(
hk_decr
->
m_KeyCode
==
key
)
return
hk_decr
->
m_Idcommand
;
}
return
0
;
}
/*************************************************************************/
int
WinEDA_BasicFrame
::
WriteHotkeyConfigFile
(
const
wxString
&
Filename
,
Ki_HotkeyInfo
**
List
,
bool
verbose
)
int
WinEDA_BasicFrame
::
WriteHotkeyConfigFile
(
const
wxString
&
Filename
,
Ki_HotkeyInfo
**
List
,
bool
verbose
)
/*************************************************************************/
/*
* Create a configuration file (*.key) from the current hotkey list
* @param Filename = default full file name to create. If void, A filename will be asked
* @param List = pointer to the current hotkey list.
* the ouput format is: shortcut "key" "function"
* lines starting by # are comments
*
*/
*
*/
{
wxString
FullFilename
=
Filename
;
FILE
*
cfgfile
;
wxString
msg
;
if
(
FullFilename
.
IsEmpty
()
||
verbose
)
{
wxString
Mask
,
Path
,
Ext
;
Ext
=
DEFAULT_HOTKEY_FILENAME_EXT
;
Mask
=
wxT
(
"*"
)
+
Ext
;
Path
=
DEFAULT_HOTKEY_FILENAME_PATH
;
FullFilename
=
EDA_FileSelector
(
_
(
"Hotkey configuration file:"
),
Path
,
/* Chemin par defaut */
FullFilename
,
/* nom fichier par defaut */
Ext
,
/* extension par defaut */
Mask
,
/* Masque d'affichage */
this
,
wxFD_SAVE
,
TRUE
);
}
if
(
FullFilename
.
IsEmpty
()
)
return
0
;
cfgfile
=
wxFopen
(
FullFilename
,
wxT
(
"wt"
));
if
(
cfgfile
==
NULL
)
{
if
(
verbose
)
{
msg
=
_
(
"Unable to create "
)
+
FullFilename
;
DisplayError
(
this
,
msg
);
}
return
0
;
}
wxString
keyname
,
infokey
;
msg
=
wxT
(
"$hotkey list
\n
"
);
fprintf
(
cfgfile
,
CONV_TO_UTF8
(
msg
));
/* print the allowed keys, for info
*/
msg
=
wxT
(
"# "
);
msg
+=
_
(
"Allowed keys:
\n
"
);
fprintf
(
cfgfile
,
CONV_TO_UTF8
(
msg
));
msg
.
Empty
();
for
(
int
ii
=
0
;
;
ii
++
)
{
if
(
s_Notkey_Name_List
[
ii
].
m_KeyCode
==
0
)
break
;;
if
(
msg
.
IsEmpty
()
)
msg
=
wxT
(
"# "
);
else
msg
+=
wxT
(
", "
);
msg
+=
s_Notkey_Name_List
[
ii
].
m_Name
;
if
(
msg
.
Len
()
>
60
)
{
msg
+=
wxT
(
"
\n
"
);
fprintf
(
cfgfile
,
CONV_TO_UTF8
(
msg
));
msg
.
Empty
();
}
}
/* print the last line */
if
(
!
msg
.
IsEmpty
()
)
msg
+=
wxT
(
"
\n
"
);
msg
+=
wxT
(
"#
\n
#
\n
"
);
fprintf
(
cfgfile
,
CONV_TO_UTF8
(
msg
));
/* Print the current list */
for
(
;
*
List
!=
NULL
;
List
++
)
{
Ki_HotkeyInfo
*
hk_decr
=
*
List
;
msg
=
wxT
(
"shortcut "
);
keyname
=
ReturnKeyNameFromKeyCode
(
hk_decr
->
m_KeyCode
);
AddDelimiterString
(
keyname
);
infokey
=
hk_decr
->
m_InfoMsg
;
AddDelimiterString
(
infokey
);
msg
+=
keyname
+
wxT
(
": "
)
+
infokey
+
wxT
(
"
\n
"
);
fprintf
(
cfgfile
,
CONV_TO_UTF8
(
msg
));
}
msg
=
wxT
(
"$Endlist
\n
"
);
fprintf
(
cfgfile
,
CONV_TO_UTF8
(
msg
));
fclose
(
cfgfile
);
return
1
;
wxString
FullFilename
=
Filename
;
FILE
*
cfgfile
;
wxString
msg
;
if
(
FullFilename
.
IsEmpty
()
||
verbose
)
{
wxString
Mask
,
Path
,
Ext
;
Ext
=
DEFAULT_HOTKEY_FILENAME_EXT
;
Mask
=
wxT
(
"*"
)
+
Ext
;
Path
=
DEFAULT_HOTKEY_FILENAME_PATH
;
FullFilename
=
EDA_FileSelector
(
_
(
"Hotkey configuration file:"
),
Path
,
/* Chemin par defaut */
FullFilename
,
/* nom fichier par defaut */
Ext
,
/* extension par defaut */
Mask
,
/* Masque d'affichage */
this
,
wxFD_SAVE
,
TRUE
);
}
if
(
FullFilename
.
IsEmpty
()
)
return
0
;
cfgfile
=
wxFopen
(
FullFilename
,
wxT
(
"wt"
)
);
if
(
cfgfile
==
NULL
)
{
if
(
verbose
)
{
msg
=
_
(
"Unable to create "
)
+
FullFilename
;
DisplayError
(
this
,
msg
);
}
return
0
;
}
wxString
keyname
,
infokey
;
msg
=
wxT
(
"$hotkey list
\n
"
);
fprintf
(
cfgfile
,
CONV_TO_UTF8
(
msg
)
);
/* print the allowed keys, for info
*/
msg
=
wxT
(
"# "
);
msg
+=
_
(
"Allowed keys:
\n
"
);
fprintf
(
cfgfile
,
CONV_TO_UTF8
(
msg
)
);
msg
.
Empty
();
for
(
int
ii
=
0
;
;
ii
++
)
{
if
(
s_Hotkey_Name_List
[
ii
].
m_KeyCode
==
0
)
break
;;
if
(
msg
.
IsEmpty
()
)
msg
=
wxT
(
"# "
);
else
msg
+=
wxT
(
", "
);
msg
+=
s_Hotkey_Name_List
[
ii
].
m_Name
;
if
(
msg
.
Len
()
>
60
)
{
msg
+=
wxT
(
"
\n
"
);
fprintf
(
cfgfile
,
CONV_TO_UTF8
(
msg
)
);
msg
.
Empty
();
}
}
/* print the last line */
if
(
!
msg
.
IsEmpty
()
)
msg
+=
wxT
(
"
\n
"
);
msg
+=
wxT
(
"#
\n
#
\n
"
);
fprintf
(
cfgfile
,
CONV_TO_UTF8
(
msg
)
);
/* Print the current list */
for
(
;
*
List
!=
NULL
;
List
++
)
{
Ki_HotkeyInfo
*
hk_decr
=
*
List
;
msg
=
wxT
(
"shortcut "
);
keyname
=
ReturnKeyNameFromKeyCode
(
hk_decr
->
m_KeyCode
);
AddDelimiterString
(
keyname
);
infokey
=
hk_decr
->
m_InfoMsg
;
AddDelimiterString
(
infokey
);
msg
+=
keyname
+
wxT
(
": "
)
+
infokey
+
wxT
(
"
\n
"
);
fprintf
(
cfgfile
,
CONV_TO_UTF8
(
msg
)
);
}
msg
=
wxT
(
"$Endlist
\n
"
);
fprintf
(
cfgfile
,
CONV_TO_UTF8
(
msg
)
);
fclose
(
cfgfile
);
return
1
;
}
/********************************************************************************************/
int
WinEDA_BasicFrame
::
ReadHotkeyConfigFile
(
const
wxString
&
Filename
,
Ki_HotkeyInfo
**
CurrentHotkeyList
,
bool
verbose
)
int
WinEDA_BasicFrame
::
ReadHotkeyConfigFile
(
const
wxString
&
Filename
,
Ki_HotkeyInfo
**
CurrentHotkeyList
,
bool
verbose
)
/********************************************************************************************/
/*
* Read a configuration file (<file>.key) and fill the current hotkey list with hotkeys
* @param Filename = default full file name to create. If void, A filename will be asked
* @param CurrentHotkeyList = current hotkey list to initialise.
* the input format is: shortcut "key" "function"
* lines starting by # are ignored (comments)
*
*/
*
*/
{
wxString
FullFilename
=
Filename
;
FILE
*
cfgfile
;
wxString
msg
;
if
(
FullFilename
.
IsEmpty
()
||
verbose
)
{
wxString
Mask
,
Path
,
Ext
;
Ext
=
DEFAULT_HOTKEY_FILENAME_EXT
;
Mask
=
wxT
(
"*"
)
+
Ext
;
Path
=
DEFAULT_HOTKEY_FILENAME_PATH
;
FullFilename
=
EDA_FileSelector
(
_
(
"Hotkey configuration file:"
),
Path
,
/* Chemin par defaut */
FullFilename
,
/* nom fichier par defaut */
Ext
,
/* extension par defaut */
Mask
,
/* Masque d'affichage */
this
,
wxFD_OPEN
,
TRUE
);
if
(
FullFilename
.
IsEmpty
()
)
return
0
;
}
cfgfile
=
wxFopen
(
FullFilename
,
wxT
(
"rt"
));
if
(
cfgfile
==
NULL
)
{
if
(
verbose
)
{
msg
=
_
(
"Unable to read "
)
+
FullFilename
;
DisplayError
(
this
,
msg
);
}
return
0
;
}
wxString
keyname
;
char
Line
[
1024
];
int
LineNum
=
0
;
/* Read the file */
wxString
FullFilename
=
Filename
;
FILE
*
cfgfile
;
wxString
msg
;
if
(
FullFilename
.
IsEmpty
()
||
verbose
)
{
wxString
Mask
,
Path
,
Ext
;
Ext
=
DEFAULT_HOTKEY_FILENAME_EXT
;
Mask
=
wxT
(
"*"
)
+
Ext
;
Path
=
DEFAULT_HOTKEY_FILENAME_PATH
;
FullFilename
=
EDA_FileSelector
(
_
(
"Hotkey configuration file:"
),
Path
,
/* Chemin par defaut */
FullFilename
,
/* nom fichier par defaut */
Ext
,
/* extension par defaut */
Mask
,
/* Masque d'affichage */
this
,
wxFD_OPEN
,
TRUE
);
if
(
FullFilename
.
IsEmpty
()
)
return
0
;
}
cfgfile
=
wxFopen
(
FullFilename
,
wxT
(
"rt"
)
);
if
(
cfgfile
==
NULL
)
{
if
(
verbose
)
{
msg
=
_
(
"Unable to read "
)
+
FullFilename
;
DisplayError
(
this
,
msg
);
}
return
0
;
}
wxString
keyname
;
char
Line
[
1024
];
int
LineNum
=
0
;
/* Read the file */
while
(
GetLine
(
cfgfile
,
Line
,
&
LineNum
)
!=
NULL
)
{
char
*
line_type
,
*
keyname
,
*
fctname
;
line_type
=
strtok
(
Line
,
"
\t\n\r
"
);
msg
=
CONV_FROM_UTF8
(
line_type
);
if
(
msg
!=
wxT
(
"shortcut"
)
)
continue
;
if
(
msg
==
wxT
(
"$Endlist"
)
)
break
;
/* Get the key name */
strtok
(
NULL
,
"
\"\n\r
"
);
keyname
=
strtok
(
NULL
,
"
\"\n\r
"
);
strtok
(
NULL
,
"
\"\n\r
"
);
/* Get the command name */
fctname
=
strtok
(
NULL
,
"
\"\n\r
"
);
msg
=
CONV_FROM_UTF8
(
fctname
);
/* search the hotkey in current hotkey list */
for
(
Ki_HotkeyInfo
**
List
=
CurrentHotkeyList
;
*
List
!=
NULL
;
List
++
)
{
Ki_HotkeyInfo
*
hk_decr
=
*
List
;
if
(
hk_decr
->
m_InfoMsg
==
msg
)
{
msg
=
CONV_FROM_UTF8
(
keyname
);
int
code
=
ReturnKeyCodeFromKeyName
(
msg
);
if
(
code
)
hk_decr
->
m_KeyCode
=
code
;
break
;
}
}
}
fclose
(
cfgfile
);
return
1
;
char
*
line_type
,
*
keyname
,
*
fctname
;
line_type
=
strtok
(
Line
,
"
\t\n\r
"
);
msg
=
CONV_FROM_UTF8
(
line_type
);
if
(
msg
!=
wxT
(
"shortcut"
)
)
continue
;
if
(
msg
==
wxT
(
"$Endlist"
)
)
break
;
/* Get the key name */
strtok
(
NULL
,
"
\"\n\r
"
);
keyname
=
strtok
(
NULL
,
"
\"\n\r
"
);
strtok
(
NULL
,
"
\"\n\r
"
);
/* Get the command name */
fctname
=
strtok
(
NULL
,
"
\"\n\r
"
);
msg
=
CONV_FROM_UTF8
(
fctname
);
/* search the hotkey in current hotkey list */
for
(
Ki_HotkeyInfo
**
List
=
CurrentHotkeyList
;
*
List
!=
NULL
;
List
++
)
{
Ki_HotkeyInfo
*
hk_decr
=
*
List
;
if
(
hk_decr
->
m_InfoMsg
==
msg
)
{
msg
=
CONV_FROM_UTF8
(
keyname
);
int
code
=
ReturnKeyCodeFromKeyName
(
msg
);
if
(
code
)
hk_decr
->
m_KeyCode
=
code
;
break
;
}
}
}
fclose
(
cfgfile
);
return
1
;
}
eeschema/controle.cpp
View file @
f5eae506
...
...
@@ -294,6 +294,9 @@ void WinEDA_DrawFrame::GeneralControle( wxDC* DC, wxPoint MousePositionInPixels
switch
(
g_KeyPressed
)
{
case
0
:
break
;
case
EDA_PANNING_UP_KEY
:
OnZoom
(
ID_ZOOM_PANNING_UP
);
curpos
=
m_CurrentScreen
->
m_Curseur
;
...
...
@@ -315,23 +318,16 @@ void WinEDA_DrawFrame::GeneralControle( wxDC* DC, wxPoint MousePositionInPixels
break
;
case
EDA_ZOOM_IN_FROM_MOUSE
:
case
WXK_F1
:
OnZoom
(
ID_ZOOM_PLUS_KEY
);
curpos
=
m_CurrentScreen
->
m_Curseur
;
break
;
case
EDA_ZOOM_OUT_FROM_MOUSE
:
case
WXK_F2
:
OnZoom
(
ID_ZOOM_MOINS_KEY
);
curpos
=
m_CurrentScreen
->
m_Curseur
;
break
;
case
WXK_F3
:
OnZoom
(
ID_ZOOM_REDRAW_KEY
);
break
;
case
EDA_ZOOM_CENTER_FROM_MOUSE
:
case
WXK_F4
:
OnZoom
(
ID_ZOOM_CENTER_KEY
);
curpos
=
m_CurrentScreen
->
m_Curseur
;
break
;
...
...
eeschema/eeschema.cpp
View file @
f5eae506
/***********************************/
/* eeschema.cpp - module principal */
/***********************************/
/***********************************/
/* eeschema.cpp - module principal */
/***********************************/
#ifdef __GNUG__
#pragma implementation
...
...
@@ -26,51 +26,57 @@
/* Routines locales */
static
void
CreateScreens
(
void
);
static
void
CreateScreens
(
void
);
// Global variables
wxString
g_Main_Title
(
wxT
(
"EESchema"
)
);
wxString
g_Main_Title
(
wxT
(
"EESchema"
)
);
/************************************/
/* Called to initialize the program */
/************************************/
/************************************/
/* Called to initialize the program */
/************************************/
// Create a new application object: this macro will allow wxWindows to create
// the application object during program execution (it's better than using a
// static object for many reasons) and also declares the accessor function
// wxGetApp() which will return the reference of the right type (i.e. MyApp and
// not wxApp)
IMPLEMENT_APP
(
WinEDA_App
)
IMPLEMENT_APP
(
WinEDA_App
)
bool
WinEDA_App
::
OnInit
(
void
)
bool
WinEDA_App
::
OnInit
(
void
)
{
wxString
FFileName
;
EDA_Appl
=
this
;
wxString
FFileName
;
g_DebugLevel
=
0
;
// Debug level */
EDA_Appl
=
this
;
InitEDA_Appl
(
wxT
(
"eeschema"
)
);
g_DebugLevel
=
0
;
// Debug level */
if
(
m_Checker
&&
m_Checker
->
IsAnotherRunning
()
)
InitEDA_Appl
(
wxT
(
"eeschema"
)
);
if
(
m_Checker
&&
m_Checker
->
IsAnotherRunning
()
)
{
if
(
!
IsOK
(
NULL
,
_
(
"Eeschema is already running, Continue?"
)
)
)
return
false
;
if
(
!
IsOK
(
NULL
,
_
(
"Eeschema is already running, Continue?"
)
)
)
return
false
;
}
if
(
argc
>
1
)
FFileName
=
argv
[
1
];
if
(
argc
>
1
)
FFileName
=
argv
[
1
];
CreateScreens
();
CreateScreens
();
/* init EESCHEMA */
GetSettings
();
// read current setup
SeedLayers
();
/* init EESCHEMA */
GetSettings
();
// read current setup
SeedLayers
();
Read_Hotkey_Config
(
SchematicFrame
,
false
);
/* Must be called before creating the main frame
* in order to display the real hotkeys in menus
* or tool tips */
// Create main frame (schematic frame) :
SchematicFrame
=
new
WinEDA_SchematicFrame
(
NULL
,
this
,
wxT
(
"EESchema"
),
wxPoint
(
0
,
0
),
wxSize
(
600
,
400
)
);
// Create main frame (schematic frame) :
SchematicFrame
=
new
WinEDA_SchematicFrame
(
NULL
,
this
,
wxT
(
"EESchema"
),
wxPoint
(
0
,
0
),
wxSize
(
600
,
400
)
);
SetTopWindow
(
SchematicFrame
);
SchematicFrame
->
Show
(
TRUE
);
SetTopWindow
(
SchematicFrame
);
SchematicFrame
->
Show
(
TRUE
);
if
(
CreateServer
(
SchematicFrame
,
KICAD_SCH_PORT_SERVICE_NUMBER
)
)
{
...
...
@@ -78,49 +84,47 @@ wxString FFileName;
// sends EESCHEMA a command
SetupServerFunction
(
RemoteCommand
);
}
SchematicFrame
->
Zoom_Automatique
(
TRUE
);
Read_Hotkey_Config
(
SchematicFrame
,
false
);
/* Load file specified in the command line. */
if
(
!
FFileName
.
IsEmpty
()
)
{
ChangeFileNameExt
(
FFileName
,
g_SchExtBuffer
);
wxSetWorkingDirectory
(
wxPathOnly
(
FFileName
)
);
if
(
SchematicFrame
->
DrawPanel
)
if
(
SchematicFrame
->
LoadOneEEProject
(
FFileName
,
FALSE
)
<=
0
)
SchematicFrame
->
DrawPanel
->
Refresh
(
TRUE
);
// File not found or error
}
else
{
Read_Config
(
wxEmptyString
,
TRUE
);
// Read config file ici si pas de fichier a charger
if
(
SchematicFrame
->
DrawPanel
)
SchematicFrame
->
DrawPanel
->
Refresh
(
TRUE
);
}
return
TRUE
;
SchematicFrame
->
Zoom_Automatique
(
TRUE
);
/* Load file specified in the command line. */
if
(
!
FFileName
.
IsEmpty
()
)
{
ChangeFileNameExt
(
FFileName
,
g_SchExtBuffer
);
wxSetWorkingDirectory
(
wxPathOnly
(
FFileName
)
);
if
(
SchematicFrame
->
DrawPanel
)
if
(
SchematicFrame
->
LoadOneEEProject
(
FFileName
,
FALSE
)
<=
0
)
SchematicFrame
->
DrawPanel
->
Refresh
(
TRUE
);
// File not found or error
}
else
{
Read_Config
(
wxEmptyString
,
TRUE
);
// Read config file ici si pas de fichier a charger
if
(
SchematicFrame
->
DrawPanel
)
SchematicFrame
->
DrawPanel
->
Refresh
(
TRUE
);
}
return
TRUE
;
}
/******************************/
static
void
CreateScreens
(
void
)
static
void
CreateScreens
(
void
)
/******************************/
/*
Fonction d'init des crans utiliss dans EESchema:
*/
*
Fonction d'init des crans utiliss dans EESchema:
*/
{
/* creation des ecrans Sch , Lib */
if
(
ScreenSch
==
NULL
)
ScreenSch
=
new
SCH_SCREEN
(
SCHEMATIC_FRAME
);
ScreenSch
->
m_FileName
=
g_DefaultSchematicFileName
;
ScreenSch
->
m_Date
=
GenDate
();
ActiveScreen
=
ScreenSch
;
if
(
ScreenLib
==
NULL
)
ScreenLib
=
new
SCH_SCREEN
(
LIBEDITOR_FRAME
);
ScreenLib
->
SetZoom
(
4
);
ScreenLib
->
m_UndoRedoCountMax
=
10
;
/* creation des ecrans Sch , Lib */
if
(
ScreenSch
==
NULL
)
ScreenSch
=
new
SCH_SCREEN
(
SCHEMATIC_FRAME
);
ScreenSch
->
m_FileName
=
g_DefaultSchematicFileName
;
ScreenSch
->
m_Date
=
GenDate
();
ActiveScreen
=
ScreenSch
;
if
(
ScreenLib
==
NULL
)
ScreenLib
=
new
SCH_SCREEN
(
LIBEDITOR_FRAME
);
ScreenLib
->
SetZoom
(
4
);
ScreenLib
->
m_UndoRedoCountMax
=
10
;
}
eeschema/hotkeys.cpp
View file @
f5eae506
/***************/
/* hotkeys.cpp */
/***************/
/***************/
/* hotkeys.cpp */
/***************/
#include "fctsys.h"
...
...
@@ -13,318 +13,370 @@
#include "id.h"
#include "hotkeys
_basic
.h"
#include "hotkeys.h"
#include "protos.h"
enum
hotkey_id_commnand
{
HK_NOT_FOUND
=
0
,
HK_RESET_LOCAL_COORD
,
HK_HELP
,
HK_ZOOM_IN
,
HK_ZOOM_OUT
,
HK_ZOOM_REDRAW
,
HK_ZOOM_CENTER
,
HK_NEXT_SEARCH
,
HK_DELETE
,
HK_REPEAT_LAST
,
HK_MOVEBLOCK_TO_DRAGBLOCK
,
HK_ROTATE_COMPONENT
,
HK_MIRROR_X_COMPONENT
,
HK_MIRROR_Y_COMPONENT
,
HK_ORIENT_NORMAL_COMPONENT
,
HK_MOVE_COMPONENT
,
HK_ADD_NEW_COMPONENT
,
HK_BEGIN_WIRE
};
/* How to add a new hotkey:
* add a new id in the enum hotkey_id_commnand like MY_NEW_ID_FUNCTION (see hotkeys.h).
* add a new Ki_HotkeyInfo entry like:
* static Ki_HotkeyInfo HkMyNewEntry(wxT("Command Label"), MY_NEW_ID_FUNCTION, default key value);
* "Command Label" is the name used in hotkey list display, and the identifier in the hotkey list file
* MY_NEW_ID_FUNCTION is an equivalent id function used in the switch in OnHotKey() function.
* default key value is the default hotkey for this command. Can be overrided by the user hotkey list file
* add the HkMyNewEntry pointer in the s_Schematic_Hotkey_List list ( or/and the s_LibEdit_Hotkey_List list)
* Add the new code in the switch in OnHotKey() function.
* when the variable PopupOn is true, an item is currently edited.
* This can be usefull if the new function cannot be executed while an item is currently being edited
* ( For example, one cannot start a new wire when a component is moving.)
*
* Note: If an hotkey is a special key be sure the corresponding wxWidget keycode (WXK_XXXX)
* is handled in the hotkey_name_descr s_Hotkey_Name_List list (see hotkeys_basic.cpp)
* and see this list for some ascii keys (space ...)
*/
/* local variables */
/* Hotkey list: */
static
Ki_HotkeyInfo
HkBeginWire
(
wxT
(
"begin Wire"
),
HK_BEGIN_WIRE
,
'W'
);
static
Ki_HotkeyInfo
HkAddComponent
(
wxT
(
"Add Component"
),
HK_ADD_NEW_COMPONENT
,
'A'
);
static
Ki_HotkeyInfo
HkMirrorYComponent
(
wxT
(
"Mirror Y Component"
),
HK_MIRROR_Y_COMPONENT
,
'Y'
);
static
Ki_HotkeyInfo
HkMirrorXComponent
(
wxT
(
"Mirror X Component"
),
HK_MIRROR_X_COMPONENT
,
'X'
);
static
Ki_HotkeyInfo
HkOrientNormalComponent
(
wxT
(
"Orient Normal Component"
),
HK_ORIENT_NORMAL_COMPONENT
,
'N'
);
static
Ki_HotkeyInfo
HkRotateComponent
(
wxT
(
"Rotate Component"
),
HK_ROTATE_COMPONENT
,
'R'
);
static
Ki_HotkeyInfo
HkMoveComponent
(
wxT
(
"Move Component"
),
HK_MOVE_COMPONENT
,
'M'
);
static
Ki_HotkeyInfo
HkMove2Drag
(
wxT
(
"Switch move block to drag block"
),
HK_MOVEBLOCK_TO_DRAGBLOCK
,
'\t'
);
static
Ki_HotkeyInfo
HkInsert
(
wxT
(
"Repeat Last Item"
),
HK_REPEAT_LAST
,
WXK_INSERT
);
static
Ki_HotkeyInfo
HkDelete
(
wxT
(
"Delete Item"
),
HK_DELETE
,
WXK_DELETE
);
static
Ki_HotkeyInfo
HkResetLocalCoord
(
wxT
(
"Reset local coord."
),
HK_RESET_LOCAL_COORD
,
' '
);
static
Ki_HotkeyInfo
HkNextSearch
(
wxT
(
"Next Search"
),
HK_NEXT_SEARCH
,
WXK_F5
);
static
Ki_HotkeyInfo
HkZoomCenter
(
wxT
(
"Zoom Center"
),
HK_ZOOM_CENTER
,
WXK_F4
);
static
Ki_HotkeyInfo
HkZoomRedraw
(
wxT
(
"Zoom Redraw"
),
HK_ZOOM_REDRAW
,
WXK_F3
);
static
Ki_HotkeyInfo
HkZoomOut
(
wxT
(
"Zoom Out"
),
HK_ZOOM_OUT
,
WXK_F2
);
static
Ki_HotkeyInfo
HkZoomIn
(
wxT
(
"Zoom In"
),
HK_ZOOM_IN
,
WXK_F1
);
static
Ki_HotkeyInfo
HkHelp
(
wxT
(
"Help: this message"
),
HK_HELP
,
'?'
);
static
Ki_HotkeyInfo
HkBeginWire
(
wxT
(
"begin Wire"
),
HK_BEGIN_WIRE
,
'W'
);
static
Ki_HotkeyInfo
HkAddComponent
(
wxT
(
"Add Component"
),
HK_ADD_NEW_COMPONENT
,
'A'
);
static
Ki_HotkeyInfo
HkMirrorYComponent
(
wxT
(
"Mirror Y Component"
),
HK_MIRROR_Y_COMPONENT
,
'Y'
);
static
Ki_HotkeyInfo
HkMirrorXComponent
(
wxT
(
"Mirror X Component"
),
HK_MIRROR_X_COMPONENT
,
'X'
);
static
Ki_HotkeyInfo
HkOrientNormalComponent
(
wxT
(
"Orient Normal Component"
),
HK_ORIENT_NORMAL_COMPONENT
,
'N'
);
static
Ki_HotkeyInfo
HkRotateComponent
(
wxT
(
"Rotate Component"
),
HK_ROTATE_COMPONENT
,
'R'
);
static
Ki_HotkeyInfo
HkMoveComponent
(
wxT
(
"Move Component"
),
HK_MOVE_COMPONENT
,
'M'
);
static
Ki_HotkeyInfo
HkMove2Drag
(
wxT
(
"Switch move block to drag block"
),
HK_MOVEBLOCK_TO_DRAGBLOCK
,
'\t'
);
static
Ki_HotkeyInfo
HkInsert
(
wxT
(
"Repeat Last Item"
),
HK_REPEAT_LAST
,
WXK_INSERT
);
static
Ki_HotkeyInfo
HkDelete
(
wxT
(
"Delete Item"
),
HK_DELETE
,
WXK_DELETE
);
static
Ki_HotkeyInfo
HkResetLocalCoord
(
wxT
(
"Reset local coord."
),
HK_RESET_LOCAL_COORD
,
' '
);
static
Ki_HotkeyInfo
HkNextSearch
(
wxT
(
"Next Search"
),
HK_NEXT_SEARCH
,
WXK_F5
);
static
Ki_HotkeyInfo
HkZoomCenter
(
wxT
(
"Zoom Center"
),
HK_ZOOM_CENTER
,
WXK_F4
);
static
Ki_HotkeyInfo
HkZoomRedraw
(
wxT
(
"Zoom Redraw"
),
HK_ZOOM_REDRAW
,
WXK_F3
);
static
Ki_HotkeyInfo
HkZoomOut
(
wxT
(
"Zoom Out"
),
HK_ZOOM_OUT
,
WXK_F2
);
static
Ki_HotkeyInfo
HkZoomIn
(
wxT
(
"Zoom In"
),
HK_ZOOM_IN
,
WXK_F1
);
static
Ki_HotkeyInfo
HkHelp
(
wxT
(
"Help: this message"
),
HK_HELP
,
'?'
);
// List of hotkey descriptors for schematic
Ki_HotkeyInfo
*
s_Schematic_Hotkey_List
[]
=
{
&
HkHelp
,
&
HkZoomIn
,
&
HkZoomOut
,
&
HkZoomRedraw
,
&
HkZoomCenter
,
&
HkNextSearch
,
&
HkResetLocalCoord
,
&
HkDelete
,
&
HkInsert
,
&
HkMove2Drag
,
&
HkMoveComponent
,
&
HkAddComponent
,
&
HkRotateComponent
,
&
HkMirrorXComponent
,
&
HkMirrorYComponent
,
&
HkOrientNormalComponent
,
&
HkBeginWire
,
NULL
Ki_HotkeyInfo
*
s_Schematic_Hotkey_List
[]
=
{
&
HkHelp
,
&
HkZoomIn
,
&
HkZoomOut
,
&
HkZoomRedraw
,
&
HkZoomCenter
,
&
HkNextSearch
,
&
HkResetLocalCoord
,
&
HkDelete
,
&
HkInsert
,
&
HkMove2Drag
,
&
HkMoveComponent
,
&
HkAddComponent
,
&
HkRotateComponent
,
&
HkMirrorXComponent
,
&
HkMirrorYComponent
,
&
HkOrientNormalComponent
,
&
HkBeginWire
,
NULL
};
// Library editor:
static
Ki_HotkeyInfo
HkInsertPin
(
wxT
(
"Repeat Pin"
),
HK_REPEAT_LAST
,
WXK_INSERT
);
static
Ki_HotkeyInfo
HkInsertPin
(
wxT
(
"Repeat Pin"
),
HK_REPEAT_LAST
,
WXK_INSERT
);
// List of hotkey descriptors for libray editor
Ki_HotkeyInfo
*
s_LibEdit_Hotkey_List
[]
=
Ki_HotkeyInfo
*
s_LibEdit_Hotkey_List
[]
=
{
&
HkHelp
,
&
HkZoomIn
,
&
HkZoomOut
,
&
HkZoomRedraw
,
&
HkZoomCenter
,
&
HkResetLocalCoord
,
&
HkInsertPin
,
NULL
&
HkHelp
,
&
HkZoomIn
,
&
HkZoomOut
,
&
HkZoomRedraw
,
&
HkZoomCenter
,
&
HkResetLocalCoord
,
&
HkInsertPin
,
NULL
};
/***********************************************************/
void
WinEDA_SchematicFrame
::
OnHotKey
(
wxDC
*
DC
,
int
hotkey
,
EDA_BaseStruct
*
DrawStruct
)
void
WinEDA_SchematicFrame
::
OnHotKey
(
wxDC
*
DC
,
int
hotkey
,
EDA_BaseStruct
*
DrawStruct
)
/***********************************************************/
/* Hot keys. Some commands are relatives to the item under the mouse cursor
Commands are case insensitive
Zoom commands are not managed here
*/
* Commands are case insensitive
*/
{
bool
PopupOn
=
m_CurrentScreen
->
GetCurItem
()
&&
m_CurrentScreen
->
GetCurItem
()
->
m_Flags
;
bool
RefreshToolBar
=
FALSE
;
// We must refresh tool bar when the undo/redo tool state is modified
if
(
hotkey
==
0
)
return
;
wxPoint
MousePos
=
m_CurrentScreen
->
m_MousePosition
;
// Remap the control key Ctrl A (0x01) to GR_KB_CTRL + 'A' (easier to handle...)
if
(
(
hotkey
&
GR_KB_CTRL
)
!=
0
)
hotkey
+=
'A'
-
1
;
/* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */
if
(
(
hotkey
>=
'a'
)
&&
(
hotkey
<=
'z'
)
)
hotkey
+=
'A'
-
'a'
;
// Search command from key :
int
CommandCode
=
GetCommandCodeFromHotkey
(
hotkey
,
s_Schematic_Hotkey_List
);
bool
PopupOn
=
m_CurrentScreen
->
GetCurItem
()
&&
m_CurrentScreen
->
GetCurItem
()
->
m_Flags
;
bool
RefreshToolBar
=
FALSE
;
// We must refresh tool bar when the undo/redo tool state is modified
if
(
hotkey
==
0
)
return
;
wxPoint
MousePos
=
m_CurrentScreen
->
m_MousePosition
;
// Remap the control key Ctrl A (0x01) to GR_KB_CTRL + 'A' (easier to handle...)
if
(
(
hotkey
&
GR_KB_CTRL
)
!=
0
)
hotkey
+=
'A'
-
1
;
/* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */
if
(
(
hotkey
>=
'a'
)
&&
(
hotkey
<=
'z'
)
)
hotkey
+=
'A'
-
'a'
;
// Search command from key :
int
CommandCode
=
GetCommandCodeFromHotkey
(
hotkey
,
s_Schematic_Hotkey_List
);
switch
(
CommandCode
)
{
default
:
case
HK_NOT_FOUND
:
return
;
break
;
case
HK_HELP
:
// Display Current hotkey list
DisplayHotkeyList
(
this
,
s_Schematic_Hotkey_List
);
break
;
case
HK_RESET_LOCAL_COORD
:
/* Reset the relative coord */
m_CurrentScreen
->
m_O_Curseur
=
m_CurrentScreen
->
m_Curseur
;
break
;
case
HK_ZOOM_IN
:
case
HK_ZOOM_OUT
:
case
HK_ZOOM_REDRAW
:
case
HK_ZOOM_CENTER
:
break
;
case
HK_MOVEBLOCK_TO_DRAGBLOCK
:
// Switch to drag mode, when block moving
HandleBlockEndByPopUp
(
BLOCK_DRAG
,
DC
);
break
;
case
HK_DELETE
:
if
(
PopupOn
)
break
;
RefreshToolBar
=
LocateAndDeleteItem
(
this
,
DC
);
m_CurrentScreen
->
SetModify
();
m_CurrentScreen
->
SetCurItem
(
NULL
);
TestDanglingEnds
(
m_CurrentScreen
->
EEDrawList
,
DC
);
break
;
case
HK_REPEAT_LAST
:
if
(
g_ItemToRepeat
&&
(
g_ItemToRepeat
->
m_Flags
==
0
)
)
{
RepeatDrawItem
(
DC
);
}
else
wxBell
();
break
;
case
HK_NEXT_SEARCH
:
if
(
g_LastSearchIsMarker
)
WinEDA_SchematicFrame
::
FindMarker
(
1
);
else
FindSchematicItem
(
wxEmptyString
,
2
);
break
;
case
HK_ADD_NEW_COMPONENT
:
// Add component
if
(
DrawStruct
&&
DrawStruct
->
m_Flags
)
break
;
// switch to m_ID_current_state = ID_COMPONENT_BUTT;
if
(
m_ID_current_state
!=
ID_COMPONENT_BUTT
)
SetToolID
(
ID_COMPONENT_BUTT
,
wxCURSOR_PENCIL
,
_
(
"Add Component"
));
OnLeftClick
(
DC
,
MousePos
);
break
;
case
HK_BEGIN_WIRE
:
// Add wire
if
(
DrawStruct
)
// An item is selected. If edited and not a wire, a new command is not possible
{
if
(
DrawStruct
->
m_Flags
)
// Item selected and edition in progress
{
if
(
DrawStruct
->
m_StructType
==
DRAW_SEGMENT_STRUCT_TYPE
)
{
EDA_DrawLineStruct
*
segment
=
(
EDA_DrawLineStruct
*
)
DrawStruct
;
if
(
segment
->
m_Layer
!=
LAYER_WIRE
)
break
;
}
else
break
;
}
}
// switch to m_ID_current_state = ID_WIRE_BUTT;
if
(
m_ID_current_state
!=
ID_WIRE_BUTT
)
SetToolID
(
ID_WIRE_BUTT
,
wxCURSOR_PENCIL
,
_
(
"Add Wire"
));
OnLeftClick
(
DC
,
MousePos
);
{
default
:
case
HK_NOT_FOUND
:
return
;
break
;
case
HK_HELP
:
// Display Current hotkey list
DisplayHotkeyList
(
this
,
s_Schematic_Hotkey_List
);
break
;
case
HK_RESET_LOCAL_COORD
:
/* Reset the relative coord */
m_CurrentScreen
->
m_O_Curseur
=
m_CurrentScreen
->
m_Curseur
;
break
;
case
HK_ZOOM_IN
:
OnZoom
(
ID_ZOOM_PLUS_KEY
);
break
;
case
HK_ZOOM_OUT
:
OnZoom
(
ID_ZOOM_MOINS_KEY
);
break
;
case
HK_ZOOM_REDRAW
:
OnZoom
(
ID_ZOOM_REDRAW_KEY
);
break
;
case
HK_ZOOM_CENTER
:
OnZoom
(
ID_ZOOM_CENTER_KEY
);
break
;
case
HK_MOVEBLOCK_TO_DRAGBLOCK
:
// Switch to drag mode, when block moving
HandleBlockEndByPopUp
(
BLOCK_DRAG
,
DC
);
break
;
case
HK_DELETE
:
if
(
PopupOn
)
break
;
RefreshToolBar
=
LocateAndDeleteItem
(
this
,
DC
);
m_CurrentScreen
->
SetModify
();
m_CurrentScreen
->
SetCurItem
(
NULL
);
TestDanglingEnds
(
m_CurrentScreen
->
EEDrawList
,
DC
);
break
;
case
HK_REPEAT_LAST
:
if
(
g_ItemToRepeat
&&
(
g_ItemToRepeat
->
m_Flags
==
0
)
)
{
RepeatDrawItem
(
DC
);
}
else
wxBell
();
break
;
case
HK_NEXT_SEARCH
:
if
(
g_LastSearchIsMarker
)
WinEDA_SchematicFrame
::
FindMarker
(
1
);
else
FindSchematicItem
(
wxEmptyString
,
2
);
break
;
case
HK_ADD_NEW_COMPONENT
:
// Add component
if
(
DrawStruct
&&
DrawStruct
->
m_Flags
)
break
;
case
HK_ROTATE_COMPONENT
:
// Component Rotation
if
(
DrawStruct
==
NULL
)
{
DrawStruct
=
PickStruct
(
GetScreen
()
->
m_Curseur
,
GetScreen
()
->
EEDrawList
,
LIBITEM
|
TEXTITEM
|
LABELITEM
);
if
(
DrawStruct
==
NULL
)
break
;
if
(
DrawStruct
->
m_StructType
==
DRAW_LIB_ITEM_STRUCT_TYPE
)
DrawStruct
=
LocateSmallestComponent
(
GetScreen
()
);
if
(
DrawStruct
==
NULL
)
break
;
}
switch
(
DrawStruct
->
m_StructType
)
{
case
DRAW_LIB_ITEM_STRUCT_TYPE
:
if
(
DrawStruct
->
m_Flags
==
0
)
{
SaveCopyInUndoList
(
DrawStruct
,
IS_CHANGED
);
RefreshToolBar
=
TRUE
;
}
CmpRotationMiroir
(
(
EDA_SchComponentStruct
*
)
DrawStruct
,
DC
,
CMP_ROTATE_COUNTERCLOCKWISE
);
break
;
case
DRAW_TEXT_STRUCT_TYPE
:
case
DRAW_LABEL_STRUCT_TYPE
:
case
DRAW_GLOBAL_LABEL_STRUCT_TYPE
:
if
(
DrawStruct
->
m_Flags
==
0
)
{
SaveCopyInUndoList
(
DrawStruct
,
IS_CHANGED
);
RefreshToolBar
=
TRUE
;
}
ChangeTextOrient
(
(
DrawTextStruct
*
)
DrawStruct
,
DC
);
break
;
default
:
;
}
break
;
case
HK_MIRROR_Y_COMPONENT
:
// Mirror Y (Component)
if
(
DrawStruct
==
NULL
)
DrawStruct
=
LocateSmallestComponent
(
GetScreen
()
);
if
(
DrawStruct
)
{
if
(
DrawStruct
->
m_Flags
==
0
)
{
SaveCopyInUndoList
(
DrawStruct
,
IS_CHANGED
);
RefreshToolBar
=
TRUE
;
}
CmpRotationMiroir
(
(
EDA_SchComponentStruct
*
)
DrawStruct
,
DC
,
CMP_MIROIR_Y
);
}
break
;
case
HK_MIRROR_X_COMPONENT
:
// Mirror X (Component)
if
(
DrawStruct
==
NULL
)
DrawStruct
=
LocateSmallestComponent
(
GetScreen
()
);
if
(
DrawStruct
)
{
if
(
DrawStruct
->
m_Flags
==
0
)
{
SaveCopyInUndoList
(
DrawStruct
,
IS_CHANGED
);
RefreshToolBar
=
TRUE
;
}
CmpRotationMiroir
(
(
EDA_SchComponentStruct
*
)
DrawStruct
,
DC
,
CMP_MIROIR_X
);
}
break
;
case
HK_ORIENT_NORMAL_COMPONENT
:
// Orient 0, no mirror (Component)
if
(
DrawStruct
==
NULL
)
DrawStruct
=
LocateSmallestComponent
(
GetScreen
()
);
if
(
DrawStruct
)
{
if
(
DrawStruct
->
m_Flags
==
0
)
{
SaveCopyInUndoList
(
DrawStruct
,
IS_CHANGED
);
RefreshToolBar
=
TRUE
;
}
CmpRotationMiroir
(
(
EDA_SchComponentStruct
*
)
DrawStruct
,
DC
,
CMP_NORMAL
);
TestDanglingEnds
(
m_CurrentScreen
->
EEDrawList
,
DC
);
}
break
;
case
HK_MOVE_COMPONENT
:
// Start move Component
if
(
PopupOn
)
break
;
if
(
DrawStruct
==
NULL
)
DrawStruct
=
LocateSmallestComponent
(
GetScreen
()
);
if
(
DrawStruct
&&
(
DrawStruct
->
m_Flags
==
0
)
)
{
m_CurrentScreen
->
SetCurItem
(
DrawStruct
);
Process_Move_Item
(
m_CurrentScreen
->
GetCurItem
(),
DC
);
}
break
;
}
if
(
RefreshToolBar
)
SetToolbars
();
// switch to m_ID_current_state = ID_COMPONENT_BUTT;
if
(
m_ID_current_state
!=
ID_COMPONENT_BUTT
)
SetToolID
(
ID_COMPONENT_BUTT
,
wxCURSOR_PENCIL
,
_
(
"Add Component"
)
);
OnLeftClick
(
DC
,
MousePos
);
break
;
case
HK_BEGIN_WIRE
:
// Add wire
if
(
DrawStruct
)
// An item is selected. If edited and not a wire, a new command is not possible
{
if
(
DrawStruct
->
m_Flags
)
// Item selected and edition in progress
{
if
(
DrawStruct
->
m_StructType
==
DRAW_SEGMENT_STRUCT_TYPE
)
{
EDA_DrawLineStruct
*
segment
=
(
EDA_DrawLineStruct
*
)
DrawStruct
;
if
(
segment
->
m_Layer
!=
LAYER_WIRE
)
break
;
}
else
break
;
}
}
// switch to m_ID_current_state = ID_WIRE_BUTT;
if
(
m_ID_current_state
!=
ID_WIRE_BUTT
)
SetToolID
(
ID_WIRE_BUTT
,
wxCURSOR_PENCIL
,
_
(
"Add Wire"
)
);
OnLeftClick
(
DC
,
MousePos
);
break
;
case
HK_ROTATE_COMPONENT
:
// Component Rotation
if
(
DrawStruct
==
NULL
)
{
DrawStruct
=
PickStruct
(
GetScreen
()
->
m_Curseur
,
GetScreen
()
->
EEDrawList
,
LIBITEM
|
TEXTITEM
|
LABELITEM
);
if
(
DrawStruct
==
NULL
)
break
;
if
(
DrawStruct
->
m_StructType
==
DRAW_LIB_ITEM_STRUCT_TYPE
)
DrawStruct
=
LocateSmallestComponent
(
GetScreen
()
);
if
(
DrawStruct
==
NULL
)
break
;
}
switch
(
DrawStruct
->
m_StructType
)
{
case
DRAW_LIB_ITEM_STRUCT_TYPE
:
if
(
DrawStruct
->
m_Flags
==
0
)
{
SaveCopyInUndoList
(
DrawStruct
,
IS_CHANGED
);
RefreshToolBar
=
TRUE
;
}
CmpRotationMiroir
(
(
EDA_SchComponentStruct
*
)
DrawStruct
,
DC
,
CMP_ROTATE_COUNTERCLOCKWISE
);
break
;
case
DRAW_TEXT_STRUCT_TYPE
:
case
DRAW_LABEL_STRUCT_TYPE
:
case
DRAW_GLOBAL_LABEL_STRUCT_TYPE
:
if
(
DrawStruct
->
m_Flags
==
0
)
{
SaveCopyInUndoList
(
DrawStruct
,
IS_CHANGED
);
RefreshToolBar
=
TRUE
;
}
ChangeTextOrient
(
(
DrawTextStruct
*
)
DrawStruct
,
DC
);
break
;
default
:
;
}
break
;
case
HK_MIRROR_Y_COMPONENT
:
// Mirror Y (Component)
if
(
DrawStruct
==
NULL
)
DrawStruct
=
LocateSmallestComponent
(
GetScreen
()
);
if
(
DrawStruct
)
{
if
(
DrawStruct
->
m_Flags
==
0
)
{
SaveCopyInUndoList
(
DrawStruct
,
IS_CHANGED
);
RefreshToolBar
=
TRUE
;
}
CmpRotationMiroir
(
(
EDA_SchComponentStruct
*
)
DrawStruct
,
DC
,
CMP_MIROIR_Y
);
}
break
;
case
HK_MIRROR_X_COMPONENT
:
// Mirror X (Component)
if
(
DrawStruct
==
NULL
)
DrawStruct
=
LocateSmallestComponent
(
GetScreen
()
);
if
(
DrawStruct
)
{
if
(
DrawStruct
->
m_Flags
==
0
)
{
SaveCopyInUndoList
(
DrawStruct
,
IS_CHANGED
);
RefreshToolBar
=
TRUE
;
}
CmpRotationMiroir
(
(
EDA_SchComponentStruct
*
)
DrawStruct
,
DC
,
CMP_MIROIR_X
);
}
break
;
case
HK_ORIENT_NORMAL_COMPONENT
:
// Orient 0, no mirror (Component)
if
(
DrawStruct
==
NULL
)
DrawStruct
=
LocateSmallestComponent
(
GetScreen
()
);
if
(
DrawStruct
)
{
if
(
DrawStruct
->
m_Flags
==
0
)
{
SaveCopyInUndoList
(
DrawStruct
,
IS_CHANGED
);
RefreshToolBar
=
TRUE
;
}
CmpRotationMiroir
(
(
EDA_SchComponentStruct
*
)
DrawStruct
,
DC
,
CMP_NORMAL
);
TestDanglingEnds
(
m_CurrentScreen
->
EEDrawList
,
DC
);
}
break
;
case
HK_MOVE_COMPONENT
:
// Start move Component
if
(
PopupOn
)
break
;
if
(
DrawStruct
==
NULL
)
DrawStruct
=
LocateSmallestComponent
(
GetScreen
()
);
if
(
DrawStruct
&&
(
DrawStruct
->
m_Flags
==
0
)
)
{
m_CurrentScreen
->
SetCurItem
(
DrawStruct
);
Process_Move_Item
(
m_CurrentScreen
->
GetCurItem
(),
DC
);
}
break
;
}
if
(
RefreshToolBar
)
SetToolbars
();
}
/***********************************************************/
void
WinEDA_LibeditFrame
::
OnHotKey
(
wxDC
*
DC
,
int
hotkey
,
EDA_BaseStruct
*
DrawStruct
)
void
WinEDA_LibeditFrame
::
OnHotKey
(
wxDC
*
DC
,
int
hotkey
,
EDA_BaseStruct
*
DrawStruct
)
/***********************************************************/
/* Hot keys for the component editot. Some commands are relatives to the item under the mouse cursor
Commands are case insensitive
Zoom commands are not managed here
*/
* Commands are case insensitive
*/
{
bool
RefreshToolBar
=
FALSE
;
// We must refresh tool bar when the undo/redo tool state is modified
if
(
hotkey
==
0
)
return
;
bool
RefreshToolBar
=
FALSE
;
// We must refresh tool bar when the undo/redo tool state is modified
if
(
hotkey
==
0
)
return
;
wxPoint
MousePos
=
m_CurrentScreen
->
m_MousePosition
;
wxPoint
MousePos
=
m_CurrentScreen
->
m_MousePosition
;
/* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */
if
(
(
hotkey
>=
'a'
)
&&
(
hotkey
<=
'z'
)
)
hotkey
+=
'A'
-
'a'
;
int
CommandCode
=
GetCommandCodeFromHotkey
(
hotkey
,
s_LibEdit_Hotkey_List
);
/* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */
if
(
(
hotkey
>=
'a'
)
&&
(
hotkey
<=
'z'
)
)
hotkey
+=
'A'
-
'a'
;
int
CommandCode
=
GetCommandCodeFromHotkey
(
hotkey
,
s_LibEdit_Hotkey_List
);
switch
(
CommandCode
)
{
default
:
case
HK_NOT_FOUND
:
return
;
break
;
case
HK_HELP
:
// Display Current hotkey list
DisplayHotkeyList
(
this
,
s_LibEdit_Hotkey_List
);
break
;
case
HK_ZOOM_IN
:
case
HK_ZOOM_OUT
:
case
HK_ZOOM_REDRAW
:
case
HK_ZOOM_CENTER
:
case
HK_RESET_LOCAL_COORD
:
break
;
case
HK_REPEAT_LAST
:
if
(
LibItemToRepeat
&&
(
LibItemToRepeat
->
m_Flags
==
0
)
&&
(
LibItemToRepeat
->
m_StructType
==
COMPONENT_PIN_DRAW_TYPE
)
)
{
RepeatPinItem
(
DC
,
(
LibDrawPin
*
)
LibItemToRepeat
);
}
else
wxBell
();
break
;
}
if
(
RefreshToolBar
)
SetToolbars
();
{
default
:
case
HK_NOT_FOUND
:
return
;
break
;
case
HK_HELP
:
// Display Current hotkey list
DisplayHotkeyList
(
this
,
s_LibEdit_Hotkey_List
);
break
;
case
HK_RESET_LOCAL_COORD
:
/* Reset the relative coord */
m_CurrentScreen
->
m_O_Curseur
=
m_CurrentScreen
->
m_Curseur
;
break
;
case
HK_ZOOM_IN
:
OnZoom
(
ID_ZOOM_PLUS_KEY
);
break
;
case
HK_ZOOM_OUT
:
OnZoom
(
ID_ZOOM_MOINS_KEY
);
break
;
case
HK_ZOOM_REDRAW
:
OnZoom
(
ID_ZOOM_REDRAW_KEY
);
break
;
case
HK_ZOOM_CENTER
:
OnZoom
(
ID_ZOOM_CENTER_KEY
);
break
;
case
HK_REPEAT_LAST
:
if
(
LibItemToRepeat
&&
(
LibItemToRepeat
->
m_Flags
==
0
)
&&
(
LibItemToRepeat
->
m_StructType
==
COMPONENT_PIN_DRAW_TYPE
)
)
{
RepeatPinItem
(
DC
,
(
LibDrawPin
*
)
LibItemToRepeat
);
}
else
wxBell
();
break
;
}
if
(
RefreshToolBar
)
SetToolbars
();
}
eeschema/hotkeys.h
0 → 100644
View file @
f5eae506
/***************/
/* hotkeys.h */
/***************/
#ifndef KOTKEYS_H
#define KOTKEYS_H
#include "hotkeys_basic.h"
enum
hotkey_id_commnand
{
HK_NOT_FOUND
=
0
,
HK_RESET_LOCAL_COORD
,
HK_HELP
,
HK_ZOOM_IN
,
HK_ZOOM_OUT
,
HK_ZOOM_REDRAW
,
HK_ZOOM_CENTER
,
HK_NEXT_SEARCH
,
HK_DELETE
,
HK_REPEAT_LAST
,
HK_MOVEBLOCK_TO_DRAGBLOCK
,
HK_ROTATE_COMPONENT
,
HK_MIRROR_X_COMPONENT
,
HK_MIRROR_Y_COMPONENT
,
HK_ORIENT_NORMAL_COMPONENT
,
HK_MOVE_COMPONENT
,
HK_ADD_NEW_COMPONENT
,
HK_BEGIN_WIRE
};
// List of hotkey descriptors for schematic
extern
Ki_HotkeyInfo
*
s_Schematic_Hotkey_List
[];
// List of hotkey descriptors for libray editor
extern
Ki_HotkeyInfo
*
s_LibEdit_Hotkey_List
[];
#endif // KOTKEYS_H
eeschema/onrightclick.cpp
View file @
f5eae506
...
...
@@ -16,6 +16,7 @@
#include "protos.h"
#include "id.h"
#include "hotkeys.h"
#include "bitmaps.h"
...
...
@@ -272,24 +273,31 @@ void AddMenusForComponent( wxMenu* PopMenu, EDA_SchComponentStruct* Component )
/* Add menu commands for a component
*/
{
wxString
msg
;
EDA_LibComponentStruct
*
LibEntry
;
LibEntry
=
FindLibPart
(
Component
->
m_ChipName
.
GetData
(),
wxEmptyString
,
FIND_ROOT
);
if
(
!
Component
->
m_Flags
)
{
msg
=
AddHotkeyName
(
_
(
"Move Component"
),
s_Schematic_Hotkey_List
,
HK_MOVE_COMPONENT
);
ADD_MENUITEM
(
PopMenu
,
ID_POPUP_SCH_MOVE_CMP_REQUEST
,
_
(
"Move Component (M)"
)
,
move_xpm
);
msg
,
move_xpm
);
}
// add menu orient et sous menu:
wxMenu
*
orientmenu
=
new
wxMenu
;
msg
=
AddHotkeyName
(
_
(
"Rotate +"
),
s_Schematic_Hotkey_List
,
HK_ROTATE_COMPONENT
);
ADD_MENUITEM
(
orientmenu
,
ID_POPUP_SCH_ROTATE_CMP_COUNTERCLOCKWISE
,
_
(
"Rotate + (R)"
)
,
rotate_pos_xpm
);
msg
,
rotate_pos_xpm
);
ADD_MENUITEM
(
orientmenu
,
ID_POPUP_SCH_ROTATE_CMP_CLOCKWISE
,
_
(
"Rotate -"
),
rotate_neg_xpm
);
ADD_MENUITEM
(
orientmenu
,
ID_POPUP_SCH_MIROR_X_CMP
,
_
(
"Mirror -- (X)"
),
mirror_V_xpm
);
ADD_MENUITEM
(
orientmenu
,
ID_POPUP_SCH_MIROR_Y_CMP
,
_
(
"Mirror || (Y)"
),
mirror_H_xpm
);
ADD_MENUITEM
(
orientmenu
,
ID_POPUP_SCH_ORIENT_NORMAL_CMP
,
_
(
"Normal (N)"
),
normal_xpm
);
msg
=
AddHotkeyName
(
_
(
"Mirror --"
),
s_Schematic_Hotkey_List
,
HK_MIRROR_X_COMPONENT
);
ADD_MENUITEM
(
orientmenu
,
ID_POPUP_SCH_MIROR_X_CMP
,
msg
,
mirror_V_xpm
);
msg
=
AddHotkeyName
(
_
(
"Mirror ||"
),
s_Schematic_Hotkey_List
,
HK_MIRROR_Y_COMPONENT
);
ADD_MENUITEM
(
orientmenu
,
ID_POPUP_SCH_MIROR_Y_CMP
,
msg
,
mirror_H_xpm
);
msg
=
AddHotkeyName
(
_
(
"Normal"
),
s_Schematic_Hotkey_List
,
HK_ORIENT_NORMAL_COMPONENT
);
ADD_MENUITEM
(
orientmenu
,
ID_POPUP_SCH_ORIENT_NORMAL_CMP
,
msg
,
normal_xpm
);
ADD_MENUITEM_WITH_SUBMENU
(
PopMenu
,
orientmenu
,
ID_POPUP_SCH_GENERIC_ORIENT_CMP
,
_
(
"Orient Component"
),
orient_xpm
);
...
...
eeschema/tool_lib.cpp
View file @
f5eae506
/********************************************/
/* tool_lib.cpp: construction des toolbars */
/********************************************/
/********************************************/
/* tool_lib.cpp: construction des toolbars */
/********************************************/
#include "fctsys.h"
#include "gr_basic.h"
...
...
@@ -11,6 +11,7 @@
#include "general.h"
#include "protos.h"
#include "hotkeys.h"
#define BITMAP wxBitmap
...
...
@@ -34,243 +35,245 @@
/****************************************************/
void
WinEDA_LibeditFrame
::
ReCreateVToolbar
(
void
)
void
WinEDA_LibeditFrame
::
ReCreateVToolbar
(
void
)
/****************************************************/
{
if
(
m_VToolBar
==
NULL
)
{
m_VToolBar
=
new
WinEDA_Toolbar
(
TOOLBAR_TOOL
,
this
,
ID_V_TOOLBAR
,
FALSE
);
// Set up toolbar
m_VToolBar
->
AddTool
(
ID_NO_SELECT_BUTT
,
wxEmptyString
,
BITMAP
(
cursor_xpm
),
_
(
"deselect current tool"
),
wxITEM_CHECK
);
m_VToolBar
->
ToggleTool
(
ID_NO_SELECT_BUTT
,
TRUE
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_LIBEDIT_PIN_BUTT
,
wxEmptyString
,
BITMAP
(
pin_xpm
),
_
(
"Add Pins"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_LIBEDIT_BODY_TEXT_BUTT
,
wxEmptyString
,
BITMAP
(
add_text_xpm
),
_
(
"Add graphic text"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_LIBEDIT_BODY_RECT_BUTT
,
wxEmptyString
,
BITMAP
(
add_rectangle_xpm
),
_
(
"Add rectangles"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_LIBEDIT_BODY_CIRCLE_BUTT
,
wxEmptyString
,
BITMAP
(
add_circle_xpm
),
_
(
"Add circles"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_LIBEDIT_BODY_ARC_BUTT
,
wxEmptyString
,
BITMAP
(
add_arc_xpm
),
_
(
"Add arcs"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_LIBEDIT_BODY_LINE_BUTT
,
wxEmptyString
,
BITMAP
(
add_polygon_xpm
),
_
(
"Add lines and polygons"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_LIBEDIT_ANCHOR_ITEM_BUTT
,
wxEmptyString
,
BITMAP
(
anchor_xpm
),
_
(
"Move part anchor"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_LIBEDIT_IMPORT_BODY_BUTT
,
wxEmptyString
,
BITMAP
(
import_xpm
),
_
(
"Import existing drawings"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_LIBEDIT_EXPORT_BODY_BUTT
,
wxEmptyString
,
BITMAP
(
export_xpm
),
_
(
"Export current drawing"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_LIBEDIT_DELETE_ITEM_BUTT
,
wxEmptyString
,
BITMAP
(
delete_body_xpm
),
_
(
"Delete items"
),
wxITEM_CHECK
);
m_VToolBar
->
Realize
();
}
SetToolbars
();
if
(
m_VToolBar
==
NULL
)
{
m_VToolBar
=
new
WinEDA_Toolbar
(
TOOLBAR_TOOL
,
this
,
ID_V_TOOLBAR
,
FALSE
);
// Set up toolbar
m_VToolBar
->
AddTool
(
ID_NO_SELECT_BUTT
,
wxEmptyString
,
BITMAP
(
cursor_xpm
),
_
(
"deselect current tool"
),
wxITEM_CHECK
);
m_VToolBar
->
ToggleTool
(
ID_NO_SELECT_BUTT
,
TRUE
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_LIBEDIT_PIN_BUTT
,
wxEmptyString
,
BITMAP
(
pin_xpm
),
_
(
"Add Pins"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_LIBEDIT_BODY_TEXT_BUTT
,
wxEmptyString
,
BITMAP
(
add_text_xpm
),
_
(
"Add graphic text"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_LIBEDIT_BODY_RECT_BUTT
,
wxEmptyString
,
BITMAP
(
add_rectangle_xpm
),
_
(
"Add rectangles"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_LIBEDIT_BODY_CIRCLE_BUTT
,
wxEmptyString
,
BITMAP
(
add_circle_xpm
),
_
(
"Add circles"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_LIBEDIT_BODY_ARC_BUTT
,
wxEmptyString
,
BITMAP
(
add_arc_xpm
),
_
(
"Add arcs"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_LIBEDIT_BODY_LINE_BUTT
,
wxEmptyString
,
BITMAP
(
add_polygon_xpm
),
_
(
"Add lines and polygons"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_LIBEDIT_ANCHOR_ITEM_BUTT
,
wxEmptyString
,
BITMAP
(
anchor_xpm
),
_
(
"Move part anchor"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_LIBEDIT_IMPORT_BODY_BUTT
,
wxEmptyString
,
BITMAP
(
import_xpm
),
_
(
"Import existing drawings"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_LIBEDIT_EXPORT_BODY_BUTT
,
wxEmptyString
,
BITMAP
(
export_xpm
),
_
(
"Export current drawing"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_LIBEDIT_DELETE_ITEM_BUTT
,
wxEmptyString
,
BITMAP
(
delete_body_xpm
),
_
(
"Delete items"
),
wxITEM_CHECK
);
m_VToolBar
->
Realize
();
}
SetToolbars
();
}
/*************************************************/
void
WinEDA_LibeditFrame
::
ReCreateHToolbar
(
void
)
void
WinEDA_LibeditFrame
::
ReCreateHToolbar
(
void
)
/*************************************************/
{
int
ii
;
// Create the toolbar if not exists
if
(
m_HToolBar
==
NULL
)
{
m_HToolBar
=
new
WinEDA_Toolbar
(
TOOLBAR_MAIN
,
this
,
ID_H_TOOLBAR
,
TRUE
);
SetToolBar
(
m_HToolBar
);
// Set up toolbar
m_HToolBar
->
AddTool
(
ID_LIBEDIT_SAVE_CURRENT_LIB
,
wxEmptyString
,
BITMAP
(
save_library_xpm
),
_
(
"Save current loaded library on disk (file update)"
)
);
m_HToolBar
->
AddTool
(
ID_LIBEDIT_SELECT_CURRENT_LIB
,
wxEmptyString
,
BITMAP
(
library_xpm
),
_
(
"Select working library"
)
);
m_HToolBar
->
AddTool
(
ID_LIBEDIT_DELETE_PART
,
wxEmptyString
,
BITMAP
(
delete_xpm
),
_
(
"Delete part in current library"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_LIBEDIT_NEW_PART
,
wxEmptyString
,
BITMAP
(
new_component_xpm
),
_
(
"New part"
)
);
m_HToolBar
->
AddTool
(
ID_LIBEDIT_SELECT_PART
,
BITMAP
(
add_component_xpm
),
_
(
"Select part to edit"
)
);
m_HToolBar
->
AddTool
(
ID_LIBEDIT_SAVE_CURRENT_PART
,
wxEmptyString
,
BITMAP
(
save_part_in_mem_xpm
),
_
(
"Save current part into current loaded library (in memory)"
)
);
m_HToolBar
->
AddTool
(
ID_LIBEDIT_IMPORT_PART
,
wxEmptyString
,
BITMAP
(
import_xpm
),
_
(
"import part"
));
m_HToolBar
->
AddTool
(
ID_LIBEDIT_EXPORT_PART
,
wxEmptyString
,
BITMAP
(
export_xpm
),
_
(
"export part"
));
m_HToolBar
->
AddTool
(
ID_LIBEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART
,
wxEmptyString
,
BITMAP
(
new_library_xpm
),
_
(
"Create a new library an save current part into"
));
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_LIBEDIT_UNDO
,
wxEmptyString
,
BITMAP
(
undo_xpm
),
_
(
"Undo last edition"
));
m_HToolBar
->
AddTool
(
ID_LIBEDIT_REDO
,
wxEmptyString
,
BITMAP
(
redo_xpm
),
_
(
"Redo the last undo command"
));
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_LIBEDIT_GET_FRAME_EDIT_PART
,
BITMAP
(
part_properties_xpm
),
wxNullBitmap
,
FALSE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Edit Part Properties"
));
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_LIBEDIT_CHECK_PART
,
BITMAP
(
erc_xpm
),
wxNullBitmap
,
FALSE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Test duplicate pins"
));
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_ZOOM_PLUS_BUTT
,
BITMAP
(
zoom_in_xpm
),
wxNullBitmap
,
FALSE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"zoom + (F1)"
));
m_HToolBar
->
AddTool
(
ID_ZOOM_MOINS_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_out_xpm
),
_
(
"zoom - (F2)"
));
m_HToolBar
->
AddTool
(
ID_ZOOM_REDRAW_BUTT
,
wxEmptyString
,
BITMAP
(
repaint_xpm
),
_
(
"redraw (F3)"
));
m_HToolBar
->
AddTool
(
ID_ZOOM_PAGE_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_optimal_xpm
),
_
(
"auto zoom"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_DE_MORGAN_NORMAL_BUTT
,
wxEmptyString
,
BITMAP
(
morgan1_xpm
),
_
(
"show as
\"
De Morgan
\"
normal part"
),
wxITEM_CHECK
);
m_HToolBar
->
ToggleTool
(
ID_DE_MORGAN_NORMAL_BUTT
,
(
CurrentConvert
<=
1
)
?
TRUE
:
FALSE
);
m_HToolBar
->
AddTool
(
ID_DE_MORGAN_CONVERT_BUTT
,
wxEmptyString
,
BITMAP
(
morgan2_xpm
),
_
(
"show as
\"
De Morgan
\"
convert part"
),
wxITEM_CHECK
);
m_HToolBar
->
ToggleTool
(
ID_DE_MORGAN_CONVERT_BUTT
,
(
CurrentConvert
>=
2
)
?
TRUE
:
FALSE
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_LIBEDIT_VIEW_DOC
,
BITMAP
(
datasheet_xpm
),
wxNullBitmap
,
FALSE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Documents"
));
m_HToolBar
->
EnableTool
(
ID_LIBEDIT_VIEW_DOC
,
FALSE
);
m_HToolBar
->
AddSeparator
();
m_SelpartBox
=
new
WinEDAChoiceBox
(
m_HToolBar
,
ID_LIBEDIT_SELECT_PART_NUMBER
,
wxDefaultPosition
,
wxSize
(
LISTBOX_WIDTH
,
-
1
));
m_HToolBar
->
AddControl
(
m_SelpartBox
);
m_SelAliasBox
=
new
WinEDAChoiceBox
(
m_HToolBar
,
ID_LIBEDIT_SELECT_ALIAS
,
wxDefaultPosition
,
wxSize
(
LISTBOX_WIDTH
,
-
1
));
m_HToolBar
->
AddControl
(
m_SelAliasBox
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_LIBEDIT_EDIT_PIN_BY_PIN
,
BITMAP
(
pin2pin_xpm
),
wxNullBitmap
,
TRUE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Edit pins part per part (Carefully use!)"
));
m_HToolBar
->
ToggleTool
(
ID_LIBEDIT_EDIT_PIN_BY_PIN
,
g_EditPinByPinIsOn
);
// after adding the buttons to the toolbar, must call Realize() to reflect
// the changes
m_HToolBar
->
Realize
();
}
else
/* Toolbar deja cr, mise a jour des affichages */
{
m_SelAliasBox
->
Clear
();
m_SelpartBox
->
Clear
();
}
/* Update the part selection box */
int
jj
=
1
;
if
(
CurrentLibEntry
)
jj
=
CurrentLibEntry
->
m_UnitCount
;
if
(
jj
>
1
)
for
(
ii
=
0
;
ii
<
jj
;
ii
++
)
{
wxString
msg
;
msg
.
Printf
(
_
(
"Part %c"
),
'A'
+
ii
);
m_SelpartBox
->
Append
(
msg
);
}
else
m_SelpartBox
->
Append
(
wxEmptyString
);
m_SelpartBox
->
SetSelection
(
(
CurrentUnit
>
0
)
?
CurrentUnit
-
1
:
0
);
if
(
CurrentLibEntry
)
{
if
(
CurrentLibEntry
->
m_UnitCount
>
1
)
m_SelpartBox
->
Enable
(
TRUE
);
else
m_SelpartBox
->
Enable
(
FALSE
);
m_SelAliasBox
->
Append
(
CurrentLibEntry
->
m_Name
.
m_Text
);
m_SelAliasBox
->
SetSelection
(
0
);
int
count
=
CurrentLibEntry
->
m_AliasList
.
GetCount
();
if
(
count
>
0
)
/* Update the part selection box */
{
m_SelAliasBox
->
Enable
(
TRUE
);
for
(
ii
=
0
,
jj
=
1
;
ii
<
count
;
ii
+=
ALIAS_NEXT
,
jj
++
)
{
m_SelAliasBox
->
Append
(
CurrentLibEntry
->
m_AliasList
[
ii
]);
if
(
CurrentAliasName
==
CurrentLibEntry
->
m_AliasList
[
ii
])
m_SelAliasBox
->
SetSelection
(
jj
);
}
}
else
m_SelAliasBox
->
Enable
(
FALSE
);
}
else
{
m_SelAliasBox
->
Enable
(
FALSE
);
m_SelpartBox
->
Enable
(
FALSE
);
}
// Doit etre plac apres Realize():
SetToolbars
();
/* Create or update the main Horizontal Toolbar for the schematic library editor
*/
{
int
ii
;
wxString
msg
;
// Create the toolbar if not exists
if
(
m_HToolBar
==
NULL
)
{
m_HToolBar
=
new
WinEDA_Toolbar
(
TOOLBAR_MAIN
,
this
,
ID_H_TOOLBAR
,
TRUE
);
SetToolBar
(
m_HToolBar
);
// Set up toolbar
m_HToolBar
->
AddTool
(
ID_LIBEDIT_SAVE_CURRENT_LIB
,
wxEmptyString
,
BITMAP
(
save_library_xpm
),
_
(
"Save current loaded library on disk (file update)"
)
);
m_HToolBar
->
AddTool
(
ID_LIBEDIT_SELECT_CURRENT_LIB
,
wxEmptyString
,
BITMAP
(
library_xpm
),
_
(
"Select working library"
)
);
m_HToolBar
->
AddTool
(
ID_LIBEDIT_DELETE_PART
,
wxEmptyString
,
BITMAP
(
delete_xpm
),
_
(
"Delete part in current library"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_LIBEDIT_NEW_PART
,
wxEmptyString
,
BITMAP
(
new_component_xpm
),
_
(
"New part"
)
);
m_HToolBar
->
AddTool
(
ID_LIBEDIT_SELECT_PART
,
BITMAP
(
add_component_xpm
),
_
(
"Select part to edit"
)
);
m_HToolBar
->
AddTool
(
ID_LIBEDIT_SAVE_CURRENT_PART
,
wxEmptyString
,
BITMAP
(
save_part_in_mem_xpm
),
_
(
"Save current part into current loaded library (in memory)"
)
);
m_HToolBar
->
AddTool
(
ID_LIBEDIT_IMPORT_PART
,
wxEmptyString
,
BITMAP
(
import_xpm
),
_
(
"import part"
)
);
m_HToolBar
->
AddTool
(
ID_LIBEDIT_EXPORT_PART
,
wxEmptyString
,
BITMAP
(
export_xpm
),
_
(
"export part"
)
);
m_HToolBar
->
AddTool
(
ID_LIBEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART
,
wxEmptyString
,
BITMAP
(
new_library_xpm
),
_
(
"Create a new library an save current part into"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_LIBEDIT_UNDO
,
wxEmptyString
,
BITMAP
(
undo_xpm
),
_
(
"Undo last edition"
)
);
m_HToolBar
->
AddTool
(
ID_LIBEDIT_REDO
,
wxEmptyString
,
BITMAP
(
redo_xpm
),
_
(
"Redo the last undo command"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_LIBEDIT_GET_FRAME_EDIT_PART
,
BITMAP
(
part_properties_xpm
),
wxNullBitmap
,
FALSE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Edit Part Properties"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_LIBEDIT_CHECK_PART
,
BITMAP
(
erc_xpm
),
wxNullBitmap
,
FALSE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Test duplicate pins"
)
);
m_HToolBar
->
AddSeparator
();
msg
=
AddHotkeyName
(
_
(
"zoom +"
),
s_LibEdit_Hotkey_List
,
HK_ZOOM_IN
);
m_HToolBar
->
AddTool
(
ID_ZOOM_PLUS_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_in_xpm
),
msg
);
msg
=
AddHotkeyName
(
_
(
"zoom -"
),
s_LibEdit_Hotkey_List
,
HK_ZOOM_OUT
);
m_HToolBar
->
AddTool
(
ID_ZOOM_MOINS_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_out_xpm
),
msg
);
msg
=
AddHotkeyName
(
_
(
"redraw"
),
s_LibEdit_Hotkey_List
,
HK_ZOOM_REDRAW
);
m_HToolBar
->
AddTool
(
ID_ZOOM_REDRAW_BUTT
,
wxEmptyString
,
BITMAP
(
repaint_xpm
),
msg
);
m_HToolBar
->
AddTool
(
ID_ZOOM_PAGE_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_optimal_xpm
),
_
(
"auto zoom"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_DE_MORGAN_NORMAL_BUTT
,
wxEmptyString
,
BITMAP
(
morgan1_xpm
),
_
(
"show as
\"
De Morgan
\"
normal part"
),
wxITEM_CHECK
);
m_HToolBar
->
ToggleTool
(
ID_DE_MORGAN_NORMAL_BUTT
,
(
CurrentConvert
<=
1
)
?
TRUE
:
FALSE
);
m_HToolBar
->
AddTool
(
ID_DE_MORGAN_CONVERT_BUTT
,
wxEmptyString
,
BITMAP
(
morgan2_xpm
),
_
(
"show as
\"
De Morgan
\"
convert part"
),
wxITEM_CHECK
);
m_HToolBar
->
ToggleTool
(
ID_DE_MORGAN_CONVERT_BUTT
,
(
CurrentConvert
>=
2
)
?
TRUE
:
FALSE
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_LIBEDIT_VIEW_DOC
,
BITMAP
(
datasheet_xpm
),
wxNullBitmap
,
FALSE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Documents"
)
);
m_HToolBar
->
EnableTool
(
ID_LIBEDIT_VIEW_DOC
,
FALSE
);
m_HToolBar
->
AddSeparator
();
m_SelpartBox
=
new
WinEDAChoiceBox
(
m_HToolBar
,
ID_LIBEDIT_SELECT_PART_NUMBER
,
wxDefaultPosition
,
wxSize
(
LISTBOX_WIDTH
,
-
1
)
);
m_HToolBar
->
AddControl
(
m_SelpartBox
);
m_SelAliasBox
=
new
WinEDAChoiceBox
(
m_HToolBar
,
ID_LIBEDIT_SELECT_ALIAS
,
wxDefaultPosition
,
wxSize
(
LISTBOX_WIDTH
,
-
1
)
);
m_HToolBar
->
AddControl
(
m_SelAliasBox
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_LIBEDIT_EDIT_PIN_BY_PIN
,
BITMAP
(
pin2pin_xpm
),
wxNullBitmap
,
TRUE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Edit pins part per part (Carefully use!)"
)
);
m_HToolBar
->
ToggleTool
(
ID_LIBEDIT_EDIT_PIN_BY_PIN
,
g_EditPinByPinIsOn
);
// after adding the buttons to the toolbar, must call Realize() to reflect the changes
m_HToolBar
->
Realize
();
}
else
/* Toolbar already created, it only must be updated */
{
m_SelAliasBox
->
Clear
();
m_SelpartBox
->
Clear
();
}
/* Update the part selection box */
int
jj
=
1
;
if
(
CurrentLibEntry
)
jj
=
CurrentLibEntry
->
m_UnitCount
;
if
(
jj
>
1
)
for
(
ii
=
0
;
ii
<
jj
;
ii
++
)
{
wxString
msg
;
msg
.
Printf
(
_
(
"Part %c"
),
'A'
+
ii
);
m_SelpartBox
->
Append
(
msg
);
}
else
m_SelpartBox
->
Append
(
wxEmptyString
);
m_SelpartBox
->
SetSelection
(
(
CurrentUnit
>
0
)
?
CurrentUnit
-
1
:
0
);
if
(
CurrentLibEntry
)
{
if
(
CurrentLibEntry
->
m_UnitCount
>
1
)
m_SelpartBox
->
Enable
(
TRUE
);
else
m_SelpartBox
->
Enable
(
FALSE
);
m_SelAliasBox
->
Append
(
CurrentLibEntry
->
m_Name
.
m_Text
);
m_SelAliasBox
->
SetSelection
(
0
);
int
count
=
CurrentLibEntry
->
m_AliasList
.
GetCount
();
if
(
count
>
0
)
/* Update the part selection box */
{
m_SelAliasBox
->
Enable
(
TRUE
);
for
(
ii
=
0
,
jj
=
1
;
ii
<
count
;
ii
+=
ALIAS_NEXT
,
jj
++
)
{
m_SelAliasBox
->
Append
(
CurrentLibEntry
->
m_AliasList
[
ii
]
);
if
(
CurrentAliasName
==
CurrentLibEntry
->
m_AliasList
[
ii
]
)
m_SelAliasBox
->
SetSelection
(
jj
);
}
}
else
m_SelAliasBox
->
Enable
(
FALSE
);
}
else
{
m_SelAliasBox
->
Enable
(
FALSE
);
m_SelpartBox
->
Enable
(
FALSE
);
}
// Must be called AFTER Realize():
SetToolbars
();
}
eeschema/tool_sch.cpp
View file @
f5eae506
/*****************************************************/
/* toolsch.cpp; vreate toolbars for schematic frame */
/*****************************************************/
/*****************************************************/
/* toolsch.cpp; vreate toolbars for schematic frame */
/*****************************************************/
#include "fctsys.h"
#include "gr_basic.h"
...
...
@@ -11,10 +11,11 @@
#include "general.h"
#include "protos.h"
#include "hotkeys.h"
#define BITMAP wxBitmap
#include "bitmaps.h"
/* general bitmaps */
#include "bitmaps.h"
/* general bitmaps */
/* Specific bitmaps */
#include "cvpcb.xpm"
...
...
@@ -36,292 +37,300 @@
/**************************************************************/
void
WinEDA_SchematicFrame
::
ReCreateHToolbar
(
void
)
void
WinEDA_SchematicFrame
::
ReCreateHToolbar
(
void
)
/**************************************************************/
/* Create Horizontal (main) Toolbar
*/
/* Create the main Horizontal Toolbar for the schematic editor
*/
{
if
(
m_HToolBar
!=
NULL
)
return
;
if
(
m_HToolBar
!=
NULL
)
return
;
m_HToolBar
=
new
WinEDA_Toolbar
(
TOOLBAR_MAIN
,
this
,
ID_H_TOOLBAR
,
TRUE
);
SetToolBar
(
m_HToolBar
);
wxString
msg
;
m_HToolBar
=
new
WinEDA_Toolbar
(
TOOLBAR_MAIN
,
this
,
ID_H_TOOLBAR
,
TRUE
);
SetToolBar
(
m_HToolBar
);
// Set up toolbar
m_HToolBar
->
AddTool
(
ID_NEW_PROJECT
,
wxEmptyString
,
BITMAP
(
new_xpm
),
_
(
"New schematic project"
)
);
// Set up toolbar
m_HToolBar
->
AddTool
(
ID_NEW_PROJECT
,
wxEmptyString
,
BITMAP
(
new_xpm
),
_
(
"New schematic project"
)
);
m_HToolBar
->
AddTool
(
ID_LOAD_PROJECT
,
wxEmptyString
,
BITMAP
(
open_xpm
),
_
(
"Open schematic project"
)
);
m_HToolBar
->
AddTool
(
ID_LOAD_PROJECT
,
wxEmptyString
,
BITMAP
(
open_xpm
),
_
(
"Open schematic project"
)
);
m_HToolBar
->
AddTool
(
ID_SAVE_PROJECT
,
wxEmptyString
,
BITMAP
(
save_project_xpm
),
_
(
"Save schematic project"
)
);
m_HToolBar
->
AddTool
(
ID_SAVE_PROJECT
,
wxEmptyString
,
BITMAP
(
save_project_xpm
),
_
(
"Save schematic project"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_SHEET_SET
,
wxEmptyString
,
BITMAP
(
sheetset_xpm
),
_
(
"page settings (size, texts)"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_SHEET_SET
,
wxEmptyString
,
BITMAP
(
sheetset_xpm
),
_
(
"page settings (size, texts)"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_TO_LIBRARY
,
wxEmptyString
,
BITMAP
(
libedit_xpm
),
_
(
"go to library editor"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_TO_LIBRARY
,
wxEmptyString
,
BITMAP
(
libedit_xpm
),
_
(
"go to library editor"
)
);
m_HToolBar
->
AddTool
(
ID_TO_LIBVIEW
,
wxEmptyString
,
BITMAP
(
library_browse_xpm
),
_
(
"go to library browse"
)
);
m_HToolBar
->
AddTool
(
ID_TO_LIBVIEW
,
wxEmptyString
,
BITMAP
(
library_browse_xpm
),
_
(
"go to library browse"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_HIERARCHY
,
wxEmptyString
,
BITMAP
(
hierarchy_nav_xpm
),
_
(
"Schematic Hierarchy Navigator"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_HIERARCHY
,
wxEmptyString
,
BITMAP
(
hierarchy_nav_xpm
),
_
(
"Schematic Hierarchy Navigator"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
wxID_CUT
,
wxEmptyString
,
BITMAP
(
cut_button
),
_
(
"Cut selected item"
)
);
m_HToolBar
->
AddTool
(
wxID_CUT
,
wxEmptyString
,
BITMAP
(
cut_button
),
_
(
"Cut selected item"
)
);
m_HToolBar
->
AddTool
(
wxID_COPY
,
wxEmptyString
,
BITMAP
(
copy_button
),
_
(
"Copy selected item"
)
);
m_HToolBar
->
AddTool
(
wxID_COPY
,
wxEmptyString
,
BITMAP
(
copy_button
),
_
(
"Copy selected item"
)
);
m_HToolBar
->
AddTool
(
wxID_PASTE
,
wxEmptyString
,
BITMAP
(
paste_xpm
),
_
(
"Paste"
)
);
m_HToolBar
->
AddTool
(
wxID_PASTE
,
wxEmptyString
,
BITMAP
(
paste_xpm
),
_
(
"Paste"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_SCHEMATIC_UNDO
,
wxEmptyString
,
BITMAP
(
undo_xpm
),
_
(
"Undo last edition"
)
);
m_HToolBar
->
AddTool
(
ID_SCHEMATIC_REDO
,
wxEmptyString
,
BITMAP
(
redo_xpm
),
_
(
"Redo the last undo command"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_SCHEMATIC_UNDO
,
wxEmptyString
,
BITMAP
(
undo_xpm
),
_
(
"Undo last edition"
)
);
m_HToolBar
->
AddTool
(
ID_SCHEMATIC_REDO
,
wxEmptyString
,
BITMAP
(
redo_xpm
),
_
(
"Redo the last undo command"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_GEN_PRINT
,
wxEmptyString
,
BITMAP
(
print_button
),
_
(
"Print schematic"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_GEN_PRINT
,
wxEmptyString
,
BITMAP
(
print_button
),
_
(
"Print schematic"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_TO_CVPCB
,
wxEmptyString
,
BITMAP
(
cvpcb_xpm
),
_
(
"Run Cvpcb"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_TO_CVPCB
,
wxEmptyString
,
BITMAP
(
cvpcb_xpm
),
_
(
"Run Cvpcb"
)
);
m_HToolBar
->
AddTool
(
ID_TO_PCB
,
wxEmptyString
,
BITMAP
(
pcbnew_xpm
),
_
(
"Run Pcbnew"
)
);
m_HToolBar
->
AddTool
(
ID_TO_PCB
,
wxEmptyString
,
BITMAP
(
pcbnew_xpm
),
_
(
"Run Pcbnew"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_ZOOM_PLUS_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_in_xpm
),
_
(
"zoom + (F1)"
));
m_HToolBar
->
AddSeparator
();
msg
=
AddHotkeyName
(
_
(
"zoom +"
),
s_Schematic_Hotkey_List
,
HK_ZOOM_IN
);
m_HToolBar
->
AddTool
(
ID_ZOOM_PLUS_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_in_xpm
),
msg
);
m_HToolBar
->
AddTool
(
ID_ZOOM_MOINS_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_out_xpm
),
_
(
"zoom - (F2)"
));
msg
=
AddHotkeyName
(
_
(
"zoom -"
),
s_Schematic_Hotkey_List
,
HK_ZOOM_OUT
);
m_HToolBar
->
AddTool
(
ID_ZOOM_MOINS_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_out_xpm
),
msg
);
m_HToolBar
->
AddTool
(
ID_ZOOM_REDRAW_BUTT
,
wxEmptyString
,
BITMAP
(
repaint_xpm
),
_
(
"redraw (F3)"
)
);
msg
=
AddHotkeyName
(
_
(
"redraw"
),
s_Schematic_Hotkey_List
,
HK_ZOOM_REDRAW
);
m_HToolBar
->
AddTool
(
ID_ZOOM_REDRAW_BUTT
,
wxEmptyString
,
BITMAP
(
repaint_xpm
),
msg
);
m_HToolBar
->
AddTool
(
ID_ZOOM_PAGE_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_optimal_xpm
),
_
(
"auto zoom"
)
);
m_HToolBar
->
AddTool
(
ID_ZOOM_PAGE_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_optimal_xpm
),
_
(
"auto zoom"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_FIND_ITEMS
,
wxEmptyString
,
BITMAP
(
find_xpm
),
_
(
"Find components and texts"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_FIND_ITEMS
,
wxEmptyString
,
BITMAP
(
find_xpm
),
_
(
"Find components and texts"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_GET_NETLIST
,
wxEmptyString
,
BITMAP
(
netlist_xpm
),
_
(
"Netlist generation"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_GET_NETLIST
,
wxEmptyString
,
BITMAP
(
netlist_xpm
),
_
(
"Netlist generation"
)
);
m_HToolBar
->
AddTool
(
ID_GET_ANNOTATE
,
wxEmptyString
,
BITMAP
(
annotate_xpm
),
_
(
"Schematic Annotation"
)
);
m_HToolBar
->
AddTool
(
ID_GET_ANNOTATE
,
wxEmptyString
,
BITMAP
(
annotate_xpm
),
_
(
"Schematic Annotation"
)
);
m_HToolBar
->
AddTool
(
ID_GET_ERC
,
wxEmptyString
,
BITMAP
(
erc_xpm
),
_
(
"Schematic Electric Rules Check"
)
);
m_HToolBar
->
AddTool
(
ID_GET_ERC
,
wxEmptyString
,
BITMAP
(
erc_xpm
),
_
(
"Schematic Electric Rules Check"
)
);
m_HToolBar
->
AddTool
(
ID_GET_TOOLS
,
wxEmptyString
,
BITMAP
(
tools_xpm
),
_
(
"Bill of material and/or Crossreferences"
)
);
m_HToolBar
->
AddTool
(
ID_GET_TOOLS
,
wxEmptyString
,
BITMAP
(
tools_xpm
),
_
(
"Bill of material and/or Crossreferences"
)
);
// after adding the buttons to the toolbar, must call Realize() to reflect
// the changes
m_HToolBar
->
Realize
();
SetToolbars
();
// after adding the tools to the toolbar, must call Realize() to reflect the changes
m_HToolBar
->
Realize
();
SetToolbars
();
}
/*************************************************/
void
WinEDA_SchematicFrame
::
ReCreateVToolbar
(
void
)
void
WinEDA_SchematicFrame
::
ReCreateVToolbar
(
void
)
/*************************************************/
/* Create Vertical Right Toolbar
*/
*/
{
if
(
m_VToolBar
)
return
;
m_VToolBar
=
new
WinEDA_Toolbar
(
TOOLBAR_TOOL
,
this
,
ID_V_TOOLBAR
,
FALSE
);
// Set up toolbar
m_VToolBar
->
AddTool
(
ID_NO_SELECT_BUTT
,
wxEmptyString
,
BITMAP
(
cursor_xpm
),
wxEmptyString
,
wxITEM_CHECK
);
m_VToolBar
->
ToggleTool
(
ID_NO_SELECT_BUTT
,
TRUE
);
m_VToolBar
->
AddTool
(
ID_HIERARCHY_PUSH_POP_BUTT
,
wxEmptyString
,
BITMAP
(
hierarchy_cursor_xpm
),
_
(
"Hierarchy Push/Pop"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_COMPONENT_BUTT
,
wxEmptyString
,
BITMAP
(
add_component_xpm
),
_
(
"Add components"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_PLACE_POWER_BUTT
,
wxEmptyString
,
BITMAP
(
add_power_xpm
),
_
(
"Add powers"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_WIRE_BUTT
,
wxEmptyString
,
BITMAP
(
add_line_xpm
),
_
(
"Add wires"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_BUS_BUTT
,
wxEmptyString
,
BITMAP
(
add_bus_xpm
),
_
(
"Add bus"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_WIRETOBUS_ENTRY_BUTT
,
wxEmptyString
,
BITMAP
(
add_line2bus_xpm
),
_
(
"Add wire to bus entry"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_BUSTOBUS_ENTRY_BUTT
,
wxEmptyString
,
BITMAP
(
add_bus2bus_xpm
),
_
(
"Add bus to bus entry"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_NOCONN_BUTT
,
wxEmptyString
,
BITMAP
(
noconn_button
),
_
(
"Add no connect flag"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_LABEL_BUTT
,
wxEmptyString
,
BITMAP
(
add_line_label_xpm
),
_
(
"Add wire or bus label"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_GLABEL_BUTT
,
wxEmptyString
,
BITMAP
(
add_glabel_xpm
),
_
(
"Add global label"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_JUNCTION_BUTT
,
wxEmptyString
,
BITMAP
(
add_junction_xpm
),
_
(
"Add junction"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_SHEET_SYMBOL_BUTT
,
wxEmptyString
,
BITMAP
(
add_hierar_symbol_xpm
),
_
(
"Add hierarchical symbol (sheet)"
)
,
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_IMPORT_GLABEL_BUTT
,
wxEmptyString
,
BITMAP
(
import_glabel_xpm
),
_
(
"import glabel from sheet & create pinsheet"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_SHEET_LABEL_BUTT
,
wxEmptyString
,
BITMAP
(
add_hierar_pin_xpm
),
_
(
"Add hierachical pin to sheet"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_LINE_COMMENT_BUTT
,
wxEmptyString
,
BITMAP
(
add_dashed_line_xpm
),
_
(
"Add graphic line or polygon"
)
,
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_TEXT_COMMENT_BUTT
,
wxEmptyString
,
BITMAP
(
add_text_xpm
),
_
(
"Add graphic text (comment)"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_SCHEMATIC_DELETE_ITEM_BUTT
,
wxEmptyString
,
BITMAP
(
delete_body_xpm
),
_
(
"Delete items"
),
wxITEM_CHECK
);
m_VToolBar
->
Realize
();
SetToolbars
();
if
(
m_VToolBar
)
return
;
m_VToolBar
=
new
WinEDA_Toolbar
(
TOOLBAR_TOOL
,
this
,
ID_V_TOOLBAR
,
FALSE
);
// Set up toolbar
m_VToolBar
->
AddTool
(
ID_NO_SELECT_BUTT
,
wxEmptyString
,
BITMAP
(
cursor_xpm
),
wxEmptyString
,
wxITEM_CHECK
);
m_VToolBar
->
ToggleTool
(
ID_NO_SELECT_BUTT
,
TRUE
);
m_VToolBar
->
AddTool
(
ID_HIERARCHY_PUSH_POP_BUTT
,
wxEmptyString
,
BITMAP
(
hierarchy_cursor_xpm
),
_
(
"Hierarchy Push/Pop"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_COMPONENT_BUTT
,
wxEmptyString
,
BITMAP
(
add_component_xpm
),
_
(
"Add components"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_PLACE_POWER_BUTT
,
wxEmptyString
,
BITMAP
(
add_power_xpm
),
_
(
"Add powers"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_WIRE_BUTT
,
wxEmptyString
,
BITMAP
(
add_line_xpm
),
_
(
"Add wires"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_BUS_BUTT
,
wxEmptyString
,
BITMAP
(
add_bus_xpm
),
_
(
"Add bus"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_WIRETOBUS_ENTRY_BUTT
,
wxEmptyString
,
BITMAP
(
add_line2bus_xpm
),
_
(
"Add wire to bus entry"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_BUSTOBUS_ENTRY_BUTT
,
wxEmptyString
,
BITMAP
(
add_bus2bus_xpm
),
_
(
"Add bus to bus entry"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_NOCONN_BUTT
,
wxEmptyString
,
BITMAP
(
noconn_button
),
_
(
"Add no connect flag"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_LABEL_BUTT
,
wxEmptyString
,
BITMAP
(
add_line_label_xpm
),
_
(
"Add wire or bus label"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_GLABEL_BUTT
,
wxEmptyString
,
BITMAP
(
add_glabel_xpm
),
_
(
"Add global label"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_JUNCTION_BUTT
,
wxEmptyString
,
BITMAP
(
add_junction_xpm
),
_
(
"Add junction"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_SHEET_SYMBOL_BUTT
,
wxEmptyString
,
BITMAP
(
add_hierar_symbol_xpm
),
_
(
"Add hierarchical symbol (sheet)"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_IMPORT_GLABEL_BUTT
,
wxEmptyString
,
BITMAP
(
import_glabel_xpm
),
_
(
"import glabel from sheet & create pinsheet"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_SHEET_LABEL_BUTT
,
wxEmptyString
,
BITMAP
(
add_hierar_pin_xpm
),
_
(
"Add hierachical pin to sheet"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_LINE_COMMENT_BUTT
,
wxEmptyString
,
BITMAP
(
add_dashed_line_xpm
),
_
(
"Add graphic line or polygon"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_TEXT_COMMENT_BUTT
,
wxEmptyString
,
BITMAP
(
add_text_xpm
),
_
(
"Add graphic text (comment)"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_SCHEMATIC_DELETE_ITEM_BUTT
,
wxEmptyString
,
BITMAP
(
delete_body_xpm
),
_
(
"Delete items"
),
wxITEM_CHECK
);
m_VToolBar
->
Realize
();
SetToolbars
();
}
/****************************************************************/
void
WinEDA_SchematicFrame
::
ReCreateOptToolbar
(
void
)
void
WinEDA_SchematicFrame
::
ReCreateOptToolbar
(
void
)
/****************************************************************/
/* Create Vertical Left Toolbar (Option Toolbar)
*/
*/
{
if
(
m_OptionsToolBar
)
return
;
if
(
m_OptionsToolBar
)
return
;
// creation du tool bar options
m_OptionsToolBar
=
new
WinEDA_Toolbar
(
TOOLBAR_OPTION
,
this
,
ID_OPT_TOOLBAR
,
FALSE
);
// creation du tool bar options
m_OptionsToolBar
=
new
WinEDA_Toolbar
(
TOOLBAR_OPTION
,
this
,
ID_OPT_TOOLBAR
,
FALSE
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SHOW_GRID
,
wxEmptyString
,
BITMAP
(
grid_xpm
),
_
(
"Display Grid OFF"
),
wxITEM_CHECK
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SHOW_GRID
,
wxEmptyString
,
BITMAP
(
grid_xpm
),
_
(
"Display Grid OFF"
),
wxITEM_CHECK
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SELECT_UNIT_INCH
,
wxEmptyString
,
BITMAP
(
unit_inch_xpm
),
_
(
"Units = Inch"
),
wxITEM_CHECK
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SELECT_UNIT_INCH
,
wxEmptyString
,
BITMAP
(
unit_inch_xpm
),
_
(
"Units = Inch"
),
wxITEM_CHECK
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SELECT_UNIT_MM
,
wxEmptyString
,
BITMAP
(
unit_mm_xpm
),
_
(
"Units = mm"
),
wxITEM_CHECK
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SELECT_UNIT_MM
,
wxEmptyString
,
BITMAP
(
unit_mm_xpm
),
_
(
"Units = mm"
),
wxITEM_CHECK
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SELECT_CURSOR
,
wxEmptyString
,
BITMAP
(
cursor_shape_xpm
),
_
(
"Change Cursor Shape"
),
wxITEM_CHECK
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SELECT_CURSOR
,
wxEmptyString
,
BITMAP
(
cursor_shape_xpm
),
_
(
"Change Cursor Shape"
),
wxITEM_CHECK
);
m_OptionsToolBar
->
AddSeparator
();
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_HIDDEN_PINS
,
wxEmptyString
,
BITMAP
(
hidden_pin_xpm
),
_
(
"Show Hidden Pins"
),
wxITEM_CHECK
);
m_OptionsToolBar
->
AddSeparator
();
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_HIDDEN_PINS
,
wxEmptyString
,
BITMAP
(
hidden_pin_xpm
),
_
(
"Show Hidden Pins"
),
wxITEM_CHECK
);
m_OptionsToolBar
->
AddSeparator
();
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_BUS_WIRES_ORIENT
,
wxEmptyString
,
BITMAP
(
lines90_xpm
),
_
(
"HV orientation for Wires and Bus"
),
wxITEM_CHECK
);
m_OptionsToolBar
->
AddSeparator
();
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_BUS_WIRES_ORIENT
,
wxEmptyString
,
BITMAP
(
lines90_xpm
),
_
(
"HV orientation for Wires and Bus"
),
wxITEM_CHECK
);
m_OptionsToolBar
->
Realize
();
m_OptionsToolBar
->
Realize
();
SetToolbars
();
SetToolbars
();
}
/*******************************************************************************************/
void
WinEDA_SchematicFrame
::
OnSelectOptionToolbar
(
wxCommandEvent
&
event
)
void
WinEDA_SchematicFrame
::
OnSelectOptionToolbar
(
wxCommandEvent
&
event
)
/*******************************************************************************************/
{
if
(
DrawPanel
==
NULL
)
return
;
int
id
=
event
.
GetId
();
wxClientDC
dc
(
DrawPanel
);
DrawPanel
->
PrepareGraphicContext
(
&
dc
);
switch
(
id
)
{
case
ID_TB_OPTIONS_SHOW_GRID
:
g_ShowGrid
=
m_Draw_Grid
=
m_OptionsToolBar
->
GetToolState
(
id
);
ReDrawPanel
();
break
;
case
ID_TB_OPTIONS_SELECT_UNIT_MM
:
g_UnitMetric
=
MILLIMETRE
;
Affiche_Status_Box
();
/* Reaffichage des coord curseur */
break
;
case
ID_TB_OPTIONS_SELECT_UNIT_INCH
:
g_UnitMetric
=
INCHES
;
Affiche_Status_Box
();
/* Reaffichage des coord curseur */
break
;
case
ID_TB_OPTIONS_SELECT_CURSOR
:
DrawPanel
->
CursorOff
(
&
dc
);
g_CursorShape
=
m_OptionsToolBar
->
GetToolState
(
id
);
DrawPanel
->
CursorOn
(
&
dc
);
break
;
case
ID_TB_OPTIONS_HIDDEN_PINS
:
g_ShowAllPins
=
m_OptionsToolBar
->
GetToolState
(
id
);
DrawPanel
->
ReDraw
(
&
dc
,
TRUE
);
break
;
case
ID_TB_OPTIONS_BUS_WIRES_ORIENT
:
g_HVLines
=
m_OptionsToolBar
->
GetToolState
(
id
);
break
;
default
:
DisplayError
(
this
,
wxT
(
"OnSelectOptionToolbar() error"
)
);
break
;
}
SetToolbars
();
if
(
DrawPanel
==
NULL
)
return
;
int
id
=
event
.
GetId
();
wxClientDC
dc
(
DrawPanel
);
DrawPanel
->
PrepareGraphicContext
(
&
dc
);
switch
(
id
)
{
case
ID_TB_OPTIONS_SHOW_GRID
:
g_ShowGrid
=
m_Draw_Grid
=
m_OptionsToolBar
->
GetToolState
(
id
);
ReDrawPanel
();
break
;
case
ID_TB_OPTIONS_SELECT_UNIT_MM
:
g_UnitMetric
=
MILLIMETRE
;
Affiche_Status_Box
();
/* Reaffichage des coord curseur */
break
;
case
ID_TB_OPTIONS_SELECT_UNIT_INCH
:
g_UnitMetric
=
INCHES
;
Affiche_Status_Box
();
/* Reaffichage des coord curseur */
break
;
case
ID_TB_OPTIONS_SELECT_CURSOR
:
DrawPanel
->
CursorOff
(
&
dc
);
g_CursorShape
=
m_OptionsToolBar
->
GetToolState
(
id
);
DrawPanel
->
CursorOn
(
&
dc
);
break
;
case
ID_TB_OPTIONS_HIDDEN_PINS
:
g_ShowAllPins
=
m_OptionsToolBar
->
GetToolState
(
id
);
DrawPanel
->
ReDraw
(
&
dc
,
TRUE
);
break
;
case
ID_TB_OPTIONS_BUS_WIRES_ORIENT
:
g_HVLines
=
m_OptionsToolBar
->
GetToolState
(
id
);
break
;
default
:
DisplayError
(
this
,
wxT
(
"OnSelectOptionToolbar() error"
)
);
break
;
}
SetToolbars
();
}
include/build_version.h
View file @
f5eae506
...
...
@@ -5,7 +5,7 @@
COMMON_GLOBL
wxString
g_BuildVersion
#ifdef EDA_BASE
(
wxT
(
"(2007-08-
21
)"
))
(
wxT
(
"(2007-08-
30
)"
))
#endif
;
...
...
include/hotkeys_basic.h
View file @
f5eae506
/*******************/
/* hotkeys_basic.h */
/*******************/
/*******************/
/* hotkeys_basic.h */
/*******************/
/* Some functions to handle hotkeys in kicad
*/
*/
#ifndef HOTKEYS_BASIC_H
#define HOTKEYS_BASIC_H
#define DEFAULT_HOTKEY_FILENAME_EXT wxT(
".key"
)
#define DEFAULT_HOTKEY_FILENAME_EXT wxT(
".key"
)
/* define default path for config key file */
#ifdef __WINDOWS__
#define DEFAULT_HOTKEY_FILENAME_PATH EDA_Appl->m_BinDir + wxT(
"../template/"
)
#define DEFAULT_HOTKEY_FILENAME_PATH EDA_Appl->m_BinDir + wxT(
"../template/"
)
#else
#define DEFAULT_HOTKEY_FILENAME_PATH wxGetHomeDir() + wxT(
"/"
)
#define DEFAULT_HOTKEY_FILENAME_PATH wxGetHomeDir() + wxT(
"/"
)
#endif
/* Class to handle hotkey commnands. hotkeys have a default value
This class allows (for the future..) the real key code changed by user(from a key code list file, TODO)
*/
*
This class allows (for the future..) the real key code changed by user(from a key code list file, TODO)
*/
class
Ki_HotkeyInfo
{
public
:
int
m_KeyCode
;
// Key code (ascii value for ascii keys or wxWidgets code for function key
wxString
m_InfoMsg
;
// info message.
int
m_Idcommand
;
// internal id for the corresponding command (see hotkey_id_commnand list)
int
m_KeyCode
;
// Key code (ascii value for ascii keys or wxWidgets code for function key
wxString
m_InfoMsg
;
// info message.
int
m_Idcommand
;
// internal id for the corresponding command (see hotkey_id_commnand list)
public
:
Ki_HotkeyInfo
(
const
wxChar
*
infomsg
,
int
idcommand
,
int
keycode
);
Ki_HotkeyInfo
(
const
wxChar
*
infomsg
,
int
idcommand
,
int
keycode
);
};
/* Functions:
*/
wxString
ReturnKeyNameFromKeyCode
(
int
keycode
);
void
DisplayHotkeyList
(
WinEDA_DrawFrame
*
frame
,
Ki_HotkeyInfo
**
List
);
int
GetCommandCodeFromHotkey
(
int
key
,
Ki_HotkeyInfo
**
List
);
*/
wxString
ReturnKeyNameFromKeyCode
(
int
keycode
);
wxString
ReturnKeyNameFromCommandId
(
Ki_HotkeyInfo
**
List
,
int
CommandId
);
wxString
AddHotkeyName
(
const
wxString
&
text
,
Ki_HotkeyInfo
**
List
,
int
CommandId
);
void
DisplayHotkeyList
(
WinEDA_DrawFrame
*
frame
,
Ki_HotkeyInfo
**
List
);
int
GetCommandCodeFromHotkey
(
int
key
,
Ki_HotkeyInfo
**
List
);
#endif // HOTKEYS_BASIC_H
internat/fr/kicad.mo
View file @
f5eae506
No preview for this file type
internat/fr/kicad.po
View file @
f5eae506
...
...
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: kicad\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2007-08-
27 11:02
+0100\n"
"PO-Revision-Date: 2007-08-
30 11:16
+0100\n"
"Last-Translator: \n"
"Language-Team: kicad team <jean-pierre.charras@ujf-grenoble.fr>\n"
"MIME-Version: 1.0\n"
...
...
@@ -132,8 +132,8 @@ msgstr "Ok"
#: eeschema/libedit_onrightclick.cpp:83
#: eeschema/sheetlab.cpp:105
#: eeschema/optionsframe.cpp:155
#: eeschema/onrightclick.cpp:11
3
#: eeschema/onrightclick.cpp:12
8
#: eeschema/onrightclick.cpp:11
4
#: eeschema/onrightclick.cpp:12
9
#: eeschema/options.cpp:114
#: eeschema/libedpart.cpp:219
#: gerbview/options.cpp:175
...
...
@@ -197,6 +197,7 @@ msgstr "Orientation"
#: pcbnew/dialog_edit_module.cpp:291
#: eeschema/dialog_options.cpp:229
#: eeschema/editpart.cpp:323
#: eeschema/onrightclick.cpp:299
#: eeschema/options.cpp:177
#: eeschema/dialog_edit_component_in_schematic.cpp:182
msgid "Normal"
...
...
@@ -372,7 +373,7 @@ msgid "Do not Show Zones"
msgstr "Ne pas monter Zones"
#: pcbnew/pcbframe.cpp:420
#: pcbnew/tool_pcb.cpp:3
52
#: pcbnew/tool_pcb.cpp:3
61
#: pcbnew/set_color.cpp:387
msgid "Show Zones"
msgstr "Monter Zones"
...
...
@@ -398,7 +399,7 @@ msgid "Normal Contrast Mode Display"
msgstr "Mode d'affichage Contraste normal"
#: pcbnew/pcbframe.cpp:441
#: pcbnew/tool_pcb.cpp:3
65
#: pcbnew/tool_pcb.cpp:3
74
msgid "Hight Contrast Mode Display"
msgstr "Mode d'affichage Haut Contraste"
...
...
@@ -563,7 +564,7 @@ msgid "Import Module:"
msgstr "Importer Module:"
#: pcbnew/librairi.cpp:62
#: pcbnew/files.cpp:18
4
#: pcbnew/files.cpp:18
3
#: cvpcb/readschematicnetlist.cpp:51
#: cvpcb/rdpcad.cpp:45
#, c-format
...
...
@@ -641,7 +642,7 @@ msgstr "Module [%s] non trouv
#: eeschema/plothpgl.cpp:560
#: cvpcb/genequiv.cpp:42
#: gerbview/export_to_pcbnew.cpp:58
#: common/hotkeys_basic.cpp:
26
1
#: common/hotkeys_basic.cpp:
34
1
msgid "Unable to create "
msgstr "Impossible de crer "
...
...
@@ -866,7 +867,7 @@ msgstr "Ajouter Pastilles"
#: pcbnew/globaleditpad.cpp:96
#: pcbnew/menubarpcb.cpp:215
#: pcbnew/menubarmodedit.cpp:45
#: pcbnew/tool_modedit.cpp:1
25
#: pcbnew/tool_modedit.cpp:1
33
msgid "Pad Settings"
msgstr "Caract pads"
...
...
@@ -876,7 +877,7 @@ msgid "Add Drawing"
msgstr "Ajout d'lments graphiques"
#: pcbnew/modedit.cpp:330
#: pcbnew/tool_modedit.cpp:1
7
5
#: pcbnew/tool_modedit.cpp:1
8
5
msgid "Place anchor"
msgstr "Place Ancre"
...
...
@@ -900,7 +901,7 @@ msgstr "Forme"
#: pcbnew/classpcb.cpp:186
#: pcbnew/dialog_pad_edit.cpp:176
#: pcbnew/dialog_pad_edit.cpp:19
8
#: pcbnew/dialog_pad_edit.cpp:19
6
#: pcbnew/class_track.cpp:680
msgid "Circle"
msgstr "Cercle"
...
...
@@ -921,7 +922,7 @@ msgstr "Segment"
#: pcbnew/class_text_mod.cpp:349
#: pcbnew/class_pcb_text.cpp:167
#: pcbnew/class_module.cpp:1116
#: pcbnew/class_pad.cpp:90
9
#: pcbnew/class_pad.cpp:90
7
#: pcbnew/class_track.cpp:710
#: gerbview/affiche.cpp:109
msgid "Layer"
...
...
@@ -1112,7 +1113,7 @@ msgid "Add Tracks"
msgstr "Addition de pistes"
#: pcbnew/edit.cpp:574
#: pcbnew/tool_pcb.cpp:42
0
#: pcbnew/tool_pcb.cpp:42
9
msgid "Add Zones"
msgstr "Addition de Zones"
...
...
@@ -1133,8 +1134,8 @@ msgid "Add Graphic"
msgstr "Addition lments graphiques"
#: pcbnew/edit.cpp:597
#: pcbnew/tool_pcb.cpp:4
37
#: pcbnew/tool_modedit.cpp:1
7
0
#: pcbnew/tool_pcb.cpp:4
46
#: pcbnew/tool_modedit.cpp:1
8
0
#: eeschema/schedit.cpp:313
#: eeschema/libframe.cpp:487
#: gerbview/tool_gerber.cpp:361
...
...
@@ -1146,7 +1147,7 @@ msgid "Add Modules"
msgstr "Addition de Modules"
#: pcbnew/edit.cpp:605
#: pcbnew/tool_pcb.cpp:4
42
#: pcbnew/tool_pcb.cpp:4
51
msgid "Add Cotation"
msgstr "Addition de Cotations"
...
...
@@ -1320,7 +1321,7 @@ msgstr "Largeur Texte Module"
#: pcbnew/dialog_initpcb.cpp:161
#: pcbnew/dialog_display_options.cpp:280
#: pcbnew/set_grid.cpp:171
#: pcbnew/dialog_pad_edit.cpp:2
21
#: pcbnew/dialog_pad_edit.cpp:2
17
#: pcbnew/dialog_track_options.cpp:181
#: pcbnew/dialog_general_options.cpp:364
#: eeschema/sheet.cpp:221
...
...
@@ -1343,7 +1344,7 @@ msgstr "&OK"
#: pcbnew/dialog_display_options.cpp:284
#: pcbnew/zones.cpp:216
#: pcbnew/set_grid.cpp:176
#: pcbnew/dialog_pad_edit.cpp:22
5
#: pcbnew/dialog_pad_edit.cpp:22
1
#: pcbnew/dialog_track_options.cpp:185
#: pcbnew/dialog_general_options.cpp:368
#: eeschema/sheet.cpp:216
...
...
@@ -1366,7 +1367,7 @@ msgstr "Fenetre 3D d
msgid "3D Viewer"
msgstr "Visu 3D"
#: pcbnew/tool_pcb.cpp:5
0
#: pcbnew/tool_pcb.cpp:5
2
msgid ""
"Show active layer selections\n"
"and select layer pair for route and place via"
...
...
@@ -1374,182 +1375,171 @@ msgstr ""
"Affiche selections couche active\n"
"et selection paire de couches pour routage and placement via"
#: pcbnew/tool_pcb.cpp:23
6
#: pcbnew/tool_pcb.cpp:23
9
msgid "New Board"
msgstr "Nouveau Circuit Imprim"
#: pcbnew/tool_pcb.cpp:2
38
#: pcbnew/tool_pcb.cpp:2
41
msgid "Open existing Board"
msgstr "Ouvrir C.I. existant"
#: pcbnew/tool_pcb.cpp:2
39
#: pcbnew/tool_pcb.cpp:2
42
msgid "Save Board"
msgstr "Sauver Circuit Imprim"
#: pcbnew/tool_pcb.cpp:24
3
#: eeschema/tool_sch.cpp:6
1
#: pcbnew/tool_pcb.cpp:24
6
#: eeschema/tool_sch.cpp:6
5
#: gerbview/tool_gerber.cpp:217
msgid "page settings (size, texts)"
msgstr "Ajustage de la feuille de dessin (dimensions, textes)"
#: pcbnew/tool_pcb.cpp:2
47
#: pcbnew/tool_pcb.cpp:2
50
msgid "Open Module Editor"
msgstr "Ouvrir Editeur de modules"
#: pcbnew/tool_pcb.cpp:25
0
#: eeschema/tool_sch.cpp:
77
#: pcbnew/tool_pcb.cpp:25
3
#: eeschema/tool_sch.cpp:
81
#: gerbview/tool_gerber.cpp:228
msgid "Cut selected item"
msgstr "Suppression des lments slectionns"
#: pcbnew/tool_pcb.cpp:25
4
#: eeschema/tool_sch.cpp:8
0
#: pcbnew/tool_pcb.cpp:25
7
#: eeschema/tool_sch.cpp:8
4
#: gerbview/tool_gerber.cpp:233
msgid "Copy selected item"
msgstr "Copie des lments slectionns"
#: pcbnew/tool_pcb.cpp:25
6
#: eeschema/tool_sch.cpp:8
3
#: pcbnew/tool_pcb.cpp:25
9
#: eeschema/tool_sch.cpp:8
7
#: gerbview/tool_gerber.cpp:239
msgid "Paste"
msgstr "Copie des lments sauvegards"
#: pcbnew/tool_pcb.cpp:2
59
#: pcbnew/tool_pcb.cpp:2
62
#: gerbview/tool_gerber.cpp:246
msgid "Undelete"
msgstr "Annulation du dernier effacement"
#: pcbnew/tool_pcb.cpp:26
2
#: pcbnew/tool_pcb.cpp:26
5
msgid "Print Board"
msgstr "Imprimer C.I."
#: pcbnew/tool_pcb.cpp:26
4
#: pcbnew/tool_pcb.cpp:26
7
#: pcbnew/menubarpcb.cpp:93
msgid "Plot (HPGL, PostScript, or GERBER format)"
msgstr "Tracer en format HPGL, POSTSCRIPT ou GERBER"
#: pcbnew/tool_pcb.cpp:268
#: pcbnew/tool_modedit.cpp:111
#: eeschema/tool_sch.cpp:104
#: eeschema/tool_lib.cpp:170
#: eeschema/tool_viewlib.cpp:70
#: cvpcb/displayframe.cpp:118
#: gerbview/tool_gerber.cpp:260
#: 3d-viewer/3d_toolbar.cpp:43
msgid "zoom + (F1)"
msgstr "zoom + (F1)"
#: pcbnew/tool_pcb.cpp:270
#: pcbnew/tool_modedit.cpp:11
4
#: pcbnew/tool_modedit.cpp:11
5
#: eeschema/tool_sch.cpp:107
#: eeschema/tool_lib.cpp:170
msgid "zoom +"
msgstr "zoom +"
#: pcbnew/tool_pcb.cpp:274
#: pcbnew/tool_modedit.cpp:119
#: eeschema/tool_sch.cpp:111
#: eeschema/tool_lib.cpp:174
#: eeschema/tool_viewlib.cpp:74
#: cvpcb/displayframe.cpp:121
#: gerbview/tool_gerber.cpp:266
#: 3d-viewer/3d_toolbar.cpp:46
msgid "zoom - (F2)"
msgstr "zoom - (F2)"
msgid "zoom -"
msgstr "zoom -"
#: pcbnew/tool_pcb.cpp:27
2
#: pcbnew/tool_modedit.cpp:1
17
#: eeschema/tool_sch.cpp:11
0
#: pcbnew/tool_pcb.cpp:27
8
#: pcbnew/tool_modedit.cpp:1
23
#: eeschema/tool_sch.cpp:11
5
#: eeschema/tool_lib.cpp:178
#: eeschema/tool_viewlib.cpp:78
#: cvpcb/displayframe.cpp:124
#: gerbview/tool_gerber.cpp:272
#: 3d-viewer/3d_toolbar.cpp:49
msgid "redraw (F3)"
msgstr "Redessin (F3)"
msgid "redraw"
msgstr "Redessin"
#: pcbnew/tool_pcb.cpp:2
75
#: pcbnew/tool_modedit.cpp:12
0
#: eeschema/tool_sch.cpp:1
13
#: eeschema/tool_lib.cpp:18
2
#: pcbnew/tool_pcb.cpp:2
83
#: pcbnew/tool_modedit.cpp:12
8
#: eeschema/tool_sch.cpp:1
20
#: eeschema/tool_lib.cpp:18
4
#: gerbview/tool_gerber.cpp:278
#: 3d-viewer/3d_toolbar.cpp:52
msgid "auto zoom"
msgstr "Zoom automatique"
#: pcbnew/tool_pcb.cpp:279
msgid "Find components and texts (Ctrl-F)"
msgstr "Recherche de composants et textes (Ctrl F)"
#: pcbnew/tool_pcb.cpp:286
#: eeschema/tool_sch.cpp:124
msgid "Find components and texts"
msgstr "Recherche de composants et textes"
#: pcbnew/tool_pcb.cpp:2
83
#: pcbnew/tool_pcb.cpp:2
92
msgid "Read Netlist"
msgstr "Lire Netliste"
#: pcbnew/tool_pcb.cpp:2
85
#: pcbnew/tool_pcb.cpp:2
94
msgid "Pcb Design Rules Check"
msgstr "Controle des rgles de conception"
#: pcbnew/tool_pcb.cpp:
296
#: pcbnew/tool_pcb.cpp:
305
msgid "Mode Module: Manual and Automatic Move or Place for modules"
msgstr "Mode Module: Dplacements ou Placement Manuel ou Automatique des modules"
#: pcbnew/tool_pcb.cpp:
299
#: pcbnew/tool_pcb.cpp:
308
msgid "Mode Track and Autorouting"
msgstr "Mode Pistes and Autoroutage"
#: pcbnew/tool_pcb.cpp:3
23
#: pcbnew/tool_pcb.cpp:3
32
msgid "Drc OFF"
msgstr "Drc DESACTIVEE"
#: pcbnew/tool_pcb.cpp:3
25
#: pcbnew/tool_modedit.cpp:2
01
#: eeschema/tool_sch.cpp:2
4
6
#: pcbnew/tool_pcb.cpp:3
34
#: pcbnew/tool_modedit.cpp:2
12
#: eeschema/tool_sch.cpp:2
5
6
#: gerbview/tool_gerber.cpp:389
msgid "Display Grid OFF"
msgstr "Suppression de l'affichage de la grille"
#: pcbnew/tool_pcb.cpp:3
28
#: pcbnew/tool_modedit.cpp:2
05
#: pcbnew/tool_pcb.cpp:3
37
#: pcbnew/tool_modedit.cpp:2
16
#: gerbview/tool_gerber.cpp:395
msgid "Display Polar Coord ON"
msgstr "Activer affichage coord Polaires"
#: pcbnew/tool_pcb.cpp:33
0
#: pcbnew/tool_modedit.cpp:2
09
#: eeschema/tool_sch.cpp:2
5
0
#: pcbnew/tool_pcb.cpp:33
9
#: pcbnew/tool_modedit.cpp:2
20
#: eeschema/tool_sch.cpp:2
6
0
#: gerbview/tool_gerber.cpp:399
msgid "Units = Inch"
msgstr "Units = pouce"
#: pcbnew/tool_pcb.cpp:3
32
#: pcbnew/tool_modedit.cpp:2
13
#: eeschema/tool_sch.cpp:2
5
4
#: pcbnew/tool_pcb.cpp:3
41
#: pcbnew/tool_modedit.cpp:2
24
#: eeschema/tool_sch.cpp:2
6
4
#: gerbview/tool_gerber.cpp:403
msgid "Units = mm"
msgstr "Units = mm"
#: pcbnew/tool_pcb.cpp:3
35
#: pcbnew/tool_modedit.cpp:2
19
#: eeschema/tool_sch.cpp:2
5
8
#: pcbnew/tool_pcb.cpp:3
44
#: pcbnew/tool_modedit.cpp:2
30
#: eeschema/tool_sch.cpp:2
6
8
#: gerbview/tool_gerber.cpp:409
msgid "Change Cursor Shape"
msgstr "Slection de la forme du curseur"
#: pcbnew/tool_pcb.cpp:34
0
#: pcbnew/tool_pcb.cpp:34
9
msgid "Show General Ratsnest"
msgstr "Monter le chevelu gnral"
#: pcbnew/tool_pcb.cpp:3
43
#: pcbnew/tool_pcb.cpp:3
52
msgid "Show Module Ratsnest when moving"
msgstr "Monter le chevelu du module pendant dplacement"
#: pcbnew/tool_pcb.cpp:3
48
#: pcbnew/tool_pcb.cpp:3
57
msgid "Enable Auto Del Track"
msgstr "Autoriser l'effacement automatique des pistes"
#: pcbnew/tool_pcb.cpp:3
57
#: pcbnew/tool_modedit.cpp:2
27
#: pcbnew/tool_pcb.cpp:3
66
#: pcbnew/tool_modedit.cpp:2
38
msgid "Show Pads Sketch"
msgstr "Afficher pastilles en contour"
#: pcbnew/tool_pcb.cpp:3
61
#: pcbnew/tool_pcb.cpp:3
70
msgid "Show Tracks Sketch"
msgstr "Afficher pistes en contour"
#: pcbnew/tool_pcb.cpp:3
74
#: pcbnew/tool_pcb.cpp:3
83
msgid ""
"Display auxiliary vertical toolbar (tools for micro wave applications)\n"
" This is a very experimental feature (under development)"
...
...
@@ -1557,98 +1547,98 @@ msgstr ""
"Affiche toolbar vertical auxiliaire (outils pour applications micro-ondes)\n"
"C'est un outil exprimental (en cours de dveloppement)"
#: pcbnew/tool_pcb.cpp:4
03
#: pcbnew/tool_pcb.cpp:4
12
msgid "Net highlight"
msgstr "Surbrillance des quipotentielles"
#: pcbnew/tool_pcb.cpp:4
07
#: pcbnew/tool_pcb.cpp:4
16
msgid "Display local ratsnest (pad or module)"
msgstr "Afficher le chevelu local (pastilles ou modules)"
#: pcbnew/tool_pcb.cpp:4
12
#: pcbnew/tool_pcb.cpp:4
21
msgid "Add modules"
msgstr "Addition de Modules"
#: pcbnew/tool_pcb.cpp:4
16
#: pcbnew/tool_pcb.cpp:4
25
msgid "Add Tracks an vias"
msgstr "Ajouter pistes et vias"
#: pcbnew/tool_pcb.cpp:4
25
#: pcbnew/tool_modedit.cpp:1
5
8
#: eeschema/tool_sch.cpp:2
16
#: pcbnew/tool_pcb.cpp:4
34
#: pcbnew/tool_modedit.cpp:1
6
8
#: eeschema/tool_sch.cpp:2
25
msgid "Add graphic line or polygon"
msgstr "Addition de lignes ou polygones graphiques"
#: pcbnew/tool_pcb.cpp:4
29
#: pcbnew/tool_modedit.cpp:1
6
2
#: pcbnew/tool_pcb.cpp:4
38
#: pcbnew/tool_modedit.cpp:1
7
2
msgid "Add graphic circle"
msgstr "Addition de graphiques (Cercle)"
#: pcbnew/tool_pcb.cpp:4
33
#: pcbnew/tool_modedit.cpp:1
6
6
#: pcbnew/tool_pcb.cpp:4
42
#: pcbnew/tool_modedit.cpp:1
7
6
msgid "Add graphic arc"
msgstr "Addition de graphiques (Arc de Cercle)"
#: pcbnew/tool_pcb.cpp:4
46
#: pcbnew/tool_pcb.cpp:4
55
#: gerbview/tool_gerber.cpp:354
msgid "Add Mires"
msgstr "Addition de Mires de superposition"
#: pcbnew/tool_pcb.cpp:4
51
#: pcbnew/tool_modedit.cpp:1
8
0
#: eeschema/tool_sch.cpp:2
25
#: eeschema/tool_lib.cpp:9
2
#: pcbnew/tool_pcb.cpp:4
60
#: pcbnew/tool_modedit.cpp:1
9
0
#: eeschema/tool_sch.cpp:2
34
#: eeschema/tool_lib.cpp:9
3
#: gerbview/tool_gerber.cpp:369
msgid "Delete items"
msgstr "Suppression d'lments"
#: pcbnew/tool_pcb.cpp:4
56
#: pcbnew/tool_pcb.cpp:4
65
msgid "Offset adjust for drill and place files"
msgstr "Ajuste offset pour fichier de perage et placement"
#: pcbnew/tool_pcb.cpp:4
81
#: pcbnew/tool_pcb.cpp:4
90
msgid "Create line of specified length for microwave applications"
msgstr "Creation de lignes de longueur spcifie (pour applications micro-ondes)"
#: pcbnew/tool_pcb.cpp:4
87
#: pcbnew/tool_pcb.cpp:4
96
msgid "Create gap of specified length for microwave applications"
msgstr "Creation de gaps de longueur spcifie (pour applications micro-ondes)"
#: pcbnew/tool_pcb.cpp:
495
#: pcbnew/tool_pcb.cpp:
504
msgid "Create stub of specified length for microwave applications"
msgstr "Creation de stub de longueur spcifie (pour applications micro-ondes)"
#: pcbnew/tool_pcb.cpp:5
01
#: pcbnew/tool_pcb.cpp:5
10
msgid "Create stub (arc) of specified length for microwave applications"
msgstr "Creation de stub (arc) de longueur spcifie (pour applications micro-ondes)"
#: pcbnew/tool_pcb.cpp:5
08
#: pcbnew/tool_pcb.cpp:5
17
msgid "Create a polynomial shape for microwave applications"
msgstr "Creation de formes polynomiales (pour applications micro-ondes)"
#: pcbnew/tool_pcb.cpp:5
58
#: pcbnew/tool_modedit.cpp:2
73
#: pcbnew/tool_pcb.cpp:5
67
#: pcbnew/tool_modedit.cpp:2
85
#: eeschema/plotps.cpp:169
#: share/zoom.cpp:368
msgid "Auto"
msgstr "Auto"
#: pcbnew/tool_pcb.cpp:5
62
#: pcbnew/tool_pcb.cpp:5
71
msgid "Zoom "
msgstr "Zoom "
#: pcbnew/tool_pcb.cpp:5
76
#: pcbnew/tool_pcb.cpp:5
85
#: pcbnew/set_color.cpp:378
#: gerbview/set_color.h:246
msgid "Grid"
msgstr "Grille"
#: pcbnew/tool_pcb.cpp:
592
#: pcbnew/tool_modedit.cpp:
299
#: pcbnew/tool_pcb.cpp:
601
#: pcbnew/tool_modedit.cpp:
314
msgid "User Grid"
msgstr "Grille perso"
#: pcbnew/tool_pcb.cpp:6
45
#: pcbnew/tool_pcb.cpp:6
54
msgid "+/- to switch"
msgstr "+/- pour commuter"
...
...
@@ -1661,18 +1651,18 @@ msgstr "Valeur incorrecte pour per
msgid "Delete Pad (module %s %s) "
msgstr "Effacer Pad (module %s %s) "
#: pcbnew/hotkeys.cpp:
263
#: pcbnew/hotkeys.cpp:
372
#, c-format
msgid "Footprint %s found, but locked"
msgstr "Module %s trouv, mais verrouill"
#: pcbnew/hotkeys.cpp:
409
#: pcbnew/hotkeys.cpp:
532
msgid "Delete module?"
msgstr "Effacer Module?"
#: pcbnew/dialog_netlist.cpp:133
#: eeschema/editpart.cpp:741
#: eeschema/onrightclick.cpp:3
03
#: eeschema/onrightclick.cpp:3
11
#: eeschema/dialog_create_component.cpp:164
#: eeschema/eelayer.cpp:99
#: eeschema/edit_component_in_schematic.cpp:744
...
...
@@ -1921,7 +1911,7 @@ msgstr "Via %.3f"
#: pcbnew/onrightclick.cpp:169
#: pcbnew/modedit_onclick.cpp:205
#: eeschema/libedit_onrightclick.cpp:73
#: eeschema/onrightclick.cpp:11
7
#: eeschema/onrightclick.cpp:11
8
#: gerbview/onrightclick.cpp:42
msgid "End Tool"
msgstr "Fin Outil"
...
...
@@ -2105,7 +2095,7 @@ msgstr "Lire Donn
#: pcbnew/onrightclick.cpp:486
#: pcbnew/modedit_onclick.cpp:215
#: eeschema/libedit_onrightclick.cpp:251
#: eeschema/onrightclick.cpp:5
67
#: eeschema/onrightclick.cpp:5
75
#: gerbview/onrightclick.cpp:51
msgid "Cancel Block"
msgstr "Annuler Bloc"
...
...
@@ -2119,7 +2109,7 @@ msgstr "Zoom Bloc (drag+bouton milieu)"
#: pcbnew/onrightclick.cpp:491
#: pcbnew/modedit_onclick.cpp:220
#: eeschema/libedit_onrightclick.cpp:259
#: eeschema/onrightclick.cpp:5
75
#: eeschema/onrightclick.cpp:5
83
#: gerbview/onrightclick.cpp:54
msgid "Place Block"
msgstr "Place Bloc"
...
...
@@ -2127,7 +2117,7 @@ msgstr "Place Bloc"
#: pcbnew/onrightclick.cpp:493
#: pcbnew/modedit_onclick.cpp:222
#: eeschema/libedit_onrightclick.cpp:265
#: eeschema/onrightclick.cpp:5
84
#: eeschema/onrightclick.cpp:5
92
msgid "Copy Block (shift + drag mouse)"
msgstr "Copie Bloc (shift + drag mouse)"
...
...
@@ -2295,7 +2285,7 @@ msgid "Rotate + (R)"
msgstr "Rotation + (R)"
#: pcbnew/onrightclick.cpp:659
#: eeschema/onrightclick.cpp:2
89
#: eeschema/onrightclick.cpp:2
94
msgid "Rotate -"
msgstr "Rotation -"
...
...
@@ -2307,7 +2297,7 @@ msgstr "Change face (S)"
#: pcbnew/onrightclick.cpp:712
#: pcbnew/onrightclick.cpp:785
#: pcbnew/modedit_onclick.cpp:315
#: eeschema/onrightclick.cpp:
298
#: eeschema/onrightclick.cpp:
306
msgid "Edit"
msgstr "Editer"
...
...
@@ -2395,11 +2385,11 @@ msgstr "Diam per
msgid "Pad Orient (0.1 deg)"
msgstr "Orient Pad (0.1 deg)"
#: pcbnew/editpads.cpp:33
9
#: pcbnew/editpads.cpp:33
3
msgid "Incorrect value for pad drill: pad drill bigger than pad size"
msgstr "Valeur incorrecte pour diametre de perage.percage plus grand que la taille du pad"
#: pcbnew/editpads.cpp:3
45
#: pcbnew/editpads.cpp:3
39
msgid "Incorrect value for pad offset"
msgstr "Valeur incorrecte pour offset du pad"
...
...
@@ -2794,7 +2784,7 @@ msgid "Current Value"
msgstr "Valeur courante"
#: pcbnew/xchgmod.cpp:156
#: pcbnew/tool_modedit.cpp:
65
#: pcbnew/tool_modedit.cpp:
70
msgid "New Module"
msgstr "Nouveau Module"
...
...
@@ -2938,15 +2928,15 @@ msgid "Pad Net Name :"
msgstr "NetName Pad:"
#: pcbnew/dialog_pad_edit.cpp:177
#: pcbnew/dialog_pad_edit.cpp:19
9
#: pcbnew/dialog_pad_edit.cpp:19
7
msgid "Oval"
msgstr "Ovale"
#: pcbnew/dialog_pad_edit.cpp:17
9
#: pcbnew/dialog_pad_edit.cpp:17
8
msgid "Drill Shape:"
msgstr "Forme du perage:"
#: pcbnew/dialog_pad_edit.cpp:18
7
#: pcbnew/dialog_pad_edit.cpp:18
6
#: pcbnew/clean.cpp:422
#: eeschema/dialog_erc.cpp:192
#: eeschema/dialog_erc.cpp:196
...
...
@@ -2954,120 +2944,120 @@ msgstr "Forme du per
msgid "0"
msgstr "0"
#: pcbnew/dialog_pad_edit.cpp:18
8
#: pcbnew/dialog_pad_edit.cpp:18
7
msgid "90"
msgstr "90"
#: pcbnew/dialog_pad_edit.cpp:18
9
#: pcbnew/dialog_pad_edit.cpp:18
8
#: eeschema/dialog_edit_component_in_schematic.cpp:175
msgid "-90"
msgstr "-90"
#: pcbnew/dialog_pad_edit.cpp:1
90
#: pcbnew/dialog_pad_edit.cpp:1
89
#: eeschema/dialog_edit_component_in_schematic.cpp:174
msgid "180"
msgstr "180"
#: pcbnew/dialog_pad_edit.cpp:19
1
#: pcbnew/dialog_pad_edit.cpp:19
0
#: pcbnew/dialog_edit_module.cpp:245
msgid "User"
msgstr "User"
#: pcbnew/dialog_pad_edit.cpp:19
3
#: pcbnew/dialog_pad_edit.cpp:19
1
msgid "Pad Orient:"
msgstr "Orient pad:"
#: pcbnew/dialog_pad_edit.cpp:
200
#: pcbnew/dialog_pad_edit.cpp:
198
msgid "Rect"
msgstr "Rect"
#: pcbnew/dialog_pad_edit.cpp:
201
#: pcbnew/dialog_pad_edit.cpp:
199
msgid "Trapezoidal"
msgstr "Trapezoidal"
#: pcbnew/dialog_pad_edit.cpp:20
3
#: pcbnew/dialog_pad_edit.cpp:20
0
msgid "Pad Shape:"
msgstr "Forme Pad:"
#: pcbnew/dialog_pad_edit.cpp:20
8
#: pcbnew/dialog_pad_edit.cpp:20
5
#: pcbnew/class_track.cpp:682
msgid "Standard"
msgstr "Standard"
#: pcbnew/dialog_pad_edit.cpp:20
9
#: pcbnew/dialog_pad_edit.cpp:20
6
msgid "SMD"
msgstr "CMS"
#: pcbnew/dialog_pad_edit.cpp:2
10
#: pcbnew/dialog_pad_edit.cpp:2
07
#: eeschema/netlist.cpp:146
msgid "Conn"
msgstr "Conn"
#: pcbnew/dialog_pad_edit.cpp:2
11
#: pcbnew/dialog_pad_edit.cpp:2
08
msgid "Hole"
msgstr "Hole"
#: pcbnew/dialog_pad_edit.cpp:2
12
#: pcbnew/dialog_pad_edit.cpp:2
09
msgid "Mechanical"
msgstr "Mechanical"
#: pcbnew/dialog_pad_edit.cpp:21
4
#: pcbnew/dialog_pad_edit.cpp:21
0
msgid "Pad Type:"
msgstr "Type Pad:"
#: pcbnew/dialog_pad_edit.cpp:22
9
#: pcbnew/dialog_pad_edit.cpp:22
5
msgid "Layers:"
msgstr "Couches:"
#: pcbnew/dialog_pad_edit.cpp:2
33
#: pcbnew/dialog_pad_edit.cpp:2
29
msgid "Copper layer"
msgstr "Couches Cuivre"
#: pcbnew/dialog_pad_edit.cpp:23
7
#: pcbnew/dialog_pad_edit.cpp:23
3
msgid "Comp layer"
msgstr "Couche Cmp"
#: pcbnew/dialog_pad_edit.cpp:2
43
#: pcbnew/dialog_pad_edit.cpp:2
39
msgid "Adhesive Cmp"
msgstr "Adhesive Cmp"
#: pcbnew/dialog_pad_edit.cpp:24
7
#: pcbnew/dialog_pad_edit.cpp:24
3
msgid "Adhesive Copper"
msgstr "Adhesive Cu"
#: pcbnew/dialog_pad_edit.cpp:2
51
#: pcbnew/dialog_pad_edit.cpp:2
47
msgid "Solder paste Cmp"
msgstr "Pate souder Cmp"
#: pcbnew/dialog_pad_edit.cpp:25
5
#: pcbnew/dialog_pad_edit.cpp:25
1
msgid "Solder paste Copper"
msgstr "Pate souder cuivre"
#: pcbnew/dialog_pad_edit.cpp:25
9
#: pcbnew/dialog_pad_edit.cpp:25
5
msgid "Silkscreen Cmp"
msgstr "Srigr Cmp"
#: pcbnew/dialog_pad_edit.cpp:2
63
#: pcbnew/dialog_pad_edit.cpp:2
59
msgid "Silkscreen Copper"
msgstr "Srigr Cu "
#: pcbnew/dialog_pad_edit.cpp:26
7
#: pcbnew/dialog_pad_edit.cpp:26
3
msgid "Solder mask Cmp"
msgstr "Masque soudure Cmp"
#: pcbnew/dialog_pad_edit.cpp:2
71
#: pcbnew/dialog_pad_edit.cpp:2
67
msgid "Solder mask Copper"
msgstr "Masque soudure cuivre"
#: pcbnew/dialog_pad_edit.cpp:27
5
#: pcbnew/dialog_pad_edit.cpp:27
1
msgid "E.C.O.1 layer"
msgstr "couche E.C.O.1"
#: pcbnew/dialog_pad_edit.cpp:27
9
#: pcbnew/dialog_pad_edit.cpp:27
5
msgid "E.C.O.2 layer"
msgstr "couche E.C.O.2"
#: pcbnew/dialog_pad_edit.cpp:2
83
#: pcbnew/dialog_pad_edit.cpp:2
79
msgid "Draft layer"
msgstr "Couche dessin"
...
...
@@ -3430,7 +3420,7 @@ msgstr "Ouvrir Editeur de modules"
#: pcbnew/dialog_edit_module.cpp:195
#: eeschema/fieldedi.cpp:283
#: eeschema/onrightclick.cpp:3
34
#: eeschema/onrightclick.cpp:3
42
#: eeschema/dialog_edit_component_in_lib.cpp:203
#: eeschema/libedpart.cpp:246
msgid "Doc"
...
...
@@ -3449,7 +3439,7 @@ msgid "Add Field"
msgstr "Ajouter Champ"
#: pcbnew/dialog_edit_module.cpp:224
#: eeschema/onrightclick.cpp:26
4
#: eeschema/onrightclick.cpp:26
5
msgid "Edit Field"
msgstr "Editer Champ"
...
...
@@ -3470,7 +3460,7 @@ msgstr "Cuivre"
#: pcbnew/class_text_mod.cpp:359
#: pcbnew/class_pcb_text.cpp:178
#: pcbnew/class_module.cpp:1139
#: pcbnew/class_pad.cpp:9
55
#: pcbnew/class_pad.cpp:9
49
#: eeschema/affiche.cpp:117
#: gerbview/affiche.cpp:49
msgid "Orient"
...
...
@@ -3737,7 +3727,7 @@ msgstr "Outils"
#: pcbnew/gendrill.cpp:400
#: pcbnew/gendrill.cpp:1009
#: pcbnew/gendrill.cpp:1522
#: pcbnew/class_pad.cpp:93
6
#: pcbnew/class_pad.cpp:93
0
#: pcbnew/class_track.cpp:725
#: pcbnew/class_track.cpp:730
msgid "Drill"
...
...
@@ -3772,7 +3762,7 @@ msgstr "Ref."
#: pcbnew/class_edge_mod.cpp:286
#: eeschema/editpart.cpp:776
#: eeschema/component_class.cpp:50
#: eeschema/onrightclick.cpp:3
02
#: eeschema/onrightclick.cpp:3
10
#: eeschema/eelayer.cpp:105
#: eeschema/edit_component_in_schematic.cpp:783
msgid "Value"
...
...
@@ -3786,21 +3776,21 @@ msgstr "Texte"
#: pcbnew/class_text_mod.cpp:326
#: pcbnew/class_edge_mod.cpp:285
#: pcbnew/class_module.cpp:1142
#: pcbnew/class_pad.cpp:8
20
#: pcbnew/class_pad.cpp:8
18
#: cvpcb/setvisu.cpp:29
msgid "Module"
msgstr "Module"
#: pcbnew/class_text_mod.cpp:365
#: pcbnew/class_pcb_text.cpp:184
#: pcbnew/class_pad.cpp:92
6
#: pcbnew/class_pad.cpp:92
0
#: gerbview/affiche.cpp:55
msgid "H Size"
msgstr "Taille H"
#: pcbnew/class_text_mod.cpp:368
#: pcbnew/class_pcb_text.cpp:187
#: pcbnew/class_pad.cpp:9
30
#: pcbnew/class_pad.cpp:9
24
#: gerbview/affiche.cpp:58
msgid "V Size"
msgstr "Taille V"
...
...
@@ -4169,19 +4159,17 @@ msgid "Read options from a selected config file"
msgstr "Lire options d'un fichier de configuration choisi"
#: pcbnew/menubarpcb.cpp:186
#: eeschema/menubar.cpp:150
msgid "Create Eeschema &Hotkey config file"
msgstr "Crer les fichiers configuration des &Hotkeys de Eeschema "
msgid "Create Pcbnew &Hotkey config file"
msgstr "Crer les fichiers configuration des &Hotkeys de Pcbnew"
#: pcbnew/menubarpcb.cpp:187
#: eeschema/menubar.cpp:151
msgid "Create or Recreate the hotkey config file from current hotkey list"
msgstr "Crer ou recrer les fichiers configuration des Hotkeys
de Eeschema
"
msgstr "Crer ou recrer les fichiers configuration des Hotkeys
a partir de la liste courante
"
#: pcbnew/menubarpcb.cpp:190
#: eeschema/menubar.cpp:154
msgid "Reread &Eeschema Hotkey config file"
msgstr "Relire les fichiers configuration des Hotkeys de &Eeschema "
msgid "Reread &Pcbnew Hotkey config file"
msgstr "Relire les fichiers configuration des Hotkeys de &Pcbnew"
#: pcbnew/menubarpcb.cpp:191
#: eeschema/menubar.cpp:155
...
...
@@ -4407,27 +4395,27 @@ msgstr "Connect"
msgid "NoConn"
msgstr "Non Conn"
#: pcbnew/class_pad.cpp:73
4
#: pcbnew/class_pad.cpp:73
2
msgid "Unknown Pad shape"
msgstr "Forme pad inconnue"
#: pcbnew/class_pad.cpp:82
3
#: pcbnew/class_pad.cpp:82
1
msgid "RefP"
msgstr "RefP"
#: pcbnew/class_pad.cpp:82
6
#: pcbnew/class_pad.cpp:82
4
msgid "Net"
msgstr "Net"
#: pcbnew/class_pad.cpp:9
44
#: pcbnew/class_pad.cpp:9
38
msgid "Drill X / Y"
msgstr "Perage X/Y"
#: pcbnew/class_pad.cpp:95
9
#: pcbnew/class_pad.cpp:95
3
msgid "X Pos"
msgstr "X Pos"
#: pcbnew/class_pad.cpp:9
63
#: pcbnew/class_pad.cpp:9
57
msgid "Y pos"
msgstr "Y pos"
...
...
@@ -4727,95 +4715,95 @@ msgstr " Pads magn
msgid "control the capture of the pcb cursor when the mouse cursor enters a pad area"
msgstr "Controle la capture du curseur pcb quand le curseuir souris est sur le pad"
#: pcbnew/tool_modedit.cpp:
48
#: eeschema/tool_lib.cpp:1
19
#: pcbnew/tool_modedit.cpp:
53
#: eeschema/tool_lib.cpp:1
23
msgid "Select working library"
msgstr "Slection de la librairie de travail"
#: pcbnew/tool_modedit.cpp:5
1
#: pcbnew/tool_modedit.cpp:5
6
msgid "Save Module in working library"
msgstr "Sauver Module en librairie de travail"
#: pcbnew/tool_modedit.cpp:
55
#: pcbnew/tool_modedit.cpp:
60
msgid "Create new library and save current module"
msgstr "Crer une nouvelle librairie et y sauver le composant"
#: pcbnew/tool_modedit.cpp:6
0
#: eeschema/tool_lib.cpp:12
2
#: pcbnew/tool_modedit.cpp:6
5
#: eeschema/tool_lib.cpp:12
6
msgid "Delete part in current library"
msgstr "Supprimer composant en librairie de travail"
#: pcbnew/tool_modedit.cpp:
69
#: pcbnew/tool_modedit.cpp:
74
msgid "Load module from lib"
msgstr "Charger un module a partir d'une librairie"
#: pcbnew/tool_modedit.cpp:7
4
#: pcbnew/tool_modedit.cpp:7
9
msgid "Load module from current board"
msgstr "Charger module a partir du C.I."
#: pcbnew/tool_modedit.cpp:
78
#: pcbnew/tool_modedit.cpp:
83
msgid "Update module in current board"
msgstr "Remplacer module dans le C.I."
#: pcbnew/tool_modedit.cpp:8
2
#: pcbnew/tool_modedit.cpp:8
7
msgid "Insert module into current board"
msgstr "Placer module dans le C.I."
#: pcbnew/tool_modedit.cpp:
87
#: pcbnew/tool_modedit.cpp:
92
msgid "import module"
msgstr "Importer Module"
#: pcbnew/tool_modedit.cpp:9
1
#: pcbnew/tool_modedit.cpp:9
6
msgid "export module"
msgstr "Exporter Module"
#: pcbnew/tool_modedit.cpp:
96
#: eeschema/tool_sch.cpp:
87
#: eeschema/tool_lib.cpp:1
47
#: pcbnew/tool_modedit.cpp:
101
#: eeschema/tool_sch.cpp:
91
#: eeschema/tool_lib.cpp:1
51
msgid "Undo last edition"
msgstr "Defait dernire dition"
#: pcbnew/tool_modedit.cpp:
98
#: eeschema/tool_sch.cpp:
89
#: eeschema/tool_lib.cpp:1
49
#: pcbnew/tool_modedit.cpp:
103
#: eeschema/tool_sch.cpp:
93
#: eeschema/tool_lib.cpp:1
53
msgid "Redo the last undo command"
msgstr "Refait la dernire commande defaite"
#: pcbnew/tool_modedit.cpp:10
3
#: pcbnew/tool_modedit.cpp:10
8
msgid "Module Properties"
msgstr "Proprits du Module"
#: pcbnew/tool_modedit.cpp:1
07
#: pcbnew/tool_modedit.cpp:1
12
msgid "Print Module"
msgstr "Imprimer Module"
#: pcbnew/tool_modedit.cpp:1
29
#: pcbnew/tool_modedit.cpp:1
37
msgid "Module Check"
msgstr "Test module"
#: pcbnew/tool_modedit.cpp:1
5
3
#: pcbnew/tool_modedit.cpp:1
6
3
msgid "Add Pads"
msgstr "Addition de \"pins\""
#: pcbnew/tool_modedit.cpp:2
34
#: pcbnew/tool_modedit.cpp:2
45
msgid "Show Texts Sketch"
msgstr "Afficher textes en contour"
#: pcbnew/tool_modedit.cpp:2
41
#: pcbnew/tool_modedit.cpp:2
52
msgid "Show Edges Sketch"
msgstr "Afficher Modules en contour"
#: pcbnew/tool_modedit.cpp:2
77
#: pcbnew/tool_modedit.cpp:2
89
#, c-format
msgid "Zoom %d"
msgstr "Zoom %d"
#: pcbnew/tool_modedit.cpp:
294
#: pcbnew/tool_modedit.cpp:
308
#, c-format
msgid "Grid %.1f"
msgstr "Grille %.1f"
#: pcbnew/tool_modedit.cpp:
296
#: pcbnew/tool_modedit.cpp:
310
#, c-format
msgid "Grid %.3f"
msgstr "Grille %.3f"
...
...
@@ -5050,7 +5038,7 @@ msgid "Rect Delete"
msgstr "Supprimer Rect"
#: eeschema/libedit_onrightclick.cpp:148
#: eeschema/onrightclick.cpp:
398
#: eeschema/onrightclick.cpp:
406
msgid "Move Text"
msgstr "Dplacer Texte"
...
...
@@ -5087,7 +5075,7 @@ msgid "Segment Delete"
msgstr "Supprimer segment"
#: eeschema/libedit_onrightclick.cpp:192
#: eeschema/onrightclick.cpp:26
2
#: eeschema/onrightclick.cpp:26
3
msgid "Move Field"
msgstr "Dplace Champ"
...
...
@@ -5140,7 +5128,7 @@ msgid "Pin Num Size to others"
msgstr "Change taille Num pin autres pins"
#: eeschema/libedit_onrightclick.cpp:255
#: eeschema/onrightclick.cpp:5
73
#: eeschema/onrightclick.cpp:5
81
msgid "Win. Zoom (Midd butt drag mouse)"
msgstr "Win. Zoom (Midd butt drag mouse)"
...
...
@@ -5153,146 +5141,142 @@ msgid "Mirror Block (ctrl + drag mouse)"
msgstr "Bloc Miroir (ctrl + drag mouse)"
#: eeschema/libedit_onrightclick.cpp:268
#: eeschema/onrightclick.cpp:5
88
#: eeschema/onrightclick.cpp:5
96
msgid "Del. Block (shift+ctrl + drag mouse)"
msgstr "Effacement Bloc (shift+ctrl + drag mouse)"
#: eeschema/hotkeys.cpp:1
60
#: eeschema/hotkeys.cpp:1
84
#: eeschema/schedit.cpp:337
msgid "Add Component"
msgstr "Ajout Composant"
#: eeschema/hotkeys.cpp:
178
#: eeschema/hotkeys.cpp:
206
#: eeschema/schedit.cpp:289
msgid "Add Wire"
msgstr "Ajouter Fils"
#: eeschema/tool_sch.cpp:5
1
#: eeschema/tool_sch.cpp:5
5
msgid "New schematic project"
msgstr "Nouveau Projet schmatique"
#: eeschema/tool_sch.cpp:5
4
#: eeschema/tool_sch.cpp:5
8
msgid "Open schematic project"
msgstr "Ouvrir un Projet schmatique"
#: eeschema/tool_sch.cpp:
57
#: eeschema/tool_sch.cpp:
61
msgid "Save schematic project"
msgstr "Sauver le Projet schmatique"
#: eeschema/tool_sch.cpp:6
5
#: eeschema/tool_sch.cpp:6
9
msgid "go to library editor"
msgstr "Appel de l'editeur de librairies et de composants"
#: eeschema/tool_sch.cpp:
68
#: eeschema/tool_sch.cpp:
72
msgid "go to library browse"
msgstr "Appel du visualisateur des contenus de librairies"
#: eeschema/tool_sch.cpp:7
2
#: eeschema/tool_sch.cpp:7
6
msgid "Schematic Hierarchy Navigator"
msgstr "Navigation dans la hierarchie"
#: eeschema/tool_sch.cpp:9
3
#: eeschema/tool_sch.cpp:9
7
msgid "Print schematic"
msgstr "Impression des feuilles de schma"
#: eeschema/tool_sch.cpp:
97
#: eeschema/tool_sch.cpp:
101
msgid "Run Cvpcb"
msgstr "Appel de CvPcb (Gestion des associations composants/module)"
#: eeschema/tool_sch.cpp:10
0
#: eeschema/tool_sch.cpp:10
4
msgid "Run Pcbnew"
msgstr "Appel de Pcbnew (Editeur de Circuits Imprims)"
#: eeschema/tool_sch.cpp:117
msgid "Find components and texts"
msgstr "Recherche de composants et textes"
#: eeschema/tool_sch.cpp:121
#: eeschema/tool_sch.cpp:128
msgid "Netlist generation"
msgstr "Gnration de la netliste"
#: eeschema/tool_sch.cpp:1
24
#: eeschema/tool_sch.cpp:1
31
msgid "Schematic Annotation"
msgstr "Annotation des composants"
#: eeschema/tool_sch.cpp:1
27
#: eeschema/tool_sch.cpp:1
34
msgid "Schematic Electric Rules Check"
msgstr "Controle des regles lectriques"
#: eeschema/tool_sch.cpp:13
0
#: eeschema/tool_sch.cpp:13
7
msgid "Bill of material and/or Crossreferences"
msgstr "Liste des composants et rfrences croises"
#: eeschema/tool_sch.cpp:1
55
#: eeschema/tool_sch.cpp:1
64
msgid "Hierarchy Push/Pop"
msgstr "Navigation dans la hierarchie"
#: eeschema/tool_sch.cpp:16
0
#: eeschema/tool_sch.cpp:16
9
msgid "Add components"
msgstr "Ajouter composants"
#: eeschema/tool_sch.cpp:1
64
#: eeschema/tool_sch.cpp:1
73
msgid "Add powers"
msgstr "Add Alims"
#: eeschema/tool_sch.cpp:1
69
#: eeschema/tool_sch.cpp:1
78
msgid "Add wires"
msgstr "Addition de fils de connexion"
#: eeschema/tool_sch.cpp:1
73
#: eeschema/tool_sch.cpp:1
82
msgid "Add bus"
msgstr "Addition de Bus"
#: eeschema/tool_sch.cpp:1
77
#: eeschema/tool_sch.cpp:1
86
msgid "Add wire to bus entry"
msgstr "Addition d'entres de bus (type fil vers bus)"
#: eeschema/tool_sch.cpp:1
81
#: eeschema/tool_sch.cpp:1
90
msgid "Add bus to bus entry"
msgstr "Addition d'entres de bus (type bus vers bus)"
#: eeschema/tool_sch.cpp:1
86
#: eeschema/tool_sch.cpp:1
95
msgid "Add no connect flag"
msgstr "Addition de symboles de non connexion"
#: eeschema/tool_sch.cpp:19
0
#: eeschema/tool_sch.cpp:19
9
msgid "Add wire or bus label"
msgstr "Addition de labels sur fils ou bus"
#: eeschema/tool_sch.cpp:
194
#: eeschema/onrightclick.cpp:4
77
#: eeschema/onrightclick.cpp:5
09
#: eeschema/tool_sch.cpp:
203
#: eeschema/onrightclick.cpp:4
85
#: eeschema/onrightclick.cpp:5
17
msgid "Add global label"
msgstr "Addition de labels globaux"
#: eeschema/tool_sch.cpp:
198
#: eeschema/onrightclick.cpp:47
1
#: eeschema/onrightclick.cpp:5
03
#: eeschema/tool_sch.cpp:
207
#: eeschema/onrightclick.cpp:47
9
#: eeschema/onrightclick.cpp:5
11
msgid "Add junction"
msgstr "Addition de jonctions"
#: eeschema/tool_sch.cpp:2
03
#: eeschema/tool_sch.cpp:2
12
msgid "Add hierarchical symbol (sheet)"
msgstr "Addition d'un symbole de feuille de hirarchie"
#: eeschema/tool_sch.cpp:2
07
#: eeschema/tool_sch.cpp:2
16
msgid "import glabel from sheet & create pinsheet"
msgstr "Importation de labels globaux et cration des pins correspondantes"
#: eeschema/tool_sch.cpp:2
11
#: eeschema/tool_sch.cpp:2
20
msgid "Add hierachical pin to sheet"
msgstr "Addition de pins de hierarchie dans les symboles de hierarchie"
#: eeschema/tool_sch.cpp:22
0
#: eeschema/tool_sch.cpp:22
9
msgid "Add graphic text (comment)"
msgstr "Addition de textes graphiques (commentaires)"
#: eeschema/tool_sch.cpp:2
6
3
#: eeschema/tool_sch.cpp:2
7
3
#: eeschema/schframe.cpp:275
msgid "Show Hidden Pins"
msgstr "Force affichage des pins invisibles"
#: eeschema/tool_sch.cpp:2
6
8
#: eeschema/tool_sch.cpp:2
7
8
msgid "HV orientation for Wires and Bus"
msgstr "Force direction H, V et X pour les fils et bus"
...
...
@@ -5320,99 +5304,99 @@ msgstr "Commun aux Unit
msgid "Common to convert"
msgstr "Commun a converti"
#: eeschema/tool_lib.cpp:4
7
#: eeschema/tool_lib.cpp:4
8
msgid "deselect current tool"
msgstr "Dslection outil courant"
#: eeschema/tool_lib.cpp:5
3
#: eeschema/tool_lib.cpp:5
4
msgid "Add Pins"
msgstr "Addition de \"pins\""
#: eeschema/tool_lib.cpp:5
7
#: eeschema/tool_lib.cpp:5
8
msgid "Add graphic text"
msgstr "Addition de textes graphiques (commentaires)"
#: eeschema/tool_lib.cpp:6
1
#: eeschema/tool_lib.cpp:6
2
msgid "Add rectangles"
msgstr "Addition de rectangles"
#: eeschema/tool_lib.cpp:6
5
#: eeschema/tool_lib.cpp:6
6
msgid "Add circles"
msgstr "Addition de cercles"
#: eeschema/tool_lib.cpp:
69
#: eeschema/tool_lib.cpp:
70
msgid "Add arcs"
msgstr "Addition d'arc"
#: eeschema/tool_lib.cpp:7
3
#: eeschema/tool_lib.cpp:7
4
msgid "Add lines and polygons"
msgstr "Addition de lignes ou polygones graphiques"
#: eeschema/tool_lib.cpp:7
8
#: eeschema/tool_lib.cpp:7
9
msgid "Move part anchor"
msgstr "Positionner l'ancre du composant"
#: eeschema/tool_lib.cpp:8
3
#: eeschema/tool_lib.cpp:8
4
msgid "Import existing drawings"
msgstr "Importer des dessins existants"
#: eeschema/tool_lib.cpp:8
7
#: eeschema/tool_lib.cpp:8
8
msgid "Export current drawing"
msgstr "Exporter le dessin en cours"
#: eeschema/tool_lib.cpp:1
16
#: eeschema/tool_lib.cpp:1
20
msgid "Save current loaded library on disk (file update)"
msgstr "Sauver librairie charge courante sur disque (mise jour du fichier)"
#: eeschema/tool_lib.cpp:1
26
#: eeschema/tool_lib.cpp:1
30
msgid "New part"
msgstr "Nouveau composant"
#: eeschema/tool_lib.cpp:1
29
#: eeschema/tool_lib.cpp:1
33
msgid "Select part to edit"
msgstr "Slectionner le composant a diter"
#: eeschema/tool_lib.cpp:13
3
#: eeschema/tool_lib.cpp:13
7
msgid "Save current part into current loaded library (in memory)"
msgstr "Sauver le composant courant en librairie courante (en mmoire)"
#: eeschema/tool_lib.cpp:1
36
#: eeschema/tool_lib.cpp:1
40
msgid "import part"
msgstr "Importer un composant"
#: eeschema/tool_lib.cpp:1
39
#: eeschema/tool_lib.cpp:1
43
msgid "export part"
msgstr "Exporter un composant"
#: eeschema/tool_lib.cpp:14
3
#: eeschema/tool_lib.cpp:14
7
msgid "Create a new library an save current part into"
msgstr "Crer une nouvelle librairie et y sauver le composant"
#: eeschema/tool_lib.cpp:1
56
#: eeschema/tool_lib.cpp:1
60
msgid "Edit Part Properties"
msgstr "Editer les proprits du composant"
#: eeschema/tool_lib.cpp:16
3
#: eeschema/tool_lib.cpp:16
7
msgid "Test duplicate pins"
msgstr "Test duplicate pins"
#: eeschema/tool_lib.cpp:18
7
#: eeschema/tool_lib.cpp:18
9
msgid "show as \"De Morgan\" normal part"
msgstr "Afficher sous reprsentation normale"
#: eeschema/tool_lib.cpp:19
3
#: eeschema/tool_lib.cpp:19
5
msgid "show as \"De Morgan\" convert part"
msgstr "Afficher sous prsentation \" De Morgan\""
#: eeschema/tool_lib.cpp:20
2
#: eeschema/tool_lib.cpp:20
4
msgid "Documents"
msgstr "Documents"
#: eeschema/tool_lib.cpp:2
19
#: eeschema/tool_lib.cpp:2
21
msgid "Edit pins part per part (Carefully use!)"
msgstr "Editer pins unit par unit (Utiliser en connaissance de cause)"
#: eeschema/tool_lib.cpp:24
0
#: eeschema/tool_lib.cpp:24
1
#: eeschema/tool_viewlib.cpp:131
#, c-format
msgid "Part %c"
...
...
@@ -5853,7 +5837,7 @@ msgstr "Le composant %s existe, Le changer ?"
msgid "Component %s saved in %s"
msgstr "Composant %s sauv en %s"
#: eeschema/eeschema.cpp:5
6
#: eeschema/eeschema.cpp:5
7
msgid "Eeschema is already running, Continue?"
msgstr "Eeschema est est cours d'excution. Continuer ?"
...
...
@@ -5932,7 +5916,7 @@ msgid "Pos"
msgstr "Pos"
#: eeschema/editpart.cpp:293
#: eeschema/onrightclick.cpp:3
19
#: eeschema/onrightclick.cpp:3
27
#: eeschema/affiche.cpp:172
msgid "Unit"
msgstr "Unit"
...
...
@@ -5948,6 +5932,7 @@ msgid "Orient:"
msgstr "Orient:"
#: eeschema/editpart.cpp:323
#: eeschema/onrightclick.cpp:295
#: eeschema/dialog_edit_component_in_schematic.cpp:183
msgid "Mirror --"
msgstr "Miroir--"
...
...
@@ -5962,7 +5947,7 @@ msgid "Mirror:"
msgstr "Miroir:"
#: eeschema/editpart.cpp:336
#: eeschema/onrightclick.cpp:3
06
#: eeschema/onrightclick.cpp:3
14
#: eeschema/affiche.cpp:182
#: eeschema/dialog_edit_component_in_schematic.cpp:193
msgid "Convert"
...
...
@@ -6093,253 +6078,245 @@ msgstr " Convert"
msgid " Normal"
msgstr " Normal"
#: eeschema/onrightclick.cpp:1
39
#: eeschema/onrightclick.cpp:1
40
msgid "Leave Sheet"
msgstr "Quitter sous-feuille"
#: eeschema/onrightclick.cpp:15
5
#: eeschema/onrightclick.cpp:15
6
msgid "delete noconn"
msgstr "Supprimer non connexion"
#: eeschema/onrightclick.cpp:16
5
#: eeschema/onrightclick.cpp:16
6
msgid "Move bus entry"
msgstr "Dplacer entre de bus"
#: eeschema/onrightclick.cpp:16
7
#: eeschema/onrightclick.cpp:16
8
msgid "set bus entry /"
msgstr "Entre de bus /"
#: eeschema/onrightclick.cpp:1
69
#: eeschema/onrightclick.cpp:1
70
msgid "set bus entry \\"
msgstr "Entre de bus \\"
#: eeschema/onrightclick.cpp:17
1
#: eeschema/onrightclick.cpp:17
2
msgid "delete bus entry"
msgstr "Supprimer entre de bus"
#: eeschema/onrightclick.cpp:17
5
#: eeschema/onrightclick.cpp:17
6
msgid "delete Marker"
msgstr "Supprimer Marqueur"
#: eeschema/onrightclick.cpp:22
5
#: eeschema/onrightclick.cpp:22
6
msgid "End drawing"
msgstr "Fin trac"
#: eeschema/onrightclick.cpp:22
7
#: eeschema/onrightclick.cpp:22
8
msgid "Delete drawing"
msgstr "Supprimer Trac"
#: eeschema/onrightclick.cpp:26
3
#: eeschema/onrightclick.cpp:26
4
msgid "Rotate Field"
msgstr "Rotation Champ"
#: eeschema/onrightclick.cpp:282
msgid "Move Component (M)"
msgstr "Dplace Composant \t(M)"
#: eeschema/onrightclick.cpp:288
msgid "Rotate + (R)"
msgstr "Rotation + (R)"
#: eeschema/onrightclick.cpp:290
msgid "Mirror -- (X)"
msgstr "Miroir-- (X)"
#: eeschema/onrightclick.cpp:284
msgid "Move Component"
msgstr "Dplace Composant"
#: eeschema/onrightclick.cpp:291
msgid "
Mirror || (Y)
"
msgstr "
Miroir || (Y)
"
msgid "
Rotate +
"
msgstr "
Rotation +
"
#: eeschema/onrightclick.cpp:29
2
msgid "
Normal (N)
"
msgstr "
Normal (N)
"
#: eeschema/onrightclick.cpp:29
7
msgid "
Mirror ||
"
msgstr "
Miroir ||
"
#: eeschema/onrightclick.cpp:
295
#: eeschema/onrightclick.cpp:
303
msgid "Orient Component"
msgstr "Oriente Composant"
#: eeschema/onrightclick.cpp:3
13
#: eeschema/onrightclick.cpp:3
21
#, c-format
msgid "Unit %d %c"
msgstr "Unit %d %c"
#: eeschema/onrightclick.cpp:3
24
#: eeschema/onrightclick.cpp:3
32
msgid "Edit Component"
msgstr "Edite Composant"
#: eeschema/onrightclick.cpp:3
28
#: eeschema/onrightclick.cpp:3
36
msgid "Copy Component"
msgstr "Copie composant"
#: eeschema/onrightclick.cpp:3
29
#: eeschema/onrightclick.cpp:3
37
msgid "Delete Component"
msgstr "Supprime Composant"
#: eeschema/onrightclick.cpp:3
48
#: eeschema/onrightclick.cpp:3
56
msgid "Move Glabel"
msgstr "Dplace Label Global"
#: eeschema/onrightclick.cpp:3
49
#: eeschema/onrightclick.cpp:3
57
msgid "Rotate GLabel (R)"
msgstr "Rot. Label Global (R)"
#: eeschema/onrightclick.cpp:35
0
#: eeschema/onrightclick.cpp:35
8
msgid "Edit GLabel"
msgstr "Editer Label Global"
#: eeschema/onrightclick.cpp:35
1
#: eeschema/onrightclick.cpp:35
9
msgid "Delete Glabel"
msgstr "Supprimer Label Global"
#: eeschema/onrightclick.cpp:3
55
#: eeschema/onrightclick.cpp:4
05
#: eeschema/onrightclick.cpp:3
63
#: eeschema/onrightclick.cpp:4
13
msgid "Change to Label"
msgstr "Change en Label"
#: eeschema/onrightclick.cpp:3
57
#: eeschema/onrightclick.cpp:3
82
#: eeschema/onrightclick.cpp:3
65
#: eeschema/onrightclick.cpp:3
90
msgid "Change to Text"
msgstr "Change en Texte"
#: eeschema/onrightclick.cpp:3
59
#: eeschema/onrightclick.cpp:3
84
#: eeschema/onrightclick.cpp:4
09
#: eeschema/onrightclick.cpp:3
67
#: eeschema/onrightclick.cpp:3
92
#: eeschema/onrightclick.cpp:4
17
msgid "Change Type"
msgstr "Change Type"
#: eeschema/onrightclick.cpp:3
73
#: eeschema/onrightclick.cpp:3
81
msgid "Move Label"
msgstr "Dplace Label"
#: eeschema/onrightclick.cpp:3
74
#: eeschema/onrightclick.cpp:3
82
msgid "Rotate Label (R)"
msgstr "Rot. Label (R)"
#: eeschema/onrightclick.cpp:3
75
#: eeschema/onrightclick.cpp:3
83
msgid "Edit Label"
msgstr "Editer Label"
#: eeschema/onrightclick.cpp:3
76
#: eeschema/onrightclick.cpp:3
84
msgid "Delete Label"
msgstr "Supprimer Label:"
#: eeschema/onrightclick.cpp:38
0
#: eeschema/onrightclick.cpp:4
07
#: eeschema/onrightclick.cpp:38
8
#: eeschema/onrightclick.cpp:4
15
msgid "Change to Glabel"
msgstr "Change en Label Global"
#: eeschema/onrightclick.cpp:
399
#: eeschema/onrightclick.cpp:
407
msgid "Rotate Text (R)"
msgstr "Rot. Texte (R)"
#: eeschema/onrightclick.cpp:40
0
#: eeschema/onrightclick.cpp:40
8
msgid "Edit Text"
msgstr "Editer Texte"
#: eeschema/onrightclick.cpp:40
1
#: eeschema/onrightclick.cpp:40
9
msgid "Delete Text"
msgstr "Supprimer Texte"
#: eeschema/onrightclick.cpp:4
27
#: eeschema/onrightclick.cpp:4
67
#: eeschema/onrightclick.cpp:4
35
#: eeschema/onrightclick.cpp:4
75
msgid "Break Wire"
msgstr "Briser fil"
#: eeschema/onrightclick.cpp:43
0
#: eeschema/onrightclick.cpp:43
8
msgid "delete junction"
msgstr "Supprimer jonction"
#: eeschema/onrightclick.cpp:4
35
#: eeschema/onrightclick.cpp:46
1
#: eeschema/onrightclick.cpp:4
43
#: eeschema/onrightclick.cpp:46
9
msgid "Delete node"
msgstr "Supprimer Noeud"
#: eeschema/onrightclick.cpp:4
37
#: eeschema/onrightclick.cpp:4
63
#: eeschema/onrightclick.cpp:4
45
#: eeschema/onrightclick.cpp:4
71
msgid "Delete connection"
msgstr "Supprimer connexion"
#: eeschema/onrightclick.cpp:4
54
#: eeschema/onrightclick.cpp:4
62
msgid "End Wire"
msgstr "Fin Fil"
#: eeschema/onrightclick.cpp:4
56
#: eeschema/onrightclick.cpp:4
64
msgid "Delete Wire"
msgstr "Supprimer Fil"
#: eeschema/onrightclick.cpp:4
72
#: eeschema/onrightclick.cpp:5
04
#: eeschema/onrightclick.cpp:4
80
#: eeschema/onrightclick.cpp:5
12
msgid "Add label"
msgstr "Ajout Label"
#: eeschema/onrightclick.cpp:
493
#: eeschema/onrightclick.cpp:
501
msgid "End Bus"
msgstr "Fin Bus"
#: eeschema/onrightclick.cpp:
496
#: eeschema/onrightclick.cpp:
504
msgid "Delete Bus"
msgstr "Supprimer Bus"
#: eeschema/onrightclick.cpp:50
0
#: eeschema/onrightclick.cpp:50
8
msgid "Break Bus"
msgstr "Briser Bus"
#: eeschema/onrightclick.cpp:5
22
#: eeschema/onrightclick.cpp:5
30
msgid "Enter Sheet"
msgstr "Enter dans Feuille"
#: eeschema/onrightclick.cpp:5
24
#: eeschema/onrightclick.cpp:5
32
msgid "Move Sheet"
msgstr "Dplace Feuille"
#: eeschema/onrightclick.cpp:5
29
#: eeschema/onrightclick.cpp:5
37
msgid "Place Sheet"
msgstr "Place Feuille"
#: eeschema/onrightclick.cpp:5
33
#: eeschema/onrightclick.cpp:5
41
msgid "Edit Sheet"
msgstr "Edite Feuille"
#: eeschema/onrightclick.cpp:5
34
#: eeschema/onrightclick.cpp:5
42
msgid "Resize Sheet"
msgstr "Redimensionne feuille"
#: eeschema/onrightclick.cpp:5
37
#: eeschema/onrightclick.cpp:5
45
msgid "Cleanup PinSheets"
msgstr "Nettoyage de la feuille"
#: eeschema/onrightclick.cpp:5
38
#: eeschema/onrightclick.cpp:5
46
msgid "Delete Sheet"
msgstr "Supprimer Feuille"
#: eeschema/onrightclick.cpp:55
1
#: eeschema/onrightclick.cpp:55
9
msgid "Move PinSheet"
msgstr "Dplace Connecteur de hirarchie"
#: eeschema/onrightclick.cpp:5
53
#: eeschema/onrightclick.cpp:5
61
msgid "Edit PinSheet"
msgstr "Edit Connecteur de hirarchie"
#: eeschema/onrightclick.cpp:5
56
#: eeschema/onrightclick.cpp:5
64
msgid "Delete PinSheet"
msgstr "Supprimer Connecteur de hirarchie"
#: eeschema/onrightclick.cpp:58
1
#: eeschema/onrightclick.cpp:58
9
msgid "Other block commands"
msgstr "Autres commandes de bloc"
#: eeschema/onrightclick.cpp:5
82
#: eeschema/onrightclick.cpp:5
90
msgid "Save Block"
msgstr "Sauver Bloc"
#: eeschema/onrightclick.cpp:5
86
#: eeschema/onrightclick.cpp:5
94
msgid "Drag Block (ctrl + drag mouse)"
msgstr "Drag Bloc (ctrl + drag mouse)"
#: eeschema/onrightclick.cpp:59
0
#: eeschema/onrightclick.cpp:59
8
msgid "Mirror Block ||"
msgstr "Miroir Bloc ||"
#: eeschema/onrightclick.cpp:
594
#: eeschema/onrightclick.cpp:
602
msgid "Copy to Clipboard"
msgstr "Copie dans Presse papier"
...
...
@@ -6741,6 +6718,27 @@ msgstr "Afficher composant pr
msgid "Display next part"
msgstr "Afficher composant suivant"
#: eeschema/tool_viewlib.cpp:70
#: cvpcb/displayframe.cpp:118
#: gerbview/tool_gerber.cpp:260
#: 3d-viewer/3d_toolbar.cpp:43
msgid "zoom + (F1)"
msgstr "zoom + (F1)"
#: eeschema/tool_viewlib.cpp:74
#: cvpcb/displayframe.cpp:121
#: gerbview/tool_gerber.cpp:266
#: 3d-viewer/3d_toolbar.cpp:46
msgid "zoom - (F2)"
msgstr "zoom - (F2)"
#: eeschema/tool_viewlib.cpp:78
#: cvpcb/displayframe.cpp:124
#: gerbview/tool_gerber.cpp:272
#: 3d-viewer/3d_toolbar.cpp:49
msgid "redraw (F3)"
msgstr "Redessin (F3)"
#: eeschema/tool_viewlib.cpp:82
#: cvpcb/displayframe.cpp:127
#: cvpcb/displayframe.cpp:131
...
...
@@ -8011,6 +8009,14 @@ msgstr "&Sauver Eeschema Options"
msgid "Save options in <project>.pro"
msgstr "Sauver les options en <projet>.pro"
#: eeschema/menubar.cpp:150
msgid "Create Eeschema &Hotkey config file"
msgstr "Crer les fichiers configuration des &Hotkeys de Eeschema "
#: eeschema/menubar.cpp:154
msgid "Reread &Eeschema Hotkey config file"
msgstr "Relire les fichiers configuration des Hotkeys de &Eeschema "
#: eeschema/menubar.cpp:162
msgid "Open the eeschema manual"
msgstr "Ouvrir la documentation de eeschema"
...
...
@@ -9411,7 +9417,7 @@ msgstr "Contour Pcb"
msgid "--- "
msgstr "--- "
#: common/hotkeys_basic.cpp:
191
#: common/hotkeys_basic.cpp:
262
msgid ""
"Current hotkey list:\n"
"\n"
...
...
@@ -9419,20 +9425,20 @@ msgstr ""
"Liste des Hotkeys courantes:\n"
"\n"
#: common/hotkeys_basic.cpp:
195
#: common/hotkeys_basic.cpp:
267
msgid "key "
msgstr "touche: "
#: common/hotkeys_basic.cpp:
243
#: common/hotkeys_basic.cpp:
336
#: common/hotkeys_basic.cpp:
322
#: common/hotkeys_basic.cpp:
424
msgid "Hotkey configuration file:"
msgstr "Fichier configuration des Hotkeys:"
#: common/hotkeys_basic.cpp:
27
4
#: common/hotkeys_basic.cpp:
35
4
msgid "Allowed keys:\n"
msgstr "Touches autorises:\n"
#: common/hotkeys_basic.cpp:
354
#: common/hotkeys_basic.cpp:
443
msgid "Unable to read "
msgstr "Impossible de lire "
...
...
@@ -9894,7 +9900,7 @@ msgstr "Propri
msgid "Fill Zones Options"
msgstr "Options de remplissage de Zone"
#: pcbnew/dialog_pad_edit.h:
44
#: pcbnew/dialog_pad_edit.h:
62
msgid "Pad properties"
msgstr "Proprits des Pads"
...
...
pcbnew/class_pad.cpp
View file @
f5eae506
...
...
@@ -25,16 +25,16 @@
/* classe D_PAD : constructeur */
/*******************************/
D_PAD
::
D_PAD
(
MODULE
*
parent
)
:
D_PAD
::
D_PAD
(
MODULE
*
parent
)
:
BOARD_ITEM
(
parent
,
TYPEPAD
)
{
m_NumPadName
=
0
;
m_Masque_Layer
=
CUIVRE_LAYER
;
m_NetCode
=
0
;
/* Numero de net pour comparaisons rapides */
m_DrillShape
=
CIRCLE
;
// Drill shape = circle
m_NumPadName
=
0
;
m_Masque_Layer
=
CUIVRE_LAYER
;
m_NetCode
=
0
;
/* Numero de net pour comparaisons rapides */
m_DrillShape
=
CIRCLE
;
// Drill shape = circle
m_Size
.
x
=
m_Size
.
y
=
500
;
if
(
m_Parent
&&
(
m_Parent
->
m_StructType
==
TYPEMODULE
)
)
{
m_Pos
=
(
(
MODULE
*
)
m_Parent
)
->
m_Pos
;
...
...
@@ -73,7 +73,6 @@ void D_PAD::ComputeRayon( void )
break
;
case
RECT
:
case
SPECIAL_PAD
:
case
TRAPEZE
:
m_Rayon
=
(
int
)
(
sqrt
(
(
float
)
m_Size
.
y
*
m_Size
.
y
+
(
float
)
m_Size
.
x
*
m_Size
.
x
)
/
2
);
...
...
@@ -90,16 +89,16 @@ const wxPoint D_PAD::ReturnShapePos( void )
{
if
(
(
m_Offset
.
x
==
0
)
&&
(
m_Offset
.
y
==
0
)
)
return
m_Pos
;
wxPoint
shape_pos
;
int
dX
,
dY
;
dX
=
m_Offset
.
x
;
dX
=
m_Offset
.
x
;
dY
=
m_Offset
.
y
;
RotatePoint
(
&
dX
,
&
dY
,
m_Orient
);
shape_pos
.
x
=
m_Pos
.
x
+
dX
;
shape_pos
.
x
=
m_Pos
.
x
+
dX
;
shape_pos
.
y
=
m_Pos
.
y
+
dY
;
return
shape_pos
;
...
...
@@ -410,7 +409,6 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int
break
;
case
RECT
:
case
SPECIAL_PAD
:
case
TRAPEZE
:
{
int
ddx
,
ddy
;
...
...
@@ -464,7 +462,7 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int
}
}
break
;
default
:
break
;
...
...
@@ -486,7 +484,7 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int
switch
(
m_DrillShape
)
{
case
CIRCLE
:
if
(
(
hole
/
zoom
)
>
1
)
/* draw hole if its size is enought */
if
(
(
hole
/
zoom
)
>
1
)
/* draw hole if its size is enought */
GRFilledCircle
(
&
panel
->
m_ClipBox
,
DC
,
cx0
,
cy0
,
hole
,
0
,
color
,
color
);
break
;
...
...
@@ -517,7 +515,7 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int
}
GRSetDrawMode
(
DC
,
draw_mode
);
/* Trace du symbole "No connect" ( / ou \ ou croix en X) si necessaire : */
if
(
m_Netname
.
IsEmpty
()
&&
DisplayOpt
.
DisplayPadNoConn
)
{
...
...
@@ -531,26 +529,26 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int
GRLine
(
&
panel
->
m_ClipBox
,
DC
,
cx0
+
dx0
,
cy0
-
dx0
,
cx0
-
dx0
,
cy0
+
dx0
,
0
,
nc_color
);
}
/* Trace de la reference */
if
(
!
frame
->
m_DisplayPadNum
)
return
;
dx
=
MIN
(
m_Size
.
x
,
m_Size
.
y
);
/* dx = text size */
if
(
(
dx
/
zoom
)
>
12
)
/* size must be enought to draw 2 chars */
{
wxString
buffer
;
ReturnStringPadName
(
buffer
);
dy
=
buffer
.
Len
();
/* Draw text with an angle between -90 deg and + 90 deg */
NORMALIZE_ANGLE_90
(
angle
);
if
(
dy
<
2
)
dy
=
2
;
/* text min size is 2 char */
dx
=
(
dx
*
9
)
/
(
dy
*
13
);
/* Text size ajusted to pad size */
DrawGraphicText
(
panel
,
DC
,
wxPoint
(
ux0
,
uy0
),
WHITE
,
buffer
,
angle
,
wxSize
(
dx
,
dx
),
GR_TEXT_HJUSTIFY_CENTER
,
GR_TEXT_VJUSTIFY_CENTER
);
...
...
@@ -795,7 +793,7 @@ void D_PAD::Display_Infos( WinEDA_DrawFrame* frame )
MODULE
*
Module
;
wxString
Line
;
int
pos
=
1
;
/* Pad messages */
static
const
wxString
Msg_Pad_Shape
[
6
]
=
{
wxT
(
"??? "
),
wxT
(
"Circ"
),
wxT
(
"Rect"
),
wxT
(
"Oval"
),
wxT
(
"trap"
),
wxT
(
"spec"
)
};
...
...
@@ -805,7 +803,7 @@ void D_PAD::Display_Infos( WinEDA_DrawFrame* frame )
wxT
(
"??? "
),
wxT
(
"cmp "
),
wxT
(
"cu "
),
wxT
(
"cmp+cu "
),
wxT
(
"int "
),
wxT
(
"cmp+int "
),
wxT
(
"cu+int "
),
wxT
(
"all "
),
wxT
(
"No copp"
)
};
static
const
wxString
Msg_Pad_Attribut
[
5
]
=
{
wxT
(
"norm"
),
wxT
(
"smd "
),
wxT
(
"conn"
),
wxT
(
"hole"
),
wxT
(
"????"
)
};
...
...
@@ -910,16 +908,12 @@ void D_PAD::Display_Infos( WinEDA_DrawFrame* frame )
pos
+=
6
;
Affiche_1_Parametre
(
frame
,
pos
,
Msg_Pad_Shape
[
m_PadShape
],
wxEmptyString
,
DARKGREEN
);
/* Affichage en couleur diff si pad stack ou non */
if
(
m_Attribut
&
PAD_STACK
)
Affiche_1_Parametre
(
frame
,
-
1
,
wxEmptyString
,
Msg_Pad_Attribut
[
m_Attribut
&
15
],
RED
);
else
Affiche_1_Parametre
(
frame
,
-
1
,
wxEmptyString
,
Msg_Pad_Attribut
[
m_Attribut
&
15
],
DARKGREEN
);
Affiche_1_Parametre
(
frame
,
-
1
,
wxEmptyString
,
Msg_Pad_Attribut
[
m_Attribut
&
15
],
DARKGREEN
);
valeur_param
(
m_Size
.
x
,
Line
);
pos
+=
6
;
...
...
@@ -978,12 +972,12 @@ bool D_PAD::HitTest( const wxPoint& ref_pos )
wxPoint
shape_pos
=
ReturnShapePos
();
deltaX
=
ref_pos
.
x
-
shape_pos
.
x
;
deltaX
=
ref_pos
.
x
-
shape_pos
.
x
;
deltaY
=
ref_pos
.
y
-
shape_pos
.
y
;
/* Test rapide: le point a tester doit etre a l'interieur du cercle exinscrit ... */
if
(
(
abs
(
deltaX
)
>
m_Rayon
)
||
(
abs
(
deltaY
)
>
m_Rayon
)
)
||
(
abs
(
deltaY
)
>
m_Rayon
)
)
return
false
;
/* calcul des demi dim dx et dy */
...
...
@@ -1006,35 +1000,38 @@ bool D_PAD::HitTest( const wxPoint& ref_pos )
return
true
;
break
;
}
return
false
;
}
#if defined(DEBUG)
#if defined (DEBUG)
/**
* Function Show
* is used to output the object tree, currently for debugging only.
* @param nestLevel An aid to prettier tree indenting, and is the level
* @param nestLevel An aid to prettier tree indenting, and is the level
* of nesting of this object within the overall tree.
* @param os The ostream& to output to.
*/
void
D_PAD
::
Show
(
int
nestLevel
,
std
::
ostream
&
os
)
{
char
padname
[
5
]
=
{
m_Padname
[
0
],
m_Padname
[
1
],
m_Padname
[
2
],
m_Padname
[
3
],
0
};
char
layerMask
[
16
];
sprintf
(
layerMask
,
"0x%08X"
,
m_Masque_Layer
);
// for now, make it look like XML:
NestedSpace
(
nestLevel
,
os
)
<<
'<'
<<
GetClass
().
Lower
().
mb_str
()
<<
" num=
\"
"
<<
padname
<<
'"'
<<
" net=
\"
"
<<
m_Netname
.
mb_str
()
<<
'"'
<<
" layerMask=
\"
"
<<
layerMask
<<
'"'
<<
m_Pos
<<
"/>
\n
"
;
" num=
\"
"
<<
padname
<<
'"'
<<
" net=
\"
"
<<
m_Netname
.
mb_str
()
<<
'"'
<<
" layerMask=
\"
"
<<
layerMask
<<
'"'
<<
m_Pos
<<
"/>
\n
"
;
// NestedSpace( nestLevel+1, os ) << m_Text.mb_str() << '\n';
// NestedSpace( nestLevel, os ) << "</" << GetClass().Lower().mb_str() << ">\n";
}
#endif
pcbnew/class_pad.h
View file @
f5eae506
...
...
@@ -4,20 +4,19 @@
class
Pcb3D_GLCanvas
;
/*
forme des pastilles : (parametre .forme
) */
/*
Pad shape id : ( .m_PadShape member
) */
#define CIRCLE 1
#define RECT 2
#define OVALE 3
#define TRAPEZE 4 // trapeze: traversante ou surfacique
#define SPECIAL_PAD 5 // description libre
#define TRAPEZE 4 // trapezoid
/* Attributs des PADS */
#define STANDARD 0 // pad classique
#define SMD 1 // surfacique, generation d'un masque d'empatement
#define CONN 2 // surfacique, peut etre dore
/* PADS attributes */
#define STANDARD 0 // Usual pad
#define SMD 1 // Smd pad, appears on the layer paste (default)
#define CONN 2 // Like smd, does not appear on the layer paste (default)
// reserved, but not yet really used:
#define P_HOLE 3 // trou simple, utile sur pad stack
#define MECA 4 // PAD "mecanique" (fixation, zone cuivre...)
#define PAD_STACK 0x80 // bit 7 de .attrib (flag)
/* Definition type Structure d'un pad */
class
D_PAD
:
public
BOARD_ITEM
...
...
@@ -26,41 +25,41 @@ public:
union
{
unsigned
long
m_NumPadName
;
char
m_Padname
[
4
];
/* nom (numero) de la pastille (assimilable a un long)*/
char
m_Padname
[
4
];
/* Pad name (4 char) or a long identifier
* (used in pad name comparisons because this is faster than string comparison)
*/
};
wxString
m_Netname
;
/* Net Name */
int
m_Masque_Layer
;
// (Bit a Bit :1= cuivre, 15= cmp,
// 2..14 = interne
// 16 .. 31 = couches non cuivre
int
m_PadShape
;
// forme CERCLE, RECT, OVALE, TRAPEZE ou libre
int
m_DrillShape
;
// forme CERCLE, OVAL
wxPoint
m_Pos
;
// Position de reference du pad
wxSize
m_Drill
;
// Drill diam (drill shape = CIRCLE) or drill size(shape = OVAL)
int
m_Masque_Layer
;
// Bitwise layer :1= copper layer, 15= cmp,
// 2..14 = internal layers
// 16 .. 31 = technical layers
int
m_PadShape
;
// Shape: CIRCLE, RECT, OVAL, TRAPEZOID
int
m_DrillShape
;
// Shape CIRCLE, OVAL
wxPoint
m_Pos
;
// pad Position on board
wxSize
m_Drill
;
// Drill diam (drill shape = CIRCLE) or drill size(shape = OVAL)
// for drill shape = CIRCLE, drill diam = m_Drill.x
wxSize
m_Offset
;
// Offset de la forme (pastilles excentrees)
wxSize
m_Size
;
// Dimensions X et Y ( si orient 0 x = axe X
// y = axe Y
wxSize
m_DeltaSize
;
// delta sur formes rectangle -> trapezes
wxPoint
m_Pos0
;
// Coord relatives a l'ancre du pad en orientation 0
int
m_Rayon
;
// rayon du cercle exinscrit du pad
int
m_Attribut
;
// NORMAL, SMD, CONN, Bit 7 = STACK
int
m_Orient
;
// en 1/10 degres
int
m_NetCode
;
/* Numero de net pour comparaisons rapides */
int
m_logical_connexion
;
// variable utilisee lors du calcul du chevelu:
// contient de numero de block pour une connexion type ratsnet
int
m_physical_connexion
;
// variable utilisee lors du calcul de la connexit�
// contient de numero de block pour une connexion type piste
wxSize
m_Offset
;
// Offset de la forme (pastilles excentrees)
wxSize
m_Size
;
// X and Y size ( relative to orient 0)
wxSize
m_DeltaSize
;
// delta sur formes rectangle -> trapezes
wxPoint
m_Pos0
;
// Initial Pad position (i.e. pas position relative to the module anchor, orientation 0
int
m_Rayon
;
// rayon du cercle exinscrit du pad
int
m_Attribut
;
// NORMAL, SMD, CONN
int
m_Orient
;
// in 1/10 degrees
int
m_NetCode
;
// Net number for fast comparisons
int
m_logical_connexion
;
// variable used in rastnest computations
// handle block number in ratsnet connection
int
m_physical_connexion
;
// variable used in rastnest computations
// handle block number in track connection
public
:
D_PAD
(
MODULE
*
parent
);
...
...
@@ -69,9 +68,9 @@ public:
void
Copy
(
D_PAD
*
source
);
D_PAD
*
Next
(
void
)
{
return
(
D_PAD
*
)
Pnext
;
}
D_PAD
*
Next
(
void
)
{
return
(
D_PAD
*
)
Pnext
;
}
/*
supprime du chainage la structure Struc
t */
/*
remove from linked lis
t */
void
UnLink
(
void
);
/* Reading and writing data on files */
...
...
@@ -82,11 +81,11 @@ public:
void
Draw
(
WinEDA_DrawPanel
*
panel
,
wxDC
*
DC
,
const
wxPoint
&
offset
,
int
draw_mode
);
void
Draw3D
(
Pcb3D_GLCanvas
*
glcanvas
);
//
autre
s
//
other
s
void
SetPadName
(
const
wxString
&
name
);
// Change pad name
wxString
ReturnStringPadName
(
void
);
// Return pad name as string in a wxString
void
ReturnStringPadName
(
wxString
&
text
);
// Return pad name as string in a buffer
void
ComputeRayon
(
void
);
//
met a jour
m_Rayon, rayon du cercle exinscrit
void
ComputeRayon
(
void
);
//
compute
m_Rayon, rayon du cercle exinscrit
const
wxPoint
ReturnShapePos
(
void
);
// retourne la position
/**
...
...
@@ -95,9 +94,9 @@ public:
* about this object into the frame's message panel.
* Is virtual from EDA_BaseStruct.
* @param frame A WinEDA_BasePcbFrame in which to print status information.
*/
*/
void
Display_Infos
(
WinEDA_DrawFrame
*
frame
);
/**
* Function HitTest
* tests if the given wxPoint is within the bounds of this object.
...
...
@@ -105,8 +104,9 @@ public:
* @return bool - true if a hit, else false
*/
bool
HitTest
(
const
wxPoint
&
refPos
);
#if defined(DEBUG)
#if defined (DEBUG)
/**
* Function GetClass
* returns the class name.
...
...
@@ -117,16 +117,17 @@ public:
return
wxT
(
"PAD"
);
}
/**
* Function Show
* is used to output the object tree, currently for debugging only.
* @param nestLevel An aid to prettier tree indenting, and is the level
* @param nestLevel An aid to prettier tree indenting, and is the level
* of nesting of this object within the overall tree.
* @param os The ostream& to output to.
*/
virtual
void
Show
(
int
nestLevel
,
std
::
ostream
&
os
);
#endif
};
typedef
class
D_PAD
*
LISTE_PAD
;
pcbnew/controle.cpp
View file @
f5eae506
...
...
@@ -215,51 +215,6 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
switch
(
g_KeyPressed
)
{
case
WXK_NUMPAD_SUBTRACT
:
case
WXK_SUBTRACT
:
case
'-'
:
ll
=
GetScreen
()
->
m_Active_Layer
;
if
(
ll
>
CMP_N
)
break
;
if
(
ll
<=
CUIVRE_N
)
break
;
if
(
m_Pcb
->
m_BoardSettings
->
m_CopperLayerCount
<=
1
)
// Single layer
ll
=
CUIVRE_N
;
if
(
ll
==
CMP_N
)
ll
=
MAX
(
CUIVRE_N
,
m_Pcb
->
m_BoardSettings
->
m_CopperLayerCount
-
2
);
else
if
(
ll
>
CUIVRE_N
)
ll
--
;
GetScreen
()
->
m_Active_Layer
=
ll
;
if
(
DisplayOpt
.
ContrastModeDisplay
)
DrawPanel
->
Refresh
(
TRUE
);
break
;
case
WXK_NUMPAD_ADD
:
case
WXK_ADD
:
case
'+'
:
ll
=
GetScreen
()
->
m_Active_Layer
;
if
(
ll
>=
CMP_N
)
break
;
ll
++
;
if
(
ll
>=
m_Pcb
->
m_BoardSettings
->
m_CopperLayerCount
-
1
)
ll
=
CMP_N
;
if
(
m_Pcb
->
m_BoardSettings
->
m_CopperLayerCount
<=
1
)
// Single layer
ll
=
CUIVRE_N
;
GetScreen
()
->
m_Active_Layer
=
ll
;
if
(
DisplayOpt
.
ContrastModeDisplay
)
DrawPanel
->
Refresh
(
TRUE
);
break
;
case
WXK_NUMPAD0
:
case
WXK_PAGEUP
:
SwitchLayer
(
DC
,
CMP_N
);
break
;
case
WXK_NUMPAD9
:
case
WXK_PAGEDOWN
:
SwitchLayer
(
DC
,
CUIVRE_N
);
break
;
case
EDA_PANNING_UP_KEY
:
OnZoom
(
ID_ZOOM_PANNING_UP
);
curpos
=
m_CurrentScreen
->
m_Curseur
;
...
...
@@ -281,51 +236,20 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
break
;
case
EDA_ZOOM_IN_FROM_MOUSE
:
case
WXK_F1
:
OnZoom
(
ID_ZOOM_PLUS_KEY
);
oldpos
=
curpos
=
GetScreen
()
->
m_Curseur
;
break
;
case
EDA_ZOOM_OUT_FROM_MOUSE
:
case
WXK_F2
:
OnZoom
(
ID_ZOOM_MOINS_KEY
);
oldpos
=
curpos
=
GetScreen
()
->
m_Curseur
;
break
;
case
WXK_F3
:
OnZoom
(
ID_ZOOM_REDRAW_KEY
);
break
;
case
EDA_ZOOM_CENTER_FROM_MOUSE
:
case
WXK_F4
:
OnZoom
(
ID_ZOOM_CENTER_KEY
);
oldpos
=
curpos
=
GetScreen
()
->
m_Curseur
;
break
;
case
WXK_F5
:
SwitchLayer
(
DC
,
LAYER_N_2
);
break
;
case
WXK_F6
:
SwitchLayer
(
DC
,
LAYER_N_3
);
break
;
case
WXK_F7
:
SwitchLayer
(
DC
,
LAYER_N_4
);
break
;
case
WXK_F8
:
SwitchLayer
(
DC
,
LAYER_N_5
);
break
;
case
WXK_F9
:
SwitchLayer
(
DC
,
LAYER_N_6
);
break
;
case
WXK_F10
:
SwitchLayer
(
DC
,
LAYER_N_7
);
break
;
case
WXK_NUMPAD8
:
/* Deplacement curseur vers le haut */
case
WXK_UP
:
Mouse
.
y
-=
delta
.
y
;
...
...
pcbnew/dialog_pad_edit.cpp
View file @
f5eae506
...
...
@@ -123,7 +123,7 @@ bool WinEDA_PadPropertiesFrame::Create( wxWindow* parent, wxWindowID id, const w
////@end WinEDA_PadPropertiesFrame member initialisation
////@begin WinEDA_PadPropertiesFrame creation
SetExtraStyle
(
GetExtraStyle
()
|
wxWS_EX_BLOCK_EVENTS
);
SetExtraStyle
(
wxWS_EX_BLOCK_EVENTS
);
wxDialog
::
Create
(
parent
,
id
,
caption
,
pos
,
size
,
style
);
CreateControls
();
...
...
@@ -144,7 +144,7 @@ void WinEDA_PadPropertiesFrame::CreateControls()
{
SetFont
(
*
g_DialogFont
);
////@begin WinEDA_PadPropertiesFrame content construction
// Generated by DialogBlocks,
03/08/2006 10:35:2
9 (unregistered)
// Generated by DialogBlocks,
27/08/2007 21:03:5
9 (unregistered)
WinEDA_PadPropertiesFrame
*
itemDialog1
=
this
;
...
...
@@ -172,46 +172,42 @@ void WinEDA_PadPropertiesFrame::CreateControls()
m_DrillShapeBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
itemBoxSizer2
->
Add
(
m_DrillShapeBoxSizer
,
0
,
wxGROW
|
wxTOP
,
5
);
wxString
m_DrillShapeCtrlStrings
[]
=
{
_
(
"Circle"
),
_
(
"Oval"
)
};
m_DrillShapeCtrl
=
new
wxRadioBox
(
itemDialog1
,
ID_RADIOBOX_DRILL_SHAPE
,
_
(
"Drill Shape:"
),
wxDefaultPosition
,
wxDefaultSize
,
2
,
m_DrillShapeCtrlStrings
,
1
,
wxRA_SPECIFY_COLS
);
wxArrayString
m_DrillShapeCtrlStrings
;
m_DrillShapeCtrlStrings
.
Add
(
_
(
"Circle"
));
m_DrillShapeCtrlStrings
.
Add
(
_
(
"Oval"
));
m_DrillShapeCtrl
=
new
wxRadioBox
(
itemDialog1
,
ID_RADIOBOX_DRILL_SHAPE
,
_
(
"Drill Shape:"
),
wxDefaultPosition
,
wxDefaultSize
,
m_DrillShapeCtrlStrings
,
1
,
wxRA_SPECIFY_COLS
);
m_DrillShapeCtrl
->
SetSelection
(
0
);
m_DrillShapeBoxSizer
->
Add
(
m_DrillShapeCtrl
,
0
,
wxGROW
|
wxALL
,
5
);
m_PadOptSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
itemBoxSizer2
->
Add
(
m_PadOptSizer
,
0
,
wxGROW
|
wxALL
,
5
);
wxString
m_PadOrientStrings
[]
=
{
_
(
"0"
),
_
(
"90"
),
_
(
"-90"
),
_
(
"180"
),
_
(
"User"
)
};
m_PadOrient
=
new
wxRadioBox
(
itemDialog1
,
ID_LISTBOX_ORIENT_PAD
,
_
(
"Pad Orient:"
),
wxDefaultPosition
,
wxDefaultSize
,
5
,
m_PadOrientStrings
,
1
,
wxRA_SPECIFY_COLS
);
wxArrayString
m_PadOrientStrings
;
m_PadOrientStrings
.
Add
(
_
(
"0"
));
m_PadOrientStrings
.
Add
(
_
(
"90"
));
m_PadOrientStrings
.
Add
(
_
(
"-90"
));
m_PadOrientStrings
.
Add
(
_
(
"180"
));
m_PadOrientStrings
.
Add
(
_
(
"User"
));
m_PadOrient
=
new
wxRadioBox
(
itemDialog1
,
ID_LISTBOX_ORIENT_PAD
,
_
(
"Pad Orient:"
),
wxDefaultPosition
,
wxDefaultSize
,
m_PadOrientStrings
,
1
,
wxRA_SPECIFY_COLS
);
m_PadOrient
->
SetSelection
(
0
);
m_PadOptSizer
->
Add
(
m_PadOrient
,
0
,
wxGROW
|
wxALL
,
5
);
wxString
m_PadShapeStrings
[]
=
{
_
(
"Circle"
),
_
(
"Oval"
),
_
(
"Rect"
),
_
(
"Trapezoidal"
)
};
m_PadShape
=
new
wxRadioBox
(
itemDialog1
,
ID_LISTBOX_SHAPE_PAD
,
_
(
"Pad Shape:"
),
wxDefaultPosition
,
wxDefaultSize
,
4
,
m_PadShapeStrings
,
1
,
wxRA_SPECIFY_COLS
);
wxArrayString
m_PadShapeStrings
;
m_PadShapeStrings
.
Add
(
_
(
"Circle"
));
m_PadShapeStrings
.
Add
(
_
(
"Oval"
));
m_PadShapeStrings
.
Add
(
_
(
"Rect"
));
m_PadShapeStrings
.
Add
(
_
(
"Trapezoidal"
));
m_PadShape
=
new
wxRadioBox
(
itemDialog1
,
ID_LISTBOX_SHAPE_PAD
,
_
(
"Pad Shape:"
),
wxDefaultPosition
,
wxDefaultSize
,
m_PadShapeStrings
,
1
,
wxRA_SPECIFY_COLS
);
m_PadShape
->
SetSelection
(
0
);
m_PadOptSizer
->
Add
(
m_PadShape
,
0
,
wxGROW
|
wxALL
,
5
);
wxString
m_PadTypeStrings
[]
=
{
_
(
"Standard"
),
_
(
"SMD"
),
_
(
"Conn"
),
_
(
"Hole"
),
_
(
"Mechanical"
)
};
m_PadType
=
new
wxRadioBox
(
itemDialog1
,
ID_LISTBOX_TYPE_PAD
,
_
(
"Pad Type:"
),
wxDefaultPosition
,
wxDefaultSize
,
5
,
m_PadTypeStrings
,
1
,
wxRA_SPECIFY_COLS
);
wxArrayString
m_PadTypeStrings
;
m_PadTypeStrings
.
Add
(
_
(
"Standard"
));
m_PadTypeStrings
.
Add
(
_
(
"SMD"
));
m_PadTypeStrings
.
Add
(
_
(
"Conn"
));
m_PadTypeStrings
.
Add
(
_
(
"Hole"
));
m_PadTypeStrings
.
Add
(
_
(
"Mechanical"
));
m_PadType
=
new
wxRadioBox
(
itemDialog1
,
ID_LISTBOX_TYPE_PAD
,
_
(
"Pad Type:"
),
wxDefaultPosition
,
wxDefaultSize
,
m_PadTypeStrings
,
1
,
wxRA_SPECIFY_COLS
);
m_PadType
->
SetSelection
(
0
);
m_PadOptSizer
->
Add
(
m_PadType
,
0
,
wxGROW
|
wxALL
,
5
);
...
...
@@ -228,61 +224,61 @@ void WinEDA_PadPropertiesFrame::CreateControls()
wxStaticBox
*
itemStaticBoxSizer18Static
=
new
wxStaticBox
(
itemDialog1
,
wxID_ANY
,
_
(
"Layers:"
));
wxStaticBoxSizer
*
itemStaticBoxSizer18
=
new
wxStaticBoxSizer
(
itemStaticBoxSizer18Static
,
wxVERTICAL
);
itemBoxSizer15
->
Add
(
itemStaticBoxSizer18
,
0
,
wxALIGN_CENTER_HORIZONTAL
|
wx
ALL
,
5
);
itemBoxSizer15
->
Add
(
itemStaticBoxSizer18
,
0
,
wxALIGN_CENTER_HORIZONTAL
|
wx
LEFT
|
wxRIGHT
,
5
);
m_PadLayerCu
=
new
wxCheckBox
(
itemDialog1
,
ID_CHECKBOX
,
_
(
"Copper layer"
),
wxDefaultPosition
,
wxDefaultSize
,
wxCHK_2STATE
);
m_PadLayerCu
->
SetValue
(
false
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerCu
,
0
,
wxGROW
|
wx
ALL
,
5
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerCu
,
0
,
wxGROW
|
wx
LEFT
|
wxRIGHT
|
wxTOP
,
5
);
m_PadLayerCmp
=
new
wxCheckBox
(
itemDialog1
,
ID_CHECKBOX1
,
_
(
"Comp layer"
),
wxDefaultPosition
,
wxDefaultSize
,
wxCHK_2STATE
);
m_PadLayerCmp
->
SetValue
(
false
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerCmp
,
0
,
wxGROW
|
wx
ALL
,
5
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerCmp
,
0
,
wxGROW
|
wx
LEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
itemStaticBoxSizer18
->
Add
(
5
,
5
,
0
,
wxALIGN_CENTER_HORIZONTAL
|
wxALL
,
5
);
m_PadLayerAdhCmp
=
new
wxCheckBox
(
itemDialog1
,
ID_CHECKBOX2
,
_
(
"Adhesive Cmp"
),
wxDefaultPosition
,
wxDefaultSize
,
wxCHK_2STATE
);
m_PadLayerAdhCmp
->
SetValue
(
false
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerAdhCmp
,
0
,
wxGROW
|
wx
ALL
,
5
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerAdhCmp
,
0
,
wxGROW
|
wx
LEFT
|
wxRIGHT
|
wxTOP
,
5
);
m_PadLayerAdhCu
=
new
wxCheckBox
(
itemDialog1
,
ID_CHECKBOX3
,
_
(
"Adhesive Copper"
),
wxDefaultPosition
,
wxDefaultSize
,
wxCHK_2STATE
);
m_PadLayerAdhCu
->
SetValue
(
false
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerAdhCu
,
0
,
wxGROW
|
wx
ALL
,
5
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerAdhCu
,
0
,
wxGROW
|
wx
LEFT
|
wxRIGHT
,
5
);
m_PadLayerPateCmp
=
new
wxCheckBox
(
itemDialog1
,
ID_CHECKBOX4
,
_
(
"Solder paste Cmp"
),
wxDefaultPosition
,
wxDefaultSize
,
wxCHK_2STATE
);
m_PadLayerPateCmp
->
SetValue
(
false
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerPateCmp
,
0
,
wxGROW
|
wx
ALL
,
5
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerPateCmp
,
0
,
wxGROW
|
wx
LEFT
|
wxRIGHT
,
5
);
m_PadLayerPateCu
=
new
wxCheckBox
(
itemDialog1
,
ID_CHECKBOX5
,
_
(
"Solder paste Copper"
),
wxDefaultPosition
,
wxDefaultSize
,
wxCHK_2STATE
);
m_PadLayerPateCu
->
SetValue
(
false
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerPateCu
,
0
,
wxGROW
|
wx
ALL
,
5
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerPateCu
,
0
,
wxGROW
|
wx
LEFT
|
wxRIGHT
,
5
);
m_PadLayerSilkCmp
=
new
wxCheckBox
(
itemDialog1
,
ID_CHECKBOX6
,
_
(
"Silkscreen Cmp"
),
wxDefaultPosition
,
wxDefaultSize
,
wxCHK_2STATE
);
m_PadLayerSilkCmp
->
SetValue
(
false
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerSilkCmp
,
0
,
wxGROW
|
wx
ALL
,
5
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerSilkCmp
,
0
,
wxGROW
|
wx
LEFT
|
wxRIGHT
,
5
);
m_PadLayerSilkCu
=
new
wxCheckBox
(
itemDialog1
,
ID_CHECKBOX7
,
_
(
"Silkscreen Copper"
),
wxDefaultPosition
,
wxDefaultSize
,
wxCHK_2STATE
);
m_PadLayerSilkCu
->
SetValue
(
false
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerSilkCu
,
0
,
wxGROW
|
wx
ALL
,
5
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerSilkCu
,
0
,
wxGROW
|
wx
LEFT
|
wxRIGHT
,
5
);
m_PadLayerMaskCmp
=
new
wxCheckBox
(
itemDialog1
,
ID_CHECKBOX8
,
_
(
"Solder mask Cmp"
),
wxDefaultPosition
,
wxDefaultSize
,
wxCHK_2STATE
);
m_PadLayerMaskCmp
->
SetValue
(
false
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerMaskCmp
,
0
,
wxGROW
|
wx
ALL
,
5
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerMaskCmp
,
0
,
wxGROW
|
wx
LEFT
|
wxRIGHT
,
5
);
m_PadLayerMaskCu
=
new
wxCheckBox
(
itemDialog1
,
ID_CHECKBOX9
,
_
(
"Solder mask Copper"
),
wxDefaultPosition
,
wxDefaultSize
,
wxCHK_2STATE
);
m_PadLayerMaskCu
->
SetValue
(
false
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerMaskCu
,
0
,
wxGROW
|
wx
ALL
,
5
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerMaskCu
,
0
,
wxGROW
|
wx
LEFT
|
wxRIGHT
,
5
);
m_PadLayerECO1
=
new
wxCheckBox
(
itemDialog1
,
ID_CHECKBOX10
,
_
(
"E.C.O.1 layer"
),
wxDefaultPosition
,
wxDefaultSize
,
wxCHK_2STATE
);
m_PadLayerECO1
->
SetValue
(
false
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerECO1
,
0
,
wxGROW
|
wx
ALL
,
5
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerECO1
,
0
,
wxGROW
|
wx
LEFT
|
wxRIGHT
,
5
);
m_PadLayerECO2
=
new
wxCheckBox
(
itemDialog1
,
ID_CHECKBOX11
,
_
(
"E.C.O.2 layer"
),
wxDefaultPosition
,
wxDefaultSize
,
wxCHK_2STATE
);
m_PadLayerECO2
->
SetValue
(
false
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerECO2
,
0
,
wxGROW
|
wx
ALL
,
5
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerECO2
,
0
,
wxGROW
|
wx
LEFT
|
wxRIGHT
,
5
);
m_PadLayerDraft
=
new
wxCheckBox
(
itemDialog1
,
ID_CHECKBOX12
,
_
(
"Draft layer"
),
wxDefaultPosition
,
wxDefaultSize
,
wxCHK_2STATE
);
m_PadLayerDraft
->
SetValue
(
false
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerDraft
,
0
,
wxGROW
|
wx
ALL
,
5
);
itemStaticBoxSizer18
->
Add
(
m_PadLayerDraft
,
0
,
wxGROW
|
wx
LEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
////@end WinEDA_PadPropertiesFrame content construction
...
...
@@ -381,11 +377,6 @@ void WinEDA_PadPropertiesFrame::OnListboxShapePadSelected( wxCommandEvent& event
m_PadDeltaSizeCtrl
->
Enable
(
TRUE
,
TRUE
);
m_PadSizeCtrl
->
Enable
(
TRUE
,
TRUE
);
break
;
case
4
:
//SPECIAL_PAD:
m_PadDeltaSizeCtrl
->
Enable
(
FALSE
,
FALSE
);
m_PadSizeCtrl
->
Enable
(
TRUE
,
TRUE
);
break
;
}
}
...
...
pcbnew/dialog_pad_edit.h
View file @
f5eae506
...
...
@@ -39,12 +39,6 @@ class wxBoxSizer;
////@begin control identifiers
#define ID_DIALOG 10000
// #define SYMBOL_WINEDA_PADPROPERTIESFRAME_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_STYLE wxCAPTION|wxSYSTEM_MENU|wxCLOSE_BOX
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_TITLE _("Pad properties")
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_IDNAME ID_DIALOG
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_SIZE wxSize(400, 300)
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_POSITION wxDefaultPosition
#define ID_TEXTCTRL_PADNUM 10001
#define ID_TEXTCTRL_NETNAME 10002
#define ID_RADIOBOX_DRILL_SHAPE 10019
...
...
@@ -64,6 +58,11 @@ class wxBoxSizer;
#define ID_CHECKBOX10 10016
#define ID_CHECKBOX11 10017
#define ID_CHECKBOX12 10018
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_STYLE wxCAPTION|wxSYSTEM_MENU|wxCLOSE_BOX
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_TITLE _("Pad properties")
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_IDNAME ID_DIALOG
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_SIZE wxSize(400, 300)
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_POSITION wxDefaultPosition
////@end control identifiers
/*!
...
...
pcbnew/dialog_pad_edit.pjd
View file @
f5eae506
<?xml version="1.0" encoding="
windows-1252
"?>
<?xml version="1.0" encoding="
UTF-8
"?>
<anthemion-project
version=
"1.0.0.0"
xmlns=
"http://www.anthemion.co.uk"
>
<header>
<long
name=
"name_counter"
>
0
</long>
...
...
@@ -6,7 +6,6 @@
<string
name=
"title"
>
""
</string>
<string
name=
"author"
>
""
</string>
<string
name=
"description"
>
""
</string>
<long
name=
"doc_count"
>
39
</long>
<string
name=
"xrc_filename"
>
""
</string>
<bool
name=
"convert_images_to_xpm"
>
0
</bool>
<bool
name=
"inline_images"
>
0
</bool>
...
...
@@ -18,6 +17,7 @@
<string
name=
"copyright_string"
>
"License GNU"
</string>
<string
name=
"resource_prefix"
>
""
</string>
<bool
name=
"use_two_step_construction"
>
0
</bool>
<bool
name=
"use_enums"
>
0
</bool>
<string
name=
"current_platform"
>
"
<
All platforms
>
"
</string>
<string
name=
"target_wx_version"
>
"
<
Any
>
"
</string>
<string
name=
"cpp_header_comment"
>
"/////////////////////////////////////////////////////////////////////////////
...
...
@@ -43,12 +43,6 @@
// Licence:
/////////////////////////////////////////////////////////////////////////////
"
</string>
<string
name=
"cpp_function_comment"
>
"
/*!
* %BODY%
*/
"
</string>
<string
name=
"cpp_symbols_file_comment"
>
"/////////////////////////////////////////////////////////////////////////////
// Name: %SYMBOLS-FILENAME%
...
...
@@ -82,6 +76,14 @@
#include
"
wx/wx.h
"
#endif
"
</string>
<string
name=
"cpp_function_declaration_comment"
>
" /// %BODY%
"
</string>
<string
name=
"cpp_function_implementation_comment"
>
"
/*!
* %BODY%
*/
"
</string>
<string
name=
"resource_file_header"
>
"app_resources.h"
</string>
<string
name=
"resource_file_implementation"
>
"app_resources.cpp"
</string>
...
...
@@ -93,17 +95,20 @@
<string
name=
"external_symbol_filenames"
>
""
</string>
<string
name=
"configuration"
>
"
<
None
>
"
</string>
<string
name=
"source_encoding"
>
"
<
System
>
"
</string>
<string
name=
"xrc_encoding"
>
"utf-8"
</string>
<string
name=
"project_encoding"
>
"
<
System
>
"
</string>
<string
name=
"resource_archive"
>
""
</string>
<long
name=
"text_file_type"
>
0
</long>
<bool
name=
"use_tabs"
>
0
</bool>
<long
name=
"indent_size"
>
4
</long>
<string
name=
"whitespace_after_return_type"
>
" "
</string>
<string
name=
"resource_xrc_cpp"
>
""
</string>
<bool
name=
"use_resource_archive"
>
0
</bool>
<bool
name=
"use_generated_xrc_cpp"
>
0
</bool>
<bool
name=
"always_generate_xrc"
>
1
</bool>
<bool
name=
"archive_xrc_files"
>
1
</bool>
<bool
name=
"archive_image_files"
>
1
</bool>
<bool
name=
"archive_all_image_files"
>
0
</bool>
<bool
name=
"xrc_retain_relative_paths"
>
1
</bool>
</header>
<data>
...
...
@@ -181,7 +186,7 @@
<long
name=
"is-transient"
>
1
</long>
<long
name=
"owns-file"
>
1
</long>
<long
name=
"title-mode"
>
0
</long>
<long
name=
"locked"
>
0
</long>
<long
name=
"locked"
>
1
</long>
<document>
<string
name=
"title"
>
"Windows"
</string>
<string
name=
"type"
>
"html-document"
</string>
...
...
@@ -205,6 +210,8 @@
<long
name=
"base-id"
>
10000
</long>
<bool
name=
"use-id-prefix"
>
0
</bool>
<string
name=
"id-prefix"
>
""
</string>
<bool
name=
"use-id-suffix"
>
0
</bool>
<string
name=
"id-suffix"
>
""
</string>
<long
name=
"use-xrc"
>
0
</long>
<string
name=
"proxy-Id name"
>
"ID_DIALOG"
</string>
<long
name=
"proxy-Id value"
>
10000
</long>
...
...
@@ -258,6 +265,7 @@
<long
name=
"proxy-Y"
>
-1
</long>
<long
name=
"proxy-Width"
>
400
</long>
<long
name=
"proxy-Height"
>
300
</long>
<bool
name=
"proxy-AUI manager"
>
0
</bool>
<string
name=
"proxy-Event sources"
>
""
</string>
<document>
<string
name=
"title"
>
"wxBoxSizer H"
</string>
...
...
@@ -314,6 +322,11 @@
<string
name=
"proxy-Id name"
>
"wxID_STATIC"
</string>
<long
name=
"proxy-Id value"
>
5105
</long>
<string
name=
"proxy-Class"
>
"wxStaticText"
</string>
<string
name=
"proxy-Base class"
>
"wxStaticText"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
""
</string>
<string
name=
"proxy-Label"
>
"Pad Num :"
</string>
<long
name=
"proxy-Wrapping width"
>
-1
</long>
...
...
@@ -373,6 +386,11 @@
<string
name=
"proxy-Id name"
>
"ID_TEXTCTRL_PADNUM"
</string>
<long
name=
"proxy-Id value"
>
10001
</long>
<string
name=
"proxy-Class"
>
"wxTextCtrl"
</string>
<string
name=
"proxy-Base class"
>
"wxTextCtrl"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
"m_PadNumCtrl"
</string>
<string
name=
"proxy-Initial value"
>
""
</string>
<long
name=
"proxy-Max length"
>
0
</long>
...
...
@@ -399,7 +417,7 @@
<bool
name=
"proxy-wxTE_CENTRE"
>
0
</bool>
<bool
name=
"proxy-wxTE_RIGHT"
>
0
</bool>
<bool
name=
"proxy-wxHSCROLL"
>
0
</bool>
<bool
name=
"proxy-wxTE_
LINE
WRAP"
>
0
</bool>
<bool
name=
"proxy-wxTE_
CHAR
WRAP"
>
0
</bool>
<bool
name=
"proxy-wxTE_WORDWRAP"
>
0
</bool>
<bool
name=
"proxy-wxNO_BORDER"
>
0
</bool>
<bool
name=
"proxy-wxSIMPLE_BORDER"
>
0
</bool>
...
...
@@ -428,6 +446,7 @@
<bool
name=
"proxy-wxFIXED_MINSIZE"
>
0
</bool>
<string
name=
"proxy-Custom arguments"
>
""
</string>
<string
name=
"proxy-Custom ctor arguments"
>
""
</string>
<bool
name=
"proxy-wxTE_LINEWRAP"
>
0
</bool>
</document>
<document>
<string
name=
"title"
>
"wxStaticText: wxID_STATIC"
</string>
...
...
@@ -443,6 +462,11 @@
<string
name=
"proxy-Id name"
>
"wxID_STATIC"
</string>
<long
name=
"proxy-Id value"
>
5105
</long>
<string
name=
"proxy-Class"
>
"wxStaticText"
</string>
<string
name=
"proxy-Base class"
>
"wxStaticText"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
""
</string>
<string
name=
"proxy-Label"
>
"Pad Net Name :"
</string>
<long
name=
"proxy-Wrapping width"
>
-1
</long>
...
...
@@ -502,6 +526,11 @@
<string
name=
"proxy-Id name"
>
"ID_TEXTCTRL_NETNAME"
</string>
<long
name=
"proxy-Id value"
>
10002
</long>
<string
name=
"proxy-Class"
>
"wxTextCtrl"
</string>
<string
name=
"proxy-Base class"
>
"wxTextCtrl"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
"m_PadNetNameCtrl"
</string>
<string
name=
"proxy-Initial value"
>
""
</string>
<long
name=
"proxy-Max length"
>
0
</long>
...
...
@@ -528,7 +557,7 @@
<bool
name=
"proxy-wxTE_CENTRE"
>
0
</bool>
<bool
name=
"proxy-wxTE_RIGHT"
>
0
</bool>
<bool
name=
"proxy-wxHSCROLL"
>
0
</bool>
<bool
name=
"proxy-wxTE_
LINE
WRAP"
>
0
</bool>
<bool
name=
"proxy-wxTE_
CHAR
WRAP"
>
0
</bool>
<bool
name=
"proxy-wxTE_WORDWRAP"
>
0
</bool>
<bool
name=
"proxy-wxNO_BORDER"
>
0
</bool>
<bool
name=
"proxy-wxSIMPLE_BORDER"
>
0
</bool>
...
...
@@ -557,6 +586,7 @@
<bool
name=
"proxy-wxFIXED_MINSIZE"
>
0
</bool>
<string
name=
"proxy-Custom arguments"
>
""
</string>
<string
name=
"proxy-Custom ctor arguments"
>
""
</string>
<bool
name=
"proxy-wxTE_LINEWRAP"
>
0
</bool>
</document>
<document>
<string
name=
"title"
>
"wxBoxSizer V"
</string>
...
...
@@ -625,6 +655,11 @@
<string
name=
"proxy-Id name"
>
"ID_RADIOBOX_DRILL_SHAPE"
</string>
<long
name=
"proxy-Id value"
>
10019
</long>
<string
name=
"proxy-Class"
>
"wxRadioBox"
</string>
<string
name=
"proxy-Base class"
>
"wxRadioBox"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
"m_DrillShapeCtrl"
</string>
<string
name=
"proxy-Label"
>
"Drill Shape:"
</string>
<long
name=
"proxy-Major dimension count"
>
1
</long>
...
...
@@ -705,6 +740,11 @@
<string
name=
"proxy-Id name"
>
"ID_LISTBOX_ORIENT_PAD"
</string>
<long
name=
"proxy-Id value"
>
10003
</long>
<string
name=
"proxy-Class"
>
"wxRadioBox"
</string>
<string
name=
"proxy-Base class"
>
"wxRadioBox"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
"m_PadOrient"
</string>
<string
name=
"proxy-Label"
>
"Pad Orient:"
</string>
<long
name=
"proxy-Major dimension count"
>
1
</long>
...
...
@@ -759,6 +799,11 @@
<string
name=
"proxy-Id name"
>
"ID_LISTBOX_SHAPE_PAD"
</string>
<long
name=
"proxy-Id value"
>
10004
</long>
<string
name=
"proxy-Class"
>
"wxRadioBox"
</string>
<string
name=
"proxy-Base class"
>
"wxRadioBox"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
"m_PadShape"
</string>
<string
name=
"proxy-Label"
>
"Pad Shape:"
</string>
<long
name=
"proxy-Major dimension count"
>
1
</long>
...
...
@@ -813,6 +858,11 @@
<string
name=
"proxy-Id name"
>
"ID_LISTBOX_TYPE_PAD"
</string>
<long
name=
"proxy-Id value"
>
10005
</long>
<string
name=
"proxy-Class"
>
"wxRadioBox"
</string>
<string
name=
"proxy-Base class"
>
"wxRadioBox"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
"m_PadType"
</string>
<string
name=
"proxy-Label"
>
"Pad Type:"
</string>
<long
name=
"proxy-Major dimension count"
>
1
</long>
...
...
@@ -893,6 +943,11 @@
<string
name=
"proxy-Id name"
>
"wxID_OK"
</string>
<long
name=
"proxy-Id value"
>
5100
</long>
<string
name=
"proxy-Class"
>
"wxButton"
</string>
<string
name=
"proxy-Base class"
>
"wxButton"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
""
</string>
<string
name=
"proxy-Label"
>
"
&
OK"
</string>
<bool
name=
"proxy-Default"
>
0
</bool>
...
...
@@ -947,6 +1002,11 @@
<string
name=
"proxy-Id name"
>
"wxID_CANCEL"
</string>
<long
name=
"proxy-Id value"
>
5101
</long>
<string
name=
"proxy-Class"
>
"wxButton"
</string>
<string
name=
"proxy-Base class"
>
"wxButton"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
""
</string>
<string
name=
"proxy-Label"
>
"
&
Cancel"
</string>
<bool
name=
"proxy-Default"
>
0
</bool>
...
...
@@ -1000,21 +1060,22 @@
<string
name=
"proxy-Id name"
>
"wxID_ANY"
</string>
<string
name=
"proxy-Id value"
>
"-1"
</string>
<string
name=
"proxy-Label"
>
"Layers:"
</string>
<string
name=
"proxy-Member variable name"
>
""
</string>
<string
name=
"proxy-Sizer member variable name"
>
""
</string>
<string
name=
"proxy-Foreground colour"
>
""
</string>
<string
name=
"proxy-Font"
>
""
</string>
<bool
name=
"proxy-Hidden"
>
0
</bool>
<bool
name=
"proxy-Enabled"
>
1
</bool>
<string
name=
"proxy-Static box class"
>
"wxStaticBox"
</string>
<string
name=
"proxy-Orientation"
>
"Vertical"
</string>
<string
name=
"proxy-Member variable name"
>
""
</string>
<string
name=
"proxy-AlignH"
>
"Centre"
</string>
<string
name=
"proxy-AlignV"
>
"Centre"
</string>
<long
name=
"proxy-Stretch factor"
>
0
</long>
<long
name=
"proxy-Border"
>
5
</long>
<bool
name=
"proxy-wxLEFT"
>
1
</bool>
<bool
name=
"proxy-wxRIGHT"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
1
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
0
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
0
</bool>
<bool
name=
"proxy-wxSHAPED"
>
0
</bool>
<bool
name=
"proxy-wxADJUST_MINSIZE"
>
0
</bool>
<bool
name=
"proxy-wxFIXED_MINSIZE"
>
0
</bool>
...
...
@@ -1033,6 +1094,11 @@
<string
name=
"proxy-Id name"
>
"ID_CHECKBOX"
</string>
<long
name=
"proxy-Id value"
>
10006
</long>
<string
name=
"proxy-Class"
>
"wxCheckBox"
</string>
<string
name=
"proxy-Base class"
>
"wxCheckBox"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
"m_PadLayerCu"
</string>
<string
name=
"proxy-Label"
>
"Copper layer"
</string>
<bool
name=
"proxy-Initial value"
>
0
</bool>
...
...
@@ -1065,7 +1131,7 @@
<bool
name=
"proxy-wxLEFT"
>
1
</bool>
<bool
name=
"proxy-wxRIGHT"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
1
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
1
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
0
</bool>
<bool
name=
"proxy-wxSHAPED"
>
0
</bool>
<bool
name=
"proxy-wxADJUST_MINSIZE"
>
0
</bool>
<bool
name=
"proxy-wxFIXED_MINSIZE"
>
0
</bool>
...
...
@@ -1086,6 +1152,11 @@
<string
name=
"proxy-Id name"
>
"ID_CHECKBOX1"
</string>
<long
name=
"proxy-Id value"
>
10007
</long>
<string
name=
"proxy-Class"
>
"wxCheckBox"
</string>
<string
name=
"proxy-Base class"
>
"wxCheckBox"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
"m_PadLayerCmp"
</string>
<string
name=
"proxy-Label"
>
"Comp layer"
</string>
<bool
name=
"proxy-Initial value"
>
0
</bool>
...
...
@@ -1117,7 +1188,7 @@
<long
name=
"proxy-Border"
>
5
</long>
<bool
name=
"proxy-wxLEFT"
>
1
</bool>
<bool
name=
"proxy-wxRIGHT"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
0
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
1
</bool>
<bool
name=
"proxy-wxSHAPED"
>
0
</bool>
<bool
name=
"proxy-wxADJUST_MINSIZE"
>
0
</bool>
...
...
@@ -1165,6 +1236,11 @@
<string
name=
"proxy-Id name"
>
"ID_CHECKBOX2"
</string>
<long
name=
"proxy-Id value"
>
10008
</long>
<string
name=
"proxy-Class"
>
"wxCheckBox"
</string>
<string
name=
"proxy-Base class"
>
"wxCheckBox"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
"m_PadLayerAdhCmp"
</string>
<string
name=
"proxy-Label"
>
"Adhesive Cmp"
</string>
<bool
name=
"proxy-Initial value"
>
0
</bool>
...
...
@@ -1197,7 +1273,7 @@
<bool
name=
"proxy-wxLEFT"
>
1
</bool>
<bool
name=
"proxy-wxRIGHT"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
1
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
1
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
0
</bool>
<bool
name=
"proxy-wxSHAPED"
>
0
</bool>
<bool
name=
"proxy-wxADJUST_MINSIZE"
>
0
</bool>
<bool
name=
"proxy-wxFIXED_MINSIZE"
>
0
</bool>
...
...
@@ -1218,6 +1294,11 @@
<string
name=
"proxy-Id name"
>
"ID_CHECKBOX3"
</string>
<long
name=
"proxy-Id value"
>
10009
</long>
<string
name=
"proxy-Class"
>
"wxCheckBox"
</string>
<string
name=
"proxy-Base class"
>
"wxCheckBox"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
"m_PadLayerAdhCu"
</string>
<string
name=
"proxy-Label"
>
"Adhesive Copper"
</string>
<bool
name=
"proxy-Initial value"
>
0
</bool>
...
...
@@ -1249,8 +1330,8 @@
<long
name=
"proxy-Border"
>
5
</long>
<bool
name=
"proxy-wxLEFT"
>
1
</bool>
<bool
name=
"proxy-wxRIGHT"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
1
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
0
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
0
</bool>
<bool
name=
"proxy-wxSHAPED"
>
0
</bool>
<bool
name=
"proxy-wxADJUST_MINSIZE"
>
0
</bool>
<bool
name=
"proxy-wxFIXED_MINSIZE"
>
0
</bool>
...
...
@@ -1271,6 +1352,11 @@
<string
name=
"proxy-Id name"
>
"ID_CHECKBOX4"
</string>
<long
name=
"proxy-Id value"
>
10010
</long>
<string
name=
"proxy-Class"
>
"wxCheckBox"
</string>
<string
name=
"proxy-Base class"
>
"wxCheckBox"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
"m_PadLayerPateCmp"
</string>
<string
name=
"proxy-Label"
>
"Solder paste Cmp"
</string>
<bool
name=
"proxy-Initial value"
>
0
</bool>
...
...
@@ -1302,8 +1388,8 @@
<long
name=
"proxy-Border"
>
5
</long>
<bool
name=
"proxy-wxLEFT"
>
1
</bool>
<bool
name=
"proxy-wxRIGHT"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
1
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
0
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
0
</bool>
<bool
name=
"proxy-wxSHAPED"
>
0
</bool>
<bool
name=
"proxy-wxADJUST_MINSIZE"
>
0
</bool>
<bool
name=
"proxy-wxFIXED_MINSIZE"
>
0
</bool>
...
...
@@ -1324,6 +1410,11 @@
<string
name=
"proxy-Id name"
>
"ID_CHECKBOX5"
</string>
<long
name=
"proxy-Id value"
>
10011
</long>
<string
name=
"proxy-Class"
>
"wxCheckBox"
</string>
<string
name=
"proxy-Base class"
>
"wxCheckBox"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
"m_PadLayerPateCu"
</string>
<string
name=
"proxy-Label"
>
"Solder paste Copper"
</string>
<bool
name=
"proxy-Initial value"
>
0
</bool>
...
...
@@ -1355,8 +1446,8 @@
<long
name=
"proxy-Border"
>
5
</long>
<bool
name=
"proxy-wxLEFT"
>
1
</bool>
<bool
name=
"proxy-wxRIGHT"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
1
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
0
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
0
</bool>
<bool
name=
"proxy-wxSHAPED"
>
0
</bool>
<bool
name=
"proxy-wxADJUST_MINSIZE"
>
0
</bool>
<bool
name=
"proxy-wxFIXED_MINSIZE"
>
0
</bool>
...
...
@@ -1377,6 +1468,11 @@
<string
name=
"proxy-Id name"
>
"ID_CHECKBOX6"
</string>
<long
name=
"proxy-Id value"
>
10012
</long>
<string
name=
"proxy-Class"
>
"wxCheckBox"
</string>
<string
name=
"proxy-Base class"
>
"wxCheckBox"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
"m_PadLayerSilkCmp"
</string>
<string
name=
"proxy-Label"
>
"Silkscreen Cmp"
</string>
<bool
name=
"proxy-Initial value"
>
0
</bool>
...
...
@@ -1408,8 +1504,8 @@
<long
name=
"proxy-Border"
>
5
</long>
<bool
name=
"proxy-wxLEFT"
>
1
</bool>
<bool
name=
"proxy-wxRIGHT"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
1
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
0
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
0
</bool>
<bool
name=
"proxy-wxSHAPED"
>
0
</bool>
<bool
name=
"proxy-wxADJUST_MINSIZE"
>
0
</bool>
<bool
name=
"proxy-wxFIXED_MINSIZE"
>
0
</bool>
...
...
@@ -1430,6 +1526,11 @@
<string
name=
"proxy-Id name"
>
"ID_CHECKBOX7"
</string>
<long
name=
"proxy-Id value"
>
10013
</long>
<string
name=
"proxy-Class"
>
"wxCheckBox"
</string>
<string
name=
"proxy-Base class"
>
"wxCheckBox"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
"m_PadLayerSilkCu"
</string>
<string
name=
"proxy-Label"
>
"Silkscreen Copper"
</string>
<bool
name=
"proxy-Initial value"
>
0
</bool>
...
...
@@ -1461,8 +1562,8 @@
<long
name=
"proxy-Border"
>
5
</long>
<bool
name=
"proxy-wxLEFT"
>
1
</bool>
<bool
name=
"proxy-wxRIGHT"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
1
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
0
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
0
</bool>
<bool
name=
"proxy-wxSHAPED"
>
0
</bool>
<bool
name=
"proxy-wxADJUST_MINSIZE"
>
0
</bool>
<bool
name=
"proxy-wxFIXED_MINSIZE"
>
0
</bool>
...
...
@@ -1483,6 +1584,11 @@
<string
name=
"proxy-Id name"
>
"ID_CHECKBOX8"
</string>
<long
name=
"proxy-Id value"
>
10014
</long>
<string
name=
"proxy-Class"
>
"wxCheckBox"
</string>
<string
name=
"proxy-Base class"
>
"wxCheckBox"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
"m_PadLayerMaskCmp"
</string>
<string
name=
"proxy-Label"
>
"Solder mask Cmp"
</string>
<bool
name=
"proxy-Initial value"
>
0
</bool>
...
...
@@ -1514,8 +1620,8 @@
<long
name=
"proxy-Border"
>
5
</long>
<bool
name=
"proxy-wxLEFT"
>
1
</bool>
<bool
name=
"proxy-wxRIGHT"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
1
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
0
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
0
</bool>
<bool
name=
"proxy-wxSHAPED"
>
0
</bool>
<bool
name=
"proxy-wxADJUST_MINSIZE"
>
0
</bool>
<bool
name=
"proxy-wxFIXED_MINSIZE"
>
0
</bool>
...
...
@@ -1536,6 +1642,11 @@
<string
name=
"proxy-Id name"
>
"ID_CHECKBOX9"
</string>
<long
name=
"proxy-Id value"
>
10015
</long>
<string
name=
"proxy-Class"
>
"wxCheckBox"
</string>
<string
name=
"proxy-Base class"
>
"wxCheckBox"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
"m_PadLayerMaskCu"
</string>
<string
name=
"proxy-Label"
>
"Solder mask Copper"
</string>
<bool
name=
"proxy-Initial value"
>
0
</bool>
...
...
@@ -1567,8 +1678,8 @@
<long
name=
"proxy-Border"
>
5
</long>
<bool
name=
"proxy-wxLEFT"
>
1
</bool>
<bool
name=
"proxy-wxRIGHT"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
1
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
0
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
0
</bool>
<bool
name=
"proxy-wxSHAPED"
>
0
</bool>
<bool
name=
"proxy-wxADJUST_MINSIZE"
>
0
</bool>
<bool
name=
"proxy-wxFIXED_MINSIZE"
>
0
</bool>
...
...
@@ -1589,6 +1700,11 @@
<string
name=
"proxy-Id name"
>
"ID_CHECKBOX10"
</string>
<long
name=
"proxy-Id value"
>
10016
</long>
<string
name=
"proxy-Class"
>
"wxCheckBox"
</string>
<string
name=
"proxy-Base class"
>
"wxCheckBox"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
"m_PadLayerECO1"
</string>
<string
name=
"proxy-Label"
>
"E.C.O.1 layer"
</string>
<bool
name=
"proxy-Initial value"
>
0
</bool>
...
...
@@ -1620,8 +1736,8 @@
<long
name=
"proxy-Border"
>
5
</long>
<bool
name=
"proxy-wxLEFT"
>
1
</bool>
<bool
name=
"proxy-wxRIGHT"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
1
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
0
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
0
</bool>
<bool
name=
"proxy-wxSHAPED"
>
0
</bool>
<bool
name=
"proxy-wxADJUST_MINSIZE"
>
0
</bool>
<bool
name=
"proxy-wxFIXED_MINSIZE"
>
0
</bool>
...
...
@@ -1642,6 +1758,11 @@
<string
name=
"proxy-Id name"
>
"ID_CHECKBOX11"
</string>
<long
name=
"proxy-Id value"
>
10017
</long>
<string
name=
"proxy-Class"
>
"wxCheckBox"
</string>
<string
name=
"proxy-Base class"
>
"wxCheckBox"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
"m_PadLayerECO2"
</string>
<string
name=
"proxy-Label"
>
"E.C.O.2 layer"
</string>
<bool
name=
"proxy-Initial value"
>
0
</bool>
...
...
@@ -1673,8 +1794,8 @@
<long
name=
"proxy-Border"
>
5
</long>
<bool
name=
"proxy-wxLEFT"
>
1
</bool>
<bool
name=
"proxy-wxRIGHT"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
1
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
0
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
0
</bool>
<bool
name=
"proxy-wxSHAPED"
>
0
</bool>
<bool
name=
"proxy-wxADJUST_MINSIZE"
>
0
</bool>
<bool
name=
"proxy-wxFIXED_MINSIZE"
>
0
</bool>
...
...
@@ -1695,6 +1816,11 @@
<string
name=
"proxy-Id name"
>
"ID_CHECKBOX12"
</string>
<long
name=
"proxy-Id value"
>
10018
</long>
<string
name=
"proxy-Class"
>
"wxCheckBox"
</string>
<string
name=
"proxy-Base class"
>
"wxCheckBox"
</string>
<bool
name=
"proxy-External implementation"
>
1
</bool>
<bool
name=
"proxy-Separate files"
>
0
</bool>
<string
name=
"proxy-Implementation filename"
>
""
</string>
<string
name=
"proxy-Header filename"
>
""
</string>
<string
name=
"proxy-Member variable name"
>
"m_PadLayerDraft"
</string>
<string
name=
"proxy-Label"
>
"Draft layer"
</string>
<bool
name=
"proxy-Initial value"
>
0
</bool>
...
...
@@ -1726,7 +1852,7 @@
<long
name=
"proxy-Border"
>
5
</long>
<bool
name=
"proxy-wxLEFT"
>
1
</bool>
<bool
name=
"proxy-wxRIGHT"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
1
</bool>
<bool
name=
"proxy-wxTOP"
>
0
</bool>
<bool
name=
"proxy-wxBOTTOM"
>
1
</bool>
<bool
name=
"proxy-wxSHAPED"
>
0
</bool>
<bool
name=
"proxy-wxADJUST_MINSIZE"
>
0
</bool>
...
...
pcbnew/editpads.cpp
View file @
f5eae506
...
...
@@ -160,12 +160,6 @@ int tmp;
m_PadSizeCtrl
->
Enable
(
TRUE
,
TRUE
);
m_PadShape
->
SetSelection
(
3
);
break
;
case
SPECIAL_PAD
:
m_PadDeltaSizeCtrl
->
Enable
(
FALSE
,
FALSE
);
m_PadSizeCtrl
->
Enable
(
TRUE
,
TRUE
);
m_PadShape
->
SetSelection
(
4
);
break
;
}
// Selection du type
...
...
@@ -416,9 +410,6 @@ bool error = FALSE;
case
TRAPEZE
:
break
;
case
SPECIAL_PAD
:
break
;
}
switch
(
CurrentPad
->
m_Attribut
)
...
...
pcbnew/files.cpp
View file @
f5eae506
...
...
@@ -174,9 +174,8 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, wxDC* DC, boo
else
GetScreen
()
->
m_FileName
=
FullFileName
;
/////////////////////////
/* Lecture Fichier PCB */
/////////////////////////
/* Start read PCB file
*/
source
=
wxFopen
(
GetScreen
()
->
m_FileName
,
wxT
(
"rt"
)
);
if
(
source
==
NULL
)
...
...
@@ -187,7 +186,7 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, wxDC* DC, boo
}
/*
Lecture de l'entete et TEST si PCB format ASCII
*/
/*
Read header and TEST if it is a PCB file format
*/
GetLine
(
source
,
cbuf
,
&
ii
);
if
(
strncmp
(
cbuf
,
"PCBNEW-BOARD"
,
12
)
!=
0
)
{
...
...
@@ -199,7 +198,7 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, wxDC* DC, boo
SetTitle
(
GetScreen
()
->
m_FileName
);
SetLastProject
(
GetScreen
()
->
m_FileName
);
// Re
chargement de la configuration
:
// Re
load the corresponding configuration file
:
wxSetWorkingDirectory
(
wxPathOnly
(
GetScreen
()
->
m_FileName
)
);
if
(
Append
)
ReadPcbFile
(
DC
,
source
,
TRUE
);
...
...
@@ -207,7 +206,7 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, wxDC* DC, boo
{
Read_Config
(
GetScreen
()
->
m_FileName
);
//
Mise a jour du toolbar d'options
//
Update the option toolbar
m_DisplayPcbTrackFill
=
DisplayOpt
.
DisplayPcbTrackFill
;
m_DisplayModText
=
DisplayOpt
.
DisplayModText
;
m_DisplayModEdge
=
DisplayOpt
.
DisplayModEdge
;
...
...
@@ -227,11 +226,12 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, wxDC* DC, boo
wxGetCwd
().
GetData
(),
DIR_SEP
,
PcbExtBuffer
.
GetData
()
);
}
/*
liste des pads recalculee avec Affichage des messages d'erreur
*/
/*
Rebuild the new pad list (for drc and ratsnet control ...)
*/
build_liste_pads
();
m_Pcb
->
Display_Infos
(
this
);
/* reset the auto save timer */
g_SaveTime
=
time
(
NULL
);
...
...
pcbnew/hotkeys.cpp
View file @
f5eae506
...
...
@@ -9,78 +9,110 @@
#include "common.h"
#include "pcbnew.h"
#include "id.h"
#include "hotkeys
_basic
.h"
#include "hotkeys.h"
#include "protos.h"
/* Routines locales */
enum
hotkey_id_commnand
{
HK_NOT_FOUND
=
0
,
HK_RESET_LOCAL_COORD
,
HK_HELP
,
HK_ZOOM_IN
,
HK_ZOOM_OUT
,
HK_ZOOM_REDRAW
,
HK_ZOOM_CENTER
,
HK_DELETE
,
HK_BACK_SPACE
,
HK_ROTATE_FOOTPRINT
,
HK_MOVE_FOOTPRINT
,
HK_DRAG_FOOTPRINT
,
HK_FLIP_FOOTPRINT
,
HK_LOCK_UNLOCK_FOOTPRINT
,
HK_ADD_VIA
,
HK_END_TRACK
,
HK_SAVE_BOARD
,
HK_LOAD_BOARD
,
HK_SWITCH_UNITS
,
HK_SWITCH_TRACK_DISPLAY_MODE
,
HK_FIND_ITEM
};
/* How to add a new hotkey:
* add a new id in the enum hotkey_id_commnand like MY_NEW_ID_FUNCTION.
* add a new Ki_HotkeyInfo entry like:
* static Ki_HotkeyInfo HkMyNewEntry(wxT("Command Label"), MY_NEW_ID_FUNCTION, default key value);
* "Command Label" is the name used in hotkey list display, and the identifier in the hotkey list file
* MY_NEW_ID_FUNCTION is an equivalent id function used in the switch in OnHotKey() function.
* default key value is the default hotkey for this command. Can be overrided by the user hotkey list file
* add the HkMyNewEntry pointer in the s_board_edit_Hotkey_List list ( or/and the s_module_edit_Hotkey_List list)
* Add the new code in the switch in OnHotKey() function.
* when the variable PopupOn is true, an item is currently edited.
* This can be usefull if the new function cannot be executed while an item is currently being edited
* ( For example, one cannot start a new wire when a component is moving.)
*
* Note: If an hotkey is a special key be sure the corresponding wxWidget keycode (WXK_XXXX)
* is handled in the hotkey_name_descr s_Hotkey_Name_List list (see hotkeys_basic.cpp)
* and see this list for some ascii keys (space ...)
*/
/* local variables */
/* Hotkey list: */
static
Ki_HotkeyInfo
HkSavefile
(
wxT
(
"Save board"
),
HK_SAVE_BOARD
,
'S'
+
GR_KB_CTRL
);
static
Ki_HotkeyInfo
HkLoadfile
(
wxT
(
"Load board"
),
HK_LOAD_BOARD
,
'L'
+
GR_KB_CTRL
);
static
Ki_HotkeyInfo
HkFindItem
(
wxT
(
"Find Item"
),
HK_FIND_ITEM
,
'F'
+
GR_KB_CTRL
);
static
Ki_HotkeyInfo
HkBackspace
(
wxT
(
"Delete track segment"
),
HK_BACK_SPACE
,
WXK_BACK
);
static
Ki_HotkeyInfo
HkAddVia
(
wxT
(
"Add Via"
),
HK_ADD_VIA
,
'V'
);
static
Ki_HotkeyInfo
HkEndTrack
(
wxT
(
"End Track"
),
HK_END_TRACK
,
WXK_END
);
static
Ki_HotkeyInfo
HkFlipFootprint
(
wxT
(
"Flip Footprint"
),
HK_FLIP_FOOTPRINT
,
'F'
);
static
Ki_HotkeyInfo
HkRotateFootprint
(
wxT
(
"Rotate Footprint"
),
HK_ROTATE_FOOTPRINT
,
'R'
);
static
Ki_HotkeyInfo
HkMoveFootprint
(
wxT
(
"Move Footprint"
),
HK_MOVE_FOOTPRINT
,
'M'
);
static
Ki_HotkeyInfo
HkDragFootprint
(
wxT
(
"Drag Footprint"
),
HK_DRAG_FOOTPRINT
,
'G'
);
static
Ki_HotkeyInfo
HkLock_Unlock_Footprint
(
wxT
(
"Lock/Unlock Footprint"
),
HK_LOCK_UNLOCK_FOOTPRINT
,
'L'
);
static
Ki_HotkeyInfo
HkDelete
(
wxT
(
"Delete Track or Footprint"
),
HK_DELETE
,
WXK_DELETE
);
static
Ki_HotkeyInfo
HkResetLocalCoord
(
wxT
(
"Reset local coord."
),
HK_RESET_LOCAL_COORD
,
' '
);
static
Ki_HotkeyInfo
HkZoomCenter
(
wxT
(
"Zoom Center"
),
HK_ZOOM_CENTER
,
WXK_F4
);
static
Ki_HotkeyInfo
HkZoomRedraw
(
wxT
(
"Zoom Redraw"
),
HK_ZOOM_REDRAW
,
WXK_F3
);
static
Ki_HotkeyInfo
HkZoomOut
(
wxT
(
"Zoom Out"
),
HK_ZOOM_OUT
,
WXK_F2
);
static
Ki_HotkeyInfo
HkZoomIn
(
wxT
(
"Zoom In"
),
HK_ZOOM_IN
,
WXK_F1
);
static
Ki_HotkeyInfo
HkHelp
(
wxT
(
"Help: this message"
),
HK_HELP
,
'?'
);
static
Ki_HotkeyInfo
HkSwitchUnits
(
wxT
(
"Switch Units"
),
HK_SWITCH_UNITS
,
'U'
);
static
Ki_HotkeyInfo
HkTrackDisplayMode
(
wxT
(
"Track Display Mode"
),
HK_SWITCH_TRACK_DISPLAY_MODE
,
'F'
);
static
Ki_HotkeyInfo
HkSwitch2CopperLayer
(
wxT
(
"Switch to Copper layer"
),
HK_SWITCH_LAYER_TO_COPPER
,
'-'
);
static
Ki_HotkeyInfo
HkSwitch2ComponentLayer
(
wxT
(
"Switch to Component layer"
),
HK_SWITCH_LAYER_TO_COMPONENT
,
'+'
);
static
Ki_HotkeyInfo
HkSwitch2InnerLayer1
(
wxT
(
"Switch to Inner layer 1"
),
HK_SWITCH_LAYER_TO_INNER1
,
WXK_F5
);
static
Ki_HotkeyInfo
HkSwitch2InnerLayer2
(
wxT
(
"Switch to Inner layer 2"
),
HK_SWITCH_LAYER_TO_INNER2
,
WXK_F6
);
static
Ki_HotkeyInfo
HkSwitch2InnerLayer3
(
wxT
(
"Switch to Inner layer 3"
),
HK_SWITCH_LAYER_TO_INNER3
,
WXK_F7
);
static
Ki_HotkeyInfo
HkSwitch2InnerLayer4
(
wxT
(
"Switch to Inner layer 4"
),
HK_SWITCH_LAYER_TO_INNER4
,
WXK_F8
);
static
Ki_HotkeyInfo
HkSwitch2InnerLayer5
(
wxT
(
"Switch to Inner layer 5"
),
HK_SWITCH_LAYER_TO_INNER5
,
WXK_F9
);
static
Ki_HotkeyInfo
HkSwitch2InnerLayer6
(
wxT
(
"Switch to Inner layer 6"
),
HK_SWITCH_LAYER_TO_INNER6
,
WXK_F10
);
static
Ki_HotkeyInfo
HkSavefile
(
wxT
(
"Save board"
),
HK_SAVE_BOARD
,
'S'
+
GR_KB_CTRL
);
static
Ki_HotkeyInfo
HkLoadfile
(
wxT
(
"Load board"
),
HK_LOAD_BOARD
,
'L'
+
GR_KB_CTRL
);
static
Ki_HotkeyInfo
HkFindItem
(
wxT
(
"Find Item"
),
HK_FIND_ITEM
,
'F'
+
GR_KB_CTRL
);
static
Ki_HotkeyInfo
HkBackspace
(
wxT
(
"Delete track segment"
),
HK_BACK_SPACE
,
WXK_BACK
);
static
Ki_HotkeyInfo
HkAddVia
(
wxT
(
"Add Via"
),
HK_ADD_VIA
,
'V'
);
static
Ki_HotkeyInfo
HkEndTrack
(
wxT
(
"End Track"
),
HK_END_TRACK
,
WXK_END
);
static
Ki_HotkeyInfo
HkFlipFootprint
(
wxT
(
"Flip Footprint"
),
HK_FLIP_FOOTPRINT
,
'F'
);
static
Ki_HotkeyInfo
HkRotateFootprint
(
wxT
(
"Rotate Footprint"
),
HK_ROTATE_FOOTPRINT
,
'R'
);
static
Ki_HotkeyInfo
HkMoveFootprint
(
wxT
(
"Move Footprint"
),
HK_MOVE_FOOTPRINT
,
'M'
);
static
Ki_HotkeyInfo
HkDragFootprint
(
wxT
(
"Drag Footprint"
),
HK_DRAG_FOOTPRINT
,
'G'
);
static
Ki_HotkeyInfo
HkLock_Unlock_Footprint
(
wxT
(
"Lock/Unlock Footprint"
),
HK_LOCK_UNLOCK_FOOTPRINT
,
'L'
);
static
Ki_HotkeyInfo
HkDelete
(
wxT
(
"Delete Track or Footprint"
),
HK_DELETE
,
WXK_DELETE
);
static
Ki_HotkeyInfo
HkResetLocalCoord
(
wxT
(
"Reset local coord."
),
HK_RESET_LOCAL_COORD
,
' '
);
static
Ki_HotkeyInfo
HkZoomCenter
(
wxT
(
"Zoom Center"
),
HK_ZOOM_CENTER
,
WXK_F4
);
static
Ki_HotkeyInfo
HkZoomRedraw
(
wxT
(
"Zoom Redraw"
),
HK_ZOOM_REDRAW
,
WXK_F3
);
static
Ki_HotkeyInfo
HkZoomOut
(
wxT
(
"Zoom Out"
),
HK_ZOOM_OUT
,
WXK_F2
);
static
Ki_HotkeyInfo
HkZoomIn
(
wxT
(
"Zoom In"
),
HK_ZOOM_IN
,
WXK_F1
);
static
Ki_HotkeyInfo
HkHelp
(
wxT
(
"Help: this message"
),
HK_HELP
,
'?'
);
static
Ki_HotkeyInfo
HkSwitchUnits
(
wxT
(
"Switch Units"
),
HK_SWITCH_UNITS
,
'U'
);
static
Ki_HotkeyInfo
HkTrackDisplayMode
(
wxT
(
"Track Display Mode"
),
HK_SWITCH_TRACK_DISPLAY_MODE
,
'F'
);
// List of hotkey descriptors for pcbnew
Ki_HotkeyInfo
*
s_board_edit_Hotkey_List
[]
=
{
&
HkHelp
,
&
HkZoomIn
,
&
HkZoomOut
,
&
HkZoomRedraw
,
&
HkZoomCenter
,
&
HkResetLocalCoord
,
&
HkSwitchUnits
,
&
HkTrackDisplayMode
,
&
HkDelete
,
&
HkBackspace
,
&
HkAddVia
,
&
HkEndTrack
,
&
HkMoveFootprint
,
&
HkFlipFootprint
,
&
HkRotateFootprint
,
&
HkDragFootprint
,
&
HkLock_Unlock_Footprint
,
&
HkSavefile
,
&
HkLoadfile
,
&
HkFindItem
,
NULL
Ki_HotkeyInfo
*
s_board_edit_Hotkey_List
[]
=
{
&
HkHelp
,
&
HkZoomIn
,
&
HkZoomOut
,
&
HkZoomRedraw
,
&
HkZoomCenter
,
&
HkResetLocalCoord
,
&
HkSwitchUnits
,
&
HkTrackDisplayMode
,
&
HkDelete
,
&
HkBackspace
,
&
HkAddVia
,
&
HkEndTrack
,
&
HkMoveFootprint
,
&
HkFlipFootprint
,
&
HkRotateFootprint
,
&
HkDragFootprint
,
&
HkLock_Unlock_Footprint
,
&
HkSavefile
,
&
HkLoadfile
,
&
HkFindItem
,
&
HkSwitch2CopperLayer
,
&
HkSwitch2InnerLayer1
,
&
HkSwitch2InnerLayer2
,
&
HkSwitch2InnerLayer3
,
&
HkSwitch2InnerLayer4
,
&
HkSwitch2InnerLayer5
,
&
HkSwitch2InnerLayer6
,
&
HkSwitch2ComponentLayer
,
NULL
};
Ki_HotkeyInfo
*
s_module_edit_Hotkey_List
[]
=
{
&
HkHelp
,
&
HkZoomIn
,
&
HkZoomOut
,
&
HkZoomRedraw
,
&
HkZoomCenter
,
&
HkSwitchUnits
,
&
HkResetLocalCoord
,
&
HkDelete
,
&
HkBackspace
,
NULL
// List of hotkey descriptors for the module editor
Ki_HotkeyInfo
*
s_module_edit_Hotkey_List
[]
=
{
&
HkHelp
,
&
HkZoomIn
,
&
HkZoomOut
,
&
HkZoomRedraw
,
&
HkZoomCenter
,
&
HkSwitchUnits
,
&
HkResetLocalCoord
,
&
HkDelete
,
&
HkBackspace
,
NULL
};
...
...
@@ -88,16 +120,19 @@ Ki_HotkeyInfo *s_module_edit_Hotkey_List[] = {
void
WinEDA_PcbFrame
::
OnHotKey
(
wxDC
*
DC
,
int
hotkey
,
EDA_BaseStruct
*
DrawStruct
)
/***********************************************************/
/* Hot keys. Some commands are relatives to the item under the mouse cursor
Commands are case insensitive
Zoom commands are not managed here
*/
* Commands are case insensitive
* Zoom commands are not managed here
* @param DC = current device context
* @param hotkey = hothey code (ascii or wxWidget code for special keys)
* @param DrawStruct = NULL or pointer on a EDA_BaseStruct under the mouse cursor
*/
{
bool
PopupOn
=
GetScreen
()
->
GetCurItem
()
&&
GetScreen
()
->
GetCurItem
()
->
m_Flags
;
bool
ItemFree
=
(
GetScreen
()
->
GetCurItem
()
==
0
)
||
(
GetScreen
()
->
GetCurItem
()
->
m_Flags
==
0
);
...
...
@@ -106,214 +141,290 @@ void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey,
MODULE
*
module
=
NULL
;
// Remap the control key Ctrl A (0x01) to GR_KB_CTRL + 'A' (easier to handle...)
if
(
(
hotkey
&
GR_KB_CTRL
)
!=
0
)
hotkey
+=
'A'
-
1
;
/* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */
if
(
(
hotkey
>=
'a'
)
&&
(
hotkey
<=
'z'
)
)
hotkey
+=
'A'
-
'a'
;
int
CommandCode
=
GetCommandCodeFromHotkey
(
hotkey
,
s_board_edit_Hotkey_List
);
// Remap the control key Ctrl A (0x01) to GR_KB_CTRL + 'A' (easier to handle...)
if
(
(
hotkey
&
GR_KB_CTRL
)
!=
0
)
hotkey
+=
'A'
-
1
;
/* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */
if
(
(
hotkey
>=
'a'
)
&&
(
hotkey
<=
'z'
)
)
hotkey
+=
'A'
-
'a'
;
int
CommandCode
=
GetCommandCodeFromHotkey
(
hotkey
,
s_board_edit_Hotkey_List
);
int
ll
;
switch
(
CommandCode
)
{
default
:
case
HK_NOT_FOUND
:
return
;
break
;
case
HK_HELP
:
// Display Current hotkey list
DisplayHotkeyList
(
this
,
s_board_edit_Hotkey_List
);
break
;
case
HK_ZOOM_IN
:
case
HK_ZOOM_OUT
:
case
HK_ZOOM_REDRAW
:
case
HK_ZOOM_CENTER
:
break
;
case
HK_RESET_LOCAL_COORD
:
/*Reset the relative coord */
GetScreen
()
->
m_O_Curseur
=
GetScreen
()
->
m_Curseur
;
break
;
case
HK_SWITCH_UNITS
:
g_UnitMetric
=
(
g_UnitMetric
==
INCHES
)
?
MILLIMETRE
:
INCHES
;
break
;
case
HK_SWITCH_TRACK_DISPLAY_MODE
:
DisplayOpt
.
DisplayPcbTrackFill
^=
1
;
DisplayOpt
.
DisplayPcbTrackFill
&=
1
;
GetScreen
()
->
SetRefreshReq
();
break
;
case
HK_DELETE
:
OnHotkeyDeleteItem
(
DC
,
DrawStruct
);
break
;
case
HK_BACK_SPACE
:
if
(
m_ID_current_state
==
ID_TRACK_BUTT
&&
GetScreen
()
->
m_Active_Layer
<=
CMP_N
)
{
bool
ItemFree
=
(
GetScreen
()
->
GetCurItem
()
==
NULL
)
||
(
GetScreen
()
->
GetCurItem
()
->
m_Flags
==
0
);
if
(
ItemFree
)
{
// no track is currently being edited - select a segment and remove it.
DrawStruct
=
PcbGeneralLocateAndDisplay
();
// don't let backspace delete modules!!
if
(
DrawStruct
&&
(
DrawStruct
->
m_StructType
==
TYPETRACK
||
DrawStruct
->
m_StructType
==
TYPEVIA
)
)
Delete_Segment
(
DC
,
(
TRACK
*
)
DrawStruct
);
GetScreen
()
->
SetModify
();
}
else
if
(
GetScreen
()
->
GetCurItem
()
->
m_StructType
==
TYPETRACK
)
{
// then an element is being edited - remove the last segment.
GetScreen
()
->
SetCurItem
(
Delete_Segment
(
DC
,
(
TRACK
*
)
GetScreen
()
->
GetCurItem
()
)
);
GetScreen
()
->
SetModify
();
}
}
break
;
case
HK_END_TRACK
:
DrawPanel
->
MouseToCursorSchema
();
End_Route
(
(
TRACK
*
)
(
GetScreen
()
->
GetCurItem
()),
DC
);
break
;
case
HK_FIND_ITEM
:
{
wxCommandEvent
evt
;
evt
.
SetId
(
ID_FIND_ITEMS
);
Process_Special_Functions
(
evt
);
}
break
;
case
HK_LOAD_BOARD
:
{
// try not to duplicate save, load code etc.
wxCommandEvent
evt
;
evt
.
SetId
(
ID_LOAD_FILE
);
Files_io
(
evt
);
}
break
;
case
HK_SAVE_BOARD
:
{
// try not to duplicate save, load code etc.
wxCommandEvent
evt
;
evt
.
SetId
(
ID_SAVE_BOARD
);
Files_io
(
evt
);
}
break
;
case
HK_ADD_VIA
:
// Switch to alternate layer and Place a via if a track is in progress
if
(
m_ID_current_state
!=
ID_TRACK_BUTT
)
return
;
if
(
ItemFree
)
{
Other_Layer_Route
(
NULL
,
DC
);
break
;
}
if
(
GetScreen
()
->
GetCurItem
()
->
m_StructType
!=
TYPETRACK
)
return
;
if
(
(
GetScreen
()
->
GetCurItem
()
->
m_Flags
&
IS_NEW
)
==
0
)
return
;
Other_Layer_Route
(
(
TRACK
*
)
GetScreen
()
->
GetCurItem
(),
DC
);
if
(
DisplayOpt
.
ContrastModeDisplay
)
GetScreen
()
->
SetRefreshReq
();
break
;
// Footprint edition:
case
HK_LOCK_UNLOCK_FOOTPRINT
:
// toggle module "MODULE_is_LOCKED" status:
// get any module, locked or not locked and toggle its locked status
if
(
ItemFree
)
module
=
Locate_Prefered_Module
(
m_Pcb
,
CURSEUR_OFF_GRILLE
|
VISIBLE_ONLY
);
else
if
(
GetScreen
()
->
GetCurItem
()
->
m_StructType
==
TYPEMODULE
)
module
=
(
MODULE
*
)
GetScreen
()
->
GetCurItem
();
if
(
module
)
{
GetScreen
()
->
SetCurItem
(
module
);
module
->
SetLocked
(
!
module
->
IsLocked
()
);
module
->
Display_Infos
(
this
);
}
break
;
case
HK_DRAG_FOOTPRINT
:
// Start move (and drag) module
case
HK_MOVE_FOOTPRINT
:
// Start move module
if
(
PopupOn
)
break
;
case
HK_ROTATE_FOOTPRINT
:
// Rotation
case
HK_FLIP_FOOTPRINT
:
// move to other side
if
(
ItemFree
)
{
module
=
Locate_Prefered_Module
(
m_Pcb
,
CURSEUR_OFF_GRILLE
|
IGNORE_LOCKED
|
VISIBLE_ONLY
#if defined (USE_MATCH_LAYER)
|
MATCH_LAYER
#endif
);
if
(
module
==
NULL
)
// no footprint found
{
module
=
Locate_Prefered_Module
(
m_Pcb
,
CURSEUR_OFF_GRILLE
);
if
(
module
)
{
// a footprint is found, but locked or on an other layer
if
(
module
->
IsLocked
()
)
{
wxString
msg
;
msg
.
Printf
(
_
(
"Footprint %s found, but locked"
),
module
->
m_Reference
->
m_Text
.
GetData
()
);
DisplayInfo
(
this
,
msg
);
}
module
=
NULL
;
}
}
}
else
if
(
GetScreen
()
->
GetCurItem
()
->
m_StructType
==
TYPEMODULE
)
{
module
=
(
MODULE
*
)
GetScreen
()
->
GetCurItem
();
// @todo: might need to add a layer check in if() below
if
(
(
GetScreen
()
->
GetCurItem
()
->
m_Flags
==
0
)
&&
module
->
IsLocked
()
)
module
=
NULL
;
// do not move, rotate ... it.
}
if
(
module
==
NULL
)
break
;
/* I'd like to make sending to EESCHEMA edge triggered, but the
simple mouse click on a module when the arrow icon is in play
does not set GetCurItem() at this time, nor does a mouse click
when the local ratsnest icon is in play set GetCurItem(), and these
actions also call SendMessageToEESCHEMA().
if( GetScreen()->GetCurItem() != module )
*/
{
// Send the module via socket to EESCHEMA's search facility.
SendMessageToEESCHEMA
(
module
);
GetScreen
()
->
SetCurItem
(
module
);
}
switch
(
CommandCode
)
{
case
HK_ROTATE_FOOTPRINT
:
// Rotation
Rotate_Module
(
DC
,
module
,
900
,
TRUE
);
break
;
case
HK_FLIP_FOOTPRINT
:
// move to other side
Change_Side_Module
(
module
,
DC
);
break
;
case
HK_DRAG_FOOTPRINT
:
// Start move (and drag) module
g_Drag_Pistes_On
=
TRUE
;
// fall through
case
HK_MOVE_FOOTPRINT
:
// Start move module
StartMove_Module
(
module
,
DC
);
break
;
}
module
->
Display_Infos
(
this
);
break
;
default
:
case
HK_NOT_FOUND
:
return
;
break
;
case
HK_SWITCH_LAYER_TO_PREVIOUS
:
ll
=
GetScreen
()
->
m_Active_Layer
;
if
(
ll
>
CMP_N
)
break
;
if
(
ll
<=
CUIVRE_N
)
break
;
if
(
m_Pcb
->
m_BoardSettings
->
m_CopperLayerCount
<=
1
)
// Single layer
ll
=
CUIVRE_N
;
if
(
ll
==
CMP_N
)
ll
=
MAX
(
CUIVRE_N
,
m_Pcb
->
m_BoardSettings
->
m_CopperLayerCount
-
2
);
else
if
(
ll
>
CUIVRE_N
)
ll
--
;
SwitchLayer
(
DC
,
ll
);
break
;
case
HK_SWITCH_LAYER_TO_NEXT
:
ll
=
GetScreen
()
->
m_Active_Layer
;
if
(
ll
>=
CMP_N
)
break
;
ll
++
;
if
(
ll
>=
m_Pcb
->
m_BoardSettings
->
m_CopperLayerCount
-
1
)
ll
=
CMP_N
;
if
(
m_Pcb
->
m_BoardSettings
->
m_CopperLayerCount
<=
1
)
// Single layer
ll
=
CUIVRE_N
;
SwitchLayer
(
DC
,
ll
);
break
;
case
HK_SWITCH_LAYER_TO_COMPONENT
:
SwitchLayer
(
DC
,
CMP_N
);
break
;
case
HK_SWITCH_LAYER_TO_COPPER
:
SwitchLayer
(
DC
,
CUIVRE_N
);
break
;
case
HK_SWITCH_LAYER_TO_INNER1
:
SwitchLayer
(
DC
,
LAYER_N_2
);
break
;
case
HK_SWITCH_LAYER_TO_INNER2
:
SwitchLayer
(
DC
,
LAYER_N_3
);
break
;
case
HK_SWITCH_LAYER_TO_INNER3
:
SwitchLayer
(
DC
,
LAYER_N_4
);
break
;
case
HK_SWITCH_LAYER_TO_INNER4
:
SwitchLayer
(
DC
,
LAYER_N_5
);
break
;
case
HK_SWITCH_LAYER_TO_INNER5
:
SwitchLayer
(
DC
,
LAYER_N_6
);
break
;
case
HK_SWITCH_LAYER_TO_INNER6
:
SwitchLayer
(
DC
,
LAYER_N_7
);
break
;
case
HK_HELP
:
// Display Current hotkey list
DisplayHotkeyList
(
this
,
s_board_edit_Hotkey_List
);
break
;
case
HK_ZOOM_IN
:
OnZoom
(
ID_ZOOM_PLUS_KEY
);
break
;
case
HK_ZOOM_OUT
:
OnZoom
(
ID_ZOOM_MOINS_KEY
);
break
;
case
HK_ZOOM_REDRAW
:
OnZoom
(
ID_ZOOM_REDRAW_KEY
);
break
;
case
HK_ZOOM_CENTER
:
OnZoom
(
ID_ZOOM_CENTER_KEY
);
break
;
case
HK_RESET_LOCAL_COORD
:
/*Reset the relative coord */
GetScreen
()
->
m_O_Curseur
=
GetScreen
()
->
m_Curseur
;
break
;
case
HK_SWITCH_UNITS
:
g_UnitMetric
=
(
g_UnitMetric
==
INCHES
)
?
MILLIMETRE
:
INCHES
;
break
;
case
HK_SWITCH_TRACK_DISPLAY_MODE
:
DisplayOpt
.
DisplayPcbTrackFill
^=
1
;
DisplayOpt
.
DisplayPcbTrackFill
&=
1
;
GetScreen
()
->
SetRefreshReq
();
break
;
case
HK_DELETE
:
OnHotkeyDeleteItem
(
DC
,
DrawStruct
);
break
;
case
HK_BACK_SPACE
:
if
(
m_ID_current_state
==
ID_TRACK_BUTT
&&
GetScreen
()
->
m_Active_Layer
<=
CMP_N
)
{
bool
ItemFree
=
(
GetScreen
()
->
GetCurItem
()
==
NULL
)
||
(
GetScreen
()
->
GetCurItem
()
->
m_Flags
==
0
);
if
(
ItemFree
)
{
// no track is currently being edited - select a segment and remove it.
DrawStruct
=
PcbGeneralLocateAndDisplay
();
// don't let backspace delete modules!!
if
(
DrawStruct
&&
(
DrawStruct
->
m_StructType
==
TYPETRACK
||
DrawStruct
->
m_StructType
==
TYPEVIA
)
)
Delete_Segment
(
DC
,
(
TRACK
*
)
DrawStruct
);
GetScreen
()
->
SetModify
();
}
else
if
(
GetScreen
()
->
GetCurItem
()
->
m_StructType
==
TYPETRACK
)
{
// then an element is being edited - remove the last segment.
GetScreen
()
->
SetCurItem
(
Delete_Segment
(
DC
,
(
TRACK
*
)
GetScreen
()
->
GetCurItem
()
)
);
GetScreen
()
->
SetModify
();
}
}
break
;
case
HK_END_TRACK
:
DrawPanel
->
MouseToCursorSchema
();
End_Route
(
(
TRACK
*
)
(
GetScreen
()
->
GetCurItem
()
),
DC
);
break
;
case
HK_FIND_ITEM
:
{
wxCommandEvent
evt
;
evt
.
SetId
(
ID_FIND_ITEMS
);
Process_Special_Functions
(
evt
);
}
break
;
case
HK_LOAD_BOARD
:
{
// try not to duplicate save, load code etc.
wxCommandEvent
evt
;
evt
.
SetId
(
ID_LOAD_FILE
);
Files_io
(
evt
);
}
break
;
case
HK_SAVE_BOARD
:
{
// try not to duplicate save, load code etc.
wxCommandEvent
evt
;
evt
.
SetId
(
ID_SAVE_BOARD
);
Files_io
(
evt
);
}
break
;
case
HK_ADD_VIA
:
// Switch to alternate layer and Place a via if a track is in progress
if
(
m_ID_current_state
!=
ID_TRACK_BUTT
)
return
;
if
(
ItemFree
)
{
Other_Layer_Route
(
NULL
,
DC
);
break
;
}
if
(
GetScreen
()
->
GetCurItem
()
->
m_StructType
!=
TYPETRACK
)
return
;
if
(
(
GetScreen
()
->
GetCurItem
()
->
m_Flags
&
IS_NEW
)
==
0
)
return
;
Other_Layer_Route
(
(
TRACK
*
)
GetScreen
()
->
GetCurItem
(),
DC
);
if
(
DisplayOpt
.
ContrastModeDisplay
)
GetScreen
()
->
SetRefreshReq
();
break
;
// Footprint edition:
case
HK_LOCK_UNLOCK_FOOTPRINT
:
// toggle module "MODULE_is_LOCKED" status:
// get any module, locked or not locked and toggle its locked status
if
(
ItemFree
)
module
=
Locate_Prefered_Module
(
m_Pcb
,
CURSEUR_OFF_GRILLE
|
VISIBLE_ONLY
);
else
if
(
GetScreen
()
->
GetCurItem
()
->
m_StructType
==
TYPEMODULE
)
module
=
(
MODULE
*
)
GetScreen
()
->
GetCurItem
();
if
(
module
)
{
GetScreen
()
->
SetCurItem
(
module
);
module
->
SetLocked
(
!
module
->
IsLocked
()
);
module
->
Display_Infos
(
this
);
}
break
;
case
HK_DRAG_FOOTPRINT
:
// Start move (and drag) module
case
HK_MOVE_FOOTPRINT
:
// Start move module
if
(
PopupOn
)
break
;
case
HK_ROTATE_FOOTPRINT
:
// Rotation
case
HK_FLIP_FOOTPRINT
:
// move to other side
if
(
ItemFree
)
{
module
=
Locate_Prefered_Module
(
m_Pcb
,
CURSEUR_OFF_GRILLE
|
IGNORE_LOCKED
|
VISIBLE_ONLY
#if defined (USE_MATCH_LAYER)
|
MATCH_LAYER
#endif
);
if
(
module
==
NULL
)
// no footprint found
{
module
=
Locate_Prefered_Module
(
m_Pcb
,
CURSEUR_OFF_GRILLE
);
if
(
module
)
{
// a footprint is found, but locked or on an other layer
if
(
module
->
IsLocked
()
)
{
wxString
msg
;
msg
.
Printf
(
_
(
"Footprint %s found, but locked"
),
module
->
m_Reference
->
m_Text
.
GetData
()
);
DisplayInfo
(
this
,
msg
);
}
module
=
NULL
;
}
}
}
else
if
(
GetScreen
()
->
GetCurItem
()
->
m_StructType
==
TYPEMODULE
)
{
module
=
(
MODULE
*
)
GetScreen
()
->
GetCurItem
();
// @todo: might need to add a layer check in if() below
if
(
(
GetScreen
()
->
GetCurItem
()
->
m_Flags
==
0
)
&&
module
->
IsLocked
()
)
module
=
NULL
;
// do not move, rotate ... it.
}
if
(
module
==
NULL
)
break
;
/* I'd like to make sending to EESCHEMA edge triggered, but the
* simple mouse click on a module when the arrow icon is in play
* does not set GetCurItem() at this time, nor does a mouse click
* when the local ratsnest icon is in play set GetCurItem(), and these
* actions also call SendMessageToEESCHEMA().
* if( GetScreen()->GetCurItem() != module )
*/
{
// Send the module via socket to EESCHEMA's search facility.
SendMessageToEESCHEMA
(
module
);
GetScreen
()
->
SetCurItem
(
module
);
}
switch
(
CommandCode
)
{
case
HK_ROTATE_FOOTPRINT
:
// Rotation
Rotate_Module
(
DC
,
module
,
900
,
TRUE
);
break
;
case
HK_FLIP_FOOTPRINT
:
// move to other side
Change_Side_Module
(
module
,
DC
);
break
;
case
HK_DRAG_FOOTPRINT
:
// Start move (and drag) module
g_Drag_Pistes_On
=
TRUE
;
// fall through
case
HK_MOVE_FOOTPRINT
:
// Start move module
StartMove_Module
(
module
,
DC
);
break
;
}
module
->
Display_Infos
(
this
);
break
;
}
}
...
...
@@ -331,35 +442,47 @@ void WinEDA_ModuleEditFrame::OnHotKey( wxDC* DC, int hotkey,
if
(
hotkey
==
0
)
return
;
/* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */
if
(
(
hotkey
>=
'a'
)
&&
(
hotkey
<=
'z'
)
)
hotkey
+=
'A'
-
'a'
;
/* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */
if
(
(
hotkey
>=
'a'
)
&&
(
hotkey
<=
'z'
)
)
hotkey
+=
'A'
-
'a'
;
int
CommandCode
=
GetCommandCodeFromHotkey
(
hotkey
,
s_module_edit_Hotkey_List
);
int
CommandCode
=
GetCommandCodeFromHotkey
(
hotkey
,
s_module_edit_Hotkey_List
);
switch
(
CommandCode
)
{
default
:
case
HK_NOT_FOUND
:
return
;
break
;
case
HK_HELP
:
// Display Current hotkey list
DisplayHotkeyList
(
this
,
s_module_edit_Hotkey_List
);
break
;
case
HK_RESET_LOCAL_COORD
:
/*Reset the relative coord */
GetScreen
()
->
m_O_Curseur
=
GetScreen
()
->
m_Curseur
;
break
;
case
HK_SWITCH_UNITS
:
g_UnitMetric
=
(
g_UnitMetric
==
INCHES
)
?
MILLIMETRE
:
INCHES
;
break
;
case
HK_ZOOM_IN
:
case
HK_ZOOM_OUT
:
case
HK_ZOOM_REDRAW
:
case
HK_ZOOM_CENTER
:
break
;
default
:
case
HK_NOT_FOUND
:
return
;
break
;
case
HK_HELP
:
// Display Current hotkey list
DisplayHotkeyList
(
this
,
s_module_edit_Hotkey_List
);
break
;
case
HK_RESET_LOCAL_COORD
:
/*Reset the relative coord */
GetScreen
()
->
m_O_Curseur
=
GetScreen
()
->
m_Curseur
;
break
;
case
HK_SWITCH_UNITS
:
g_UnitMetric
=
(
g_UnitMetric
==
INCHES
)
?
MILLIMETRE
:
INCHES
;
break
;
case
HK_ZOOM_IN
:
OnZoom
(
ID_ZOOM_PLUS_KEY
);
break
;
case
HK_ZOOM_OUT
:
OnZoom
(
ID_ZOOM_MOINS_KEY
);
break
;
case
HK_ZOOM_REDRAW
:
OnZoom
(
ID_ZOOM_REDRAW_KEY
);
break
;
case
HK_ZOOM_CENTER
:
OnZoom
(
ID_ZOOM_CENTER_KEY
);
break
;
}
}
...
...
@@ -419,6 +542,6 @@ bool WinEDA_PcbFrame::OnHotkeyDeleteItem( wxDC* DC, EDA_BaseStruct* DrawStruct )
}
GetScreen
()
->
SetModify
();
GetScreen
()
->
SetCurItem
(
NULL
);
GetScreen
()
->
SetCurItem
(
NULL
);
return
TRUE
;
}
pcbnew/hotkeys.h
0 → 100644
View file @
f5eae506
/***************/
/* hotkeys.h */
/***************/
#ifndef KOTKEYS_H
#define KOTKEYS_H
#include "hotkeys_basic.h"
enum
hotkey_id_commnand
{
HK_NOT_FOUND
=
0
,
HK_RESET_LOCAL_COORD
,
HK_HELP
,
HK_ZOOM_IN
,
HK_ZOOM_OUT
,
HK_ZOOM_REDRAW
,
HK_ZOOM_CENTER
,
HK_DELETE
,
HK_BACK_SPACE
,
HK_ROTATE_FOOTPRINT
,
HK_MOVE_FOOTPRINT
,
HK_DRAG_FOOTPRINT
,
HK_FLIP_FOOTPRINT
,
HK_LOCK_UNLOCK_FOOTPRINT
,
HK_ADD_VIA
,
HK_END_TRACK
,
HK_SAVE_BOARD
,
HK_LOAD_BOARD
,
HK_SWITCH_UNITS
,
HK_SWITCH_TRACK_DISPLAY_MODE
,
HK_FIND_ITEM
,
HK_SWITCH_LAYER_TO_COPPER
,
HK_SWITCH_LAYER_TO_COMPONENT
,
HK_SWITCH_LAYER_TO_NEXT
,
HK_SWITCH_LAYER_TO_PREVIOUS
,
HK_SWITCH_LAYER_TO_INNER1
,
HK_SWITCH_LAYER_TO_INNER2
,
HK_SWITCH_LAYER_TO_INNER3
,
HK_SWITCH_LAYER_TO_INNER4
,
HK_SWITCH_LAYER_TO_INNER5
,
HK_SWITCH_LAYER_TO_INNER6
};
// List of hotkey descriptors for pcbnew
extern
Ki_HotkeyInfo
*
s_board_edit_Hotkey_List
[];
// List of hotkey descriptors for the module editor
extern
Ki_HotkeyInfo
*
s_module_edit_Hotkey_List
[];
#endif // KOTKEYS_H
pcbnew/menubarpcb.cpp
View file @
f5eae506
...
...
@@ -183,11 +183,11 @@ wxMenuBar * menuBar = GetMenuBar();
configmenu
->
Append
(
item
);
configmenu
->
AppendSeparator
();
item
=
new
wxMenuItem
(
configmenu
,
ID_PREFERENCES_CREATE_CONFIG_HOTKEYS
,
_
(
"Create
Eeschema
&Hotkey config file"
),
item
=
new
wxMenuItem
(
configmenu
,
ID_PREFERENCES_CREATE_CONFIG_HOTKEYS
,
_
(
"Create
Pcbnew
&Hotkey config file"
),
_
(
"Create or Recreate the hotkey config file from current hotkey list"
)
);
item
->
SetBitmap
(
save_setup_xpm
);
configmenu
->
Append
(
item
);
item
=
new
wxMenuItem
(
configmenu
,
ID_PREFERENCES_READ_CONFIG_HOTKEYS
,
_
(
"Reread &
Eeschema
Hotkey config file"
),
item
=
new
wxMenuItem
(
configmenu
,
ID_PREFERENCES_READ_CONFIG_HOTKEYS
,
_
(
"Reread &
Pcbnew
Hotkey config file"
),
_
(
"Reread the hotkey config file"
)
);
item
->
SetBitmap
(
reload_xpm
);
configmenu
->
Append
(
item
);
...
...
pcbnew/pcbnew.cpp
View file @
f5eae506
...
...
@@ -58,6 +58,10 @@ bool WinEDA_App::OnInit( void )
Read_Config
(
FFileName
);
g_DrawBgColor
=
BLACK
;
Read_Hotkey_Config
(
m_PcbFrame
,
false
);
/* Must be called before creating the main frame
* in order to display the real hotkeys
* in menus or tool tips */
/* allocation de la memoire pour le fichier et autres buffers: */
/* On reserve BUFMEMSIZE octets de ram pour calcul */
...
...
@@ -79,7 +83,6 @@ bool WinEDA_App::OnInit( void )
SetTopWindow
(
m_PcbFrame
);
m_PcbFrame
->
Show
(
TRUE
);
Read_Hotkey_Config
(
m_PcbFrame
,
false
);
if
(
CreateServer
(
m_PcbFrame
,
KICAD_PCB_PORT_SERVICE_NUMBER
)
)
{
...
...
pcbnew/tool_modedit.cpp
View file @
f5eae506
/*****************************************************************/
/* too_modeit.cpp: construction du menu de l'editeur de modules */
/*****************************************************************/
/*****************************************************************/
/* too_modeit.cpp: construction du menu de l'editeur de modules */
/*****************************************************************/
#include "fctsys.h"
#include "gr_basic.h"
...
...
@@ -16,6 +16,8 @@
#include "id.h"
#include "hotkeys.h"
#include "Module_Check.xpm"
#include "Import_Module.xpm"
#include "Export_Module.xpm"
...
...
@@ -32,277 +34,284 @@
#endif
/***************************************************/
void
WinEDA_ModuleEditFrame
::
ReCreateHToolbar
(
void
)
void
WinEDA_ModuleEditFrame
::
ReCreateHToolbar
(
void
)
/***************************************************/
/* Create the main horizontal toolbar for the footprint editor */
{
// Cecreate the toolbar
if
(
m_HToolBar
!=
NULL
)
return
;
m_HToolBar
=
new
WinEDA_Toolbar
(
TOOLBAR_MAIN
,
this
,
ID_H_TOOLBAR
,
TRUE
);
SetToolBar
(
m_HToolBar
);
// Set up toolbar
m_HToolBar
->
AddTool
(
ID_LIBEDIT_SELECT_CURRENT_LIB
,
wxEmptyString
,
BITMAP
(
open_library_xpm
),
_
(
"Select working library"
));
m_HToolBar
->
AddTool
(
ID_MODEDIT_SAVE_LIBMODULE
,
wxEmptyString
,
BITMAP
(
save_library_xpm
),
_
(
"Save Module in working library"
));
m_HToolBar
->
AddTool
(
ID_LIBEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART
,
wxEmptyString
,
BITMAP
(
new_library_xpm
),
_
(
"Create new library and save current module"
));
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_LIBEDIT_DELETE_PART
,
wxEmptyString
,
BITMAP
(
delete_xpm
),
_
(
"Delete part in current library"
));
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_MODEDIT_NEW_MODULE
,
wxEmptyString
,
BITMAP
(
new_footprint_xpm
),
_
(
"New Module"
));
m_HToolBar
->
AddTool
(
ID_MODEDIT_LOAD_MODULE
,
wxEmptyString
,
BITMAP
(
module_xpm
),
_
(
"Load module from lib"
));
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_MODEDIT_LOAD_MODULE_FROM_BOARD
,
wxEmptyString
,
BITMAP
(
load_module_board_xpm
),
_
(
"Load module from current board"
));
m_HToolBar
->
AddTool
(
ID_MODEDIT_UPDATE_MODULE_IN_BOARD
,
wxEmptyString
,
BITMAP
(
update_module_board_xpm
),
_
(
"Update module in current board"
));
m_HToolBar
->
AddTool
(
ID_MODEDIT_INSERT_MODULE_IN_BOARD
,
wxEmptyString
,
BITMAP
(
insert_module_board_xpm
),
_
(
"Insert module into current board"
));
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_LIBEDIT_IMPORT_PART
,
wxEmptyString
,
BITMAP
(
import_module_xpm
),
_
(
"import module"
));
m_HToolBar
->
AddTool
(
ID_LIBEDIT_EXPORT_PART
,
wxEmptyString
,
BITMAP
(
export_module_xpm
),
_
(
"export module"
));
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_MODEDIT_UNDO
,
wxEmptyString
,
BITMAP
(
undo_xpm
),
_
(
"Undo last edition"
));
m_HToolBar
->
AddTool
(
ID_MODEDIT_REDO
,
wxEmptyString
,
BITMAP
(
redo_xpm
),
_
(
"Redo the last undo command"
));
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_MODEDIT_EDIT_MODULE_PROPERTIES
,
wxEmptyString
,
BITMAP
(
module_options_xpm
),
_
(
"Module Properties"
));
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_GEN_PRINT
,
wxEmptyString
,
BITMAP
(
print_button
),
_
(
"Print Module"
));
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_ZOOM_PLUS_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_in_xpm
),
_
(
"zoom + (F1)"
));
m_HToolBar
->
AddTool
(
ID_ZOOM_MOINS_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_out_xpm
),
_
(
"zoom - (F2)"
));
m_HToolBar
->
AddTool
(
ID_ZOOM_REDRAW_BUTT
,
wxEmptyString
,
BITMAP
(
repaint_xpm
),
_
(
"redraw (F3)"
));
m_HToolBar
->
AddTool
(
ID_ZOOM_PAGE_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_optimal_xpm
),
_
(
"auto zoom"
));
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_MODEDIT_PAD_SETTINGS
,
wxEmptyString
,
BITMAP
(
options_pad_xpm
),
_
(
"Pad Settings"
));
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_MODEDIT_CHECK
,
wxEmptyString
,
BITMAP
(
module_check_xpm
),
_
(
"Module Check"
));
// after adding the buttons to the toolbar, must call Realize() to reflect
// the changes
m_HToolBar
->
Realize
();
SetToolbars
();
if
(
m_HToolBar
!=
NULL
)
return
;
wxString
msg
;
m_HToolBar
=
new
WinEDA_Toolbar
(
TOOLBAR_MAIN
,
this
,
ID_H_TOOLBAR
,
TRUE
);
SetToolBar
(
m_HToolBar
);
// Set up toolbar
m_HToolBar
->
AddTool
(
ID_LIBEDIT_SELECT_CURRENT_LIB
,
wxEmptyString
,
BITMAP
(
open_library_xpm
),
_
(
"Select working library"
)
);
m_HToolBar
->
AddTool
(
ID_MODEDIT_SAVE_LIBMODULE
,
wxEmptyString
,
BITMAP
(
save_library_xpm
),
_
(
"Save Module in working library"
)
);
m_HToolBar
->
AddTool
(
ID_LIBEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART
,
wxEmptyString
,
BITMAP
(
new_library_xpm
),
_
(
"Create new library and save current module"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_LIBEDIT_DELETE_PART
,
wxEmptyString
,
BITMAP
(
delete_xpm
),
_
(
"Delete part in current library"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_MODEDIT_NEW_MODULE
,
wxEmptyString
,
BITMAP
(
new_footprint_xpm
),
_
(
"New Module"
)
);
m_HToolBar
->
AddTool
(
ID_MODEDIT_LOAD_MODULE
,
wxEmptyString
,
BITMAP
(
module_xpm
),
_
(
"Load module from lib"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_MODEDIT_LOAD_MODULE_FROM_BOARD
,
wxEmptyString
,
BITMAP
(
load_module_board_xpm
),
_
(
"Load module from current board"
)
);
m_HToolBar
->
AddTool
(
ID_MODEDIT_UPDATE_MODULE_IN_BOARD
,
wxEmptyString
,
BITMAP
(
update_module_board_xpm
),
_
(
"Update module in current board"
)
);
m_HToolBar
->
AddTool
(
ID_MODEDIT_INSERT_MODULE_IN_BOARD
,
wxEmptyString
,
BITMAP
(
insert_module_board_xpm
),
_
(
"Insert module into current board"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_LIBEDIT_IMPORT_PART
,
wxEmptyString
,
BITMAP
(
import_module_xpm
),
_
(
"import module"
)
);
m_HToolBar
->
AddTool
(
ID_LIBEDIT_EXPORT_PART
,
wxEmptyString
,
BITMAP
(
export_module_xpm
),
_
(
"export module"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_MODEDIT_UNDO
,
wxEmptyString
,
BITMAP
(
undo_xpm
),
_
(
"Undo last edition"
)
);
m_HToolBar
->
AddTool
(
ID_MODEDIT_REDO
,
wxEmptyString
,
BITMAP
(
redo_xpm
),
_
(
"Redo the last undo command"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_MODEDIT_EDIT_MODULE_PROPERTIES
,
wxEmptyString
,
BITMAP
(
module_options_xpm
),
_
(
"Module Properties"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_GEN_PRINT
,
wxEmptyString
,
BITMAP
(
print_button
),
_
(
"Print Module"
)
);
m_HToolBar
->
AddSeparator
();
msg
=
AddHotkeyName
(
_
(
"zoom +"
),
s_module_edit_Hotkey_List
,
HK_ZOOM_IN
);
m_HToolBar
->
AddTool
(
ID_ZOOM_PLUS_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_in_xpm
),
msg
);
msg
=
AddHotkeyName
(
_
(
"zoom -"
),
s_module_edit_Hotkey_List
,
HK_ZOOM_OUT
);
m_HToolBar
->
AddTool
(
ID_ZOOM_MOINS_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_out_xpm
),
msg
);
msg
=
AddHotkeyName
(
_
(
"redraw"
),
s_module_edit_Hotkey_List
,
HK_ZOOM_REDRAW
);
m_HToolBar
->
AddTool
(
ID_ZOOM_REDRAW_BUTT
,
wxEmptyString
,
BITMAP
(
repaint_xpm
),
msg
);
m_HToolBar
->
AddTool
(
ID_ZOOM_PAGE_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_optimal_xpm
),
_
(
"auto zoom"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_MODEDIT_PAD_SETTINGS
,
wxEmptyString
,
BITMAP
(
options_pad_xpm
),
_
(
"Pad Settings"
)
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_MODEDIT_CHECK
,
wxEmptyString
,
BITMAP
(
module_check_xpm
),
_
(
"Module Check"
)
);
// after adding the buttons to the toolbar, must call Realize() to reflect
// the changes
m_HToolBar
->
Realize
();
SetToolbars
();
}
/********************************************************/
void
WinEDA_ModuleEditFrame
::
ReCreateVToolbar
(
void
)
void
WinEDA_ModuleEditFrame
::
ReCreateVToolbar
(
void
)
/********************************************************/
{
if
(
m_VToolBar
)
return
;
if
(
m_VToolBar
)
return
;
m_VToolBar
=
new
WinEDA_Toolbar
(
TOOLBAR_TOOL
,
this
,
ID_V_TOOLBAR
,
FALSE
);
m_VToolBar
=
new
WinEDA_Toolbar
(
TOOLBAR_TOOL
,
this
,
ID_V_TOOLBAR
,
FALSE
);
// Set up toolbar
m_VToolBar
->
AddTool
(
ID_NO_SELECT_BUTT
,
wxEmptyString
,
BITMAP
(
cursor_xpm
),
wxEmptyString
,
wxITEM_CHECK
);
m_VToolBar
->
ToggleTool
(
ID_NO_SELECT_BUTT
,
TRUE
);
// Set up toolbar
m_VToolBar
->
AddTool
(
ID_NO_SELECT_BUTT
,
wxEmptyString
,
BITMAP
(
cursor_xpm
),
wxEmptyString
,
wxITEM_CHECK
);
m_VToolBar
->
ToggleTool
(
ID_NO_SELECT_BUTT
,
TRUE
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_MODEDIT_ADD_PAD
,
wxEmptyString
,
BITMAP
(
pad_xpm
),
_
(
"Add Pads"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_MODEDIT_ADD_PAD
,
wxEmptyString
,
BITMAP
(
pad_xpm
),
_
(
"Add Pads"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_LINE_COMMENT_BUTT
,
wxEmptyString
,
BITMAP
(
add_polygon_xpm
),
_
(
"Add graphic line or polygon"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_LINE_COMMENT_BUTT
,
wxEmptyString
,
BITMAP
(
add_polygon_xpm
),
_
(
"Add graphic line or polygon"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_PCB_CIRCLE_BUTT
,
wxEmptyString
,
BITMAP
(
add_circle_xpm
),
_
(
"Add graphic circle"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_PCB_CIRCLE_BUTT
,
wxEmptyString
,
BITMAP
(
add_circle_xpm
),
_
(
"Add graphic circle"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_PCB_ARC_BUTT
,
wxEmptyString
,
BITMAP
(
add_arc_xpm
),
_
(
"Add graphic arc"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_PCB_ARC_BUTT
,
wxEmptyString
,
BITMAP
(
add_arc_xpm
),
_
(
"Add graphic arc"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_TEXT_COMMENT_BUTT
,
wxEmptyString
,
BITMAP
(
add_text_xpm
),
_
(
"Add Text"
),
wxITEM_CHECK
);
m_VToolBar
->
AddTool
(
ID_TEXT_COMMENT_BUTT
,
wxEmptyString
,
BITMAP
(
add_text_xpm
),
_
(
"Add Text"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_MODEDIT_PLACE_ANCHOR
,
wxEmptyString
,
BITMAP
(
anchor_xpm
),
_
(
"Place anchor"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_MODEDIT_PLACE_ANCHOR
,
wxEmptyString
,
BITMAP
(
anchor_xpm
),
_
(
"Place anchor"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_MODEDIT_DELETE_ITEM_BUTT
,
wxEmptyString
,
BITMAP
(
delete_body_xpm
),
_
(
"Delete items"
),
wxITEM_CHECK
);
m_VToolBar
->
AddSeparator
();
m_VToolBar
->
AddTool
(
ID_MODEDIT_DELETE_ITEM_BUTT
,
wxEmptyString
,
BITMAP
(
delete_body_xpm
),
_
(
"Delete items"
),
wxITEM_CHECK
);
m_VToolBar
->
Realize
();
m_VToolBar
->
Realize
();
SetToolbars
();
SetToolbars
();
}
/*********************************************************/
void
WinEDA_ModuleEditFrame
::
ReCreateOptToolbar
(
void
)
void
WinEDA_ModuleEditFrame
::
ReCreateOptToolbar
(
void
)
/*********************************************************/
{
if
(
m_OptionsToolBar
)
return
;
// creation du tool bar options
m_OptionsToolBar
=
new
WinEDA_Toolbar
(
TOOLBAR_OPTION
,
this
,
ID_OPT_TOOLBAR
,
FALSE
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SHOW_GRID
,
BITMAP
(
grid_xpm
),
wxNullBitmap
,
TRUE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Display Grid OFF"
)
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SHOW_POLAR_COORD
,
wxEmptyString
,
BITMAP
(
polar_coord_xpm
),
_
(
"Display Polar Coord ON"
),
wxITEM_CHECK
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SELECT_UNIT_INCH
,
wxEmptyString
,
BITMAP
(
unit_inch_xpm
),
_
(
"Units = Inch"
),
wxITEM_CHECK
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SELECT_UNIT_MM
,
wxEmptyString
,
BITMAP
(
unit_mm_xpm
),
_
(
"Units = mm"
),
wxITEM_CHECK
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SELECT_CURSOR
,
BITMAP
(
cursor_shape_xpm
),
wxNullBitmap
,
TRUE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Change Cursor Shape"
)
);
m_OptionsToolBar
->
AddSeparator
();
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SHOW_PADS_SKETCH
,
BITMAP
(
pad_sketch_xpm
),
wxNullBitmap
,
TRUE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Show Pads Sketch"
)
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SHOW_MODULE_TEXT_SKETCH
,
BITMAP
(
text_sketch_xpm
),
wxNullBitmap
,
TRUE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Show Texts Sketch"
)
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SHOW_MODULE_EDGE_SKETCH
,
BITMAP
(
show_mod_edge_xpm
),
wxNullBitmap
,
TRUE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Show Edges Sketch"
)
);
m_OptionsToolBar
->
Realize
();
SetToolbars
();
if
(
m_OptionsToolBar
)
return
;
// creation du tool bar options
m_OptionsToolBar
=
new
WinEDA_Toolbar
(
TOOLBAR_OPTION
,
this
,
ID_OPT_TOOLBAR
,
FALSE
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SHOW_GRID
,
BITMAP
(
grid_xpm
),
wxNullBitmap
,
TRUE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Display Grid OFF"
)
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SHOW_POLAR_COORD
,
wxEmptyString
,
BITMAP
(
polar_coord_xpm
),
_
(
"Display Polar Coord ON"
),
wxITEM_CHECK
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SELECT_UNIT_INCH
,
wxEmptyString
,
BITMAP
(
unit_inch_xpm
),
_
(
"Units = Inch"
),
wxITEM_CHECK
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SELECT_UNIT_MM
,
wxEmptyString
,
BITMAP
(
unit_mm_xpm
),
_
(
"Units = mm"
),
wxITEM_CHECK
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SELECT_CURSOR
,
BITMAP
(
cursor_shape_xpm
),
wxNullBitmap
,
TRUE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Change Cursor Shape"
)
);
m_OptionsToolBar
->
AddSeparator
();
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SHOW_PADS_SKETCH
,
BITMAP
(
pad_sketch_xpm
),
wxNullBitmap
,
TRUE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Show Pads Sketch"
)
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SHOW_MODULE_TEXT_SKETCH
,
BITMAP
(
text_sketch_xpm
),
wxNullBitmap
,
TRUE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Show Texts Sketch"
)
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SHOW_MODULE_EDGE_SKETCH
,
BITMAP
(
show_mod_edge_xpm
),
wxNullBitmap
,
TRUE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Show Edges Sketch"
)
);
m_OptionsToolBar
->
Realize
();
SetToolbars
();
}
/*********************************************************/
void
WinEDA_ModuleEditFrame
::
ReCreateAuxiliaryToolbar
(
void
)
void
WinEDA_ModuleEditFrame
::
ReCreateAuxiliaryToolbar
(
void
)
/*********************************************************/
{
int
ii
;
wxString
msg
;
if
(
m_AuxiliaryToolBar
==
NULL
)
{
m_AuxiliaryToolBar
=
new
WinEDA_Toolbar
(
TOOLBAR_AUX
,
this
,
ID_AUX_TOOLBAR
,
TRUE
);
// Set up toolbar
m_AuxiliaryToolBar
->
AddSeparator
();
// Boite de selection du pas de grille
m_SelGridBox
=
new
WinEDAChoiceBox
(
m_AuxiliaryToolBar
,
ID_ON_GRID_SELECT
,
wxPoint
(
-
1
,
-
1
),
wxSize
(
LISTBOX_WIDTH
,
-
1
));
m_AuxiliaryToolBar
->
AddControl
(
m_SelGridBox
);
// Boite de selection du Zoom
m_AuxiliaryToolBar
->
AddSeparator
();
m_SelZoomBox
=
new
WinEDAChoiceBox
(
m_AuxiliaryToolBar
,
ID_ON_ZOOM_SELECT
,
wxPoint
(
-
1
,
-
1
),
wxSize
(
LISTBOX_WIDTH
,
-
1
));
msg
=
_
(
"Auto"
);
m_SelZoomBox
->
Append
(
msg
);
for
(
int
jj
=
0
,
ii
=
1
;
ii
<=
m_ZoomMaxValue
;
ii
<<=
1
,
jj
++
)
{
msg
.
Printf
(
_
(
"Zoom %d"
),
ii
);
m_SelZoomBox
->
Append
(
msg
);
}
m_SelZoomBox
->
Append
(
wxT
(
""
));
m_AuxiliaryToolBar
->
AddControl
(
m_SelZoomBox
);
// after adding the buttons to the toolbar, must call Realize() to reflect
// the changes
m_AuxiliaryToolBar
->
Realize
();
}
// mise a jour des affichages
m_SelGridBox
->
Clear
();
for
(
ii
=
0
;
g_GridList
[
ii
].
x
>
0
;
ii
++
)
{
double
value
=
To_User_Unit
(
g_UnitMetric
,
g_GridList
[
ii
].
x
,
PCB_INTERNAL_UNIT
);
if
(
g_UnitMetric
==
INCHES
)
msg
.
Printf
(
_
(
"Grid %.1f"
),
value
*
1000
);
else
msg
.
Printf
(
_
(
"Grid %.3f"
),
value
);
m_SelGridBox
->
Append
(
msg
);
}
m_SelGridBox
->
Append
(
_
(
"User Grid"
)
);
SetToolbars
();
int
ii
;
wxString
msg
;
if
(
m_AuxiliaryToolBar
==
NULL
)
{
m_AuxiliaryToolBar
=
new
WinEDA_Toolbar
(
TOOLBAR_AUX
,
this
,
ID_AUX_TOOLBAR
,
TRUE
);
// Set up toolbar
m_AuxiliaryToolBar
->
AddSeparator
();
// Boite de selection du pas de grille
m_SelGridBox
=
new
WinEDAChoiceBox
(
m_AuxiliaryToolBar
,
ID_ON_GRID_SELECT
,
wxPoint
(
-
1
,
-
1
),
wxSize
(
LISTBOX_WIDTH
,
-
1
)
);
m_AuxiliaryToolBar
->
AddControl
(
m_SelGridBox
);
// Boite de selection du Zoom
m_AuxiliaryToolBar
->
AddSeparator
();
m_SelZoomBox
=
new
WinEDAChoiceBox
(
m_AuxiliaryToolBar
,
ID_ON_ZOOM_SELECT
,
wxPoint
(
-
1
,
-
1
),
wxSize
(
LISTBOX_WIDTH
,
-
1
)
);
msg
=
_
(
"Auto"
);
m_SelZoomBox
->
Append
(
msg
);
for
(
int
jj
=
0
,
ii
=
1
;
ii
<=
m_ZoomMaxValue
;
ii
<<=
1
,
jj
++
)
{
msg
.
Printf
(
_
(
"Zoom %d"
),
ii
);
m_SelZoomBox
->
Append
(
msg
);
}
m_SelZoomBox
->
Append
(
wxT
(
""
)
);
m_AuxiliaryToolBar
->
AddControl
(
m_SelZoomBox
);
// after adding the buttons to the toolbar, must call Realize() to reflect
// the changes
m_AuxiliaryToolBar
->
Realize
();
}
// mise a jour des affichages
m_SelGridBox
->
Clear
();
for
(
ii
=
0
;
g_GridList
[
ii
].
x
>
0
;
ii
++
)
{
double
value
=
To_User_Unit
(
g_UnitMetric
,
g_GridList
[
ii
].
x
,
PCB_INTERNAL_UNIT
);
if
(
g_UnitMetric
==
INCHES
)
msg
.
Printf
(
_
(
"Grid %.1f"
),
value
*
1000
);
else
msg
.
Printf
(
_
(
"Grid %.3f"
),
value
);
m_SelGridBox
->
Append
(
msg
);
}
m_SelGridBox
->
Append
(
_
(
"User Grid"
)
);
SetToolbars
();
}
pcbnew/tool_pcb.cpp
View file @
f5eae506
...
...
@@ -25,6 +25,8 @@
#include "wx/ownerdrw.h"
#include "wx/menuitem.h"
#include "hotkeys.h"
#define MUWAVE_ENBL
#include "mw_Add_Stub.xpm"
...
...
@@ -50,7 +52,7 @@
"Show active layer selections\nand select layer pair for route and place via" )
/* Data to build the layer pair indicator button */
static
wxBitmap
*
LayerPairBitmap
=
NULL
;
static
wxBitmap
*
LayerPairBitmap
=
NULL
;
static
const
char
s_BitmapLayerIcon
[
16
][
16
]
=
{
// 0 = draw pixel with active layer color
// 1 = draw pixel with top layer color (top/bottom layer used in autoroute and place via)
...
...
@@ -166,7 +168,7 @@ void WinEDA_PcbFrame::PrepareLayerIndicator( void )
ColorRefs
[
color
].
m_Red
,
ColorRefs
[
color
].
m_Green
,
ColorRefs
[
color
].
m_Blue
);
);
iconDC
.
SetPen
(
pen
);
}
iconDC
.
DrawPoint
(
jj
,
ii
);
...
...
@@ -199,9 +201,10 @@ void WinEDA_PcbFrame::PrepareLayerIndicator( void )
void
WinEDA_PcbFrame
::
ReCreateHToolbar
(
void
)
/******************************************/
/
/ Create the main horizontal toolbar
/
* Create the main horizontal toolbar for the board editor */
{
int
ii
;
int
ii
;
wxString
msg
;
if
(
m_HToolBar
!=
NULL
)
{
// simple mise a jour de la liste des fichiers anciens
...
...
@@ -264,19 +267,25 @@ void WinEDA_PcbFrame::ReCreateHToolbar( void )
_
(
"Plot (HPGL, PostScript, or GERBER format)"
)
);
m_HToolBar
->
AddSeparator
();
msg
=
AddHotkeyName
(
_
(
"zoom +"
),
s_board_edit_Hotkey_List
,
HK_ZOOM_IN
);
m_HToolBar
->
AddTool
(
ID_ZOOM_PLUS_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_in_xpm
),
_
(
"zoom + (F1)"
)
);
msg
);
msg
=
AddHotkeyName
(
_
(
"zoom -"
),
s_board_edit_Hotkey_List
,
HK_ZOOM_OUT
);
m_HToolBar
->
AddTool
(
ID_ZOOM_MOINS_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_out_xpm
),
_
(
"zoom - (F2)"
)
);
msg
);
msg
=
AddHotkeyName
(
_
(
"redraw"
),
s_board_edit_Hotkey_List
,
HK_ZOOM_REDRAW
);
m_HToolBar
->
AddTool
(
ID_ZOOM_REDRAW_BUTT
,
wxEmptyString
,
BITMAP
(
repaint_xpm
),
_
(
"redraw (F3)"
)
);
msg
);
m_HToolBar
->
AddTool
(
ID_ZOOM_PAGE_BUTT
,
wxEmptyString
,
BITMAP
(
zoom_optimal_xpm
),
_
(
"auto zoom"
)
);
m_HToolBar
->
AddSeparator
();
msg
=
AddHotkeyName
(
_
(
"Find components and texts"
),
s_board_edit_Hotkey_List
,
HK_FIND_ITEM
);
m_HToolBar
->
AddTool
(
ID_FIND_ITEMS
,
wxEmptyString
,
BITMAP
(
find_xpm
),
_
(
"Find components and texts (Ctrl-F)"
)
);
msg
);
m_HToolBar
->
AddSeparator
();
m_HToolBar
->
AddTool
(
ID_GET_NETLIST
,
wxEmptyString
,
BITMAP
(
netlist_xpm
),
...
...
@@ -499,7 +508,7 @@ void WinEDA_PcbFrame::ReCreateAuxVToolbar( void )
wxNullBitmap
,
TRUE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Create stub (arc) of specified length for microwave applications"
)
);
);
m_AuxVToolBar
->
AddTool
(
ID_PCB_MUWAVE_TOOL_FUNCTION_SHAPE_CMD
,
BITMAP
(
mw_Add_Shape_xpm
),
...
...
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