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
8497178f
Commit
8497178f
authored
Feb 28, 2010
by
charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
removed unused files. Switch to RC5
parent
52dbb13c
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
168 additions
and
3563 deletions
+168
-3563
icon_python.xpm
bitmaps/icon_python.xpm
+0
-113
icon_python_small.xpm
bitmaps/icon_python_small.xpm
+0
-123
new_python.xpm
bitmaps/new_python.xpm
+0
-136
build_version.cpp
common/build_version.cpp
+1
-1
pyhandler.cpp
common/pyhandler.cpp
+0
-467
set_color.cpp.unused
gerbview/set_color.cpp.unused
+0
-467
set_color.h.unused
gerbview/set_color.h.unused
+0
-438
pyhandler.h
include/pyhandler.h
+0
-115
kicad.mo
internat/fr/kicad.mo
+0
-0
kicad.po
internat/fr/kicad.po
+164
-171
kicad-python.cpp
kicad/kicad-python.cpp
+0
-348
set_color.cpp.unused
pcbnew/set_color.cpp.unused
+0
-498
set_color.h.unused
pcbnew/set_color.h.unused
+0
-571
via_edit.cpp.unused
pcbnew/via_edit.cpp.unused
+0
-112
xchgmod.cpp
pcbnew/xchgmod.cpp
+1
-1
version.txt
version.txt
+2
-2
No files found.
bitmaps/icon_python.xpm
deleted
100644 → 0
View file @
52dbb13c
/* XPM */
#ifndef XPMMAIN
extern const char * icon_python_xpm[];
#else
const char * icon_python_xpm[] = {
"32 32 72 1",
" c None",
". c #7EA5C6",
"+ c #6495BD",
"@ c #4383B6",
"# c #437FB2",
"$ c #6491B5",
"% c #7DA1BF",
"& c #3882BE",
"* c #387CB5",
"= c #3779AF",
"- c #3776AB",
"; c #4988BB",
"> c #CDDFEE",
", c #F7F7FF",
"' c #82ADD1",
") c #3773A5",
"! c #7096B5",
"~ c #4385BB",
"{ c #FFFFFF",
"] c #F6F5F5",
"^ c #3C729E",
"/ c #9BBDDA",
"( c #366D9C",
"_ c #387FBA",
": c #5A91BF",
"< c #376A94",
"[ c #FFED60",
"} c #FFE659",
"| c #F8E16E",
"1 c #FFEB5E",
"2 c #FFE354",
"3 c #4489C0",
"4 c #3885C3",
"5 c #FFDB4C",
"6 c #FBCE47",
"7 c #FFD544",
"8 c #72A0C5",
"9 c #507CA1",
"0 c #FFE052",
"a c #FFD040",
"b c #F5D98D",
"c c #7F9EB8",
"d c #F1ECDA",
"e c #FFCC3B",
"f c #FBC840",
"g c #FBD54F",
"h c #FCC539",
"i c #4379A7",
"j c #DCE1E7",
"k c #FAE262",
"l c #FFC532",
"m c #FBC037",
"n c #80A6C6",
"o c #FFBC29",
"p c #F7CD74",
"q c #427DAE",
"r c #FABE40",
"s c #FFB521",
"t c #497FAC",
"u c #FFCD57",
"v c #FFE097",
"w c #FFD67B",
"x c #FFD849",
"y c #FFFBF2",
"z c #F7DE92",
"A c #FFCF6A",
"B c #FFEDC8",
"C c #FFE4AC",
"D c #F7D284",
"E c #FFB531",
"F c #F7D47B",
"G c #FDBE2E",
" ",
" ",
" .+@###$% ",
" &&&**==--- ",
" ;&>,'*===))))! ",
" ~&{{]==--))))^ ",
" &&'/@===)))((( ",
" __**===)))(((( ",
" ((((( ",
" :&&&**====)))(((<<[[}}| ",
" &&&&&**===)))(((<<<11}22 ",
" 34&__***---))(((<<<<222556 ",
" 4&&&**====)))((<<<<<225557 ",
" 84&&***==--))(((<<<<900577ab ",
" ~&&&**===)))(((<<<<cd5577aef ",
" ___**====)))((<<<<9dg577eeeh ",
" __***==ijk[[[[[}225557aeelll ",
" @_**===j|[[[[[}}00577aeelllm ",
" n*==---k[[[[}}225577aellllop ",
" **=---}[[[[}225577eelllloo ",
" q===))[[[[}225577aeellloor ",
" --)))[[}}00577aeelllooos ",
" tiii11}005566fffffmmmmp ",
" 22255 ",
" 225557aeelllom ",
" 00557aeeeuvwoo ",
" gx77aeelly{{sm ",
" z77aellllABCsD ",
" 6ellloossE ",
" FmGoop ",
" ",
" "};
#endif
bitmaps/icon_python_small.xpm
deleted
100644 → 0
View file @
52dbb13c
/* XPM */
#ifndef XPMMAIN
extern const char * icon_python_small_xpm[];
#else
const char *icon_python_small_xpm[] = {
"16 16 98 2",
" c None",
". c #5490C0",
"+ c #3E7EB4",
"@ c #3D7CB0",
"# c #5488B2",
"$ c #4686BB",
"% c #8FB8DA",
"& c #DCE6F1",
"* c #377AB0",
"= c #3778AD",
"- c #3773A5",
"; c #5684AA",
"> c #3880BC",
", c #4A8AC0",
"' c #538DBD",
") c #3779AF",
"! c #3774A8",
"~ c #3772A3",
"{ c #366D9C",
"] c #366C9A",
"^ c #799785",
"/ c #FFEA5C",
"( c #FCE464",
"_ c #3883BF",
": c #387EB7",
"< c #387AB1",
"[ c #366E9E",
"} c #376A94",
"| c #9BA876",
"1 c #FFE658",
"2 c #FFDF50",
"3 c #4B8EC4",
"4 c #3882BE",
"5 c #387AB2",
"6 c #3778AE",
"7 c #3775A9",
"8 c #A1AA77",
"9 c #FFDE50",
"0 c #FFD848",
"a c #FCD55B",
"b c #3B81BB",
"c c #3880BB",
"d c #387BB4",
"e c #3776AA",
"f c #376B96",
"g c #7E9CB2",
"h c #FADE70",
"i c #FFD646",
"j c #FFCF3E",
"k c #FDC93C",
"l c #3B80B9",
"m c #387CB5",
"n c #6393BB",
"o c #F3E486",
"p c #FFED60",
"q c #FFE85B",
"r c #FFE253",
"s c #FFDA4A",
"t c #FFD545",
"u c #FFCD3C",
"v c #FFC734",
"w c #FEC433",
"x c #508ABB",
"y c #3776AB",
"z c #9AAD84",
"A c #FFE558",
"B c #FFE152",
"C c #FFD342",
"D c #FFCB3A",
"E c #FFC532",
"F c #FFC330",
"G c #FCC242",
"H c #9BB082",
"I c #FFEB5E",
"J c #FFE659",
"K c #FFE052",
"L c #FFD241",
"M c #FFC02E",
"N c #FFBA27",
"O c #4379A7",
"P c #C0C273",
"Q c #FFDE4F",
"R c #FFDB4C",
"S c #FFD040",
"T c #FFCC3B",
"U c #FFCE54",
"V c #FFC540",
"W c #FDBE30",
"X c #F9DA70",
"Y c #FFD645",
"Z c #FFC836",
"` c #FFEEC9",
" . c #FFD37B",
".. c #F9C95E",
"+. c #FCCC4D",
"@. c #FEC232",
"#. c #FFBC29",
"$. c #FCBD3D",
" ",
" . + @ # ",
" $ % & * = - - ; ",
" > , ' ) ! ~ { { ",
" { ] ^ / ( ",
" _ > : < = - [ ] } | 1 2 ",
" 3 4 : 5 6 7 ~ { } } 8 9 0 a ",
" b c d ) e - { f } g h i j k ",
" l m * n o p p q r s t u v w ",
" x * y z p p A B s C D E F G ",
" = ! H I J K 0 L D v M N ",
" O P 1 Q R ",
" r 9 s S T U V W ",
" X Y S Z E ` ... ",
" +.@.#.$. ",
" "
};
#endif
bitmaps/new_python.xpm
deleted
100644 → 0
View file @
52dbb13c
/* XPM */
#ifndef XPMMAIN
extern const char * new_python_xpm[];
#else
const char * new_python_xpm[] = {
"16 16 112 2",
" c None",
". c #000000",
"+ c #FEFEFE",
"@ c #090909",
"# c #EEEEEE",
"$ c #F1F1F1",
"% c #FBFBFB",
"& c #DAE2E8",
"* c #CDDBE7",
"= c #528DBD",
"- c #3C7BB0",
"; c #5689B2",
"> c #DAE1E7",
", c #E9EBED",
"' c #767676",
") c #5590C1",
"! c #79A9D1",
"~ c #709FC6",
"{ c #3777AC",
"] c #3672A4",
"^ c #3C73A2",
"/ c #B2C4D4",
"( c #161616",
"_ c #C1D2E1",
": c #C2D3E2",
"< c #BFD0DE",
"[ c #BBCCDB",
"} c #366E9D",
"| c #467695",
"1 c #C4C787",
"2 c #F8E78A",
"3 c #C4C4C4",
"4 c #B7CDDF",
"5 c #3881BD",
"6 c #387EB7",
"7 c #3779B0",
"8 c #3775A9",
"9 c #366F9F",
"0 c #366B99",
"a c #597F89",
"b c #DACF62",
"c c #FFDF50",
"d c #EEEDEC",
"e c #ECECEC",
"f c #4287C0",
"g c #387EB8",
"h c #377AB1",
"i c #3776AB",
"j c #366D9B",
"k c #386A94",
"l c #728F8F",
"m c #E6CF5B",
"n c #FFD545",
"o c #F8D774",
"p c #EBEBEB",
"q c #3A7FB9",
"r c #377BB4",
"s c #4E86B5",
"t c #A8B890",
"u c #AEBA7A",
"v c #AEB674",
"w c #AFB26D",
"x c #DCC969",
"y c #FED348",
"z c #FFCA38",
"A c #F8CE5E",
"B c #EAEAEA",
"C c #4784B7",
"D c #3778AD",
"E c #88A38E",
"F c #FDEC63",
"G c #FFE95C",
"H c #FFE254",
"I c #FFDA4A",
"J c #FFD140",
"K c #FFC836",
"L c #FFC330",
"M c #F7CA65",
"N c #E8E8E8",
"O c #C1D1DE",
"P c #457EAE",
"Q c #95AB84",
"R c #FFE95B",
"S c #FBDB5F",
"T c #FBD55E",
"U c #FACE56",
"V c #FAC851",
"W c #FAC249",
"X c #E7E7E7",
"Y c #B9C9D7",
"Z c #D4CD6F",
"` c #FFE152",
" . c #FFD949",
".. c #F4D881",
"+. c #F1DA9F",
"@. c #F1D494",
"#. c #E9DFC6",
"$. c #E6E6E6",
"%. c #E5E5E5",
"&. c #F8DD79",
"*. c #FFD646",
"=. c #FFCE3D",
"-. c #FFC735",
";. c #FFE5AA",
">. c #FDCC64",
",. c #ECD9AF",
"'. c #E4E4E4",
"). c #F0E8D3",
"!. c #FBC94A",
"~. c #FDBF36",
"{. c #F9C150",
"]. c #E3E3E3",
" . . . . . . . . . . . . ",
". + + + + + + + + + + @ + . ",
". + # # # $ $ $ $ $ $ @ % + . ",
". + # # & * = - ; > , @ ' + + . ",
". + # # ) ! ~ { ] ^ / @ @ @ ( . ",
". + # # _ : < [ } | 1 2 # # 3 . ",
". + 4 5 6 7 8 9 0 a b c d e 3 . ",
". + f g h i ] j k l m n o p 3 . ",
". + q r s t u v w x y z A B 3 . ",
". + C D E F G H I J K L M N 3 . ",
". + O P Q R H S T U V W X X 3 . ",
". + # Y Z ` ...+.@.#.$.$.%.3 . ",
". + # # &.*.=.-.;.>.,.%.'.'.3 . ",
". + # # # ).!.~.{.# '.].].].3 . ",
". 3 3 3 3 3 3 3 3 3 3 3 3 3 3 . ",
" . . . . . . . . . . . . . . "};
#endif
common/build_version.cpp
View file @
8497178f
...
...
@@ -6,7 +6,7 @@
#endif
#ifndef KICAD_BUILD_VERSION
#define KICAD_BUILD_VERSION "(2010-02-2
6
)"
#define KICAD_BUILD_VERSION "(2010-02-2
8
)"
#endif
#define VERSION_STABILITY "RC5"
...
...
common/pyhandler.cpp
deleted
100644 → 0
View file @
52dbb13c
#include "fctsys.h"
#include "common.h"
#include <id.h>
#include <wx/dir.h>
#include <pyhandler.h>
#include <iostream>
using
namespace
boost
::
python
;
/*****************************************************************************/
/* Common Python Binding */
/*****************************************************************************/
static
int
GetLastID
()
{
return
ID_END_LIST
;
}
static
object
ChooseFile
(
str
objTitle
,
str
objMask
,
object
objOpen
)
{
wxString
mask
=
PyHandler
::
MakeStr
(
objMask
);
int
open
=
extract
<
int
>
(
objOpen
);
wxString
script
=
EDA_FileSelector
(
PyHandler
::
MakeStr
(
objTitle
),
wxEmptyString
,
wxEmptyString
,
mask
,
mask
,
NULL
,
open
?
wxFD_OPEN
:
wxFD_SAVE
,
TRUE
);
return
PyHandler
::
Convert
(
script
);
}
static
void
Print
(
str
message
)
{
std
::
cout
<<
extract
<
char
*>
(
message
)
<<
std
::
endl
;
}
static
void
Clear
()
{}
static
void
RegisterCb
(
str
objKey
,
object
callback
)
{
PyHandler
::
GetInstance
()
->
RegisterCallback
(
PyHandler
::
MakeStr
(
objKey
),
callback
);
}
static
void
UnRegisterCb
(
str
objKey
,
object
callback
)
{
PyHandler
::
GetInstance
()
->
UnRegisterCallback
(
PyHandler
::
MakeStr
(
objKey
),
callback
);
}
static
void
init_base_utils
()
{
def
(
"ChooseFile"
,
&
ChooseFile
);
def
(
"RegisterCallback"
,
&
RegisterCb
);
def
(
"UnRegisterCallback"
,
&
UnRegisterCb
);
def
(
"GetLastID"
,
&
GetLastID
);
def
(
"Print"
,
&
Print
);
def
(
"Clear"
,
&
Clear
);
}
// Dummy boost callback
static
void
InitPyModules
()
{
PyHandler
::
GetInstance
()
->
InitNextModule
();
}
/*****************************************************************************/
/* PyHandler */
/*****************************************************************************/
// std::vector< T > -> python object implicit conversion
template
<
typename
T
>
struct
std_vector_to_tuple
{
static
PyObject
*
makeItem
(
const
wxString
&
str
)
{
return
boost
::
python
::
incref
(
PyHandler
::
Convert
(
str
).
ptr
()
);
}
static
PyObject
*
makeItem
(
const
std
::
string
&
str
)
{
return
boost
::
python
::
incref
(
boost
::
python
::
str
(
str
.
c_str
()
).
ptr
()
);
}
static
PyObject
*
makeItem
(
int
item
)
{
return
boost
::
python
::
incref
(
PyInt_FromLong
(
item
)
);
}
static
PyObject
*
convert
(
const
T
&
vect
)
{
PyObject
*
tuple
=
PyTuple_New
(
vect
.
size
()
);
for
(
unsigned
int
i
=
0
;
i
<
vect
.
size
()
;
i
++
)
{
PyTuple_SET_ITEM
(
tuple
,
i
,
makeItem
(
vect
[
i
]
)
);
}
return
tuple
;
}
};
PyHandler
*
PyHandler
::
m_instance
=
NULL
;
/* Singleton implementation */
PyHandler
*
PyHandler
::
GetInstance
()
{
if
(
!
PyHandler
::
m_instance
)
{
PyHandler
::
m_instance
=
new
PyHandler
();
}
return
PyHandler
::
m_instance
;
}
/* Init the Python env */
PyHandler
::
PyHandler
()
{
Py_Initialize
();
PyEval_InitThreads
();
m_ModulesLoaded
=
false
;
m_current
=
0
;
if
(
!
wxPyCoreAPI_IMPORT
()
)
{
std
::
cerr
<<
"Can't get wx Python binding
\n
"
;
PyErr_Print
();
}
// m_mainTState = wxPyBeginAllowThreads(); // I can't figure out why this make py crash ...
m_mainTState
=
NULL
;
// Make the console appear in a window:
wxString
initConsole
;
initConsole
+=
wxT
(
"import sys
\n
"
);
initConsole
+=
wxT
(
"import wx
\n
"
);
initConsole
+=
wxT
(
"output = wx.PyOnDemandOutputWindow()
\n
"
);
initConsole
+=
wxT
(
"sys.stdout = sys.stderr = output
\n
"
);
RunSimpleString
(
initConsole
);
AddToModule
(
wxT
(
"common"
),
&
init_base_utils
);
// Register converters
to_python_converter
<
std
::
vector
<
std
::
string
>
,
std_vector_to_tuple
<
const
std
::
vector
<
std
::
string
>
>
>
();
to_python_converter
<
std
::
vector
<
wxString
>
,
std_vector_to_tuple
<
const
std
::
vector
<
wxString
>
>
>
();
}
void
PyHandler
::
DoInitModules
()
{
if
(
m_ModulesLoaded
)
return
;
m_ModulesLoaded
=
true
;
for
(
unsigned
int
i
=
0
;
i
<
m_ModuleRegistry
.
size
();
i
++
)
{
detail
::
init_module
(
m_ModuleRegistry
[
i
].
name
.
mb_str
(),
&
InitPyModules
);
}
}
/* Returns the module index in the registry, -1 if not found*/
int
PyHandler
::
GetModuleIndex
(
const
wxString
&
name
)
const
{
for
(
unsigned
int
i
=
0
;
i
<
m_ModuleRegistry
.
size
();
i
++
)
{
if
(
m_ModuleRegistry
[
i
].
name
==
name
)
return
i
;
}
return
-
1
;
}
/* Adds an init function to a python module */
void
PyHandler
::
AddToModule
(
const
wxString
&
name
,
PyHandler
::
initfunc_t
initfunc
)
{
if
(
!
initfunc
)
return
;
int
i
=
GetModuleIndex
(
name
);
if
(
-
1
==
i
)
{
m_ModuleRegistry
.
push_back
(
ModuleRecord
(
name
)
);
i
=
m_ModuleRegistry
.
size
()
-
1
;
}
m_ModuleRegistry
[
i
].
registry
.
push_back
(
initfunc
);
}
/* Called to initialize a module on py 'import module' */
void
PyHandler
::
InitNextModule
()
{
for
(
unsigned
int
j
=
0
;
j
<
m_ModuleRegistry
[
m_current
].
registry
.
size
();
j
++
)
{
m_ModuleRegistry
[
m_current
].
registry
[
j
]();
}
m_current
++
;
}
/* Closes the Python env */
PyHandler
::~
PyHandler
()
{
wxPyEndAllowThreads
(
m_mainTState
);
Py_Finalize
();
}
/* Run scripts looking in 'base' directory */
void
PyHandler
::
RunBaseScripts
(
const
wxString
&
base
)
{
const
wxString
sep
=
wxFileName
().
GetPathSeparator
();
// check if we can have a kicad_startup.py around ?
wxString
script
=
base
+
wxT
(
"scripts"
)
+
sep
+
wxT
(
"kicad_startup.py"
);
if
(
wxFileExists
(
script
)
)
RunScript
(
script
);
// First find scripts/<name>.py and run it if found :
script
=
base
+
wxString
::
FromAscii
(
"scripts"
)
+
sep
+
m_appName
+
wxString
::
FromAscii
(
".py"
);
if
(
wxFileExists
(
script
)
)
RunScript
(
script
);
// Now lets see if we can find a suitable plugin directory
// (plugin/<name>) somewhere
wxString
pluginDir
=
base
+
wxT
(
"plugins"
)
+
sep
+
m_appName
;
if
(
wxDirExists
(
pluginDir
)
)
{
// We do have a systemwide plugin dir, let's find files in it
wxArrayString
pluginList
;
wxDir
::
GetAllFiles
(
pluginDir
,
&
pluginList
,
wxT
(
"*.py"
)
);
for
(
unsigned
int
i
=
0
;
i
<
pluginList
.
Count
()
;
i
++
)
{
RunScript
(
pluginList
[
i
]
);
}
}
}
/* Run application startup scripts */
void
PyHandler
::
RunScripts
()
{
// SYSTEMWIDE:
const
wxString
sep
=
wxFileName
().
GetPathSeparator
();
wxString
dataPath
=
ReturnKicadDatasPath
();
if
(
wxDirExists
(
dataPath
)
)
RunBaseScripts
(
dataPath
);
// USER Scripts:
wxString
userDir
=
wxGetUserHome
()
+
sep
+
wxString
::
FromAscii
(
".kicad.d"
)
+
sep
;
if
(
wxDirExists
(
userDir
)
)
RunBaseScripts
(
userDir
);
userDir
=
wxGetUserHome
()
+
sep
+
wxString
::
FromAscii
(
"_kicad_d"
)
+
sep
;
if
(
wxDirExists
(
userDir
)
)
RunBaseScripts
(
userDir
);
}
/* Run the script specified by 'name' */
bool
PyHandler
::
RunScript
(
const
wxString
&
name
)
{
DoInitModules
();
object
module
(
handle
<>
(
borrowed
(
PyImport_AddModule
(
"__main__"
))));
object
ns
=
module
.
attr
(
"__dict__"
);
bool
ret
=
true
;
FILE
*
file
=
fopen
(
name
.
mb_str
(),
"r"
);
wxPyBlock_t
blocked
=
wxPyBeginBlockThreads
();
if
(
!
file
)
{
// do something
std
::
cout
<<
"Unable to Load "
<<
name
.
mb_str
()
<<
"
\n
"
;
ret
=
false
;
}
else
{
wxString
currDir
=
wxGetCwd
();
wxFileName
fname
(
name
);
wxString
pyDir
=
fname
.
GetPath
();
wxSetWorkingDirectory
(
pyDir
);
try
{
ns
[
"currentScript"
]
=
Convert
(
name
);
handle
<>
ignored
(
PyRun_File
(
file
,
name
.
mb_str
(),
Py_file_input
,
ns
.
ptr
(),
ns
.
ptr
()
)
);
}
catch
(
error_already_set
)
{
PyErr_Print
();
// should be printed into an error message ...
ret
=
false
;
}
wxSetWorkingDirectory
(
currDir
);
}
fclose
(
file
);
wxPyEndBlockThreads
(
blocked
);
return
ret
;
}
bool
PyHandler
::
RunSimpleString
(
const
wxString
&
code
)
/* Run the code in 'code' */
{
wxPyBlock_t
blocked
=
wxPyBeginBlockThreads
();
try
{
PyRun_SimpleString
(
code
.
mb_str
()
);
}
catch
(
error_already_set
)
{
PyErr_Print
();
// should be printed into an error message ...
wxPyEndBlockThreads
(
blocked
);
return
false
;
}
wxPyEndBlockThreads
(
blocked
);
return
true
;
}
void
PyHandler
::
SetAppName
(
const
wxString
&
name
)
/* Set the application name in the python scope */
{
m_appName
=
name
;
object
module
(
(
handle
<>
(
borrowed
(
PyImport_AddModule
(
"__main__"
)
)
)
)
);
object
ns
=
module
.
attr
(
"__dict__"
);
try
{
ns
[
"kicadApp"
]
=
std
::
string
(
name
.
ToAscii
()
);
}
catch
(
error_already_set
)
{
PyErr_Print
();
}
}
const
char
*
PyHandler
::
GetVersion
()
{
return
Py_GetVersion
();
}
// Event handling :
void
PyHandler
::
DeclareEvent
(
const
wxString
&
key
)
{
m_EventRegistry
.
push_back
(
Event
(
key
)
);
}
int
PyHandler
::
GetEventIndex
(
const
wxString
&
key
)
{
for
(
unsigned
int
i
=
0
;
i
<
m_EventRegistry
.
size
();
i
++
)
{
if
(
m_EventRegistry
[
i
].
key
==
key
)
return
i
;
}
return
-
1
;
}
void
PyHandler
::
TriggerEvent
(
const
wxString
&
key
)
{
TriggerEvent
(
key
,
str
(
""
)
);
}
void
PyHandler
::
TriggerEvent
(
const
wxString
&
key
,
const
object
&
param
)
{
int
i
=
GetEventIndex
(
key
);
if
(
-
1
==
i
)
return
;
wxPyBlock_t
blocked
=
wxPyBeginBlockThreads
();
for
(
unsigned
int
j
=
0
;
j
<
m_EventRegistry
[
i
].
functors
.
size
();
j
++
)
{
try
{
m_EventRegistry
[
i
].
functors
[
j
](
param
);
}
catch
(
error_already_set
)
{
std
::
cout
<<
"Error in event "
<<
key
.
mb_str
()
<<
" callback"
<<
std
::
endl
;
PyErr_Print
();
}
}
wxPyEndBlockThreads
(
blocked
);
}
void
PyHandler
::
RegisterCallback
(
const
wxString
&
key
,
const
object
&
callback
)
{
int
i
=
GetEventIndex
(
key
);
if
(
-
1
==
i
)
return
;
m_EventRegistry
[
i
].
functors
.
push_back
(
callback
);
}
void
PyHandler
::
UnRegisterCallback
(
const
wxString
&
key
,
const
object
&
callback
)
{
int
i
=
GetEventIndex
(
key
);
if
(
-
1
==
i
)
return
;
for
(
unsigned
int
j
=
0
;
j
<
m_EventRegistry
[
i
].
functors
.
size
()
;
j
++
)
{
if
(
callback
==
m_EventRegistry
[
i
].
functors
[
j
]
)
{
m_EventRegistry
[
i
].
functors
.
erase
(
m_EventRegistry
[
i
].
functors
.
begin
()
+
j
);
break
;
}
}
}
// Object conversion:
wxString
PyHandler
::
MakeStr
(
const
object
&
objStr
)
{
return
wxString
(
extract
<
const
char
*>
(
objStr
),
wxConvLocal
);
}
object
PyHandler
::
Convert
(
const
wxString
&
wxStr
)
{
return
str
(
std
::
string
(
wxStr
.
mb_str
()
).
c_str
()
);
}
gerbview/set_color.cpp.unused
deleted
100644 → 0
View file @
52dbb13c
/*****************/
/* set_color.cpp */
/*****************/
/*Set up the items and layer colors and show/no show options
*/
#include "fctsys.h"
#include "gr_basic.h"
#include "common.h"
#include "class_drawpanel.h"
#include "gerbview.h"
#include "pcbnew.h"
#include "class_board_design_settings.h"
#include "protos.h"
// variable used to handle grid visibility:
bool s_showGrid;
int s_gridColor;
#include "set_color.h" // Header file associated with this file
// Local variables:
int CurrentColor[NB_BUTT]; // Holds color for each layer while dialog box open
IMPLEMENT_DYNAMIC_CLASS( WinEDA_SetColorsFrame, wxDialog )
// Table of events for WinEDA_SetColorsFrame
BEGIN_EVENT_TABLE( WinEDA_SetColorsFrame, wxDialog )
EVT_BUTTON( ID_COLOR_RESET_SHOW_LAYER_OFF, WinEDA_SetColorsFrame::ResetDisplayLayersCu )
EVT_BUTTON( ID_COLOR_RESET_SHOW_LAYER_ON, WinEDA_SetColorsFrame::ResetDisplayLayersCu )
EVT_COMMAND_RANGE( ID_COLOR_SETUP, ID_COLOR_SETUP + NB_BUTT - 1,
wxEVT_COMMAND_BUTTON_CLICKED,
WinEDA_SetColorsFrame::SetColor )
EVT_BUTTON( wxID_OK, WinEDA_SetColorsFrame::OnOkClick )
EVT_BUTTON( wxID_CANCEL, WinEDA_SetColorsFrame::OnCancelClick )
EVT_BUTTON( wxID_APPLY, WinEDA_SetColorsFrame::OnApplyClick )
END_EVENT_TABLE()
/*****************************************************/
void DisplayColorSetupFrame( WinEDA_GerberFrame* parent,
const wxPoint& framepos )
/*****************************************************/
{
WinEDA_SetColorsFrame* frame =
new WinEDA_SetColorsFrame( parent, framepos );
frame->ShowModal();
frame->Destroy();
}
// Default Constructor (whose provision is mandated by the inclusion
// of DECLARE_DYNAMIC_CLASS( WinEDA_SetColorsFrame ) within set_color.h)
WinEDA_SetColorsFrame::WinEDA_SetColorsFrame()
{
Init();
}
// Standard Constructor
WinEDA_SetColorsFrame::WinEDA_SetColorsFrame( WinEDA_GerberFrame* parent,
const wxPoint& framepos )
{
m_Parent = parent;
Init();
Create( parent,
SYMBOL_WINEDA_SETCOLORSFRAME_IDNAME,
SYMBOL_WINEDA_SETCOLORSFRAME_TITLE,
framepos,
wxDefaultSize,
SYMBOL_WINEDA_SETCOLORSFRAME_STYLE );
}
// Destructor
WinEDA_SetColorsFrame::~WinEDA_SetColorsFrame() { }
/**********************************************************/
bool WinEDA_SetColorsFrame::Create( wxWindow* parent, wxWindowID id,
const wxString& caption, const wxPoint& pos,
const wxSize& size, long style )
/**********************************************************/
{
SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
wxDialog::Create( parent, id, caption, pos, size, style );
CreateControls();
if (GetSizer())
{
GetSizer()->SetSizeHints(this);
}
return true;
}
/**********************************************************/
void WinEDA_SetColorsFrame::Init()
/**********************************************************/
{
OuterBoxSizer = NULL;
MainBoxSizer = NULL;
FlexColumnBoxSizer = NULL;
Label = NULL;
RowBoxSizer = NULL;
BitmapButton = NULL;
CheckBox = NULL;
Button = NULL;
Line = NULL;
StdDialogButtonSizer = NULL;
}
/**********************************************************/
void WinEDA_SetColorsFrame::CreateControls()
/**********************************************************/
{
int lyr, cln, butt_ID, buttcolor;
wxString msg;
wxSize CorrectSize; // Used while specifying sizes of buttons and spacers
int ButtonHeight; // Also used for the same reason
OuterBoxSizer = new wxBoxSizer(wxVERTICAL);
SetSizer(OuterBoxSizer);
MainBoxSizer = new wxBoxSizer(wxHORIZONTAL);
OuterBoxSizer->Add(MainBoxSizer, 1, wxGROW|wxLEFT|wxRIGHT, 5);
// Add various items to the dialog box, as determined by the
// details of each element contained within laytool_list[]
s_showGrid = m_Parent->IsGridVisible();
s_gridColor = m_Parent->GetGridColor();
for( lyr = 0, cln = 0; lyr < NB_BUTT; lyr++ )
{
// Look for the first set of controls within each column.
if( lyr == 0 || lyr == laytool_index[cln]->m_Index + 1 )
{
if( lyr != 0 )
cln++;
// Specify a FlexGrid sizer with seventeen rows and one column.
FlexColumnBoxSizer = new wxFlexGridSizer(17, 1, 0, 0);
// Specify that all of the rows can be expanded.
for( int ii = 0; ii < 17; ii++ )
{
FlexColumnBoxSizer->AddGrowableRow(ii);
}
// Specify that the column can also be expanded.
FlexColumnBoxSizer->AddGrowableCol(0);
MainBoxSizer->Add(FlexColumnBoxSizer, 1, wxGROW|wxLEFT, 5);
// Add a text string to identify the controls within this column.
Label = new wxStaticText( this, wxID_STATIC, laytool_index[cln]->m_Name,
wxDefaultPosition, wxDefaultSize, 0 );
// Make this text string bold (so that it stands out better).
Label->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxNORMAL_FONT->GetFamily(),
wxNORMAL, wxBOLD, false, wxNORMAL_FONT->GetFaceName() ) );
FlexColumnBoxSizer->Add(Label, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
}
// Provide a sizer for each layer to accomodate its associated bitmap button and checkbox.
RowBoxSizer = new wxBoxSizer(wxHORIZONTAL);
FlexColumnBoxSizer->Add(RowBoxSizer, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5);
butt_ID = ID_COLOR_SETUP + lyr;
laytool_list[lyr]->m_Id = butt_ID;
// Provide a bitmap button, and "paint" this with the appropriate color.
wxMemoryDC iconDC;
wxBitmap ButtBitmap( BUTT_SIZE_X, BUTT_SIZE_Y );
iconDC.SelectObject( ButtBitmap );
buttcolor = *laytool_list[lyr]->m_Color & MASKCOLOR;
CurrentColor[lyr] = buttcolor;
wxBrush Brush;
iconDC.SelectObject( ButtBitmap );
iconDC.SetPen( *wxBLACK_PEN );
Brush.SetColour(
ColorRefs[buttcolor].m_Red,
ColorRefs[buttcolor].m_Green,
ColorRefs[buttcolor].m_Blue
);
Brush.SetStyle( wxSOLID );
iconDC.SetBrush( Brush );
iconDC.DrawRectangle( 0, 0, BUTT_SIZE_X, BUTT_SIZE_Y );
BitmapButton = new wxBitmapButton( this, butt_ID,
ButtBitmap,
wxDefaultPosition,
wxSize(BUTT_SIZE_X, BUTT_SIZE_Y) );
laytool_list[lyr]->m_Button = BitmapButton;
RowBoxSizer->Add(BitmapButton, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxBOTTOM, 5);
// Provide a checkbox, and specify the appropriate caption and checked state.
msg = wxGetTranslation( laytool_list[lyr]->m_Name.GetData() );
CheckBox = new wxCheckBox( this, ID_COLOR_CHECKBOX_ONOFF, msg,
wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
laytool_list[lyr]->m_CheckBox = CheckBox;
if( laytool_list[lyr]->m_NoDisplayIsColor )
{
if( m_Parent->GetBoard()->IsLayerVisible( lyr ))
CheckBox->SetValue( TRUE );
else
CheckBox->SetValue( FALSE );
}
else
CheckBox->SetValue( *laytool_list[lyr]->m_NoDisplay );
RowBoxSizer->Add(CheckBox, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5);
}
// Now provide two (standard/non-bitmap) buttons within the third column, along with a number
// of spacers (so that if the dialog box is resized by the user, each of the controls within
// each of the columns will be repositioned in an aesthetically-acceptable manner).
//
// Before adding either of those buttons, provide a spacer to properly separate them from the
// bitmap buttons and checkboxes located above them. The height of that spacer should match
// the height of each "RowBox" sizer that has already been provided (to accomodate a bitmap
// button and checkbox), so that the top edge of the first button will line up with the top
// edge of the fourth checkbox provided within each of the first and second columns. (Hence
// that height is the larger of each bitmap button's height and each checkbox'es height.)
CorrectSize = CheckBox->GetSize();
if( CorrectSize.y < BUTT_SIZE_Y )
CorrectSize.y = BUTT_SIZE_Y;
FlexColumnBoxSizer->Add(5, CorrectSize.y, 1, wxBOTTOM, 5);
// For aesthetic reasons, both of the buttons will be made equally wide; hence the width
// required for each of those buttons needs to be determined before the appropriate width
// for both of them can be specified.
int width0;
// Specify the relevent details for the first button, but in the first instance,
// specify the caption which will be used by the second of these buttons.
Button = new wxButton( this, ID_COLOR_RESET_SHOW_LAYER_ON, _("Show None"),
wxDefaultPosition, wxDefaultSize, 0 );
// Note the width of the button required for the initially specified caption.
// Also note the height of this button, as that detail will be required later while specifying
// the height of yet more spacers that will subsequently be provided beneath both buttons.
Button->GetSize( &width0, &ButtonHeight );
// Now change the caption of this button to what is really wanted for it.
Button->SetLabel( _("Show All") );
// Also note the width of the button required for the updated caption.
Button->GetSize( &CorrectSize.x, &ButtonHeight );
// Upate the value of CorrectSize.x if required (as that value will subsequently
// be used to specify the (minimum) width for both of these buttons).
if( CorrectSize.x < width0 )
CorrectSize.x = width0;
// Complete the steps necessary for providing the first button.
if (WinEDA_SetColorsFrame::ShowToolTips())
Button->SetToolTip( _("Switch on all of the Gerber layers") );
Button->SetMinSize( wxSize( CorrectSize.x, ButtonHeight ) );
FlexColumnBoxSizer->Add(Button, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxBOTTOM, 5);
// Now do everything required for providing the second button.
Button = new wxButton( this, ID_COLOR_RESET_SHOW_LAYER_OFF, _("Show None"),
wxDefaultPosition, wxDefaultSize, 0 );
if (WinEDA_SetColorsFrame::ShowToolTips())
Button->SetToolTip( _("Switch off all of the Gerber layers") );
Button->SetMinSize( wxSize( CorrectSize.x, ButtonHeight ) );
FlexColumnBoxSizer->Add(Button, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxBOTTOM, 5);
// As each column contains seventeen rows, and only six rows of the third column have been
// occupied so far, spacers still need to be provided to occupy each of the remaining eleven
// rows within that column. So determine the collective height required for those spacers,
// so that the appropriate height for each of those spacers can subsequently be determined.
//
// Collective height required by the 11 spacers = 13 * CorrectSize.y - 2 * ButtonHeight
//
// As the height of a spacer is always an integral number, some of the spacers will probably
// need to be one unit taller than the remaining spacers; thus the remainder (modulus) will
// also determine what height should subsequently be assigned to each of those spacers.
// (Reuse width0 to hold value of remainder, rather than defining another new variable.)
width0 = (13 * CorrectSize.y - 2 * ButtonHeight) % 11;
CorrectSize.y = (13 * CorrectSize.y - 2 * ButtonHeight) / 11;
for( int ii = 1; ii < 12; ii++ )
{
if( ii <= width0 )
FlexColumnBoxSizer->Add(5, CorrectSize.y + 1, 1, wxBOTTOM, 5);
else
FlexColumnBoxSizer->Add(5, CorrectSize.y, 1, wxBOTTOM, 5);
}
// Provide a line to separate the controls which have been provided so far from
// the OK, Cancel, and Apply buttons (which will be provided after this line)
Line = new wxStaticLine( this, -1, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
OuterBoxSizer->Add(Line, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5);
// Provide a StdDialogButtonSizer to accommodate the OK, Cancel, and Apply
// buttons; using that type of sizer results in those buttons being
// automatically located in positions appropriate for each (OS) version of KiCad.
StdDialogButtonSizer = new wxStdDialogButtonSizer;
OuterBoxSizer->Add(StdDialogButtonSizer, 0, wxGROW|wxALL, 10);
Button = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 );
StdDialogButtonSizer->AddButton(Button);
Button = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
StdDialogButtonSizer->AddButton(Button);
Button = new wxButton( this, wxID_APPLY, _("Apply"), wxDefaultPosition, wxDefaultSize, 0 );
StdDialogButtonSizer->AddButton(Button);
StdDialogButtonSizer->Realize();
// (Dialog now needs to be resized, but the associated command is provided elsewhere.)
}
/**********************************************************/
bool WinEDA_SetColorsFrame::ShowToolTips()
/**********************************************************/
{
return true;
}
/**********************************************************/
wxBitmap WinEDA_SetColorsFrame::GetBitmapResource( const wxString& name )
/**********************************************************/
{
wxUnusedVar(name);
return wxNullBitmap;
}
/**********************************************************/
wxIcon WinEDA_SetColorsFrame::GetIconResource( const wxString& name )
/**********************************************************/
{
wxUnusedVar(name);
return wxNullIcon;
}
/*******************************************************************/
void WinEDA_SetColorsFrame::OnOkClick(wxCommandEvent& WXUNUSED(event))
/*******************************************************************/
{
UpdateLayerSettings();
m_Parent->DrawPanel->Refresh();
EndModal( 1 );
}
/*******************************************************************/
void WinEDA_SetColorsFrame::OnCancelClick(wxCommandEvent& WXUNUSED(event))
/*******************************************************************/
{
EndModal( -1 );
}
/*******************************************************************/
void WinEDA_SetColorsFrame::OnApplyClick(wxCommandEvent& WXUNUSED(event))
/*******************************************************************/
{
UpdateLayerSettings();
m_Parent->DrawPanel->Refresh();
}
/***********************************************************/
void WinEDA_SetColorsFrame::SetColor(wxCommandEvent& event)
/***********************************************************/
{
int id = event.GetId();
int color;
wxBitmapButton* Button;
color = DisplayColorFrame( this,
CurrentColor[id - ID_COLOR_SETUP] );
if( color < 0 )
return;
if( CurrentColor[id - ID_COLOR_SETUP] == color )
return;
CurrentColor[id - ID_COLOR_SETUP] = color;
wxMemoryDC iconDC;
Button = laytool_list[id - ID_COLOR_SETUP]->m_Button;
wxBitmap ButtBitmap = Button->GetBitmapLabel();
iconDC.SelectObject( ButtBitmap );
wxBrush Brush;
iconDC.SetPen( *wxBLACK_PEN );
Brush.SetColour(
ColorRefs[color].m_Red,
ColorRefs[color].m_Green,
ColorRefs[color].m_Blue
);
Brush.SetStyle( wxSOLID );
iconDC.SetBrush( Brush );
iconDC.DrawRectangle( 0, 0, BUTT_SIZE_X, BUTT_SIZE_Y );
Button->SetBitmapLabel( ButtBitmap );
Button->Refresh();
Refresh( FALSE );
}
/******************************************************************/
void WinEDA_SetColorsFrame::UpdateLayerSettings()
/******************************************************************/
{
for( int lyr = 0; lyr < NB_BUTT - 2; lyr++ )
{
m_Parent->GetBoard()->GetBoardDesignSettings()->SetLayerVisibility( lyr, laytool_list[lyr]->m_CheckBox->GetValue() );
*laytool_list[lyr]->m_Color = CurrentColor[lyr];
}
// (As a bitmap button and a checkbox have been provided for *every*
// layer, it is not necessary to check whether each of those items
// actually has been provided for each of those layers.)
s_gridColor = CurrentColor[32];
s_showGrid = laytool_list[32]->m_CheckBox->GetValue();
g_ColorsSettings.SetItemColor(DCODES_VISIBLE, CurrentColor[33] );
DisplayOpt.DisplayPadNum = laytool_list[33]->m_CheckBox->GetValue();
// Additional command required for updating visibility of grid.
m_Parent->SetGridVisibility( s_showGrid );
m_Parent->SetGridColor( s_gridColor );
}
/***********************************************************************/
void WinEDA_SetColorsFrame::ResetDisplayLayersCu(wxCommandEvent& event)
/***********************************************************************/
{
bool NewState = ( event.GetId() == ID_COLOR_RESET_SHOW_LAYER_ON )
? TRUE
: FALSE;
for( int lyr = 0; lyr < 32; lyr++ )
{
// (As a checkbox has been provided for *every* layer, it is not
// necessary to check whether it actually has been provided for
// each of those layers.)
laytool_list[lyr]->m_CheckBox->SetValue( NewState );
}
}
gerbview/set_color.h.unused
deleted
100644 → 0
View file @
52dbb13c
/***************/
/* set_color.h */
/***************/
#ifndef SET_COLOR_H
#define SET_COLOR_H
#include "wx/statline.h"
#include "colors_selection.h"
class wxBoxSizer;
class wxFlexGridSizer;
class wxStaticLine;
class wxStdDialogButtonSizer;
// Specify how many elements are contained within laytool_list[]
const int NB_BUTT = 34;
// Specify how many elements are contained within laytool_index[]
const int BUTTON_GROUPS = 3;
// Specify the numbers associated with assorted controls
enum col_sel_id {
ID_DIALOG = 1800,
ID_COLOR_RESET_SHOW_LAYER_ON,
ID_COLOR_RESET_SHOW_LAYER_OFF,
ID_COLOR_CHECKBOX_ONOFF,
ID_COLOR_SETUP
};
// Control identifiers
// #define SYMBOL_WINEDA_SETCOLORSFRAME_STYLE wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER
#define SYMBOL_WINEDA_SETCOLORSFRAME_STYLE wxDEFAULT_DIALOG_STYLE|MAYBE_RESIZE_BORDER
#define SYMBOL_WINEDA_SETCOLORSFRAME_TITLE _("GerbView Layer Colors:")
#define SYMBOL_WINEDA_SETCOLORSFRAME_IDNAME ID_DIALOG
// #define SYMBOL_WINEDA_SETCOLORSFRAME_SIZE wxSize(400, 300)
// #define SYMBOL_WINEDA_SETCOLORSFRAME_POSITION wxDefaultPosition
#ifndef wxCLOSE_BOX
#define wxCLOSE_BOX 0x1000
#endif
// Specify the width and height of every (color-displaying / bitmap) button
const int BUTT_SIZE_X = 20;
const int BUTT_SIZE_Y = 16;
/* Useful macro : */
#define LOC_COLOR(numlayer) &g_ColorsSettings.m_LayersColors[numlayer]
/**********************************/
/* Liste des menus de Menu_Layers */
/**********************************/
struct ColorButton
{
wxString m_Name;
int * m_Color; // Pointeur sur la variable couleur
bool m_NoDisplayIsColor; // TRUE si bit ITEM_NON_VISIBLE de la variable Color
bool * m_NoDisplay; // Pointeur sur la variable Display on/off si ce
// n'est pas la var Color
int m_Id;
wxBitmapButton * m_Button; // Button to display/change color assigned to this layer
// int m_State; // (Commented out until when it is actually used.)
wxCheckBox * m_CheckBox; // Option Display ON/OFF
};
struct ButtonIndex
{
wxString m_Name; // Title
int m_Index; // Index to last bitmap button in group
};
static ButtonIndex Msg_Layers_Cu =
{
_( "Layers 1-16" ), // Title
15 // Index to last bitmap button in group
};
static ColorButton Layer_1_Butt=
{
_("Layer 1"), // Title
LOC_COLOR(0), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_2_Butt=
{
_("Layer 2"), // Title
LOC_COLOR(1), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_3_Butt=
{
_("Layer 3"), // Title
LOC_COLOR(2), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_4_Butt=
{
_("Layer 4"), // Title
LOC_COLOR(3), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_5_Butt=
{
_("Layer 5"), // Title
LOC_COLOR(4), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_6_Butt=
{
_("Layer 6"), // Title
LOC_COLOR(5), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_7_Butt=
{
_("Layer 7"), // Title
LOC_COLOR(6), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_8_Butt=
{
_("Layer 8"), // Title
LOC_COLOR(7), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_9_Butt=
{
_("Layer 9"), // Title
LOC_COLOR(8), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_10_Butt=
{
_("Layer 10"), // Title
LOC_COLOR(9), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_11_Butt=
{
_("Layer 11"), // Title
LOC_COLOR(10), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_12_Butt=
{
_("Layer 12"), // Title
LOC_COLOR(11), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_13_Butt=
{
_("Layer 13"), // Title
LOC_COLOR(12), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_14_Butt=
{
_("Layer 14"), // Title
LOC_COLOR(13), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_15_Butt=
{
_("Layer 15"), // Title
LOC_COLOR(14), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_16_Butt=
{
_("Layer 16"), // Title
LOC_COLOR(15), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ButtonIndex Msg_Layers_Tech =
{
_( "Layers 17-32" ), // Title
31 // Index to last bitmap button in group
};
static ColorButton Layer_17_Butt=
{
_("Layer 17"), // Title
LOC_COLOR(16), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_18_Butt=
{
_("Layer 18"), // Title
LOC_COLOR(17), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_19_Butt=
{
_("Layer 19"), // Title
LOC_COLOR(18), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_20_Butt=
{
_("Layer 20"), // Title
LOC_COLOR(19), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_21_Butt=
{
_("Layer 21"), // Title
LOC_COLOR(20), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_22_Butt=
{
_("Layer 22"), // Title
LOC_COLOR(21), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_23_Butt=
{
_("Layer 23"), // Title
LOC_COLOR(22), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_24_Butt=
{
_("Layer 24"), // Title
LOC_COLOR(23), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_25_Butt=
{
_("Layer 25"), // Title
LOC_COLOR(24), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_26_Butt=
{
_("Layer 26"), // Title
LOC_COLOR(25), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_27_Butt=
{
_("Layer 27"), // Title
LOC_COLOR(26), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_28_Butt=
{
_("Layer 28"), // Title
LOC_COLOR(27), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_29_Butt=
{
_("Layer 29"), // Title
LOC_COLOR(28), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_30_Butt=
{
_("Layer 30"), // Title
LOC_COLOR(29), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_31_Butt=
{
_("Layer 31"), // Title
LOC_COLOR(30), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ColorButton Layer_32_Butt=
{
_("Layer 32"), // Title
LOC_COLOR(31), // Address of optional parameter
TRUE // Toggle ITEM*NOT*SHOW bit of the color variable
};
static ButtonIndex Msg_Others_Items =
{
_( "Others" ), // Title
33 // Index to last bitmap button in group
};
static ColorButton Grid_Butt=
{
_("Grid"), // Title
&s_gridColor, // Address of optional parameter
FALSE,
&s_showGrid // Address of boolean display control parameter to toggle
};
static ColorButton Show_DCodes_Butt=
{
_("D codes id."), // Title
&g_ColorsSettings.m_ItemsColors[DCODES_VISIBLE], // Address of optional parameter
FALSE,
&DisplayOpt.DisplayPadNum // Address of boolean display control parameter to toggle
};
static ColorButton * laytool_list[] = {
&Layer_1_Butt,
&Layer_2_Butt,
&Layer_3_Butt,
&Layer_4_Butt,
&Layer_5_Butt,
&Layer_6_Butt,
&Layer_7_Butt,
&Layer_8_Butt,
&Layer_9_Butt,
&Layer_10_Butt,
&Layer_11_Butt,
&Layer_12_Butt,
&Layer_13_Butt,
&Layer_14_Butt,
&Layer_15_Butt,
&Layer_16_Butt,
&Layer_17_Butt,
&Layer_18_Butt,
&Layer_19_Butt,
&Layer_20_Butt,
&Layer_21_Butt,
&Layer_22_Butt,
&Layer_23_Butt,
&Layer_24_Butt,
&Layer_25_Butt,
&Layer_26_Butt,
&Layer_27_Butt,
&Layer_28_Butt,
&Layer_29_Butt,
&Layer_30_Butt,
&Layer_31_Butt,
&Layer_32_Butt,
&Grid_Butt,
&Show_DCodes_Butt,
};
static ButtonIndex* laytool_index[BUTTON_GROUPS] = {
&Msg_Layers_Cu,
&Msg_Layers_Tech,
&Msg_Others_Items
};
/**************************************************************/
/* classe derivee pour la frame de Configuration des couleurs */
/**************************************************************/
class WinEDA_SetColorsFrame: public wxDialog
{
private:
DECLARE_DYNAMIC_CLASS( WinEDA_SetColorsFrame )
DECLARE_EVENT_TABLE()
WinEDA_GerberFrame* m_Parent;
wxBoxSizer* OuterBoxSizer;
wxBoxSizer* MainBoxSizer;
wxFlexGridSizer* FlexColumnBoxSizer;
wxStaticText* Label;
wxBoxSizer* RowBoxSizer;
wxBitmapButton* BitmapButton;
wxCheckBox* CheckBox;
wxButton* Button;
wxStaticLine* Line;
wxStdDialogButtonSizer* StdDialogButtonSizer;
// Creation
bool Create( wxWindow* parent,
wxWindowID id = SYMBOL_WINEDA_SETCOLORSFRAME_IDNAME,
const wxString& caption = SYMBOL_WINEDA_SETCOLORSFRAME_TITLE,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = SYMBOL_WINEDA_SETCOLORSFRAME_STYLE );
// Initialises member variables
void Init();
// Creates the controls and sizers
void CreateControls();
wxBitmap GetBitmapResource( const wxString& name );
wxIcon GetIconResource( const wxString& name );
static bool ShowToolTips();
void SetColor( wxCommandEvent& event );
void OnOkClick( wxCommandEvent& event );
void OnCancelClick( wxCommandEvent& event );
void OnApplyClick( wxCommandEvent& event );
void UpdateLayerSettings();
void ResetDisplayLayersCu( wxCommandEvent& event );
public:
// Constructors and destructor
WinEDA_SetColorsFrame();
WinEDA_SetColorsFrame( WinEDA_GerberFrame* parent, const wxPoint& framepos );
~WinEDA_SetColorsFrame();
};
#endif
// SET_COLOR_H
include/pyhandler.h
deleted
100644 → 0
View file @
52dbb13c
/****************************/
/* pyhandler.h */
/****************************/
#ifndef PYHANDLER_H
#define PYHANDLER_H
#include <wx/string.h>
#include <Python.h>
#include <wx/wxPython/wxPython.h>
#include <vector>
/* Use the boost library : */
#include <boost/python.hpp>
class
PyHandler
{
typedef
void
(
*
initfunc_t
)();
private
:
static
PyHandler
*
m_instance
;
bool
m_ModulesLoaded
;
int
m_current
;
PyThreadState
*
m_mainTState
;
protected
:
PyHandler
();
wxString
m_appName
;
void
RunBaseScripts
(
const
wxString
&
base
);
// Modules
struct
ModuleRecord
{
wxString
name
;
std
::
vector
<
initfunc_t
>
registry
;
ModuleRecord
(
const
wxString
&
modName
)
:
name
(
modName
)
{
}
};
std
::
vector
<
ModuleRecord
>
m_ModuleRegistry
;
void
DoInitModules
();
// Events
struct
Event
{
wxString
key
;
std
::
vector
<
boost
::
python
::
object
>
functors
;
Event
(
const
wxString
&
strKey
)
:
key
(
strKey
)
{
}
};
std
::
vector
<
Event
>
m_EventRegistry
;
public
:
// Singleton handling:
static
PyHandler
*
GetInstance
();
~
PyHandler
();
// Scope params/handling:
void
SetAppName
(
const
wxString
&
name
);
void
AddToModule
(
const
wxString
&
name
,
initfunc_t
initfunc
);
int
GetModuleIndex
(
const
wxString
&
name
)
const
;
// Script and direct call
void
RunScripts
();
bool
RunScript
(
const
wxString
&
name
);
bool
RunSimpleString
(
const
wxString
&
code
);
// Common Informations
const
char
*
GetVersion
();
void
InitNextModule
();
// Event triggering
// - C++ interface
void
DeclareEvent
(
const
wxString
&
key
);
void
TriggerEvent
(
const
wxString
&
key
);
void
TriggerEvent
(
const
wxString
&
key
,
const
boost
::
python
::
object
&
param
);
int
GetEventIndex
(
const
wxString
&
key
);
// - Py Interface
void
RegisterCallback
(
const
wxString
&
key
,
const
boost
::
python
::
object
&
obj
);
void
UnRegisterCallback
(
const
wxString
&
key
,
const
boost
::
python
::
object
&
obj
);
// Object conversions
// - Py -> C++
static
wxString
MakeStr
(
const
boost
::
python
::
object
&
objStr
);
// - C++ -> Py
static
boost
::
python
::
object
Convert
(
const
wxString
&
wxStr
);
};
#define KICAD_PY_BIND_MODULE( mod ) PyHandler::GetInstance()->AddModule( init # mod )
#endif //PYHANDLER_H
internat/fr/kicad.mo
View file @
8497178f
No preview for this file type
internat/fr/kicad.po
View file @
8497178f
...
...
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: kicad\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-02-2
6 16:50
+0100\n"
"PO-Revision-Date: 2010-02-2
6 16:50
+0100\n"
"POT-Creation-Date: 2010-02-2
8 15:06
+0100\n"
"PO-Revision-Date: 2010-02-2
8 15:06
+0100\n"
"Last-Translator: \n"
"Language-Team: kicad team <jean-pierre.charras@ujf-grenoble.fr>\n"
"MIME-Version: 1.0\n"
...
...
@@ -11192,7 +11192,7 @@ msgid "File <"
msgstr "Fichier <"
#: cvpcb/readschematicnetlist.cpp:115
#: kicad/prjconfig.cpp:10
8
#: kicad/prjconfig.cpp:10
5
msgid "> not found"
msgstr "> non trouvé"
...
...
@@ -11322,136 +11322,136 @@ msgstr "Redessin de l'écran (F3)"
msgid "Zoom auto (Home)"
msgstr "Zoom Automatique (Home)"
#: kicad/menubar.cpp:9
4
#: kicad/menubar.cpp:9
0
msgid "Open an existing project"
msgstr "Ouvrir un projet existant"
#: kicad/menubar.cpp:10
8
#: kicad/menubar.cpp:27
6
#: kicad/menubar.cpp:10
4
#: kicad/menubar.cpp:27
2
msgid "Start a new project"
msgstr "Créer un nouveau projet"
#: kicad/menubar.cpp:11
4
#: kicad/menubar.cpp:28
6
#: kicad/menubar.cpp:11
0
#: kicad/menubar.cpp:28
2
msgid "Save current project"
msgstr "Sauver le projet courrant"
#: kicad/menubar.cpp:1
22
#: kicad/menubar.cpp:1
18
msgid "&Archive"
msgstr "Archiver"
#: kicad/menubar.cpp:1
23
#: kicad/menubar.cpp:1
19
msgid "Archive project files in zip archive"
msgstr "Archive fichiers projet dans un fichier zip"
#: kicad/menubar.cpp:12
8
#: kicad/menubar.cpp:12
4
msgid "&Unarchive"
msgstr "&Désarchiver"
#: kicad/menubar.cpp:12
9
#: kicad/menubar.cpp:12
5
msgid "Unarchive project files from zip file"
msgstr "Désarchiver les fichiers du projet"
#: kicad/menubar.cpp:13
8
#: kicad/menubar.cpp:13
4
msgid "Quit KiCad"
msgstr "Quitter KiCad"
#: kicad/menubar.cpp:1
52
#: kicad/menubar.cpp:1
48
msgid "Text E&ditor"
msgstr "&Editeur de Texte"
#: kicad/menubar.cpp:1
53
#: kicad/menubar.cpp:1
49
msgid "Open prefered text editor"
msgstr "Lancer l'éditeur de texte préféré"
#: kicad/menubar.cpp:15
9
#: kicad/menubar.cpp:15
5
msgid "&View File"
msgstr "&Voir Fichier"
#: kicad/menubar.cpp:1
60
#: kicad/menubar.cpp:1
56
msgid "View, read or edit file with a text editor"
msgstr "Examiner, lire ou éditer des fichiers avec l'éditeur de texte"
#: kicad/menubar.cpp:1
73
#: kicad/menubar.cpp:1
69
msgid "&Text Editor"
msgstr "&Editeur de Texte"
#: kicad/menubar.cpp:17
4
#: kicad/menubar.cpp:17
0
msgid "Select your prefered text editor"
msgstr "Choisir son éditeur de texte préféré"
#: kicad/menubar.cpp:18
8
#: kicad/menubar.cpp:18
4
msgid "Use system default PDF viewer used to browse datasheets"
msgstr "Utiliser le visualisateur PDF par défaut pour afficher les documentations"
#: kicad/menubar.cpp:19
8
#: kicad/menubar.cpp:19
4
msgid "Favourite"
msgstr "Visualisateur PDF préféré"
#: kicad/menubar.cpp:19
9
#: kicad/menubar.cpp:19
5
msgid "Use your favourite PDF viewer used to browse datasheets"
msgstr "Utiliser le visualisateur PDF préféré pour afficher les documentations"
#: kicad/menubar.cpp:2
10
#: kicad/menubar.cpp:21
7
#: kicad/menubar.cpp:2
06
#: kicad/menubar.cpp:21
3
msgid "PDF Viewer"
msgstr "Visualisateur PDF"
#: kicad/menubar.cpp:2
11
#: kicad/menubar.cpp:2
07
msgid "Select your favourite PDF viewer used to browse datasheets"
msgstr "Sélectionner le visualisateur PDF favori pour afficher les documents"
#: kicad/menubar.cpp:21
8
#: kicad/menubar.cpp:21
4
msgid "PDF viewer preferences"
msgstr "Préférences pour le visualisateur PDF"
#: kicad/menubar.cpp:2
33
#: kicad/menubar.cpp:2
29
msgid "Open the kicad manual"
msgstr "Ouvrir la documentation de kicad"
#: kicad/menubar.cpp:2
42
#: kicad/menubar.cpp:2
38
msgid "About kicad project manager"
msgstr "Au sujet de Kicad, gestionnaire de projet"
#: kicad/menubar.cpp:2
52
#: kicad/menubar.cpp:2
48
msgid "&Browse"
msgstr "&Examiner"
#: kicad/menubar.cpp:2
81
#: kicad/menubar.cpp:2
77
msgid "Load existing project"
msgstr "Ouvrir un projet existant"
#: kicad/menubar.cpp:29
4
#: kicad/menubar.cpp:29
0
msgid "Archive all project files"
msgstr "Archiver les fichiers du projet"
#: kicad/menubar.cpp:
302
#: kicad/menubar.cpp:
298
msgid "Refresh project tree"
msgstr "Mettre à jour l'affichage du projet"
#: kicad/prjconfig.cpp:
42
#: kicad/prjconfig.cpp:
39
msgid "Project template file <kicad.pro> not found "
msgstr "Fichier modèle <kicad.pro> non trouvé"
#: kicad/prjconfig.cpp:7
3
#: kicad/prjconfig.cpp:7
0
msgid "Create New Project"
msgstr "Créer un Nouveau Projet"
#: kicad/prjconfig.cpp:7
8
#: kicad/prjconfig.cpp:7
5
msgid "Open Existing Project"
msgstr "Ouvrir un Projet Existant"
#: kicad/prjconfig.cpp:10
7
#: kicad/prjconfig.cpp:10
4
msgid "Kicad project file <"
msgstr "Fichier projet Kicad <"
#: kicad/prjconfig.cpp:1
21
#: kicad/kicad.cpp:
74
#: kicad/prjconfig.cpp:1
18
#: kicad/kicad.cpp:
69
msgid "Working dir: "
msgstr "Répertoire de travail: "
#: kicad/prjconfig.cpp:1
22
#: kicad/kicad.cpp:7
5
#: kicad/prjconfig.cpp:1
19
#: kicad/kicad.cpp:7
0
msgid ""
"\n"
"Project: "
...
...
@@ -11508,7 +11508,7 @@ msgstr ""
"\n"
"Créer Archive zippée <%s>"
#: kicad/mainframe.cpp:
72
#: kicad/mainframe.cpp:
68
#, c-format
msgid ""
"Ready\n"
...
...
@@ -11517,11 +11517,11 @@ msgstr ""
"Prêt\n"
"Répertoire de travail: %s\n"
#: kicad/mainframe.cpp:2
53
#: kicad/mainframe.cpp:2
28
msgid "Text file ("
msgstr "Fichier Texte ("
#: kicad/mainframe.cpp:2
55
#: kicad/mainframe.cpp:2
30
msgid "Load File to Edit"
msgstr "Fichier à Editer"
...
...
@@ -11561,113 +11561,100 @@ msgstr "Fichier exécutable ("
msgid "Select Prefered Editor"
msgstr "Sélection Editeur Préféré"
#: kicad/
tree_project_frame.cpp:157
msgid "
&Run
"
msgstr "
Exécute&r
"
#: kicad/
class_treeproject_item.cpp:128
msgid "
Unable to move file ...
"
msgstr "
Impossible de déplacer le fichier
"
#: kicad/tree_project_frame.cpp:167
#: kicad/tree_project_frame.cpp:224
msgid "&Edit in a text editor"
msgstr "Editer avec un éditeur de Texte"
#: kicad/class_treeproject_item.cpp:129
#: kicad/class_treeproject_item.cpp:204
msgid "Permission error ?"
msgstr "Erreur de permission ?"
#: kicad/class_treeproject_item.cpp:187
msgid ""
"Changing file extension will change file type.\n"
" Do you want to continue ?"
msgstr ""
"Changer l'extension changera le type de fichier.\n"
"Voulez vous continuer ?"
#: kicad/class_treeproject_item.cpp:189
msgid "Rename File"
msgstr "Renommer Fichier"
#: kicad/
tree_project_frame.cpp:168
msgid "
&Open the file in a Text Editor
"
msgstr "
&Ouvrir le fichier avec un Editeur de texte
"
#: kicad/
class_treeproject_item.cpp:203
msgid "
Unable to rename file ...
"
msgstr "
Impossible de renommer le fichier...
"
#: kicad/tree_project_frame.cpp:185
#: kicad/class_treeproject_item.cpp:219
msgid "Do you really want to delete "
msgstr "Voulez vous réellement effacer"
#: kicad/class_treeproject_item.cpp:220
msgid "Delete File"
msgstr "Supprimer Fichier"
#: kicad/tree_project_frame.cpp:141
msgid "New D&irectory"
msgstr "&Nouveau Répertoire"
#: kicad/tree_project_frame.cpp:1
86
#: kicad/tree_project_frame.cpp:1
42
msgid "Create a New Directory"
msgstr "Créer un nouveau Répertoire"
#: kicad/tree_project_frame.cpp:195
msgid "New P&ython Script"
msgstr "Nouveau Script P&ython"
#: kicad/tree_project_frame.cpp:211
#: kicad/tree_project_frame.cpp:157
msgid "&Rename file"
msgstr "&Renommer fichier"
#: kicad/tree_project_frame.cpp:
212
#: kicad/tree_project_frame.cpp:
214
#: kicad/tree_project_frame.cpp:
158
#: kicad/tree_project_frame.cpp:
160
msgid "&Rename directory"
msgstr "&Renommer répertoire"
#: kicad/tree_project_frame.cpp:
213
#: kicad/tree_project_frame.cpp:
159
msgid "Rename file"
msgstr "Renommer fichier"
#: kicad/tree_project_frame.cpp:225
#: kicad/tree_project_frame.cpp:170
msgid "&Edit in a text editor"
msgstr "Editer avec un éditeur de Texte"
#: kicad/tree_project_frame.cpp:171
msgid "Open the file in a Text Editor"
msgstr "Ouvrir le fichier avec un Editeur de texte"
#: kicad/tree_project_frame.cpp:
233
#: kicad/tree_project_frame.cpp:
179
msgid "&Delete File"
msgstr "&Supprimer Fichier"
#: kicad/tree_project_frame.cpp:
234
#: kicad/tree_project_frame.cpp:
180
msgid "&Delete Directory"
msgstr "&Supprimer le Répertoire"
#: kicad/tree_project_frame.cpp:
235
#: kicad/tree_project_frame.cpp:
181
msgid "Delete the File"
msgstr "Supprimer le fichier"
#: kicad/tree_project_frame.cpp:
236
#: kicad/tree_project_frame.cpp:
182
msgid "&Delete the Directory and its content"
msgstr "Effacer le Répertoire et son contenu"
#: kicad/tree_project_frame.cpp:
511
#: kicad/tree_project_frame.cpp:
349
msgid "Create New File"
msgstr "Créer un Nouveau Fichier"
#: kicad/tree_project_frame.cpp:
512
#: kicad/tree_project_frame.cpp:
350
msgid "Create New Directory"
msgstr "Créer un nouveau Répertoire"
#: kicad/tree_project_frame.cpp:
1057
#: kicad/tree_project_frame.cpp:
854
msgid "Change filename: "
msgstr "Changer Nom Fichier: "
#: kicad/tree_project_frame.cpp:
1059
#: kicad/tree_project_frame.cpp:
856
msgid "Change filename"
msgstr "Changer Nom Fichier"
#: kicad/class_treeproject_item.cpp:148
msgid "Unable to move file ... "
msgstr "Impossible de déplacer le fichier "
#: kicad/class_treeproject_item.cpp:149
#: kicad/class_treeproject_item.cpp:230
msgid "Permission error ?"
msgstr "Erreur de permission ?"
#: kicad/class_treeproject_item.cpp:213
msgid ""
"Changing file extension will change file type.\n"
" Do you want to continue ?"
msgstr ""
"Changer l'extension changera le type de fichier.\n"
"Voulez vous continuer ?"
#: kicad/class_treeproject_item.cpp:215
msgid "Rename File"
msgstr "Renommer Fichier"
#: kicad/class_treeproject_item.cpp:229
msgid "Unable to rename file ... "
msgstr "Impossible de renommer le fichier... "
#: kicad/class_treeproject_item.cpp:250
msgid "Do you really want to delete "
msgstr "Voulez vous réellement effacer"
#: kicad/class_treeproject_item.cpp:251
msgid "Delete File"
msgstr "Supprimer Fichier"
#: gerbview/options.cpp:167
msgid "Gerbview Options"
msgstr "Gerbview Options "
...
...
@@ -12187,123 +12174,123 @@ msgstr "Couleurs"
msgid "Error"
msgstr "Erreur"
#: common/zoom.cpp:185
msgid "Center"
msgstr "Centrer"
#: common/zoom.cpp:199
msgid "Zoom select"
msgstr "Sélection Zoom"
#: common/zoom.cpp:218
msgid "Zoom: "
msgstr "Zoom: "
#: common/zoom.cpp:229
msgid "Grid Select"
msgstr "Sélection Grille"
#: common/richio.cpp:67
msgid "Line length exceeded"
msgstr "Longueur de ligne dépassée"
#: common/richio.cpp:177
msgid "Error writing to STRINGFORMATTER"
msgstr "Erreur d'écriture à STRINGFORMATTER"
#: common/eda_doc.cpp:149
msgid "Doc File "
msgstr "Fichier de Doc "
#: common/eda_doc.cpp:190
#, c-format
msgid "Unknown MIME type for doc file <%s>"
msgstr "MIME type inconnu pour fichier Doc <%s>"
#: common/pcbcommon.cpp:61
msgid "??? Via"
msgstr "??? Via"
#: common/pcbcommon.cpp:64
msgid "Blind/Buried Via"
msgstr "Via Aveugle/Enterrée"
#: common/pcbcommon.cpp:84
msgid "Kicad footprint library files (*.mod)|*.mod"
msgstr "Fichiers Modules Kicad (*.mod)|*.mod"
#: common/pcbcommon.cpp:87
msgid "Printed circuit board files (*.brd)|*.brd"
msgstr "Fichiers circuits imprimés (*.brd)|*.brd"
#: common/edaappl.cpp:112
#: common/edaappl.cpp:108
msgid "French"
msgstr "Français"
#: common/edaappl.cpp:1
20
#: common/edaappl.cpp:1
16
msgid "Finnish"
msgstr "Finlandais"
#: common/edaappl.cpp:12
8
#: common/edaappl.cpp:12
4
msgid "Spanish"
msgstr "Espagnol"
#: common/edaappl.cpp:13
6
#: common/edaappl.cpp:13
2
msgid "Portuguese"
msgstr "Portugais"
#: common/edaappl.cpp:14
4
#: common/edaappl.cpp:14
0
msgid "Italian"
msgstr "Italien"
#: common/edaappl.cpp:1
52
#: common/edaappl.cpp:1
48
msgid "German"
msgstr "Allemand"
#: common/edaappl.cpp:1
60
#: common/edaappl.cpp:1
56
msgid "Slovenian"
msgstr "Slovène"
#: common/edaappl.cpp:16
8
#: common/edaappl.cpp:16
4
msgid "Hungarian"
msgstr "Hongrois"
#: common/edaappl.cpp:17
6
#: common/edaappl.cpp:17
2
msgid "Polish"
msgstr "Polonais"
#: common/edaappl.cpp:18
4
#: common/edaappl.cpp:18
0
msgid "Czech"
msgstr "Tchèque"
#: common/edaappl.cpp:1
92
#: common/edaappl.cpp:1
88
msgid "Russian"
msgstr "Russe"
#: common/edaappl.cpp:
200
#: common/edaappl.cpp:
196
msgid "Korean"
msgstr "Coréen"
#: common/edaappl.cpp:20
8
#: common/edaappl.cpp:20
4
msgid "Chinese simplified"
msgstr "Chinois Simplifié"
#: common/edaappl.cpp:21
6
#: common/edaappl.cpp:21
2
msgid "Catalan"
msgstr "Catalan"
#: common/edaappl.cpp:22
4
#: common/edaappl.cpp:22
0
msgid "Dutch"
msgstr "Hollandais"
#: common/edaappl.cpp:8
24
#: common/edaappl.cpp:8
17
msgid "Language"
msgstr "Langue"
#: common/edaappl.cpp:8
25
#: common/edaappl.cpp:8
18
msgid "Select application language (only for testing!)"
msgstr "Choisir la langue (seulement pour tests!)"
#: common/zoom.cpp:185
msgid "Center"
msgstr "Centrer"
#: common/zoom.cpp:199
msgid "Zoom select"
msgstr "Sélection Zoom"
#: common/zoom.cpp:218
msgid "Zoom: "
msgstr "Zoom: "
#: common/zoom.cpp:229
msgid "Grid Select"
msgstr "Sélection Grille"
#: common/richio.cpp:67
msgid "Line length exceeded"
msgstr "Longueur de ligne dépassée"
#: common/richio.cpp:177
msgid "Error writing to STRINGFORMATTER"
msgstr "Erreur d'écriture à STRINGFORMATTER"
#: common/eda_doc.cpp:149
msgid "Doc File "
msgstr "Fichier de Doc "
#: common/eda_doc.cpp:190
#, c-format
msgid "Unknown MIME type for doc file <%s>"
msgstr "MIME type inconnu pour fichier Doc <%s>"
#: common/pcbcommon.cpp:61
msgid "??? Via"
msgstr "??? Via"
#: common/pcbcommon.cpp:64
msgid "Blind/Buried Via"
msgstr "Via Aveugle/Enterrée"
#: common/pcbcommon.cpp:84
msgid "Kicad footprint library files (*.mod)|*.mod"
msgstr "Fichiers Modules Kicad (*.mod)|*.mod"
#: common/pcbcommon.cpp:87
msgid "Printed circuit board files (*.brd)|*.brd"
msgstr "Fichiers circuits imprimés (*.brd)|*.brd"
#: common/dsnlexer.cpp:168
msgid "in file"
msgstr "dans le fichier"
...
...
@@ -13002,6 +12989,12 @@ msgstr "Options d'Affichage"
msgid "Page Settings"
msgstr "Ajustage opt Page"
#~ msgid "&Run"
#~ msgstr "Exécute&r"
#~ msgid "&Open the file in a Text Editor"
#~ msgstr "&Ouvrir le fichier avec un Editeur de texte"
#~ msgid "New P&ython Script"
#~ msgstr "Nouveau Script P&ython"
#~ msgid "noname"
#~ msgstr "noname"
#~ msgid "noname."
...
...
kicad/kicad-python.cpp
deleted
100644 → 0
View file @
52dbb13c
/*****************************************************************************/
/**
* @file kicad.cpp
* @brief Main kicad library manager file
*/
/*****************************************************************************/
#ifdef __GNUG__
#pragma implementation
#endif
#include "fctsys.h"
#include "appl_wxstruct.h"
#include "common.h"
#include "bitmaps.h"
#include "colors.h"
#include "kicad.h"
#include "macros.h"
#ifdef KICAD_PYTHON
#include <pyhandler.h>
#endif
/* Import functions */
char
*
GetFileName
(
char
*
FullPathName
);
#ifdef KICAD_PYTHON
using
namespace
boost
::
python
;
/*****************************************************************************/
// Global functions:
/*****************************************************************************/
static
WinEDA_MainFrame
&
GetMainFrame
()
{
return
*
(
wxGetApp
().
m_MainFrame
);
}
static
void
WinEDAPrint
(
str
msg
)
{
GetMainFrame
().
PrintMsg
(
PyHandler
::
MakeStr
(
msg
)
+
wxT
(
"
\n
"
)
);
}
static
void
WinEDAClear
()
{
GetMainFrame
().
ClearMsg
();
}
static
object
GetTypeExt
(
enum
TreeFileType
type
)
{
return
PyHandler
::
Convert
(
TREE_PROJECT_FRAME
::
GetFileExt
(
type
)
);
}
/*****************************************************************************/
// WinEDA_MainFrame Special binding functions:
// (one line functions are simple wrappers)
/*****************************************************************************/
object
WinEDA_MainFrame
::
GetPrjName
()
const
{
return
PyHandler
::
Convert
(
m_PrjFileName
);
}
object
WinEDA_MainFrame
::
ToWx
()
{
return
object
(
handle
<>
(
borrowed
(
wxPyMake_wxObject
(
this
,
false
)
)
)
);
}
TREE_PROJECT_FRAME
*
WinEDA_MainFrame
::
GetTree
()
const
{
return
m_LeftWin
;
}
/**
* @brief TODO
*/
/*****************************************************************************/
void
WinEDA_MainFrame
::
AddFastLaunchPy
(
object
&
button
)
/*****************************************************************************/
{
wxBitmapButton
*
btn
;
bool
success
=
wxPyConvertSwigPtr
(
button
.
ptr
(),
(
void
**
)
&
btn
,
_T
(
"wxBitmapButton"
)
);
if
(
!
success
)
return
;
Py_INCREF
(
button
.
ptr
()
);
btn
->
Reparent
(
m_CommandWin
);
m_CommandWin
->
AddFastLaunch
(
btn
);
}
/*****************************************************************************/
// TREE_PROJECT_FRAME Special binding functions:
// (one line functions are simple wrappers)
/*****************************************************************************/
// TODO To WxWidgets ?
object
TREE_PROJECT_FRAME
::
ToWx
()
{
return
object
(
handle
<>
(
borrowed
(
wxPyMake_wxObject
(
this
,
false
)
)
)
);
}
// TODO Get ?
object
TREE_PROJECT_FRAME
::
GetFtExPy
(
enum
TreeFileType
type
)
const
{
return
PyHandler
::
Convert
(
GetFileExt
(
type
)
);
}
// Get python menu
object
TREE_PROJECT_FRAME
::
GetMenuPy
(
enum
TreeFileType
type
)
{
return
object
(
handle
<>
(
borrowed
(
wxPyMake_wxObject
(
GetContextMenu
(
(
int
)
type
),
false
)
)
)
);
}
// Get tree control
object
TREE_PROJECT_FRAME
::
GetTreeCtrl
()
{
return
object
(
handle
<>
(
borrowed
(
wxPyMake_wxObject
(
m_TreeProject
,
false
)
)
)
);
}
// Get current menu
object
TREE_PROJECT_FRAME
::
GetCurrentMenu
()
{
return
object
(
handle
<>
(
borrowed
(
wxPyMake_wxObject
(
m_PopupMenu
,
false
)
)
)
);
}
/**
* @brief TODO
*/
/*****************************************************************************/
void
TREE_PROJECT_FRAME
::
NewFilePy
(
const
str
&
name
,
enum
TreeFileType
type
,
object
&
id
)
/*****************************************************************************/
{
wxTreeItemId
root
;
if
(
!
wxPyConvertSwigPtr
(
id
.
ptr
(),
(
void
**
)
&
root
,
_T
(
"wxTreeItemId"
)
)
)
return
;
NewFile
(
PyHandler
::
MakeStr
(
name
),
type
,
root
);
}
/**
* @brief Add a file to the tree under root, or m_root if conversion is wrong
*/
/*****************************************************************************/
void
TREE_PROJECT_FRAME
::
AddFilePy
(
const
str
&
file
,
object
&
root
)
/*****************************************************************************/
{
wxTreeItemId
*
theroot
=
&
m_root
;
if
(
!
wxPyConvertSwigPtr
(
root
.
ptr
(),
(
void
**
)
&
root
,
_T
(
"wxTreeItemId"
)
)
)
{
theroot
=
&
m_root
;
}
AddFile
(
PyHandler
::
MakeStr
(
file
),
*
theroot
);
}
/**
* @brief convert wxTreeItem into TREEPROJECT_ITEM
*/
/*****************************************************************************/
TREEPROJECT_ITEM
*
TREE_PROJECT_FRAME
::
GetItemData
(
const
object
&
item
)
/*****************************************************************************/
{
wxTreeItemId
*
id
=
NULL
;
if
(
!
wxPyConvertSwigPtr
(
item
.
ptr
(),
(
void
**
)
&
id
,
_T
(
"wxTreeItemId"
)
)
)
{
return
NULL
;
}
return
dynamic_cast
<
TREEPROJECT_ITEM
*>
(
m_TreeProject
->
GetItemData
(
*
id
)
);
}
/*****************************************************************************/
// TREEPROJECT_ITEM Special binding functions
// (one line functions are simple wrappers)
/*****************************************************************************/
// Python rename
bool
TREEPROJECT_ITEM
::
RenamePy
(
const
str
&
newname
,
bool
check
)
{
return
Rename
(
PyHandler
::
MakeStr
(
newname
),
check
);
}
// Get python directory
object
TREEPROJECT_ITEM
::
GetDirPy
()
const
{
return
PyHandler
::
Convert
(
GetDir
()
);
}
// Get python filename
object
TREEPROJECT_ITEM
::
GetFileNamePy
()
const
{
return
PyHandler
::
Convert
(
GetFileName
()
);
}
// Get python menu
object
TREEPROJECT_ITEM
::
GetMenuPy
()
{
return
object
(
handle
<>
(
borrowed
(
wxPyMake_wxObject
(
&
m_fileMenu
,
false
)
)
)
);
}
/**
* @brief KiCad python module init, \n
* This function is called from PyHandler to init the kicad module
*/
/*****************************************************************************/
static
void
py_kicad_init
()
/*****************************************************************************/
{
def
(
"GetMainFrame"
,
&
GetMainFrame
,
return_value_policy
<
reference_existing_object
>
()
);
def
(
"GetTypeExtension"
,
&
GetTypeExt
);
class_
<
TREEPROJECT_ITEM
>
(
"PrjItem"
)
// Internal data:
.
def
(
"GetFileName"
,
&
TREEPROJECT_ITEM
::
GetFileNamePy
)
.
def
(
"GetDir"
,
&
TREEPROJECT_ITEM
::
GetDirPy
)
.
def
(
"GetType"
,
&
TREEPROJECT_ITEM
::
GetType
)
.
def
(
"GetId"
,
&
TREEPROJECT_ITEM
::
GetIdPy
)
.
def
(
"GetMenu"
,
&
TREEPROJECT_ITEM
::
GetMenuPy
)
// Item control
.
def
(
"SetState"
,
&
TREEPROJECT_ITEM
::
SetState
)
.
def
(
"Rename"
,
&
TREEPROJECT_ITEM
::
RenamePy
)
.
def
(
"Move"
,
&
TREEPROJECT_ITEM
::
Move
)
.
def
(
"Delete"
,
&
TREEPROJECT_ITEM
::
Delete
)
.
def
(
"Activate"
,
&
TREEPROJECT_ITEM
::
Activate
)
;
enum_
<
TreeFileType
>
(
"FileType"
)
.
value
(
"PROJECT"
,
TREE_PROJECT
)
.
value
(
"SCHEMA"
,
TREE_SCHEMA
)
.
value
(
"BOARD"
,
TREE_PCB
)
.
value
(
"PYSCRIPT"
,
TREE_PY
)
.
value
(
"GERBER"
,
TREE_GERBER
)
.
value
(
"PDF"
,
TREE_PDF
)
.
value
(
"TXT"
,
TREE_TXT
)
.
value
(
"NETLIST"
,
TREE_NET
)
.
value
(
"UNKNOWN"
,
TREE_UNKNOWN
)
.
value
(
"DIRECTORY"
,
TREE_DIRECTORY
)
.
value
(
"MAX"
,
TREE_MAX
);
class_
<
TREE_PROJECT_FRAME
>
(
"TreeWindow"
)
// wx Interface
.
def
(
"ToWx"
,
&
TREE_PROJECT_FRAME
::
ToWx
)
// common features
.
def
(
"GetContextMenu"
,
&
TREE_PROJECT_FRAME
::
GetMenuPy
)
.
def
(
"GetFileExtension"
,
&
TREE_PROJECT_FRAME
::
GetFtExPy
)
// file filters control
.
def
(
"AddFilter"
,
&
TREE_PROJECT_FRAME
::
AddFilter
)
.
def
(
"ClearFilters"
,
&
TREE_PROJECT_FRAME
::
ClearFilters
)
.
def
(
"RemoveFilter"
,
&
TREE_PROJECT_FRAME
::
RemoveFilterPy
)
.
def
(
"GetFilters"
,
&
TREE_PROJECT_FRAME
::
GetFilters
,
return_value_policy
<
copy_const_reference
>
()
)
.
def
(
"GetCurrentMenu"
,
&
TREE_PROJECT_FRAME
::
GetCurrentMenu
)
/** Project tree control **/
// AddState
.
def
(
"AddState"
,
&
TREE_PROJECT_FRAME
::
AddStatePy
)
// GetTreeCtrl
.
def
(
"GetTreeCtrl"
,
&
TREE_PROJECT_FRAME
::
GetTreeCtrl
)
// GetItemData
.
def
(
"GetItemData"
,
&
TREE_PROJECT_FRAME
::
GetItemData
,
return_value_policy
<
reference_existing_object
>
()
)
// FindItemData
.
def
(
"FindItemData"
,
&
TREE_PROJECT_FRAME
::
FindItemData
,
return_value_policy
<
reference_existing_object
>
()
)
// NewFile
.
def
(
"NewFile"
,
&
TREE_PROJECT_FRAME
::
NewFilePy
)
// AddFile
.
def
(
"AddFile"
,
&
TREE_PROJECT_FRAME
::
AddFilePy
)
;
/* ENDOF class_<TREE_PROJECT_FRAME>( "TreeWindow" ) */
class_
<
WinEDA_MainFrame
>
(
"MainFrame"
)
// Wx interface
.
def
(
"ToWx"
,
&
WinEDA_MainFrame
::
ToWx
)
// Common controls
.
def
(
"AddFastLaunch"
,
&
WinEDA_MainFrame
::
AddFastLaunchPy
)
.
def
(
"Refresh"
,
&
WinEDA_MainFrame
::
OnRefreshPy
)
.
def
(
"GetProjectName"
,
&
WinEDA_MainFrame
::
GetPrjName
)
.
def
(
"GetProjectWindow"
,
&
WinEDA_MainFrame
::
GetTree
,
return_value_policy
<
reference_existing_object
>
()
);
}
/**
* @brief Common python module init
*/
/*****************************************************************************/
static
void
py_common_init
()
/*****************************************************************************/
{
def
(
"Print"
,
&
WinEDAPrint
);
def
(
"Clear"
,
&
WinEDAClear
);
}
#endif
pcbnew/set_color.cpp.unused
deleted
100644 → 0
View file @
52dbb13c
/*****************/
/* set_color.cpp */
/*****************/
/*Set up the items and layer colors and show/no show options
*/
#include "fctsys.h"
#include "gr_basic.h"
#include "common.h"
#include "class_drawpanel.h"
#include "pcbnew.h"
#include "wxPcbStruct.h"
#include "class_board_design_settings.h"
//#include "protos.h"
// temporary variable used to handle grid visibility:
bool s_showGrid;
#include "set_color.h" // Header file associated with this file
// Local variables:
const int COLOR_COUNT = 40; // 40 = 29 (layers) + 11 (others)
int CurrentColor[COLOR_COUNT]; // Holds color for each layer while dialog box open
IMPLEMENT_DYNAMIC_CLASS( WinEDA_SetColorsFrame, wxDialog )
// Table of events for WinEDA_SetColorsFrame
BEGIN_EVENT_TABLE( WinEDA_SetColorsFrame, wxDialog )
EVT_BUTTON( ID_COLOR_RESET_SHOW_LAYER_OFF, WinEDA_SetColorsFrame::ResetDisplayLayersCu )
EVT_BUTTON( ID_COLOR_RESET_SHOW_LAYER_ON, WinEDA_SetColorsFrame::ResetDisplayLayersCu )
EVT_COMMAND_RANGE( ID_COLOR_SETUP, ID_COLOR_SETUP + NB_BUTT - 1,
wxEVT_COMMAND_BUTTON_CLICKED,
WinEDA_SetColorsFrame::SetColor )
EVT_BUTTON( wxID_OK, WinEDA_SetColorsFrame::OnOkClick )
EVT_BUTTON( wxID_CANCEL, WinEDA_SetColorsFrame::OnCancelClick )
EVT_BUTTON( wxID_APPLY, WinEDA_SetColorsFrame::OnApplyClick )
END_EVENT_TABLE()
/*****************************************************/
void DisplayColorSetupFrame( WinEDA_PcbFrame* parent,
const wxPoint& framepos )
/*****************************************************/
{
WinEDA_SetColorsFrame* frame =
new WinEDA_SetColorsFrame( parent, framepos );
frame->ShowModal();
frame->Destroy();
}
// Default Constructor (whose provision is mandated by the inclusion
// of DECLARE_DYNAMIC_CLASS( WinEDA_SetColorsFrame ) within set_color.h)
WinEDA_SetColorsFrame::WinEDA_SetColorsFrame()
{
Init();
}
// Standard Constructor
WinEDA_SetColorsFrame::WinEDA_SetColorsFrame( WinEDA_PcbFrame* parent,
const wxPoint& framepos )
{
m_Parent = parent;
Init();
Create( parent,
SYMBOL_WINEDA_SETCOLORSFRAME_IDNAME,
SYMBOL_WINEDA_SETCOLORSFRAME_TITLE,
framepos,
wxDefaultSize,
SYMBOL_WINEDA_SETCOLORSFRAME_STYLE );
}
// Destructor
WinEDA_SetColorsFrame::~WinEDA_SetColorsFrame() { }
/**********************************************************/
bool WinEDA_SetColorsFrame::Create( wxWindow* parent, wxWindowID id,
const wxString& caption, const wxPoint& pos,
const wxSize& size, long style )
/**********************************************************/
{
SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
wxDialog::Create( parent, id, caption, pos, size, style );
CreateControls();
if (GetSizer())
{
GetSizer()->SetSizeHints(this);
}
return true;
}
/**********************************************************/
void WinEDA_SetColorsFrame::Init()
/**********************************************************/
{
OuterBoxSizer = NULL;
MainBoxSizer = NULL;
FlexColumnBoxSizer = NULL;
Label = NULL;
RowBoxSizer = NULL;
BitmapButton = NULL;
CheckBox = NULL;
Button = NULL;
Line = NULL;
StdDialogButtonSizer = NULL;
}
/**********************************************************/
void WinEDA_SetColorsFrame::CreateControls()
/**********************************************************/
{
int lyr, cln, butt_ID, buttcolor;
wxString msg;
wxSize CorrectRowSize; // Used while specifying height of various spacers
int ButtonHeight; // Used while specifying height of other spacers
OuterBoxSizer = new wxBoxSizer(wxVERTICAL);
SetSizer(OuterBoxSizer);
MainBoxSizer = new wxBoxSizer(wxHORIZONTAL);
OuterBoxSizer->Add(MainBoxSizer, 1, wxGROW|wxLEFT|wxRIGHT, 5);
s_showGrid = m_Parent->m_Draw_Grid;
// Add various items to the dialog box, as determined by the
// details of each element contained within laytool_list[]
for( lyr = 0, cln = 0; lyr < NB_BUTT; lyr++ )
{
// Look for the first set of controls within each column.
if( lyr == 0 || lyr == laytool_index[cln]->m_Index + 1 )
{
if( lyr != 0 )
cln++;
// Specify a FlexGrid sizer with nineteen rows and one column.
FlexColumnBoxSizer = new wxFlexGridSizer(19, 1, 0, 0);
// Specify that all of the rows can be expanded.
for( int ii = 0; ii < 19; ii++ )
{
FlexColumnBoxSizer->AddGrowableRow(ii);
}
// Specify that the column can also be expanded.
FlexColumnBoxSizer->AddGrowableCol(0);
MainBoxSizer->Add(FlexColumnBoxSizer, 1, wxGROW|wxLEFT|wxBOTTOM, 5);
// Add a text string to identify the controls within this column.
Label = new wxStaticText( this, wxID_STATIC, wxGetTranslation(laytool_index[cln]->m_Name),
wxDefaultPosition, wxDefaultSize, 0 );
// Make this text string bold (so that it stands out better).
Label->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxNORMAL_FONT->GetFamily(),
wxNORMAL, wxBOLD, false, wxNORMAL_FONT->GetFaceName() ) );
FlexColumnBoxSizer->Add(Label, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
}
// Provide a sizer to accomodate the (bitmap button and) checkbox associated with the
// current layer (while providing a spacer instead a button, when appropriate).
RowBoxSizer = new wxBoxSizer(wxHORIZONTAL);
FlexColumnBoxSizer->Add(RowBoxSizer, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5);
butt_ID = ID_COLOR_SETUP + lyr;
laytool_list[lyr]->m_Id = butt_ID;
if( laytool_list[lyr]->m_Color )
{
// Provide a bitmap button, and "paint" this with the appropriate color.
wxMemoryDC iconDC;
wxBitmap ButtBitmap( BUTT_SIZE_X, BUTT_SIZE_Y );
iconDC.SelectObject( ButtBitmap );
buttcolor = *laytool_list[lyr]->m_Color & MASKCOLOR;
CurrentColor[lyr] = buttcolor;
wxBrush Brush;
iconDC.SelectObject( ButtBitmap );
iconDC.SetPen( *wxBLACK_PEN );
Brush.SetColour(
ColorRefs[buttcolor].m_Red,
ColorRefs[buttcolor].m_Green,
ColorRefs[buttcolor].m_Blue
);
Brush.SetStyle( wxSOLID );
iconDC.SetBrush( Brush );
iconDC.DrawRectangle( 0, 0, BUTT_SIZE_X, BUTT_SIZE_Y );
BitmapButton = new wxBitmapButton( this, butt_ID,
ButtBitmap,
wxDefaultPosition,
wxSize(BUTT_SIZE_X, BUTT_SIZE_Y) );
laytool_list[lyr]->m_Button = BitmapButton;
RowBoxSizer->Add(BitmapButton, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxBOTTOM, 5);
}
else
{
// Provide a spacer instead (rather than a bitmap button).
RowBoxSizer->Add(BUTT_SIZE_X, BUTT_SIZE_Y, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxBOTTOM, 5);
}
//---------------------------------------------------------------
// Note: When setting texts, we must call wxGetTranslation( ) for all statically created texts
// if we want them translated
switch( laytool_list[lyr]->m_Type )
{
case type_layer:
msg = m_Parent->GetBoard()->GetLayerName( laytool_list[lyr]->m_LayerNumber );
break;
case type_via:
msg = wxGetTranslation( g_ViaType_Name[laytool_list[lyr]->m_LayerNumber] );
break;
default:
msg = wxGetTranslation( laytool_list[lyr]->m_Title );
break;
}
//---------------------------------------------------------------
CheckBox = new wxCheckBox( this, ID_COLOR_CHECKBOX_ONOFF, msg,
wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
laytool_list[lyr]->m_CheckBox = CheckBox;
//---------------------------------------------------------------
switch( laytool_list[lyr]->m_Type )
{
case type_layer:
CheckBox->SetValue( g_DesignSettings.IsLayerVisible( laytool_list[lyr]->m_LayerNumber ));
CheckBox->Enable(g_DesignSettings.IsLayerEnabled( laytool_list[lyr]->m_LayerNumber ) );
break;
case type_via:
case type_element:
CheckBox->SetValue( g_DesignSettings.IsElementVisible( laytool_list[lyr]->m_LayerNumber ));
break;
case type_visual:
CheckBox->SetValue( *laytool_list[lyr]->m_NoDisplay );
break;
}
RowBoxSizer->Add(CheckBox, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5);
// Check whether the last (bitmap button and) checkbox has been provided for this column.
if( lyr == laytool_index[cln]->m_Index )
{
// What happens now depends upon which column is currently being created. Another
// two (standard/non-bitmap) buttons are provided within the first column, while
// assorted spacers are added to each of the other two columns (so that if the
// dialog box is resized by the user, each of the controls within each of the
// columns will be repositioned in an aesthetically-acceptable manner).
if( cln == 0 )
{
// Provide another two buttons; for aesthetic reasons, these will both be
// made equally wide.
int GoodWidth, width0;
// Specify the relevent details for the first button, but in the first instance,
// specify the caption which will be used by the second of these buttons (with
// the objective being to determine how wide those buttons would need to be to
// be able to accomodate the caption provided for either of them).
Button = new wxButton( this, ID_COLOR_RESET_SHOW_LAYER_ON, _("Show None"),
wxDefaultPosition, wxDefaultSize, 0 );
// Note the height of this button, so that the same height can also be specified for
// the spacers occupying the corresponding cells within each of the other two columns.
// Also note the width of the button required for the initially specified caption.
Button->GetSize( &width0, &ButtonHeight );
// Now change the caption of this button to what is really wanted for it.
Button->SetLabel( _("Show All") );
// Also note the width of the button required for the updated caption.
Button->GetSize( &GoodWidth, &ButtonHeight );
// Upate the value of GoodWidth if required (as that variable will subsequently
// be used to specify the (minimum) width for both of these buttons).
if( GoodWidth < width0 )
GoodWidth = width0;
// Complete the steps necessary for providing the first button.
if (WinEDA_SetColorsFrame::ShowToolTips())
Button->SetToolTip( _("Switch on all of the copper layers") );
Button->SetMinSize( wxSize( GoodWidth, ButtonHeight ) );
FlexColumnBoxSizer->Add(Button, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxTOP, 5);
// Now do everything required for providing the second button.
Button = new wxButton( this, ID_COLOR_RESET_SHOW_LAYER_OFF, _("Show None"),
wxDefaultPosition, wxDefaultSize, 0 );
if (WinEDA_SetColorsFrame::ShowToolTips())
Button->SetToolTip( _("Switch off all of the copper layers") );
Button->SetMinSize( wxSize( GoodWidth, ButtonHeight ) );
FlexColumnBoxSizer->Add(Button, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxTOP, 5);
}
else
{
// Provide additional spacers within each other column to occupy any cells
// that would otherwise remain unoccupied.
//
// Provide a spacer, of appropriate height, for each row that
// would otherwise contain a (bitmap button and) checkbox.
//
// First determine what height is required for those spacers; i.e. the
// larger of each bitmap button's height and each checkbox'es height.
// (That only needs to be determined once, so do so after the last
// bitmap button and checkbox have been provided for the second column.)
if( cln == 1 )
{
CorrectRowSize = CheckBox->GetSize();
if( CorrectRowSize.y < BUTT_SIZE_Y )
CorrectRowSize.y = BUTT_SIZE_Y;
}
// The first column contains 16 checkboxes, while each of the other two columns
// contains a smaller number. Determine how many checkboxes have actually been
// provided within each of the other columns, then provide an appropriate number
// of sizers (to take the total count of checkboxes and substitute sizers to 16).
for( int ii = lyr; ii < 16 + laytool_index[cln - 1]->m_Index
+ lyr - laytool_index[cln]->m_Index; ii++ )
{
FlexColumnBoxSizer->Add(5, CorrectRowSize.y, 1, wxBOTTOM, 5);
}
// As the first column also contains two (standard/non-bitmap) buttons, while each of
// the other two columns doesn't, also provide yet another two spacers, each of button
// height, within each of the other two columns.
FlexColumnBoxSizer->Add(5, ButtonHeight, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxTOP, 5);
FlexColumnBoxSizer->Add(5, ButtonHeight, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxTOP, 5);
}
}
}
// Provide a line to separate the controls which have been provided so far from
// the OK, Cancel, and Apply buttons (which will be provided after this line)
Line = new wxStaticLine( this, -1, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
OuterBoxSizer->Add(Line, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5);
// Provide a StdDialogButtonSizer to accommodate the OK, Cancel, and Apply
// buttons; using that type of sizer results in those buttons being
// automatically located in positions appropriate for each (OS) version of KiCad.
StdDialogButtonSizer = new wxStdDialogButtonSizer;
OuterBoxSizer->Add(StdDialogButtonSizer, 0, wxGROW|wxALL, 10);
Button = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 );
StdDialogButtonSizer->AddButton(Button);
Button = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
StdDialogButtonSizer->AddButton(Button);
Button = new wxButton( this, wxID_APPLY, _("Apply"), wxDefaultPosition, wxDefaultSize, 0 );
StdDialogButtonSizer->AddButton(Button);
StdDialogButtonSizer->Realize();
// (Dialog now needs to be resized, but the associated command is provided elsewhere.)
}
/**********************************************************/
bool WinEDA_SetColorsFrame::ShowToolTips()
/**********************************************************/
{
return true;
}
/**********************************************************************/
void WinEDA_SetColorsFrame::OnOkClick( wxCommandEvent& WXUNUSED (event) )
/**********************************************************************/
{
UpdateLayerSettings();
m_Parent->DrawPanel->Refresh();
EndModal( 1 );
}
/*******************************************************************/
void WinEDA_SetColorsFrame::OnCancelClick(wxCommandEvent& WXUNUSED(event))
/*******************************************************************/
{
EndModal( -1 );
}
/*******************************************************************/
void WinEDA_SetColorsFrame::OnApplyClick(wxCommandEvent& WXUNUSED(event))
/*******************************************************************/
{
UpdateLayerSettings();
m_Parent->DrawPanel->Refresh();
}
/**********************************************************/
void WinEDA_SetColorsFrame::SetColor( wxCommandEvent& event )
/**********************************************************/
{
int id = event.GetId();
int color;
wxBitmapButton* Button;
color = DisplayColorFrame( this,
CurrentColor[id - ID_COLOR_SETUP] );
if( color < 0 )
return;
if( CurrentColor[id - ID_COLOR_SETUP] == color )
return;
CurrentColor[id - ID_COLOR_SETUP] = color;
wxMemoryDC iconDC;
Button = laytool_list[id - ID_COLOR_SETUP]->m_Button;
wxBitmap ButtBitmap = Button->GetBitmapLabel();
iconDC.SelectObject( ButtBitmap );
wxBrush Brush;
iconDC.SetPen( *wxBLACK_PEN );
Brush.SetColour(
ColorRefs[color].m_Red,
ColorRefs[color].m_Green,
ColorRefs[color].m_Blue
);
Brush.SetStyle( wxSOLID );
iconDC.SetBrush( Brush );
iconDC.DrawRectangle( 0, 0, BUTT_SIZE_X, BUTT_SIZE_Y );
Button->SetBitmapLabel( ButtBitmap );
Button->Refresh();
Refresh( FALSE );
}
/******************************************************************/
void WinEDA_SetColorsFrame::UpdateLayerSettings()
/******************************************************************/
{
for( int lyr = 0; lyr < NB_BUTT; lyr++ )
{
if( laytool_list[lyr]->m_Color )
*laytool_list[lyr]->m_Color = CurrentColor[lyr];
switch( laytool_list[lyr]->m_Type )
{
case type_layer:
g_DesignSettings.SetLayerVisibility( laytool_list[lyr]->m_LayerNumber,
laytool_list[lyr]->m_CheckBox->GetValue() );
break;
case type_via:
case type_element:
g_DesignSettings.SetElementVisibility( laytool_list[lyr]->m_LayerNumber,
laytool_list[lyr]->m_CheckBox->GetValue() );
break;
case type_visual:
*laytool_list[lyr]->m_NoDisplay = laytool_list[lyr]->m_CheckBox->GetValue();
break;
}
}
// Additional command required for updating visibility of grid.
m_Parent->m_Draw_Grid = s_showGrid;
}
/**********************************************************************/
void WinEDA_SetColorsFrame::ResetDisplayLayersCu( wxCommandEvent& event )
/**********************************************************************/
{
bool NewState = ( event.GetId() == ID_COLOR_RESET_SHOW_LAYER_ON )
? TRUE
: FALSE;
for( int lyr = 0; lyr < 16; lyr++ )
{
if( ! laytool_list[lyr]->m_CheckBox->IsEnabled() )
continue;
laytool_list[lyr]->m_CheckBox->SetValue( NewState );
}
}
pcbnew/set_color.h.unused
deleted
100644 → 0
View file @
52dbb13c
/***************/
/* set_color.h */
/***************/
#ifndef SET_COLOR_H
#define SET_COLOR_H
#include "wx/statline.h"
class wxBoxSizer;
class wxFlexGridSizer;
class wxStaticLine;
class wxStdDialogButtonSizer;
// variable used to handle grid visibility:
extern bool s_showGrid;
// Specify how many elements are contained within laytool_list[]
const int NB_BUTT = 43;
// Specify how many elements are contained within laytool_index[]
const int BUTTON_GROUPS = 3;
// Specify the numbers associated with assorted controls
enum col_sel_id {
ID_DIALOG = 1800,
ID_COLOR_RESET_SHOW_LAYER_ON,
ID_COLOR_RESET_SHOW_LAYER_OFF,
ID_COLOR_CHECKBOX_ONOFF,
ID_COLOR_SETUP
};
// Control identifiers
// #define SYMBOL_WINEDA_SETCOLORSFRAME_STYLE wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER
#define SYMBOL_WINEDA_SETCOLORSFRAME_STYLE wxDEFAULT_DIALOG_STYLE|MAYBE_RESIZE_BORDER
#define SYMBOL_WINEDA_SETCOLORSFRAME_TITLE _("Pcbnew Layer Colors:")
#define SYMBOL_WINEDA_SETCOLORSFRAME_IDNAME ID_DIALOG
// #define SYMBOL_WINEDA_SETCOLORSFRAME_SIZE wxSize(400, 300)
// #define SYMBOL_WINEDA_SETCOLORSFRAME_POSITION wxDefaultPosition
#ifndef wxCLOSE_BOX
#define wxCLOSE_BOX 0x1000
#endif
// Specify the width and height of every (color-displaying / bitmap) button
const int BUTT_SIZE_X = 25;
const int BUTT_SIZE_Y = 20;
/* Macro utile : */
#define ADR( numlayer ) &g_DesignSettings.m_LayerColor[(numlayer)]
/**********************************/
/* Liste des menus de Menu_Layers */
/**********************************/
enum button_types
{
type_layer,
type_via,
type_element,
type_visual
};
struct ColorButton
{
int m_Type; ///
const wxString m_Title;
int m_LayerNumber;
int* m_Color; ///< pointer to color variable to manipulate
bool* m_NoDisplay; ///< pointer to the on/off display control variable, if it is not the color variable
int m_Id;
wxBitmapButton* m_Button;
// int m_State; // (Commented out until when it is actually used.)
wxCheckBox* m_CheckBox; ///< Display ON/OFF toggle
};
struct ButtonIndex
{
wxString m_Name; // Title
int m_Index; // Index to last bitmap button in group
};
static ButtonIndex Msg_Layers_Cu =
{
_( "Copper Layers" ), // Title
15 // Index to last bitmap button in group
};
static ColorButton Layer_1_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
LAYER_N_BACK, // Layer
ADR( LAYER_N_BACK ) // Address of optional parameter
};
static ColorButton Layer_2_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
1, // Layer
ADR( 1 ) // Address of optional parameter
};
static ColorButton Layer_3_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
2, // Layer
ADR( 2 ) // Address of optional parameter
};
static ColorButton Layer_4_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
3, // Layer
ADR( 3 ) // Address of optional parameter
};
static ColorButton Layer_5_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
4, // Layer
ADR( 4 ) // Address of optional parameter
};
static ColorButton Layer_6_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
5, // Layer
ADR( 5 ) // Address of optional parameter
};
static ColorButton Layer_7_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
6, // Layer
ADR( 6 ) // Address of optional parameter
};
static ColorButton Layer_8_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
7, // Layer
ADR( 7 ) // Address of optional parameter
};
static ColorButton Layer_9_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
8, // Layer
ADR( 8 ) // Address of optional parameter
};
static ColorButton Layer_10_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
9, // Layer
ADR( 9 ) // Address of optional parameter
};
static ColorButton Layer_11_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
10, // Layer
ADR( 10 ) // Address of optional parameter
};
static ColorButton Layer_12_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
11, // Layer
ADR( 11 ) // Address of optional parameter
};
static ColorButton Layer_13_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
12, // Layer
ADR( 12 ) // Address of optional parameter
};
static ColorButton Layer_14_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
13, // Layer
ADR( 13 ) // Address of optional parameter
};
static ColorButton Layer_15_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
14, // Layer
ADR( 14 ) // Address of optional parameter
};
static ColorButton Layer_16_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
LAYER_N_FRONT, // Layer
ADR( LAYER_N_FRONT ) // Address of optional parameter
};
static ButtonIndex Msg_Layers_Tech =
{
_( "Tech Layers" ), // Title
28 // Index to last bitmap button in group
};
static ColorButton Layer_17_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
ADHESIVE_N_BACK, // Layer
ADR( ADHESIVE_N_BACK ) // Address of optional parameter
};
static ColorButton Layer_18_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
ADHESIVE_N_FRONT, // Layer
ADR( ADHESIVE_N_FRONT ) // Address of optional parameter
};
static ColorButton Layer_19_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
SOLDERPASTE_N_BACK, // Layer
ADR( SOLDERPASTE_N_BACK ) // Address of optional parameter
};
static ColorButton Layer_20_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
SOLDERPASTE_N_FRONT, // Layer
ADR( SOLDERPASTE_N_FRONT ), // Address of optional parameter
};
static ColorButton Layer_21_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
SILKSCREEN_N_BACK, // Layer
ADR( SILKSCREEN_N_BACK ) // Address of optional parameter
};
static ColorButton Layer_22_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
SILKSCREEN_N_FRONT, // Layer
ADR( SILKSCREEN_N_FRONT ) // Address of optional parameter
};
static ColorButton Layer_23_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
SOLDERMASK_N_BACK, // Layer
ADR( SOLDERMASK_N_BACK ) // Address of optional parameter
};
static ColorButton Layer_24_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
SOLDERMASK_N_FRONT, // Layer
ADR( SOLDERMASK_N_FRONT ) // Address of optional parameter
};
static ColorButton Layer_25_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
DRAW_N, // Layer
ADR( DRAW_N ) // Address of optional parameter
};
static ColorButton Layer_26_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
COMMENT_N, // Layer
ADR( COMMENT_N ) // Address of optional parameter
};
static ColorButton Layer_27_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
ECO1_N, // Layer
ADR( ECO1_N ) // Address of optional parameter
};
static ColorButton Layer_28_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
ECO2_N, // Layer
ADR( ECO2_N ) // Address of optional parameter
};
static ColorButton Layer_29_Butt =
{
type_layer, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
EDGE_N, // Layer
ADR( EDGE_N ) // Address of optional parameter
};
static ButtonIndex Msg_Others_Items =
{
_( "Others" ), // Title
43 // Index to last bitmap button in group
};
static ColorButton VIA_THROUGH_Butt =
{
type_via, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
VIA_THROUGH, // Layer
&g_DesignSettings.m_ViaColor[VIA_THROUGH] // Address of optional parameter
};
static ColorButton VIA_BLIND_BURIED_Butt =
{
type_via, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
VIA_BLIND_BURIED, // Layer
&g_DesignSettings.m_ViaColor[VIA_BLIND_BURIED] // Address of optional parameter
};
static ColorButton MICRO_VIA_Butt =
{
type_via, // Toggle ITEM_NOT_SHOW bit of the color variable
wxEmptyString,
VIA_MICROVIA, // Layer
&g_DesignSettings.m_ViaColor[VIA_MICROVIA] // Address of optional parameter
};
static ColorButton Ratsnest_Butt =
{
type_visual,
_( "Ratsnest" ), // Title
-1,
&g_DesignSettings.m_RatsnestColor, // Address of optional parameter
&g_Show_Ratsnest // Address of boolean display control parameter to toggle
};
static ColorButton Pad_Cu_Butt =
{
type_element, // Toggle ITEM_NOT_SHOW bit of the color variable
_( "Pad Back" ), // Title
PAD_BK_VISIBLE,
&g_PadCUColor // Address of optional parameter
};
static ColorButton Pad_Cmp_Butt =
{
type_element, // Toggle ITEM_NOT_SHOW bit of the color variable
_( "Pad Front" ), // Title
PAD_FR_VISIBLE,
&g_PadCMPColor // Address of optional parameter
};
static ColorButton Text_Mod_Cu_Butt =
{
type_element, // Toggle ITEM_NOT_SHOW bit of the color variable
_( "Text Module Back" ), // Title
MOD_TEXT_BK_VISIBLE,
&g_ModuleTextCUColor // Address of optional parameter
};
static ColorButton Text_Mod_Cmp_Butt =
{
type_element, // Toggle ITEM_NOT_SHOW bit of the color variable
_( "Text Module Front" ), // Title
MOD_TEXT_FR_VISIBLE,
&g_ModuleTextCMPColor // Address of optional parameter
};
static ColorButton Text_Mod_NoVisible_Butt =
{
type_element, // Toggle ITEM_NOT_SHOW bit of the color variable
_( "Text Module invisible" ), // Title
MOD_TEXT_INVISIBLE,
&g_ModuleTextNOVColor // Address of optional parameter
};
static ColorButton Anchors_Butt =
{
type_element, // Toggle ITEM_NOT_SHOW bit of the color variableg_ModuleTextNOVColor
_( "Anchors" ), // Title
ANCHOR_VISIBLE,
&g_AnchorColor // Address of optional parameter
};
static ColorButton Grid_Butt =
{
type_visual,
_( "Grid" ), // Title
-1,
&g_GridColor, // Address of optional parameter
&s_showGrid // Address of boolean display control parameter to toggle
};
static ColorButton Show_Pads_Noconnect_Butt =
{
type_visual,
_( "Show Noconnect" ), // Title
-1,
NULL, // Address of optional parameter
&DisplayOpt.DisplayPadNoConn // Address of boolean display control parameter to toggle
};
static ColorButton Show_Modules_Cmp_Butt =
{
type_visual,
_( "Show Modules Front" ), // Title
-1,
NULL, // Address of optional parameter
&DisplayOpt.Show_Modules_Cmp // Address of boolean display control parameter to toggle
};
static ColorButton Show_Modules_Cu_Butt =
{
type_visual,
_( "Show Modules Back" ), // Title
-1,
NULL, // Address of optional parameter
&DisplayOpt.Show_Modules_Cu // Address of boolean display control parameter to toggle
};
static ColorButton* laytool_list[] = {
&Layer_1_Butt,
&Layer_2_Butt,
&Layer_3_Butt,
&Layer_4_Butt,
&Layer_5_Butt,
&Layer_6_Butt,
&Layer_7_Butt,
&Layer_8_Butt,
&Layer_9_Butt,
&Layer_10_Butt,
&Layer_11_Butt,
&Layer_12_Butt,
&Layer_13_Butt,
&Layer_14_Butt,
&Layer_15_Butt,
&Layer_16_Butt,
&Layer_17_Butt,
&Layer_18_Butt,
&Layer_19_Butt,
&Layer_20_Butt,
&Layer_21_Butt,
&Layer_22_Butt,
&Layer_23_Butt,
&Layer_24_Butt,
&Layer_25_Butt,
&Layer_26_Butt,
&Layer_27_Butt,
&Layer_28_Butt,
&Layer_29_Butt,
// &Layer_30_Butt,
// &Layer_31_Butt,
// &Layer_32_Butt,
&VIA_THROUGH_Butt,
&VIA_BLIND_BURIED_Butt,
&MICRO_VIA_Butt,
&Ratsnest_Butt,
&Pad_Cu_Butt,
&Pad_Cmp_Butt,
&Text_Mod_Cu_Butt,
&Text_Mod_Cmp_Butt,
&Text_Mod_NoVisible_Butt,
&Anchors_Butt,
&Grid_Butt,
&Show_Pads_Noconnect_Butt,
&Show_Modules_Cmp_Butt,
&Show_Modules_Cu_Butt,
};
static ButtonIndex* laytool_index[BUTTON_GROUPS] = {
&Msg_Layers_Cu,
&Msg_Layers_Tech,
&Msg_Others_Items
};
/**************************************************************/
/* classe derivee pour la frame de Configuration des couleurs */
/**************************************************************/
class WinEDA_SetColorsFrame: public wxDialog
{
private:
DECLARE_DYNAMIC_CLASS( WinEDA_SetColorsFrame )
DECLARE_EVENT_TABLE()
WinEDA_PcbFrame* m_Parent;
wxBoxSizer* OuterBoxSizer;
wxBoxSizer* MainBoxSizer;
wxFlexGridSizer* FlexColumnBoxSizer;
wxStaticText* Label;
wxBoxSizer* RowBoxSizer;
wxBitmapButton* BitmapButton;
wxCheckBox* CheckBox;
wxButton* Button;
wxStaticLine* Line;
wxStdDialogButtonSizer* StdDialogButtonSizer;
// Creation
bool Create( wxWindow* parent,
wxWindowID id = SYMBOL_WINEDA_SETCOLORSFRAME_IDNAME,
const wxString& caption = SYMBOL_WINEDA_SETCOLORSFRAME_TITLE,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = SYMBOL_WINEDA_SETCOLORSFRAME_STYLE );
// Initialises member variables
void Init();
// Creates the controls and sizers
void CreateControls();
wxBitmap GetBitmapResource( const wxString& name );
wxIcon GetIconResource( const wxString& name );
static bool ShowToolTips();
void SetColor( wxCommandEvent& event );
void OnOkClick( wxCommandEvent& event );
void OnCancelClick( wxCommandEvent& event );
void OnApplyClick( wxCommandEvent& event );
void UpdateLayerSettings();
void ResetDisplayLayersCu( wxCommandEvent& event );
public:
// Constructors and destructor
WinEDA_SetColorsFrame();
WinEDA_SetColorsFrame( WinEDA_PcbFrame* parent, const wxPoint& framepos );
~WinEDA_SetColorsFrame();
};
#endif // SET_COLOR_H
pcbnew/via_edit.cpp.unused
deleted
100644 → 0
View file @
52dbb13c
/**********************************************/
/* vi_edit.cpp: some editing function for vias */
/**********************************************/
#include "fctsys.h"
#include "common.h"
#include "class_drawpanel.h"
#include "confirm.h"
#include "pcbnew.h"
#include "wxPcbStruct.h"
#include "class_board_design_settings.h"
#include "pcbnew_id.h"
/**********************************************************************************/
void WinEDA_PcbFrame::Via_Edit_Control( wxCommandEvent& event )
/**********************************************************************************/
/*
* Execute edit commands relative to vias
*/
{
TRACK* via_struct;
SEGVIA* via = (SEGVIA*) GetCurItem();
wxClientDC dc( DrawPanel );
DrawPanel->CursorOff( &dc );
DrawPanel->PrepareGraphicContext( &dc );
wxASSERT( via->Type() == TYPE_VIA);
PICKED_ITEMS_LIST itemsListPicker;
ITEM_PICKER picker( NULL, UR_CHANGED );
switch( event.GetId() )
{
case ID_POPUP_PCB_VIA_HOLE_TO_VALUE: // Set the via drill to custom
if( (GetBoard()->GetCurrentViaDrill() > 0) &&
(GetBoard()->GetCurrentViaDrill() < via->m_Width) )
{
SaveCopyInUndoList(via, UR_CHANGED);
via->Draw( DrawPanel, &dc, GR_XOR );
via->SetDrillValue( GetBoard()->GetCurrentViaDrill() );
via->Draw( DrawPanel, &dc, GR_OR );
GetScreen()->SetModify();
}
else
DisplayError( this, _( "Incorrect value for Via drill. No via drill change" ) );
break;
case ID_POPUP_PCB_VIA_HOLE_EXPORT_TO_OTHERS: // Export the current drill value to via which have the same size
via_struct = GetBoard()->m_Track;
for( ; via_struct != NULL; via_struct = via_struct->Next() )
{
if( via_struct->Type() == TYPE_VIA ) /* mise a jour du diametre de la via */
{
if( via_struct->m_Width != via->m_Width )
continue;
picker.m_PickedItem = via_struct;
picker.m_Link = via_struct->Copy();
itemsListPicker.PushItem(picker);
via_struct->Draw( DrawPanel, &dc, GR_XOR );
via_struct->SetDrillValue( via->GetDrillValue() );
via_struct->Draw( DrawPanel, &dc, GR_OR );
}
}
SaveCopyInUndoList(itemsListPicker, UR_CHANGED);
GetScreen()->SetModify();
break;
case ID_POPUP_PCB_VIA_HOLE_TO_DEFAULT:
SaveCopyInUndoList(via, UR_CHANGED);
via->Draw( DrawPanel, &dc, GR_XOR );
via->SetDrillDefault();
via->Draw( DrawPanel, &dc, GR_OR );
GetScreen()->SetModify();
break;
case ID_POPUP_PCB_VIA_HOLE_RESET_TO_DEFAULT: // Reset all via drill to default value
via_struct = GetBoard()->m_Track;
for( ; via_struct != NULL; via_struct = via_struct->Next() )
{
if( via_struct->Type() == TYPE_VIA ) /* Update via drill */
{
if( ! via_struct->IsDrillDefault() )
{
picker.m_PickedItem = via_struct;
picker.m_Link = via_struct->Copy();
itemsListPicker.PushItem(picker);
via_struct->Draw( DrawPanel, &dc, GR_XOR );
via_struct->SetDrillDefault();
via_struct->Draw( DrawPanel, &dc, GR_OR );
}
}
}
SaveCopyInUndoList(itemsListPicker, UR_CHANGED);
GetScreen()->SetModify();
break;
case ID_POPUP_PCB_VIA_HOLE_ENTER_VALUE: // Enter a new alternate value for drill via
wxMessageBox( wxT( "WinEDA_PcbFrame::Via_Edit_Control(): obsolete command" ) );
break;
default:
wxMessageBox( wxT( "WinEDA_PcbFrame::Via_Edit_Control() error: unknown command" ) );
break;
}
DrawPanel->CursorOn( &dc );
DrawPanel->MouseToCursorSchema();
}
pcbnew/xchgmod.cpp
View file @
8497178f
...
...
@@ -577,7 +577,7 @@ void WinEDA_PcbFrame::RecreateCmpFileFromBoard( wxCommandEvent& aEvent )
wildcard
=
_
(
"Component files (."
)
+
NetCmpExtBuffer
+
wxT
(
")|*."
)
+
NetCmpExtBuffer
;
wxFileDialog
dlg
(
this
,
_
(
"Save Component Files"
),
wx
EmptyString
,
wxFileDialog
dlg
(
this
,
_
(
"Save Component Files"
),
wx
GetCwd
()
,
fn
.
GetFullName
(),
wildcard
,
wxFD_SAVE
|
wxFD_OVERWRITE_PROMPT
);
...
...
version.txt
View file @
8497178f
release version:
2010 feb 2
6
2010 feb 2
8
files (.zip,.tgz):
kicad-2010-02-2
6
-RC5
kicad-2010-02-2
8
-RC5
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