Commit ae74527b authored by dickelbeck's avatar dickelbeck

Jean-Pierre's changes for kicad-2007-05-25 release

parent 1db13740
...@@ -225,16 +225,34 @@ float spin_quat[4]; ...@@ -225,16 +225,34 @@ float spin_quat[4];
if ( event.m_wheelRotation ) if ( event.m_wheelRotation )
{ {
if ( event.GetWheelRotation() > 0 ) if( event.ShiftDown() ) {
{ if ( event.GetWheelRotation() < 0 ) {
g_Parm_3D_Visu.m_Zoom /= 1.4; /* up */
if ( g_Parm_3D_Visu.m_Zoom <= 0.01) SetView3D(WXK_UP);
g_Parm_3D_Visu.m_Zoom = 0.01; } else {
} /* down */
SetView3D(WXK_DOWN);
else g_Parm_3D_Visu.m_Zoom *= 1.4; }
DisplayStatus(); } else if( event.ControlDown() ) {
Refresh(FALSE); if ( event.GetWheelRotation() > 0 ) {
/* right */
SetView3D(WXK_RIGHT);
} else {
/* left */
SetView3D(WXK_LEFT);
}
}
else {
if ( event.GetWheelRotation() > 0 )
{
g_Parm_3D_Visu.m_Zoom /= 1.4;
if ( g_Parm_3D_Visu.m_Zoom <= 0.01)
g_Parm_3D_Visu.m_Zoom = 0.01;
}
else g_Parm_3D_Visu.m_Zoom *= 1.4;
DisplayStatus();
Refresh(FALSE);
}
} }
if (event.Dragging()) if (event.Dragging())
...@@ -582,6 +600,8 @@ bool fmt_is_jpeg = FALSE; ...@@ -582,6 +600,8 @@ bool fmt_is_jpeg = FALSE;
); );
if ( FullFileName.IsEmpty() ) return; if ( FullFileName.IsEmpty() ) return;
} }
wxYield(); // Requested to allow tne window redraw after closing the dialog box
wxSize image_size = GetClientSize(); wxSize image_size = GetClientSize();
wxClientDC dc(this); wxClientDC dc(this);
wxBitmap bitmap(image_size.x, image_size.y ); wxBitmap bitmap(image_size.x, image_size.y );
......
...@@ -49,6 +49,8 @@ int LineNum = 0; ...@@ -49,6 +49,8 @@ int LineNum = 0;
return -1; return -1;
} }
// Switch the locale to standard C (needed to print floating point numbers like 1.3)
setlocale(LC_NUMERIC, "C");
while ( GetLine(file, line, &LineNum, 512) ) while ( GetLine(file, line, &LineNum, 512) )
{ {
text = strtok(line, " \t\n\r"); text = strtok(line, " \t\n\r");
...@@ -68,6 +70,7 @@ int LineNum = 0; ...@@ -68,6 +70,7 @@ int LineNum = 0;
} }
fclose (file); fclose (file);
setlocale(LC_NUMERIC, ""); // revert to the current locale
return 0; return 0;
} }
...@@ -130,44 +133,44 @@ S3D_Material * material = NULL; ...@@ -130,44 +133,44 @@ S3D_Material * material = NULL;
if ( stricmp (text, "diffuseColor") == 0 ) if ( stricmp (text, "diffuseColor") == 0 )
{ {
text = strtok(NULL," \t\n\r"); text = strtok(NULL," \t\n\r");
material->m_DiffuseColor.x = atof(from_point(text)); material->m_DiffuseColor.x = atof(text);
text = strtok(NULL," \t\n\r"); text = strtok(NULL," \t\n\r");
material->m_DiffuseColor.y = atof(from_point(text)); material->m_DiffuseColor.y = atof(text);
text = strtok(NULL," \t\n\r"); text = strtok(NULL," \t\n\r");
material->m_DiffuseColor.z = atof(from_point(text)); material->m_DiffuseColor.z = atof(text);
} }
else if ( stricmp (text, "emissiveColor") == 0 ) else if ( stricmp (text, "emissiveColor") == 0 )
{ {
text = strtok(NULL," \t\n\r"); text = strtok(NULL," \t\n\r");
material->m_EmissiveColor.x = atof(from_point(text)); material->m_EmissiveColor.x = atof(text);
text = strtok(NULL," \t\n\r"); text = strtok(NULL," \t\n\r");
material->m_EmissiveColor.y = atof(from_point(text)); material->m_EmissiveColor.y = atof(text);
text = strtok(NULL," \t\n\r"); text = strtok(NULL," \t\n\r");
material->m_EmissiveColor.z = atof(from_point(text)); material->m_EmissiveColor.z = atof(text);
} }
else if ( strnicmp (text, "specularColor", 13 ) == 0 ) else if ( strnicmp (text, "specularColor", 13 ) == 0 )
{ {
text = strtok(NULL," \t\n\r"); text = strtok(NULL," \t\n\r");
material->m_SpecularColor.x = atof(from_point(text)); material->m_SpecularColor.x = atof(text);
text = strtok(NULL," \t\n\r"); text = strtok(NULL," \t\n\r");
material->m_SpecularColor.y = atof(from_point(text)); material->m_SpecularColor.y = atof(text);
text = strtok(NULL," \t\n\r"); text = strtok(NULL," \t\n\r");
material->m_SpecularColor.z = atof(from_point(text)); material->m_SpecularColor.z = atof(text);
} }
else if ( strnicmp (text, "ambientIntensity", 16 ) == 0 ) else if ( strnicmp (text, "ambientIntensity", 16 ) == 0 )
{ {
text = strtok(NULL," \t\n\r"); text = strtok(NULL," \t\n\r");
material->m_AmbientIntensity = atof(from_point(text)); material->m_AmbientIntensity = atof(text);
} }
else if ( strnicmp (text, "transparency", 12 ) == 0 ) else if ( strnicmp (text, "transparency", 12 ) == 0 )
{ {
text = strtok(NULL," \t\n\r"); text = strtok(NULL," \t\n\r");
material->m_Transparency = atof(from_point(text)); material->m_Transparency = atof(text);
} }
else if ( strnicmp (text, "shininess", 9 ) == 0 ) else if ( strnicmp (text, "shininess", 9 ) == 0 )
{ {
text = strtok(NULL," \t\n\r"); text = strtok(NULL," \t\n\r");
material->m_Shininess = atof(from_point(text)); material->m_Shininess = atof(text);
} }
} }
} }
...@@ -323,7 +326,7 @@ char string_num[512]; ...@@ -323,7 +326,7 @@ char string_num[512];
case ',': case ',':
jj = 0; jj = 0;
if ( ! StartData || !HasData) break; if ( ! StartData || !HasData) break;
data_list[ii] = atof(from_point(string_num)); data_list[ii] = atof(string_num);
string_num[jj] = 0; string_num[jj] = 0;
ii++; ii++;
if ( ii >= nn ) if ( ii >= nn )
...@@ -463,7 +466,7 @@ int * index = NULL; ...@@ -463,7 +466,7 @@ int * index = NULL;
while ( text ) while ( text )
{ {
if ( *text == ']') break; if ( *text == ']') break;
jj = atoi(from_point(text)); jj = atoi(text);
if ( jj < 0 ) if ( jj < 0 )
{ {
S3D_Vertex * curr_coord = coords; S3D_Vertex * curr_coord = coords;
......
...@@ -4,7 +4,7 @@ CC = gcc ...@@ -4,7 +4,7 @@ CC = gcc
# Compiler flags. # Compiler flags.
CPPFLAGS = -Wall -O2 -DPCBNEW -I../pcbnew -I ../include -I../common\ CPPFLAGS = -Wall -O2 -DPCBNEW -I../pcbnew -I ../include -I../common\
`wx-config --cxxflags` `wx-config --cxxflags` -fno-strict-aliasing
include ../libs.linux include ../libs.linux
...@@ -23,6 +23,7 @@ $(TARGET).a: $(OBJECTS3D) makefile.gtk makefile.include ...@@ -23,6 +23,7 @@ $(TARGET).a: $(OBJECTS3D) makefile.gtk makefile.include
ar -rv $@ $(OBJECTS3D) ar -rv $@ $(OBJECTS3D)
ranlib $@ ranlib $@
install:$(TARGET).a
clean: clean:
rm -f *.o rm -f *.o
......
EXTRALIBS = EXTRALIBS =
EXTRACPPFLAGS= -I./ -I../include -I../common -I../pcbnew EXTRACPPFLAGS= -I./ -I../include -I../common -I../pcbnew
CPPFLAGS += $(EXTRACPPFLAGS)
OBJECTS3D = 3d_frame.o 3d_read_mesh.o 3d_canvas.o trackball.o 3d_aux.o\ OBJECTS3D = 3d_frame.o 3d_read_mesh.o 3d_canvas.o trackball.o 3d_aux.o\
3d_draw.o 3d_toolbar.o 3d_class.o 3d_draw.o 3d_toolbar.o 3d_class.o
OBJECTS= ../common/trigo.o
AUXLIBS= -mthreads -o $(TARGET)$(DLLSUFF)\
$(WXLIB_BASE) $(LIBS3D)\
-lrpcrt4 -loleaut32 -lole32 -luuid -lwinspool -lwinmm\
-lshell32 -lcomctl32 -lcomdlg32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32
3d_class.o: 3d_class.cpp 3d_struct.h 3d_viewer.h 3d_class.o: 3d_class.cpp 3d_struct.h 3d_viewer.h
3d_read_mesh.o: 3d_read_mesh.cpp 3d_struct.h 3d_viewer.h 3d_read_mesh.o: 3d_read_mesh.cpp 3d_struct.h 3d_viewer.h
......
...@@ -5,6 +5,7 @@ CC = gcc ...@@ -5,6 +5,7 @@ CC = gcc
CPPFLAGS = -Wall -O2 -DPCBNEW -I../pcbnew -I ../include -I../common\ CPPFLAGS = -Wall -O2 -DPCBNEW -I../pcbnew -I ../include -I../common\
`wx-config --cxxflags` `wx-config --cxxflags`
CPPFLAGS += -arch i386 -arch ppc
include ../libs.macosx include ../libs.macosx
......
/* XPM */
#ifndef XPMMAIN
extern char * directory_xpm[];
#else
char * directory_xpm[] = {
"16 16 136 2",
" c None",
". c #469FFF",
"+ c #4193FF",
"@ c #4499FF",
"# c #2C63AC",
"$ c #4DA0FF",
"% c #B5D9FB",
"& c #AAD3FB",
"* c #ADD3FB",
"= c #89C4FF",
"- c #184888",
"; c #4495FF",
"> c #AED5FB",
", c #6DB3F9",
"' c #6FB2F9",
") c #6BAEF8",
"! c #67ABF6",
"~ c #549FF9",
"{ c #3E91FF",
"] c #ACD4FB",
"^ c #6BAEF9",
"/ c #6CAFF8",
"( c #66AAF7",
"_ c #5DA3F6",
": c #74AEF7",
"< c #9EC4F8",
"[ c #92BCF7",
"} c #8DB5F5",
"| c #88B1F3",
"1 c #83ABF2",
"2 c #80A8F0",
"3 c #87AEF5",
"4 c #0940B7",
"5 c #AAD2FB",
"6 c #67ACF8",
"7 c #68ABF8",
"8 c #61A4F7",
"9 c #5B9FF5",
"0 c #5399F3",
"a c #498FF1",
"b c #3F85EF",
"c c #367CEB",
"d c #2E73E8",
"e c #286BE6",
"f c #2164E2",
"g c #2163E5",
"h c #023AB6",
"i c #4394FF",
"j c #A7D0FA",
"k c #63A9F7",
"l c #61A7F7",
"m c #5BA0F6",
"n c #5499F4",
"o c #4B90F2",
"p c #4186EF",
"q c #377DEB",
"r c #2E73E7",
"s c #266AE5",
"t c #2062E2",
"u c #1C5DDF",
"v c #1A5CE2",
"w c #A4CEF9",
"x c #5DA5F7",
"y c #5DA1F6",
"z c #559AF4",
"A c #4C91F3",
"B c #4489F1",
"C c #3A7FED",
"D c #3075E9",
"E c #276BE5",
"F c #2062E1",
"G c #1B5CDE",
"H c #1758DB",
"I c #1857DE",
"J c #0239B6",
"K c #A1CBF9",
"L c #589FF6",
"M c #559BF5",
"N c #4F96F3",
"O c #478CF2",
"P c #3D84F0",
"Q c #3378EB",
"R c #2B6EE7",
"S c #2265E3",
"T c #1C5DDE",
"U c #1757DB",
"V c #1554DA",
"W c #1555DD",
"X c #0139B5",
"Y c #4696FF",
"Z c #FFFFFF",
"` c #FBFBFB",
" . c #F2F2F2",
".. c #E9E9E9",
"+. c #E0E0E0",
"@. c #D7D7D7",
"#. c #D4D4D4",
"$. c #A9A9A9",
"%. c #BABABA",
"&. c #9E9990",
"*. c #0A3DAF",
"=. c #FEFEFE",
"-. c #F8F8F8",
";. c #F1F1F1",
">. c #E8E8E8",
",. c #DCDCDC",
"'. c #D6D6D6",
"). c #D2D2D2",
"!. c #A7A7A7",
"~. c #B7B7B7",
"{. c #929292",
"]. c #BAB6AC",
"^. c #0E41B3",
"/. c #F0F0F0",
"(. c #E5E5E5",
"_. c #DDDDDD",
":. c #D3D3D3",
"<. c #D0D0D0",
"[. c #ABABAB",
"}. c #B5B5B5",
"|. c #939393",
"1. c #ADADAD",
"2. c #938E85",
"3. c #0A3DAE",
"4. c #FFFFFE",
"5. c #F4F4F4",
"6. c #EDEDED",
"7. c #DBDBDB",
"8. c #AEAEAE",
"9. c #969696",
"0. c #878787",
"a. c #AFABA1",
"b. c #0D40B2",
"c. c #0037B2",
"d. c #0034A8",
"e. c #0038B6",
" ",
" . + @ # ",
" $ % & * = - ",
"; > , ' ) ! ~ { + + + + + . ",
"; ] ^ / ( _ : < [ } | 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 q r s t u v h ",
"i w x y z A B C D E F G H I J ",
"i K L M N O P Q R S T U V W X ",
"Y Z Z Z Z ` ...+.@.#.$.%.&.*. ",
"Y Z Z =.-.;.>.,.'.).!.~.{.].^. ",
"Y Z =.-./.(._.:.<.[.}.|.1.2.3. ",
"Y 4.5.6.(.7.#.<.1.8.9.!.0.a.b. ",
" c.d.d.d.d.d.d.d.d.d.d.d.e. ",
" ",
" "};
#endif
/* XPM */
#ifndef XPMMAIN
extern char * icon_python_xpm[];
#else
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
/* XPM */
#ifndef XPMMAIN
extern char * icon_python_small_xpm[];
#else
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
/* XPM */
#ifndef XPMMAIN
extern char * icon_txt_xpm[];
#else
char * icon_txt_xpm[] = {
"16 16 100 2",
" c None",
". c #AFAFAF",
"+ c #B8CEF8",
"@ c #B4CBF6",
"# c #9EBDF1",
"$ c #7CA5EA",
"% c #719EE6",
"& c #6697E2",
"* c #5B8FDE",
"= c #5088DA",
"- c #4581D6",
"; c #3A7AD2",
"> c #3072CE",
", c #256BCA",
"' c #F2F6FD",
") c #F1F5FD",
"! c #EFF4FC",
"~ c #EEF3FC",
"{ c #ECF1FA",
"] c #E9EFF8",
"^ c #E6ECF6",
"/ c #E3EAF5",
"( c #E0E8F2",
"_ c #DDE5F0",
": c #DBE3EF",
"< c #D8E1EC",
"[ c #FFFFFF",
"} c #FDFDFD",
"| c #FDE080",
"1 c #F2CC84",
"2 c #E0AB8A",
"3 c #F6F6F6",
"4 c #F5F5F5",
"5 c #F3F3F3",
"6 c #F0F0F0",
"7 c #FEFEFE",
"8 c #FCFBF8",
"9 c #FCE135",
"0 c #FFC729",
"a c #F6AB5E",
"b c #F2EBE8",
"c c #F4F4F4",
"d c #F2F2F2",
"e c #EDEDED",
"f c #FDE394",
"g c #FFDB35",
"h c #FFC340",
"i c #EAA871",
"j c #EAEAEA",
"k c #FCFCFC",
"l c #FDE24E",
"m c #FFCC36",
"n c #FCAC4C",
"o c #EEE1D8",
"p c #F1F1F1",
"q c #ECECEC",
"r c #FCE8B2",
"s c #FFE458",
"t c #FFCD55",
"u c #EDAA6D",
"v c #EEEEEE",
"w c #FEE473",
"x c #FFD861",
"y c #FDC16A",
"z c #EAD4C5",
"A c #F7E8C4",
"B c #FEEB80",
"C c #FFD871",
"D c #EFB579",
"E c #EEEEEF",
"F c #E3E3E6",
"G c #DDDDE1",
"H c #EDEDEE",
"I c #FCDF8D",
"J c #FFE389",
"K c #FED58A",
"L c #E7C8B2",
"M c #ECECED",
"N c #E1E1E4",
"O c #DBDBE0",
"P c #F7D090",
"Q c #FFEAB7",
"R c #ECB989",
"S c #E0E0E4",
"T c #DCDCE1",
"U c #E0B98F",
"V c #E2AD8A",
"W c #DBD1D1",
"X c #DDDDE2",
"Y c #DFDFE3",
"Z c #FBFBFB",
"` c #F9F9F9",
" . c #F8F8F8",
".. c #D3A78A",
"+. c #DFD9DA",
"@. c #E0E0E5",
"#. c #E4E4E8",
"$. c #EEEEF0",
"%. c #F7F7F7",
"&. c #E6E6E6",
" . . . . . . . . . . . . . . ",
" . + @ # $ % & * = - ; > , . ",
" . ' ) ! ~ { ] ^ / ( _ : < . ",
" . [ [ [ [ } | 1 2 3 4 5 6 . ",
" . [ [ [ 7 8 9 0 a b c d e . ",
" . [ [ 7 } f g h i c 5 6 j . ",
" . [ [ 7 k l m n o c p q q . ",
" . [ 7 } r s t u c d v v v . ",
" . } } k w x y z p 6 6 6 6 . ",
" . d 5 A B C D d d E F G H . ",
" . 5 5 I J K L M N O O O F . ",
" . 4 4 P Q R S T T . . . . . ",
" . 3 3 U V W X X Y . Z k ` . ",
" . . ...+.@.#.$.%.. d v . ",
" . ` ` ` ` ` ` ` ` . &.. ",
" . . . . . . . . . . . "};
#endif
/* XPM */
#ifndef XPMMAIN
extern char * new_txt_xpm[];
#else
char * new_txt_xpm[] = {
"16 16 78 1",
" c None",
". c #000000",
"+ c #FEFEFE",
"@ c #090909",
"# c #EEEEEE",
"$ c #F1F1F1",
"% c #FBFBFB",
"& c #FBE291",
"* c #F2CC84",
"= c #E2B497",
"- c #F3F3F3",
"; c #767676",
"> c #F3F2F1",
", c #FCE135",
"' c #FFC729",
") c #F6AB5E",
"! c #F1EBE9",
"~ c #F0F0F0",
"{ c #161616",
"] c #FCE397",
"^ c #FFDB35",
"/ c #FFC340",
"( c #EAA871",
"_ c #EFEFEF",
": c #C4C4C4",
"< c #F6F6F6",
"[ c #FDE24E",
"} c #FFCC36",
"| c #FCAC4C",
"1 c #EEE2D9",
"2 c #ECECEC",
"3 c #FBE8B5",
"4 c #FFE458",
"5 c #FFCD55",
"6 c #EDAA6D",
"7 c #EBEBEB",
"8 c #FEE473",
"9 c #FFD861",
"0 c #FDC16A",
"a c #EADBD1",
"b c #EDEDED",
"c c #EAEAEA",
"d c #F4E9CE",
"e c #FEEB80",
"f c #FFD871",
"g c #EFB579",
"h c #E9E9E9",
"i c #E8E8E8",
"j c #E3E3E6",
"k c #DDDDE1",
"l c #FDFDFD",
"m c #FBDF8D",
"n c #FFE389",
"o c #FED58A",
"p c #E7C8B2",
"q c #E2E2E5",
"r c #DEDEE2",
"s c #DFDFE2",
"t c #E7E7E7",
"u c #FCFCFC",
"v c #F7D090",
"w c #FFEAB7",
"x c #ECB989",
"y c #E0E0E4",
"z c #DCDCE1",
"A c #E6E6E6",
"B c #E5E5E5",
"C c #E0B98F",
"D c #E2AD8A",
"E c #DBD1D1",
"F c #DDDDE2",
"G c #E0E0E3",
"H c #E4E4E4",
"I c #DBBDA9",
"J c #E0DBDC",
"K c #E1E1E6",
"L c #E5E5E8",
"M c #E3E3E3",
" ............ ",
".++++++++++@+. ",
".+###$$$$$$@%+. ",
".+###&*=-$$@;++.",
".+##>,')!$~@@@{.",
".+#~]^/(-___##:.",
".+#<[}|1_####2:.",
".+#3456~#####7:.",
".+-890a222bccc:.",
".+defghihjkhii:.",
".lmnop7qkrsttt:.",
".uvwxyzzAAAAAB:.",
".uCDEFFGAABBHH:.",
".lIJKL####HMMM:.",
".::::::::::::::.",
" .............. "};
#endif
...@@ -64,7 +64,7 @@ void BASE_SCREEN::InitDatas(void) ...@@ -64,7 +64,7 @@ void BASE_SCREEN::InitDatas(void)
case CVPCB_DISPLAY_FRAME: case CVPCB_DISPLAY_FRAME:
case MODULE_EDITOR_FRAME: case MODULE_EDITOR_FRAME:
case PCB_FRAME: case PCB_FRAME:
m_CurrentSheet = &g_Sheet_A3; m_CurrentSheet = &g_Sheet_A4;
break; break;
case GERBER_FRAME: case GERBER_FRAME:
...@@ -98,7 +98,22 @@ void BASE_SCREEN::InitDatas(void) ...@@ -98,7 +98,22 @@ void BASE_SCREEN::InitDatas(void)
m_FlagSave = 1; // indique sauvegarde auto faite m_FlagSave = 1; // indique sauvegarde auto faite
} }
/******************************************************************/
wxPoint BASE_SCREEN::CursorRealPosition(const wxPoint & ScreenPos)
/******************************************************************/
{
wxPoint curpos;
curpos.x = ScreenPos.x * GetZoom();
curpos.y = ScreenPos.y * GetZoom();
curpos.x += m_DrawOrg.x;
curpos.y += m_DrawOrg.y;
return curpos;
}
/***************************************/ /***************************************/
int BASE_SCREEN::GetInternalUnits(void) int BASE_SCREEN::GetInternalUnits(void)
/***************************************/ /***************************************/
......
...@@ -12,8 +12,8 @@ ...@@ -12,8 +12,8 @@
#include "common.h" #include "common.h"
#include "wxstruct.h" #include "wxstruct.h"
#include "base_struct.h" #include "base_struct.h"
#include "grfonte.h" #include "grfonte.h"
#include "macros.h" #include "macros.h"
...@@ -65,7 +65,7 @@ wxT("lib cmp draw line"), ...@@ -65,7 +65,7 @@ wxT("lib cmp draw line"),
wxT("lib cmp pin"), wxT("lib cmp pin"),
wxT("lib cmp field"), wxT("lib cmp field"),
wxT("unknown"), wxT("unknown"),
wxT("unknown") wxT("unknown")
}; };
...@@ -84,32 +84,32 @@ EDA_BaseStruct::EDA_BaseStruct(EDA_BaseStruct * parent, int idType) ...@@ -84,32 +84,32 @@ EDA_BaseStruct::EDA_BaseStruct(EDA_BaseStruct * parent, int idType)
m_StructType = idType; m_StructType = idType;
m_Parent = parent; /* Chainage hierarchique sur struct racine */ m_Parent = parent; /* Chainage hierarchique sur struct racine */
} }
/********************************************/ /********************************************/
EDA_BaseStruct::EDA_BaseStruct(int idType) EDA_BaseStruct::EDA_BaseStruct(int idType)
/********************************************/ /********************************************/
{ {
InitVars(); InitVars();
m_StructType = idType; m_StructType = idType;
} }
/********************************************/ /********************************************/
void EDA_BaseStruct::InitVars(void) void EDA_BaseStruct::InitVars(void)
/********************************************/ /********************************************/
{ {
m_StructType = TYPE_NOT_INIT; m_StructType = TYPE_NOT_INIT;
Pnext = NULL; /* Linked list: Link (next struct) */ Pnext = NULL; /* Linked list: Link (next struct) */
Pback = NULL; /* Linked list: Link (previous struct) */ Pback = NULL; /* Linked list: Link (previous struct) */
m_Parent = NULL; /* Linked list: Link (parent struct) */ m_Parent = NULL; /* Linked list: Link (parent struct) */
m_Son = NULL; /* Linked list: Link (son struct) */ m_Son = NULL; /* Linked list: Link (son struct) */
m_Image = NULL; /* Link to an image copy for undelete or abort command */ m_Image = NULL; /* Link to an image copy for undelete or abort command */
m_Flags = 0; /* flags for editions and other */ m_Flags = 0; /* flags for editions and other */
m_TimeStamp = 0; // Time stamp used for logical links m_TimeStamp = 0; // Time stamp used for logical links
m_Status = 0; m_Status = 0;
m_Selected = 0; /* Used by block commands, and selective editing */ m_Selected = 0; /* Used by block commands, and selective editing */
} }
/* Gestion de l'etat (status) de la structure (active, deleted..) */ /* Gestion de l'etat (status) de la structure (active, deleted..) */
int EDA_BaseStruct::GetState(int type) int EDA_BaseStruct::GetState(int type)
...@@ -136,20 +136,20 @@ addition d'une nouvelle struct a la liste chain ...@@ -136,20 +136,20 @@ addition d'une nouvelle struct a la liste chain
laststruct->Pnext = this; laststruct->Pnext = this;
} }
/**************************************************************************************/ /**************************************************************************************/
void EDA_BaseStruct::Draw(WinEDA_DrawPanel * panel, wxDC * DC, const wxPoint & offset, void EDA_BaseStruct::Draw(WinEDA_DrawPanel * panel, wxDC * DC, const wxPoint & offset,
int draw_mode, int Color) int draw_mode, int Color)
/**************************************************************************************/ /**************************************************************************************/
/* Virtual /* Virtual
*/ */
{ {
wxString msg, name; wxString msg, name;
msg.Printf( wxT("EDA_BaseStruct::Draw() error. Method for struct type %d used but not implemented ("), msg.Printf( wxT("EDA_BaseStruct::Draw() error. Method for struct type %d used but not implemented ("),
m_StructType); m_StructType);
msg += ReturnClassName() + wxT(")\n"); msg += ReturnClassName() + wxT(")\n");
printf ( CONV_TO_UTF8(msg)); printf ( CONV_TO_UTF8(msg));
} }
#if 0 #if 0
/**************************************************************/ /**************************************************************/
...@@ -219,20 +219,20 @@ EDA_TextStruct::~EDA_TextStruct(void) ...@@ -219,20 +219,20 @@ EDA_TextStruct::~EDA_TextStruct(void)
} }
m_TextDrawingsSize = 0; /* nombre de sommets a dessiner */ m_TextDrawingsSize = 0; /* nombre de sommets a dessiner */
} }
/********************************/ /********************************/
int EDA_TextStruct::Len_Size(void) int EDA_TextStruct::Len_Size(void)
/********************************/ /********************************/
// Return the text lenght in internal units // Return the text lenght in internal units
{ {
int nbchar = m_Text.Len(); int nbchar = m_Text.Len();
int len; int len;
if ( nbchar == 0 ) return 0; if ( nbchar == 0 ) return 0;
len = ((10 * m_Size.x ) / 9) * nbchar; len = ((10 * m_Size.x ) / 9) * nbchar;
return len; return len;
} }
/*************************************************/ /*************************************************/
int EDA_TextStruct::Locate(const wxPoint & posref) int EDA_TextStruct::Locate(const wxPoint & posref)
...@@ -302,7 +302,7 @@ int width; ...@@ -302,7 +302,7 @@ int width;
m_TextDrawings[2] + offset.y + m_Pos.y, m_TextDrawings[2] + offset.y + m_Pos.y,
m_TextDrawings[3] + offset.x + m_Pos.x, m_TextDrawings[3] + offset.x + m_Pos.x,
m_TextDrawings[4] + offset.y + m_Pos.y, m_TextDrawings[4] + offset.y + m_Pos.y,
color); width, color);
} }
else else
...@@ -317,9 +317,9 @@ int width; ...@@ -317,9 +317,9 @@ int width;
int cY = m_Pos.y - offset.y; int cY = m_Pos.y - offset.y;
/* trace ancre du texte */ /* trace ancre du texte */
GRLine(&panel->m_ClipBox, DC, cX - anchor_size, cY, GRLine(&panel->m_ClipBox, DC, cX - anchor_size, cY,
cX + anchor_size, cY, anchor_color); cX + anchor_size, cY, 0, anchor_color);
GRLine(&panel->m_ClipBox, DC, cX, cY - anchor_size , GRLine(&panel->m_ClipBox, DC, cX, cY - anchor_size ,
cX, cY + anchor_size , anchor_color); cX, cY + anchor_size , 0, anchor_color);
} }
jj = 5; ii = jj+1; jj = 5; ii = jj+1;
while (ii < m_TextDrawingsSize) while (ii < m_TextDrawingsSize)
...@@ -352,7 +352,7 @@ int width; ...@@ -352,7 +352,7 @@ int width;
} }
} }
else else
GRPoly(&panel->m_ClipBox, DC, nbpoints, coord, 0, color, color); GRPoly(&panel->m_ClipBox, DC, nbpoints, coord, 0, 0, color, color);
} }
} }
...@@ -377,7 +377,7 @@ int ii, jj, kk,nbchar, nbpoints, AsciiCode, endcar; ...@@ -377,7 +377,7 @@ int ii, jj, kk,nbchar, nbpoints, AsciiCode, endcar;
int k1 , k2 , x0 , y0 ; int k1 , k2 , x0 , y0 ;
int size_h , size_v , espacement ; int size_h , size_v , espacement ;
char f_cod , plume = 'U'; char f_cod , plume = 'U';
const wxChar * ptr; const wxChar * ptr;
const SH_CODE * ptcar; const SH_CODE * ptcar;
int ux0, uy0, dx, dy; // Coord de trace des segments de texte & variables de calcul */ int ux0, uy0, dx, dy; // Coord de trace des segments de texte & variables de calcul */
int cX, cY; // Centre du texte int cX, cY; // Centre du texte
......
...@@ -29,7 +29,7 @@ wxSize minsize; ...@@ -29,7 +29,7 @@ wxSize minsize;
SetFont(*g_StdFont); SetFont(*g_StdFont);
m_MenuBar = NULL; // menu du haut d'ecran m_MenuBar = NULL; // menu du haut d'ecran
m_HToolBar = NULL; m_HToolBar = NULL;
m_FrameIsActive = FALSE; m_FrameIsActive = TRUE;
m_MsgFrameHeight = MSG_PANEL_DEFAULT_HEIGHT; m_MsgFrameHeight = MSG_PANEL_DEFAULT_HEIGHT;
minsize.x = 470; minsize.x = 470;
......
...@@ -112,10 +112,10 @@ void DrawBlockStruct::Draw(WinEDA_DrawPanel * panel, wxDC * DC) ...@@ -112,10 +112,10 @@ void DrawBlockStruct::Draw(WinEDA_DrawPanel * panel, wxDC * DC)
int h = GetHeight()/panel->GetZoom(); int h = GetHeight()/panel->GetZoom();
if ( w == 0 || h == 0 ) if ( w == 0 || h == 0 )
GRLine(&panel->m_ClipBox, DC, GetX(), GetY(), GRLine(&panel->m_ClipBox, DC, GetX(), GetY(),
GetRight(), GetBottom(), m_Color); GetRight(), GetBottom(), 0, m_Color);
else else
GRRect(&panel->m_ClipBox, DC, GetX(), GetY(), GRRect(&panel->m_ClipBox, DC, GetX(), GetY(),
GetRight(), GetBottom(), m_Color); GetRight(), GetBottom(), 0, m_Color);
} }
/*************************************************************************/ /*************************************************************************/
......
This diff is collapsed.
...@@ -16,7 +16,7 @@ extern wxPoint LastPenPosition; ...@@ -16,7 +16,7 @@ extern wxPoint LastPenPosition;
extern wxPoint PlotOffset; extern wxPoint PlotOffset;
extern FILE * PlotOutputFile; extern FILE * PlotOutputFile;
extern double XScale, YScale; extern double XScale, YScale;
extern int PenWidth; extern int g_DefaultPenWidth, g_CurrentPenWidth;
extern int PlotOrientOptions, etat_plume; extern int PlotOrientOptions, etat_plume;
// Locales // Locales
...@@ -36,6 +36,7 @@ void InitPlotParametresPS(wxPoint offset, Ki_PageDescr * sheet, ...@@ -36,6 +36,7 @@ void InitPlotParametresPS(wxPoint offset, Ki_PageDescr * sheet,
SheetPS = sheet; SheetPS = sheet;
XScale = xscale; XScale = xscale;
YScale = yscale; YScale = yscale;
g_CurrentPenWidth = -1;
} }
/*************************************************************************************/ /*************************************************************************************/
...@@ -44,7 +45,23 @@ void SetDefaultLineWidthPS( int width) ...@@ -44,7 +45,23 @@ void SetDefaultLineWidthPS( int width)
/* Set the default line width (in 1/1000 inch) for the current plotting /* Set the default line width (in 1/1000 inch) for the current plotting
*/ */
{ {
PenWidth = width; /* epaisseur du trait standard en 1/1000 pouce */ g_DefaultPenWidth = width; /* epaisseur du trait standard en 1/1000 pouce */
g_CurrentPenWidth = -1;
}
/***************************************/
void SetCurrentLineWidthPS( int width)
/***************************************/
/* Set the Current line width (in 1/1000 inch) for the next plot
*/
{
int pen_width;
if ( width > 0 ) pen_width = width;
else pen_width = g_DefaultPenWidth;
if ( pen_width != g_CurrentPenWidth )
fprintf(PlotOutputFile,"%d setlinewidth\n", (int)(XScale * pen_width));
g_CurrentPenWidth = pen_width;
} }
/******************************/ /******************************/
...@@ -77,7 +94,7 @@ void PlotFilledSegmentPS(wxPoint start , wxPoint end, int width) ...@@ -77,7 +94,7 @@ void PlotFilledSegmentPS(wxPoint start , wxPoint end, int width)
UserToDeviceCoordinate(start); UserToDeviceCoordinate(start);
UserToDeviceCoordinate(end); UserToDeviceCoordinate(end);
fprintf(PlotOutputFile,"%d setlinewidth\n", (int)(XScale * width)); SetCurrentLineWidthPS(width);
fprintf(PlotOutputFile,"%d %d %d %d line\n", start.x, start.y, end.x, end.y); fprintf(PlotOutputFile,"%d %d %d %d line\n", start.x, start.y, end.x, end.y);
} }
...@@ -94,21 +111,16 @@ char Line[256]; ...@@ -94,21 +111,16 @@ char Line[256];
if(rayon < 0 ) rayon = 0 ; if(rayon < 0 ) rayon = 0 ;
if ( width > 0 ) SetCurrentLineWidthPS(width);
{
sprintf(Line,"%d setlinewidth\n", (int)( width * XScale) ) ;
fputs(Line,PlotOutputFile);
}
sprintf(Line,"newpath %d %d %d 0 360 arc stroke\n", pos.x, pos.y, rayon); sprintf(Line,"newpath %d %d %d 0 360 arc stroke\n", pos.x, pos.y, rayon);
fputs(Line,PlotOutputFile) ; fputs(Line,PlotOutputFile) ;
} }
/********************************************************************/ /**************************************************************************************/
void PlotArcPS(wxPoint centre, int StAngle, int EndAngle, int rayon) void PlotArcPS(wxPoint centre, int StAngle, int EndAngle, int rayon, int width)
/********************************************************************/ /**************************************************************************************/
/* Plot an arc: /* Plot an arc:
StAngle, EndAngle = start and end arc in 0.1 degree StAngle, EndAngle = start and end arc in 0.1 degree
*/ */
...@@ -117,6 +129,7 @@ char Line[256]; ...@@ -117,6 +129,7 @@ char Line[256];
if(rayon <= 0 ) return ; if(rayon <= 0 ) return ;
SetCurrentLineWidthPS(width);
/* Calcul des coord du point de depart : */ /* Calcul des coord du point de depart : */
UserToDeviceCoordinate(centre); UserToDeviceCoordinate(centre);
...@@ -132,29 +145,11 @@ char Line[256]; ...@@ -132,29 +145,11 @@ char Line[256];
} }
/*****************************************************************************/
void PlotArcPS(wxPoint centre, int StAngle, int EndAngle, int rayon, int width)
/*****************************************************************************/
/* trace d'un arc de cercle:
x, y = coord du centre
StAngle, EndAngle = angle de debut et fin
rayon = rayon de l'arc
w = epaisseur de l'arc
*/
{
char Line[256];
if(rayon <= 0 ) return ;
sprintf(Line,"%d setlinewidth\n", (int) (width * XScale) );
fputs(Line, PlotOutputFile);
PlotArcPS( centre, StAngle, EndAngle, rayon);
}
/****************************************************************/
/***************************************************/ void PlotPolyPS( int nb_segm, int * coord, int fill, int width)
void PlotPolyPS( int nb_segm, int * coord, int fill) /*****************************************************************/
/***************************************************/
/* Trace un polygone ( ferme si rempli ) en format POSTSCRIPT /* Trace un polygone ( ferme si rempli ) en format POSTSCRIPT
coord = tableau des coord des sommets coord = tableau des coord des sommets
nb_segm = nombre de coord ( 1 coord = 2 elements: X et Y du tableau ) nb_segm = nombre de coord ( 1 coord = 2 elements: X et Y du tableau )
...@@ -166,6 +161,8 @@ wxPoint pos; ...@@ -166,6 +161,8 @@ wxPoint pos;
if( nb_segm <= 1 ) return; if( nb_segm <= 1 ) return;
SetCurrentLineWidthPS(width);
pos.x = coord[0]; pos.y = coord[1]; pos.x = coord[0]; pos.y = coord[1];
UserToDeviceCoordinate(pos); UserToDeviceCoordinate(pos);
fprintf(PlotOutputFile, "newpath %d %d moveto\n", pos.x, pos.y); fprintf(PlotOutputFile, "newpath %d %d moveto\n", pos.x, pos.y);
...@@ -275,7 +272,7 @@ time_t time1970 = time(NULL); ...@@ -275,7 +272,7 @@ time_t time1970 = time(NULL);
fputs(Line,PlotOutputFile); fputs(Line,PlotOutputFile);
// Set default line width: // Set default line width:
fprintf(PlotOutputFile,"%d setlinewidth\n", PenWidth ); //PenWidth in user units fprintf(PlotOutputFile,"%d setlinewidth\n", g_DefaultPenWidth ); //g_DefaultPenWidth in user units
} }
......
...@@ -18,13 +18,24 @@ wxPoint LastPenPosition; ...@@ -18,13 +18,24 @@ wxPoint LastPenPosition;
wxPoint PlotOffset; wxPoint PlotOffset;
FILE * PlotOutputFile; FILE * PlotOutputFile;
double XScale, YScale; double XScale, YScale;
int PenWidth; int g_DefaultPenWidth;
int g_CurrentPenWidth = -1;
int PlotOrientOptions, etat_plume; int PlotOrientOptions, etat_plume;
// Locales // Locales
static Ki_PageDescr * SheetPS; static Ki_PageDescr * SheetPS;
/*************************/
void ForcePenReinit(void)
/*************************/
/* set the flag g_CurrentPenWidth to -1 in order to force a pen width redefinition
for the next draw command
*/
{
g_CurrentPenWidth = -1;
}
/**********************************************/ /**********************************************/
void SetPlotScale(double xscale, double yscale) void SetPlotScale(double xscale, double yscale)
/**********************************************/ /**********************************************/
...@@ -56,7 +67,8 @@ void InitPlotParametresGERBER(wxPoint offset, double xscale, double yscale) ...@@ -56,7 +67,8 @@ void InitPlotParametresGERBER(wxPoint offset, double xscale, double yscale)
SheetPS = NULL; SheetPS = NULL;
XScale = xscale; XScale = xscale;
YScale = yscale; YScale = yscale;
PenWidth = 120; /* epaisseur du trait standard en 1/1000 pouce */ g_DefaultPenWidth = 120; /* epaisseur du trait standard en 1/1000 pouce */
g_CurrentPenWidth = -1;
} }
...@@ -74,7 +86,8 @@ wxSize PageSize; ...@@ -74,7 +86,8 @@ wxSize PageSize;
wxPoint pos, ref; wxPoint pos, ref;
int color; int color;
Ki_WorkSheetData * WsItem; Ki_WorkSheetData * WsItem;
int conv_unit = screen->GetInternalUnits()/1000; int conv_unit = screen->GetInternalUnits()/1000; /* Scale to convert dimension in 1/1000 in into internal units
(1/1000 inc for EESchema, 1/10000 for pcbnew */
wxString msg; wxString msg;
wxSize text_size; wxSize text_size;
void (*FctPlume)(wxPoint pos, int state); void (*FctPlume)(wxPoint pos, int state);
...@@ -124,10 +137,10 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION; ...@@ -124,10 +137,10 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION;
text_size.x = WSTEXTSIZE * conv_unit; text_size.x = WSTEXTSIZE * conv_unit;
text_size.y = WSTEXTSIZE * conv_unit; text_size.y = WSTEXTSIZE * conv_unit;
ref.x = Sheet->m_LeftMargin * conv_unit; ref.x = Sheet->m_LeftMargin;
ref.y = Sheet->m_TopMargin * conv_unit; /* Upper left corner */ ref.y = Sheet->m_TopMargin; /* Upper left corner in 1/1000 inch */
xg = (PageSize.x - Sheet->m_RightMargin) * conv_unit; xg = (PageSize.x - Sheet->m_RightMargin);
yg = (PageSize.y - Sheet->m_BottomMargin) * conv_unit; /* lower right corner */ yg = (PageSize.y - Sheet->m_BottomMargin); /* lower right corner in 1/1000 inch */
/* Trace des reperes selon l'axe X */ /* Trace des reperes selon l'axe X */
ipas = (xg - ref.x) / PAS_REF; ipas = (xg - ref.x) / PAS_REF;
......
...@@ -137,9 +137,6 @@ void wxSVGFileDC::Init (wxString f, int Width, int Height, float dpi) ...@@ -137,9 +137,6 @@ void wxSVGFileDC::Init (wxString f, int Width, int Height, float dpi)
s.Printf ( wxT("<svg\n") ); s.Printf ( wxT("<svg\n") );
write(s); write(s);
// s.Printf ( wxT(" xmlns:svg=\"http://www.w3.org/2000/svg\"\n") );
//
write(s);
s.Printf ( wxT(" xmlns=\"http://www.w3.org/2000/svg\"\n") ); s.Printf ( wxT(" xmlns=\"http://www.w3.org/2000/svg\"\n") );
write(s); write(s);
s.Printf ( wxT(" version=\"1.1\"\n") ); s.Printf ( wxT(" version=\"1.1\"\n") );
......
...@@ -26,6 +26,8 @@ BEGIN_EVENT_TABLE(WinEDAListBox, wxDialog) ...@@ -26,6 +26,8 @@ BEGIN_EVENT_TABLE(WinEDAListBox, wxDialog)
EVT_BUTTON(ID_LISTBOX_CANCEL, WinEDAListBox::Cancel) EVT_BUTTON(ID_LISTBOX_CANCEL, WinEDAListBox::Cancel)
EVT_LISTBOX(ID_LISTBOX_LIST, WinEDAListBox::ClickOnList) EVT_LISTBOX(ID_LISTBOX_LIST, WinEDAListBox::ClickOnList)
EVT_LISTBOX_DCLICK(ID_LISTBOX_LIST, WinEDAListBox::D_ClickOnList) EVT_LISTBOX_DCLICK(ID_LISTBOX_LIST, WinEDAListBox::D_ClickOnList)
EVT_CHAR(WinEDAListBox::OnKeyEvent)
EVT_CHAR_HOOK(WinEDAListBox::OnKeyEvent)
EVT_CLOSE( WinEDAListBox::OnClose ) EVT_CLOSE( WinEDAListBox::OnClose )
END_EVENT_TABLE() END_EVENT_TABLE()
...@@ -39,7 +41,7 @@ END_EVENT_TABLE() ...@@ -39,7 +41,7 @@ END_EVENT_TABLE()
movefct = fonction de cration de commentaires a afficher movefct = fonction de cration de commentaires a afficher
*/ */
WinEDAListBox::WinEDAListBox( wxWindow * parent, const wxString & title, WinEDAListBox::WinEDAListBox( WinEDA_DrawFrame * parent, const wxString & title,
const wxChar ** itemlist, const wxChar ** itemlist,
const wxString & reftext, const wxString & reftext,
void(* movefct)(wxString & Text), void(* movefct)(wxString & Text),
...@@ -186,12 +188,12 @@ void WinEDAListBox::ClickOnList(wxCommandEvent& event) ...@@ -186,12 +188,12 @@ void WinEDAListBox::ClickOnList(wxCommandEvent& event)
wxString text; wxString text;
if (m_MoveFct) if (m_MoveFct)
{ {
m_WinMsg->Clear(); m_WinMsg->Clear();
text = m_List->GetStringSelection(); text = m_List->GetStringSelection();
m_MoveFct(text); m_MoveFct(text);
m_WinMsg->WriteText(text.GetData()); m_WinMsg->WriteText(text.GetData());
} }
} }
/*******************************************************/ /*******************************************************/
...@@ -259,3 +261,10 @@ const wxString ** BufList; ...@@ -259,3 +261,10 @@ const wxString ** BufList;
} }
/****************************************************/
void WinEDAListBox::OnKeyEvent(wxKeyEvent& event)
/****************************************************/
{
event.Skip();
}
...@@ -170,7 +170,7 @@ bool sketch_mode = FALSE; ...@@ -170,7 +170,7 @@ bool sketch_mode = FALSE;
dx += cX; dy = cY; dx += cX; dy = cY;
RotatePoint(&ux0, &uy0, cX, cY, orient); RotatePoint(&ux0, &uy0, cX, cY, orient);
RotatePoint(&dx, &dy, cX, cY, orient); RotatePoint(&dx, &dy, cX, cY, orient);
GRLine(&panel->m_ClipBox, DC, ux0, uy0, dx, dy, gcolor); GRLine(&panel->m_ClipBox, DC, ux0, uy0, dx, dy, width, gcolor);
return; return;
} }
...@@ -210,7 +210,7 @@ return; ...@@ -210,7 +210,7 @@ return;
if(ii && (plume == 'D' ) ) if(ii && (plume == 'D' ) )
{ {
if ( width <= 1 ) if ( width <= 1 )
GRPoly(&panel->m_ClipBox, DC, ii /2, coord, 0, GRPoly(&panel->m_ClipBox, DC, ii /2, coord, 0, 0,
gcolor, gcolor); gcolor, gcolor);
else if ( sketch_mode ) else if ( sketch_mode )
{ {
...@@ -222,8 +222,8 @@ return; ...@@ -222,8 +222,8 @@ return;
} }
else else
GRPolyLines(&panel->m_ClipBox, DC, ii /2, coord, GRPoly(&panel->m_ClipBox, DC, ii /2, coord, 0,
gcolor, gcolor, width); width, gcolor, gcolor);
} }
plume = f_cod; ii = 0; plume = f_cod; ii = 0;
break; break;
......
////////////////////// ///////////////////////
// Name: eda_dde.cc // // Name: eda_dde.cpp //
////////////////////// ///////////////////////
// For compilers that support precompilation, includes "wx/wx.h". // For compilers that support precompilation, includes "wx/wx.h".
#include <wx/wxprec.h> #include <wx/wxprec.h>
...@@ -21,13 +21,16 @@ ...@@ -21,13 +21,16 @@
#include "id.h" #include "id.h"
#include "common.h" #include "common.h"
#include "macros.h"
#define ID_CONN "CAO_COM" #define ID_CONN "CAO_COM"
wxString HOSTNAME(wxT("localhost")); wxString HOSTNAME(wxT("localhost"));
/* variables locales */ /* variables locales */
#define IPC_BUF_SIZE 4000
// buffers for read and write data in socket connections
#define IPC_BUF_SIZE 4096
char client_ipc_buffer[IPC_BUF_SIZE]; char client_ipc_buffer[IPC_BUF_SIZE];
char server_ipc_buffer[IPC_BUF_SIZE]; char server_ipc_buffer[IPC_BUF_SIZE];
...@@ -77,22 +80,24 @@ size_t len; ...@@ -77,22 +80,24 @@ size_t len;
wxSocketBase *sock = evt.GetSocket(); wxSocketBase *sock = evt.GetSocket();
switch (evt.GetSocketEvent()) switch (evt.GetSocketEvent())
{ {
case wxSOCKET_INPUT: case wxSOCKET_INPUT:
sock->Read(server_ipc_buffer,1); sock->Read(server_ipc_buffer,1);
len = sock->Read(server_ipc_buffer+1,IPC_BUF_SIZE-2).LastCount(); if( sock->LastCount() == 0 ) break; // No data: Occurs on open connection
server_ipc_buffer[len+1] = 0; sock->Read(server_ipc_buffer+1,IPC_BUF_SIZE-2);
if(RemoteFct ) RemoteFct(server_ipc_buffer); len = 1 + sock->LastCount();
break; server_ipc_buffer[len] = 0;
if(RemoteFct ) RemoteFct(server_ipc_buffer);
case wxSOCKET_LOST: break;
case wxSOCKET_LOST:
return; return;
break; break;
default: default:
wxPrintf( wxT("WinEDA_DrawFrame::OnSockRequest() error: Invalid event !")); wxPrintf( wxT("WinEDA_DrawFrame::OnSockRequest() error: Invalid event !"));
break; break;
} }
} }
/**************************************************************/ /**************************************************************/
...@@ -120,12 +125,12 @@ wxSocketServer *server = (wxSocketServer *) evt.GetSocket(); ...@@ -120,12 +125,12 @@ wxSocketServer *server = (wxSocketServer *) evt.GetSocket();
/********************************************/ /********************************************/
bool SendCommand( int service, char * cmdline) bool SendCommand( int service, char * cmdline)
/********************************************/ /********************************************/
/* Fonction utilisee par un client pour envoyer une information a un serveur. /* Used by a client to sent (by a socket connection) a data to a server.
- Etablit une connection Socket Client - Open a Socket Client connection
- envoie le contenu du buffer cmdline - Send the buffer cmdline
- ferme la connexion - Close the socket connection
service contient le numro de service en ascii. service is the service number for the TC/IP connection
*/ */
{ {
wxSocketClient * sock_client; wxSocketClient * sock_client;
......
...@@ -8,6 +8,10 @@ ...@@ -8,6 +8,10 @@
#define EDA_BASE #define EDA_BASE
#define COMMON_GLOBL #define COMMON_GLOBL
#ifdef KICAD_PYTHON
#include <pyhandler.h>
#endif
#include "fctsys.h" #include "fctsys.h"
#include <wx/image.h> #include <wx/image.h>
#include "wx/html/htmlwin.h" #include "wx/html/htmlwin.h"
...@@ -95,8 +99,6 @@ WinEDA_App::~WinEDA_App(void) ...@@ -95,8 +99,6 @@ WinEDA_App::~WinEDA_App(void)
delete g_ItalicFont; delete g_ItalicFont;
delete g_FixedFont; delete g_FixedFont;
delete g_MsgFont; delete g_MsgFont;
delete DrawPen;
delete DrawBrush;
if ( m_Checker ) delete m_Checker; if ( m_Checker ) delete m_Checker;
delete m_Locale; delete m_Locale;
} }
...@@ -130,10 +132,6 @@ wxString EnvLang; ...@@ -130,10 +132,6 @@ wxString EnvLang;
m_EDA_Config = new wxConfig(name); m_EDA_Config = new wxConfig(name);
m_EDA_CommonConfig = new wxConfig(wxT("kicad_common")); m_EDA_CommonConfig = new wxConfig(wxT("kicad_common"));
/* Creation des outils de trace */
DrawPen = new wxPen( wxT("GREEN"), 1, wxSOLID);
DrawBrush = new wxBrush(wxT("BLACK"), wxTRANSPARENT);
/* Creation des fontes utiles */ /* Creation des fontes utiles */
g_StdFontPointSize = FONT_DEFAULT_SIZE; g_StdFontPointSize = FONT_DEFAULT_SIZE;
g_MsgFontPointSize = FONT_DEFAULT_SIZE; g_MsgFontPointSize = FONT_DEFAULT_SIZE;
...@@ -166,6 +164,9 @@ bool succes = SetLanguage(TRUE); ...@@ -166,6 +164,9 @@ bool succes = SetLanguage(TRUE);
if ( atof("0,1") ) g_FloatSeparator = ','; // Nombres flottants = 0,1 if ( atof("0,1") ) g_FloatSeparator = ','; // Nombres flottants = 0,1
else g_FloatSeparator = '.'; else g_FloatSeparator = '.';
#ifdef KICAD_PYTHON
PyHandler::GetInstance()->SetAppName( name );
#endif
} }
...@@ -590,3 +591,12 @@ wxMenuItem * item; ...@@ -590,3 +591,12 @@ wxMenuItem * item;
} }
int WinEDA_App::OnRun(void)
/* Run init scripts */
{
#ifdef KICAD_PYTHON
PyHandler::GetInstance()->RunScripts();
#endif
return wxApp::OnRun();
}
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
// For compilers that support precompilation, includes "wx.h". // For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h" #include "wx/wxprec.h"
#include "wx/mimetype.h"
#ifdef __BORLANDC__ #ifdef __BORLANDC__
#pragma hdrstop #pragma hdrstop
...@@ -276,6 +277,8 @@ wxString defaultpath = Path; ...@@ -276,6 +277,8 @@ wxString defaultpath = Path;
defaultpath.Replace(wxT("/"), STRING_DIR_SEP); defaultpath.Replace(wxT("/"), STRING_DIR_SEP);
if ( defaultpath.IsEmpty() ) defaultpath = wxGetCwd(); if ( defaultpath.IsEmpty() ) defaultpath = wxGetCwd();
wxSetWorkingDirectory( defaultpath );
fullfilename = wxFileSelector( wxString(Title), fullfilename = wxFileSelector( wxString(Title),
defaultpath, defaultpath,
defaultname, defaultname,
...@@ -415,12 +418,24 @@ wxString FullFileName; ...@@ -415,12 +418,24 @@ wxString FullFileName;
/***********************************************************************************/ /***********************************************************************************/
int ExecuteFile(wxWindow * frame, const wxString & ExecFile, const wxString & param) int ExecuteFile(wxWindow * frame, const wxString & ExecFile, const wxString & param)
/***********************************************************************************/ /***********************************************************************************/
/* appelle le logiciel ExecFile, avec les parametres filename /* Call the executable file "ExecFile", with params "param"
*/ */
{ {
wxString FullFileName; wxString FullFileName;
#ifdef __WXMAC__
// Mac part
wxGetEnv("HOME", &FullFileName);
FullFileName += wxString("/bin/") + newExecFile;
if (! wxFileExists(FullFileName) )
{
FullFileName = FindKicadFile(ExecFile);
}
#else
FullFileName = FindKicadFile(ExecFile); FullFileName = FindKicadFile(ExecFile);
#endif
if ( wxFileExists(FullFileName) ) if ( wxFileExists(FullFileName) )
{ {
...@@ -429,7 +444,6 @@ wxString FullFileName; ...@@ -429,7 +444,6 @@ wxString FullFileName;
return 0; return 0;
} }
wxString msg; wxString msg;
msg.Printf( wxT("Command file <%s> not found"), FullFileName.GetData() ); msg.Printf( wxT("Command file <%s> not found"), FullFileName.GetData() );
DisplayError(frame, msg, 20); DisplayError(frame, msg, 20);
...@@ -569,3 +583,71 @@ wxString GetEditorName(void) ...@@ -569,3 +583,71 @@ wxString GetEditorName(void)
} }
return g_EditorName; return g_EditorName;
} }
void OpenPDF( const wxString & file )
{
wxString command;
wxString filename = file;
wxString type;
EDA_Appl->ReadPdfBrowserInfos();
if ( !EDA_Appl->m_PdfBrowserIsDefault )
{
AddDelimiterString(filename);
command = EDA_Appl->m_PdfBrowser + filename;
}
else
{
bool success = false;
wxFileType * filetype = NULL;
wxFileType::MessageParameters params(filename, type);
filetype = wxTheMimeTypesManager->GetFileTypeFromExtension(wxT(".pdf"));
if (filetype ) success = filetype->GetOpenCommand( &command, params);
delete filetype;
if (!success)
{
AddDelimiterString(filename);
command.Empty();
wxString tries[] =
{
wxT("/usr/bin/evince"),
wxT("/usr/bin/xpdf"),
wxT("/usr/bin/konqueror"),
wxT("/usr/bin/gpdf"),
wxT(""),
};
for ( int i = 0;; i++ )
{
if (tries[i].IsEmpty()) break;
if (wxFileExists(tries[i]))
{
command = tries[i] + wxT(" ") + filename;
}
}
}
}
if (!command.IsEmpty()) wxExecute(command);
}
void OpenFile( const wxString & file )
{
wxString command;
wxString filename = file;
wxFileName CurrentFileName(filename);
wxString ext, type;
ext = CurrentFileName.GetExt();
wxFileType * filetype = wxTheMimeTypesManager->GetFileTypeFromExtension(ext);
bool success = false;
wxFileType::MessageParameters params(filename, type);
if (filetype) success = filetype->GetOpenCommand( &command, params);
delete filetype;
if (success && !command.IsEmpty()) wxExecute(command);
}
This diff is collapsed.
...@@ -2,9 +2,10 @@ WXDIR = $(WXWIN) ...@@ -2,9 +2,10 @@ WXDIR = $(WXWIN)
all: common.a all: common.a
include makefile.include
include ../libs.win include ../libs.win
include makefile.include
common.a: $(OBJECTS) ../libs.win makefile.include common.a: $(OBJECTS) ../libs.win makefile.include
ar ruv $@ $(OBJECTS) ar ruv $@ $(OBJECTS)
ranlib $@ ranlib $@
......
...@@ -8,9 +8,11 @@ EDACPPFLAGS = $(CPPFLAGS) ...@@ -8,9 +8,11 @@ EDACPPFLAGS = $(CPPFLAGS)
all: common.a all: common.a
include ../libs.linux
include makefile.include include makefile.include
CPPFLAGS += $(EXTRACPPFLAGS) CPPFLAGS += $(EXTRACPPFLAGS) -fno-strict-aliasing
EDACPPFLAGS = $(CPPFLAGS) EDACPPFLAGS = $(CPPFLAGS)
...@@ -19,6 +21,7 @@ common.a: $(OBJECTS) makefile.gtk makefile.include ...@@ -19,6 +21,7 @@ common.a: $(OBJECTS) makefile.gtk makefile.include
ar -rv $@ $(OBJECTS) ar -rv $@ $(OBJECTS)
ranlib $@ ranlib $@
install:common.a
clean: clean:
rm -f *.o; rm -f *~; rm core; rm *.bak; rm *.obj rm -f *.o; rm -f *~; rm core; rm *.bak; rm *.obj
......
EXTRACPPFLAGS= -I$(SYSINCLUDE) -I./ -Ibitmaps -I../include EXTRACPPFLAGS += -I$(SYSINCLUDE) -I./ -Ibitmaps -I../include
COMMON = ../include/colors.h COMMON = ../include/colors.h
...@@ -34,6 +34,11 @@ OBJECTS= \ ...@@ -34,6 +34,11 @@ OBJECTS= \
base_screen.o\ base_screen.o\
dcsvg.o dcsvg.o
ifdef KICAD_PYTHON
OBJECTS += pyhandler.o
pyhandler.o: pyhandler.cpp $(COMMON) ../include/pyhandler.h
endif
gr_basic.o: gr_basic.cpp ../include/gr_basic.h $(DEPEND) gr_basic.o: gr_basic.cpp ../include/gr_basic.h $(DEPEND)
confirm.o: confirm.cpp $(COMMON) confirm.o: confirm.cpp $(COMMON)
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
CC = gcc CC = gcc
# Compiler flags. # Compiler flags.
CPPFLAGS = -Wall -O2 -I./ -I../include `wx-config --cflags` CPPFLAGS = -Wall -O2 -I./ -I../include `wx-config --cxxflags`
CPPFLAGS += -arch i386 -arch ppc
EDACPPFLAGS = $(CPPFLAGS) EDACPPFLAGS = $(CPPFLAGS)
......
This diff is collapsed.
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
#include "fctsys.h" #include "fctsys.h"
#include <time.h> #include <time.h>
#include "common.h" #include "common.h"
/*********************************************************************/ /*********************************************************************/
int ReadDelimitedText(char * dest, char * source, int NbMaxChar ) int ReadDelimitedText(char * dest, char * source, int NbMaxChar )
/*********************************************************************/ /*********************************************************************/
...@@ -302,22 +302,6 @@ char * line = Text; ...@@ -302,22 +302,6 @@ char * line = Text;
return line; return line;
} }
/****************************/
char * from_point(char * Text)
/****************************/
/* convertit les . en , dans une chaine. utilis pour compenser
l'internalisation imbecile de la fct scanf
qui lit les flottants avec une virgule au lieu du point
*/
{
char * line = Text;
if ( Text == NULL ) return NULL;
for ( ; *Text != 0; Text++ )
if (*Text == '.') *Text = g_FloatSeparator;
return line;
}
/********************************/ /********************************/
char * strupper(char * Text) char * strupper(char * Text)
......
...@@ -13,9 +13,9 @@ ...@@ -13,9 +13,9 @@
/* Must be defined in main applications: */ /* Must be defined in main applications: */
extern wxString g_Main_Title; extern wxString g_Main_Title;
/*********************************************************************/ /*************************************************************************************/
void WinEDA_DrawFrame::TraceWorkSheet(wxDC * DC, BASE_SCREEN * screen) void WinEDA_DrawFrame::TraceWorkSheet(wxDC * DC, BASE_SCREEN * screen, int line_width)
/*********************************************************************/ /*************************************************************************************/
/* Draw the sheet references /* Draw the sheet references
*/ */
{ {
...@@ -32,6 +32,7 @@ wxSize size(SIZETEXT*scale,SIZETEXT*scale); ...@@ -32,6 +32,7 @@ wxSize size(SIZETEXT*scale,SIZETEXT*scale);
wxSize size_ref(SIZETEXT_REF*scale,SIZETEXT_REF*scale); wxSize size_ref(SIZETEXT_REF*scale,SIZETEXT_REF*scale);
wxString msg; wxString msg;
int UpperLimit = VARIABLE_BLOCK_START_POSITION; int UpperLimit = VARIABLE_BLOCK_START_POSITION;
int width = line_width;
Color = RED; Color = RED;
if(Sheet == NULL) if(Sheet == NULL)
...@@ -46,7 +47,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION; ...@@ -46,7 +47,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION;
{ {
GRSetDrawMode(DC, GR_COPY); GRSetDrawMode(DC, GR_COPY);
GRRect(&DrawPanel->m_ClipBox, DC, 0, 0, GRRect(&DrawPanel->m_ClipBox, DC, 0, 0,
Sheet->m_Size.x * scale, Sheet->m_Size.y * scale, Sheet->m_Size.x * scale, Sheet->m_Size.y * scale, width,
g_DrawBgColor == WHITE ? LIGHTGRAY : DARKDARKGRAY ); g_DrawBgColor == WHITE ? LIGHTGRAY : DARKDARKGRAY );
} }
...@@ -60,7 +61,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION; ...@@ -60,7 +61,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION;
for ( ii = 0; ii < 2 ; ii++ ) for ( ii = 0; ii < 2 ; ii++ )
{ {
GRRect(&DrawPanel->m_ClipBox, DC, refx * scale, refy * scale, GRRect(&DrawPanel->m_ClipBox, DC, refx * scale, refy * scale,
xg * scale, yg * scale, Color); xg * scale, yg * scale, width, Color);
refx += GRID_REF_W; refy += GRID_REF_W; refx += GRID_REF_W; refy += GRID_REF_W;
xg -= GRID_REF_W; yg -= GRID_REF_W; xg -= GRID_REF_W; yg -= GRID_REF_W;
...@@ -80,23 +81,23 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION; ...@@ -80,23 +81,23 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION;
if( ii < xg - PAS_REF/2 ) if( ii < xg - PAS_REF/2 )
{ {
GRLine(&DrawPanel->m_ClipBox, DC, ii * scale, refy * scale, GRLine(&DrawPanel->m_ClipBox, DC, ii * scale, refy * scale,
ii * scale, (refy + GRID_REF_W) * scale, Color); ii * scale, (refy + GRID_REF_W) * scale, width, Color);
} }
DrawGraphicText(DrawPanel, DC, DrawGraphicText(DrawPanel, DC,
wxPoint( (ii - gxpas/2) * scale, (refy + GRID_REF_W/2) * scale), wxPoint( (ii - gxpas/2) * scale, (refy + GRID_REF_W/2) * scale),
Color, Color,
Line, TEXT_ORIENT_HORIZ, size_ref, Line, TEXT_ORIENT_HORIZ, size_ref,
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER); GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width);
if( ii < xg - PAS_REF/2 ) if( ii < xg - PAS_REF/2 )
{ {
GRLine(&DrawPanel->m_ClipBox, DC,ii * scale, yg * scale, GRLine(&DrawPanel->m_ClipBox, DC,ii * scale, yg * scale,
ii * scale, (yg - GRID_REF_W) * scale, Color); ii * scale, (yg - GRID_REF_W) * scale, width, Color);
} }
DrawGraphicText(DrawPanel, DC, DrawGraphicText(DrawPanel, DC,
wxPoint( (ii - gxpas/2) * scale, (yg - GRID_REF_W/2) * scale), wxPoint( (ii - gxpas/2) * scale, (yg - GRID_REF_W/2) * scale),
Color, Color,
Line, TEXT_ORIENT_HORIZ, size_ref, Line, TEXT_ORIENT_HORIZ, size_ref,
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER); GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width);
} }
/* Trace des reperes selon l'axe Y */ /* Trace des reperes selon l'axe Y */
...@@ -110,23 +111,23 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION; ...@@ -110,23 +111,23 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION;
if( ii < yg - PAS_REF/2 ) if( ii < yg - PAS_REF/2 )
{ {
GRLine(&DrawPanel->m_ClipBox, DC, refx * scale, ii * scale, GRLine(&DrawPanel->m_ClipBox, DC, refx * scale, ii * scale,
(refx + GRID_REF_W) * scale, ii * scale, Color); (refx + GRID_REF_W) * scale, ii * scale, width, Color);
} }
DrawGraphicText(DrawPanel, DC, DrawGraphicText(DrawPanel, DC,
wxPoint((refx + GRID_REF_W/2) * scale, (ii - gypas/2) * scale), wxPoint((refx + GRID_REF_W/2) * scale, (ii - gypas/2) * scale),
Color, Color,
Line, TEXT_ORIENT_HORIZ, size_ref, Line, TEXT_ORIENT_HORIZ, size_ref,
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER); GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width);
if( ii < yg - PAS_REF/2 ) if( ii < yg - PAS_REF/2 )
{ {
GRLine(&DrawPanel->m_ClipBox, DC, xg * scale, ii * scale, GRLine(&DrawPanel->m_ClipBox, DC, xg * scale, ii * scale,
(xg - GRID_REF_W) * scale, ii * scale, Color); (xg - GRID_REF_W) * scale, ii * scale, width, Color);
} }
DrawGraphicText(DrawPanel, DC, DrawGraphicText(DrawPanel, DC,
wxPoint((xg - GRID_REF_W/2) * scale, (ii - gxpas/2) * scale), wxPoint((xg - GRID_REF_W/2) * scale, (ii - gxpas/2) * scale),
Color, Color,
Line, TEXT_ORIENT_HORIZ, size_ref, Line, TEXT_ORIENT_HORIZ, size_ref,
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER); GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width);
} }
...@@ -147,7 +148,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION; ...@@ -147,7 +148,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION;
msg += screen->m_Date; msg += screen->m_Date;
DrawGraphicText(DrawPanel, DC, pos, Color, DrawGraphicText(DrawPanel, DC, pos, Color,
msg, TEXT_ORIENT_HORIZ, size, msg, TEXT_ORIENT_HORIZ, size,
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width);
break; break;
case WS_REV: case WS_REV:
...@@ -155,7 +156,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION; ...@@ -155,7 +156,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION;
msg += screen->m_Revision; msg += screen->m_Revision;
DrawGraphicText(DrawPanel, DC, pos, Color, DrawGraphicText(DrawPanel, DC, pos, Color,
msg, TEXT_ORIENT_HORIZ, size, msg, TEXT_ORIENT_HORIZ, size,
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width);
break; break;
case WS_LICENCE: case WS_LICENCE:
...@@ -164,7 +165,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION; ...@@ -164,7 +165,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION;
msg += wxT(" ") + GetBuildVersion(); msg += wxT(" ") + GetBuildVersion();
DrawGraphicText(DrawPanel, DC, pos, Color, DrawGraphicText(DrawPanel, DC, pos, Color,
msg, TEXT_ORIENT_HORIZ, size, msg, TEXT_ORIENT_HORIZ, size,
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width);
break; break;
case WS_SIZESHEET: case WS_SIZESHEET:
...@@ -172,7 +173,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION; ...@@ -172,7 +173,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION;
msg += Sheet->m_Name; msg += Sheet->m_Name;
DrawGraphicText(DrawPanel, DC, pos, Color, DrawGraphicText(DrawPanel, DC, pos, Color,
msg, TEXT_ORIENT_HORIZ, size, msg, TEXT_ORIENT_HORIZ, size,
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width);
break; break;
...@@ -182,7 +183,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION; ...@@ -182,7 +183,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION;
screen->m_NumberOfSheet; screen->m_NumberOfSheet;
DrawGraphicText(DrawPanel, DC, pos, Color, DrawGraphicText(DrawPanel, DC, pos, Color,
msg, TEXT_ORIENT_HORIZ, size, msg, TEXT_ORIENT_HORIZ, size,
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width);
break; break;
case WS_COMPANY_NAME: case WS_COMPANY_NAME:
...@@ -192,7 +193,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION; ...@@ -192,7 +193,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION;
{ {
DrawGraphicText(DrawPanel, DC, pos, Color, DrawGraphicText(DrawPanel, DC, pos, Color,
msg, TEXT_ORIENT_HORIZ, size, msg, TEXT_ORIENT_HORIZ, size,
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width);
UpperLimit = MAX(UpperLimit, WsItem->m_Posy+SIZETEXT); UpperLimit = MAX(UpperLimit, WsItem->m_Posy+SIZETEXT);
} }
break; break;
...@@ -202,7 +203,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION; ...@@ -202,7 +203,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION;
msg += screen->m_Title; msg += screen->m_Title;
DrawGraphicText(DrawPanel, DC, pos, Color, DrawGraphicText(DrawPanel, DC, pos, Color,
msg, TEXT_ORIENT_HORIZ, size, msg, TEXT_ORIENT_HORIZ, size,
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width);
break; break;
case WS_COMMENT1: case WS_COMMENT1:
...@@ -212,7 +213,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION; ...@@ -212,7 +213,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION;
{ {
DrawGraphicText(DrawPanel, DC, pos, Color, DrawGraphicText(DrawPanel, DC, pos, Color,
msg, TEXT_ORIENT_HORIZ, size, msg, TEXT_ORIENT_HORIZ, size,
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width);
UpperLimit = MAX(UpperLimit, WsItem->m_Posy+SIZETEXT); UpperLimit = MAX(UpperLimit, WsItem->m_Posy+SIZETEXT);
} }
break; break;
...@@ -224,7 +225,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION; ...@@ -224,7 +225,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION;
{ {
DrawGraphicText(DrawPanel, DC, pos, Color, DrawGraphicText(DrawPanel, DC, pos, Color,
msg, TEXT_ORIENT_HORIZ, size, msg, TEXT_ORIENT_HORIZ, size,
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width);
UpperLimit = MAX(UpperLimit, WsItem->m_Posy+SIZETEXT); UpperLimit = MAX(UpperLimit, WsItem->m_Posy+SIZETEXT);
} }
break; break;
...@@ -236,7 +237,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION; ...@@ -236,7 +237,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION;
{ {
DrawGraphicText(DrawPanel, DC, pos, Color, DrawGraphicText(DrawPanel, DC, pos, Color,
msg, TEXT_ORIENT_HORIZ, size, msg, TEXT_ORIENT_HORIZ, size,
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width);
UpperLimit = MAX(UpperLimit, WsItem->m_Posy+SIZETEXT); UpperLimit = MAX(UpperLimit, WsItem->m_Posy+SIZETEXT);
} }
break; break;
...@@ -248,7 +249,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION; ...@@ -248,7 +249,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION;
{ {
DrawGraphicText(DrawPanel, DC, pos, Color, DrawGraphicText(DrawPanel, DC, pos, Color,
msg, TEXT_ORIENT_HORIZ, size, msg, TEXT_ORIENT_HORIZ, size,
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width);
UpperLimit = MAX(UpperLimit, WsItem->m_Posy+SIZETEXT); UpperLimit = MAX(UpperLimit, WsItem->m_Posy+SIZETEXT);
} }
break; break;
...@@ -266,7 +267,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION; ...@@ -266,7 +267,7 @@ int UpperLimit = VARIABLE_BLOCK_START_POSITION;
yg = Sheet->m_Size.y - yg = Sheet->m_Size.y -
GRID_REF_W - Sheet->m_BottomMargin - WsItem->m_Endy; GRID_REF_W - Sheet->m_BottomMargin - WsItem->m_Endy;
GRLine(&DrawPanel->m_ClipBox, DC, pos.x, pos.y, GRLine(&DrawPanel->m_ClipBox, DC, pos.x, pos.y,
xg * scale, yg * scale, Color); xg * scale, yg * scale, width, Color);
break; break;
} }
......
...@@ -80,7 +80,10 @@ MODULE * Module = NULL; ...@@ -80,7 +80,10 @@ MODULE * Module = NULL;
if( stricmp(Name,CONV_TO_UTF8(CmpName)) == 0 ) /* composant localise */ if( stricmp(Name,CONV_TO_UTF8(CmpName)) == 0 ) /* composant localise */
{ {
Module = new MODULE(m_Pcb); Module = new MODULE(m_Pcb);
// Switch the locale to standard C (needed to print floating point numbers like 1.3)
setlocale(LC_NUMERIC, "C");
Module->ReadDescr(lib_module, &LineNum); Module->ReadDescr(lib_module, &LineNum);
setlocale(LC_NUMERIC, ""); // revert to the current locale
Module->SetPosition(wxPoint(0,0) ); Module->SetPosition(wxPoint(0,0) );
fclose(lib_module); fclose(lib_module);
return(Module) ; return(Module) ;
......
...@@ -31,7 +31,7 @@ $(TARGET): $(OBJECTS) makefile.gtk makefile.include $(EXTRALIBS) ../libs.linux $ ...@@ -31,7 +31,7 @@ $(TARGET): $(OBJECTS) makefile.gtk makefile.include $(EXTRALIBS) ../libs.linux $
$(LD) $(OBJECTS) $(LDFLAGS) $(LIBVIEWER3D) $(LIBS_WITH_GL) -o $(TARGET) $(LD) $(OBJECTS) $(LDFLAGS) $(LIBVIEWER3D) $(LIBS_WITH_GL) -o $(TARGET)
install: install: $(TARGET)
cp -f $(TARGET) $(KICAD_BIN) cp -f $(TARGET) $(KICAD_BIN)
clean: clean:
......
# makefile pour cvpcb (mingw) # makefile pour cvpcb (mingw)
OBJSUFF = o OBJSUFF = o
EXTRACPPFLAGS = -DCVPCB -I./ -I../cvpcb -I../include -Ibitmaps -I../pcbnew -I../3d-viewer EXTRACPPFLAGS += -DCVPCB -fno-strict-aliasing -I./ -I../cvpcb -I../include -Ibitmaps -I../pcbnew -I../3d-viewer
EXTRALIBS = ../common/common.a EXTRALIBS = ../common/common.a
LIBVIEWER3D = ../3d-viewer/3d-viewer.a LIBVIEWER3D = ../3d-viewer/3d-viewer.a
# DEPEND = cvpcb.h ../include/pcbstruct.h # DEPEND = cvpcb.h ../include/pcbstruct.h
OBJECTS = $(TARGET).o \ OBJECTS = $(TARGET).o \
class_cvpcb.o\ class_cvpcb.o\
memoire.o \ memoire.o \
cvframe.o\ cvframe.o\
listboxes.o\ listboxes.o\
drawframe.o\ drawframe.o\
class_pcb_text.o\ class_pcb_text.o\
class_cotation.o\ class_cotation.o\
class_mire.o\ class_mire.o\
displayframe.o\ displayframe.o\
drawpanel.o \ drawpanel.o \
init.o rdpcad.o \ init.o rdpcad.o \
readschematicnetlist.o\ readschematicnetlist.o\
viewlogi.o viewlnet.o \ viewlogi.o viewlnet.o \
loadcmp.o savecmp.o \ loadcmp.o savecmp.o \
tool_cvpcb.o \ tool_cvpcb.o \
writenetlistpcbnew.o\ writenetlistpcbnew.o\
genequiv.o \ genequiv.o \
ioascii.o \ ioascii.o \
menucfg.o \ menucfg.o \
cfg.o listlib.o \ cfg.o listlib.o \
infospgm.o autosel.o \ infospgm.o autosel.o \
setvisu.o\ setvisu.o\
dialog_display_options.o\ dialog_display_options.o\
zoom.o \ zoom.o \
visumod.o\ visumod.o\
tracemod.o \ tracemod.o \
classpcb.o \ classpcb.o \
class_board.o \ class_board.o \
class_module.o \ class_module.o \
class_pad.o \ class_pad.o \
class_text_mod.o \ class_text_mod.o \
class_edge_mod.o \ class_edge_mod.o \
class_equipot.o \ class_equipot.o \
class_track.o\ class_track.o\
basepcbframe.o basepcbframe.o
cvpcb.o: cvpcb.cpp cvpcb.h $(DEPEND) cvpcb.o: cvpcb.cpp cvpcb.h $(DEPEND)
displayframe.o: displayframe.cpp $(DEPEND) displayframe.o: displayframe.cpp $(DEPEND)
listboxes.o: listboxes.cpp $(DEPEND) listboxes.o: listboxes.cpp $(DEPEND)
drawpanel.o: ../share/drawpanel.cpp $(DEPEND) drawpanel.o: ../share/drawpanel.cpp $(DEPEND)
$(CC) -c $(EDACPPFLAGS) -o $@ ../share/$*.cpp $(CC) -c $(EDACPPFLAGS) -o $@ ../share/$*.cpp
drawframe.o: ../share/drawframe.cpp $(DEPEND) drawframe.o: ../share/drawframe.cpp $(DEPEND)
$(CC) -c $(EDACPPFLAGS) -o $@ ../share/$*.cpp $(CC) -c $(EDACPPFLAGS) -o $@ ../share/$*.cpp
init.o: init.cpp $(DEPEND) init.o: init.cpp $(DEPEND)
memoire.o: memoire.cpp $(DEPEND) memoire.o: memoire.cpp $(DEPEND)
rdpcad.o: rdpcad.cpp $(DEPEND) rdpcad.o: rdpcad.cpp $(DEPEND)
classpcb.o: ../pcbnew/classpcb.cpp $(DEPEND) classpcb.o: ../pcbnew/classpcb.cpp $(DEPEND)
$(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp $(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
class_mire.o: ../pcbnew/class_mire.cpp ../pcbnew/class_mire.h $(COMMON) class_mire.o: ../pcbnew/class_mire.cpp ../pcbnew/class_mire.h $(COMMON)
$(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp $(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
class_cotation.o: ../pcbnew/class_cotation.cpp ../pcbnew/class_cotation.h $(COMMON) class_cotation.o: ../pcbnew/class_cotation.cpp ../pcbnew/class_cotation.h $(COMMON)
$(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp $(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
class_pcb_text.o: ../pcbnew/class_pcb_text.cpp ../pcbnew/class_pcb_text.h $(COMMON) class_pcb_text.o: ../pcbnew/class_pcb_text.cpp ../pcbnew/class_pcb_text.h $(COMMON)
$(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp $(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
class_board.o: ../pcbnew/class_board.cpp $(DEPEND) class_board.o: ../pcbnew/class_board.cpp $(DEPEND)
$(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp $(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
class_track.o: ../pcbnew/class_track.cpp $(DEPEND) class_track.o: ../pcbnew/class_track.cpp $(DEPEND)
$(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp $(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
class_pad.o: ../pcbnew/class_pad.cpp $(DEPEND) class_pad.o: ../pcbnew/class_pad.cpp $(DEPEND)
$(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp $(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
class_module.o: ../pcbnew/class_module.cpp $(DEPEND) class_module.o: ../pcbnew/class_module.cpp $(DEPEND)
$(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp $(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
class_text_mod.o: ../pcbnew/class_text_mod.cpp $(DEPEND) class_text_mod.o: ../pcbnew/class_text_mod.cpp $(DEPEND)
$(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp $(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
class_edge_mod.o: ../pcbnew/class_edge_mod.cpp $(DEPEND) class_edge_mod.o: ../pcbnew/class_edge_mod.cpp $(DEPEND)
$(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp $(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
class_equipot.o: ../pcbnew/class_equipot.cpp $(DEPEND) class_equipot.o: ../pcbnew/class_equipot.cpp $(DEPEND)
$(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp $(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
basepcbframe.o: ../pcbnew/basepcbframe.cpp $(DEPEND) basepcbframe.o: ../pcbnew/basepcbframe.cpp $(DEPEND)
$(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp $(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
readschematicnetlist.o: readschematicnetlist.cpp $(DEPEND) readschematicnetlist.o: readschematicnetlist.cpp $(DEPEND)
viewlogi.o: viewlogi.cpp $(DEPEND) viewlogi.o: viewlogi.cpp $(DEPEND)
viewlnet.o: viewlnet.cpp $(DEPEND) viewlnet.o: viewlnet.cpp $(DEPEND)
loadcmp.o: loadcmp.cpp $(DEPEND) loadcmp.o: loadcmp.cpp $(DEPEND)
savecmp.o: savecmp.cpp $(DEPEND) savecmp.o: savecmp.cpp $(DEPEND)
writenetlistpcbnew.o: writenetlistpcbnew.cpp $(DEPEND) writenetlistpcbnew.o: writenetlistpcbnew.cpp $(DEPEND)
genequiv.o: genequiv.cpp $(DEPEND) genequiv.o: genequiv.cpp $(DEPEND)
ioascii.o: ../pcbnew/ioascii.cpp $(DEPEND) ioascii.o: ../pcbnew/ioascii.cpp $(DEPEND)
$(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp $(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
listlib.o: listlib.cpp $(DEPEND) listlib.o: listlib.cpp $(DEPEND)
cfg.o: cfg.cpp cfg.h $(DEPEND) cfg.o: cfg.cpp cfg.h $(DEPEND)
menucfg.o: menucfg.cpp dialog_cvpcb_config.cpp dialog_cvpcb_config.h $(DEPEND) menucfg.o: menucfg.cpp dialog_cvpcb_config.cpp dialog_cvpcb_config.h $(DEPEND)
infospgm.o: ../share/infospgm.cpp $(DEPEND) infospgm.o: ../share/infospgm.cpp $(DEPEND)
$(CC) -c $(EDACPPFLAGS) -o $@ ../share/$*.cpp $(CC) -c $(EDACPPFLAGS) -o $@ ../share/$*.cpp
autosel.o: autosel.cpp $(DEPEND) autosel.o: autosel.cpp $(DEPEND)
setvisu.o: setvisu.cpp $(DEPEND) setvisu.o: setvisu.cpp $(DEPEND)
zoom.o: ../share/zoom.cpp $(DEPEND) zoom.o: ../share/zoom.cpp $(DEPEND)
$(CC) -c $(EDACPPFLAGS) -o $@ ../share/$*.cpp $(CC) -c $(EDACPPFLAGS) -o $@ ../share/$*.cpp
visumod.o: visumod.cpp $(DEPEND) visumod.o: visumod.cpp $(DEPEND)
tracemod.o: ../pcbnew/tracemod.cpp ../include/gr_basic.h $(DEPEND) tracemod.o: ../pcbnew/tracemod.cpp ../include/gr_basic.h $(DEPEND)
$(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp $(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
dialog_display_options.o: dialog_display_options.cpp dialog_display_options.h $(DEPEND) dialog_display_options.o: dialog_display_options.cpp dialog_display_options.h $(DEPEND)
...@@ -19,11 +19,12 @@ include ../libs.macosx ...@@ -19,11 +19,12 @@ include ../libs.macosx
TARGET = cvpcb TARGET = cvpcb
all: $(TARGET) all: $(TARGET) $(TARGET).app
include makefile.include include makefile.include
CPPFLAGS += $(EXTRACPPFLAGS) CPPFLAGS += $(EXTRACPPFLAGS)
CPPFLAGS += -arch i386 -arch ppc
EDACPPFLAGS = $(CPPFLAGS) EDACPPFLAGS = $(CPPFLAGS)
...@@ -33,6 +34,22 @@ $(TARGET): $(OBJECTS) $(TARGET).r makefile.macosx makefile.include $(EXTRALIBS) ...@@ -33,6 +34,22 @@ $(TARGET): $(OBJECTS) $(TARGET).r makefile.macosx makefile.include $(EXTRALIBS)
$(SETFILE) -a C $(TARGET) $(SETFILE) -a C $(TARGET)
$(TARGET).app: $(OBJS)
rm -Rf $(TARGET).app
mkdir -p $(TARGET).app
mkdir -p $(TARGET).app/Contents
mkdir -p $(TARGET).app/Contents/MacOS
mkdir -p $(TARGET).app/Contents/Frameworks
mkdir -p $(TARGET).app/Contents/Resources
sed -e "s/IDENTIFIER/`echo . | sed -e s,\.\./,,g | sed -e s,/,.,g`/" -e "s/EXECUTABLE/$(TARGET)/" \
-e "s/VERSION/$(MKMK_WX_VERSION)/" $(HOME)/wxMac-$(MKMK_WX_VERSION)/src/mac/carbon/wxmac.icns \
>$(TARGET).app/Contents/Resources/wxmac.icns
sed -e "s/IDENTIFIER/`echo . | sed -e s,\.\./,,g | sed -e s,/,.,g`/" -e "s/EXECUTABLE/$(TARGET)/"\
-e "s/VERSION/$(MKMK_WX_VERSION)/" $(HOME)/wxMac-$(MKMK_WX_VERSION)/src/mac/carbon/Info.plist.in \
>$(TARGET).app/Contents/Info.plist
echo -n "APPL????" >$(TARGET).app/Contents/PkgInfo
ln -f $(TARGET) $(TARGET).app/Contents/MacOS/$(TARGET)
install: install:
cp -f $(TARGET) $(KICAD_BIN) cp -f $(TARGET) $(KICAD_BIN)
......
...@@ -141,6 +141,10 @@ wxString msg; ...@@ -141,6 +141,10 @@ wxString msg;
else if( m_Convert == 2 ) msg = _("yes"); else if( m_Convert == 2 ) msg = _("yes");
else msg = wxT("?"); else msg = wxT("?");
Affiche_1_Parametre(frame, 16, _("Convert"), msg, BROWN); Affiche_1_Parametre(frame, 16, _("Convert"), msg, BROWN);
if ( m_Width ) valeur_param(m_Width, msg);
else msg = _("default");
Affiche_1_Parametre(frame, 24, _("Width"), msg, BLUE);
} }
...@@ -88,13 +88,13 @@ bool ItemIsInOtherPart, ItemIsInOtherConvert; ...@@ -88,13 +88,13 @@ bool ItemIsInOtherPart, ItemIsInOtherConvert;
{ {
case COMPONENT_ARC_DRAW_TYPE: case COMPONENT_ARC_DRAW_TYPE:
{ {
pos = ((LibDrawArc*)item)->m_Start; pos.y = -pos.y; pos = ((LibDrawArc*)item)->m_ArcStart; pos.y = -pos.y;
if ( Rect.Inside(pos) ) if ( Rect.Inside(pos) )
{ {
item->m_Selected = IS_SELECTED; item->m_Selected = IS_SELECTED;
ItemsCount++; ItemsCount++;
} }
pos = ((LibDrawArc*)item)->m_End; pos.y = -pos.y; pos = ((LibDrawArc*)item)->m_ArcEnd; pos.y = -pos.y;
if ( Rect.Inside(pos) ) if ( Rect.Inside(pos) )
{ {
item->m_Selected = IS_SELECTED; item->m_Selected = IS_SELECTED;
...@@ -113,7 +113,7 @@ bool ItemIsInOtherPart, ItemIsInOtherConvert; ...@@ -113,7 +113,7 @@ bool ItemIsInOtherPart, ItemIsInOtherConvert;
break; break;
case COMPONENT_RECT_DRAW_TYPE: case COMPONENT_RECT_DRAW_TYPE:
pos = ((LibDrawSquare*)item)->m_Start; pos.y = -pos.y; pos = ((LibDrawSquare*)item)->m_Pos; pos.y = -pos.y;
if ( Rect.Inside(pos) ) if ( Rect.Inside(pos) )
{ {
item->m_Selected = IS_SELECTED; item->m_Selected = IS_SELECTED;
...@@ -529,10 +529,10 @@ LibEDA_BaseStruct * item; ...@@ -529,10 +529,10 @@ LibEDA_BaseStruct * item;
{ {
((LibDrawArc*)item)->m_Pos.x += offset.x; ((LibDrawArc*)item)->m_Pos.x += offset.x;
((LibDrawArc*)item)->m_Pos.y += offset.y; ((LibDrawArc*)item)->m_Pos.y += offset.y;
((LibDrawArc*)item)->m_Start.x += offset.x; ((LibDrawArc*)item)->m_ArcStart.x += offset.x;
((LibDrawArc*)item)->m_Start.y += offset.y; ((LibDrawArc*)item)->m_ArcStart.y += offset.y;
((LibDrawArc*)item)->m_End.x += offset.x; ((LibDrawArc*)item)->m_ArcEnd.x += offset.x;
((LibDrawArc*)item)->m_End.y += offset.y; ((LibDrawArc*)item)->m_ArcEnd.y += offset.y;
break; break;
} }
...@@ -542,8 +542,8 @@ LibEDA_BaseStruct * item; ...@@ -542,8 +542,8 @@ LibEDA_BaseStruct * item;
break; break;
case COMPONENT_RECT_DRAW_TYPE: case COMPONENT_RECT_DRAW_TYPE:
((LibDrawSquare*)item)->m_Start.x += offset.x; ((LibDrawSquare*)item)->m_Pos.x += offset.x;
((LibDrawSquare*)item)->m_Start.y += offset.y; ((LibDrawSquare*)item)->m_Pos.y += offset.y;
((LibDrawSquare*)item)->m_End.x += offset.x; ((LibDrawSquare*)item)->m_End.x += offset.x;
((LibDrawSquare*)item)->m_End.y += offset.y; ((LibDrawSquare*)item)->m_End.y += offset.y;
break; break;
...@@ -632,9 +632,9 @@ LibEDA_BaseStruct * item; ...@@ -632,9 +632,9 @@ LibEDA_BaseStruct * item;
case COMPONENT_ARC_DRAW_TYPE: case COMPONENT_ARC_DRAW_TYPE:
{ {
SETMIRROR(((LibDrawArc*)item)->m_Pos.x); SETMIRROR(((LibDrawArc*)item)->m_Pos.x);
SETMIRROR(((LibDrawArc*)item)->m_Start.x); SETMIRROR(((LibDrawArc*)item)->m_ArcStart.x);
SETMIRROR(((LibDrawArc*)item)->m_End.x); SETMIRROR(((LibDrawArc*)item)->m_ArcEnd.x);
EXCHG(((LibDrawArc*)item)->m_Start,((LibDrawArc*)item)->m_End); EXCHG(((LibDrawArc*)item)->m_ArcStart,((LibDrawArc*)item)->m_ArcEnd);
break; break;
} }
...@@ -643,7 +643,7 @@ LibEDA_BaseStruct * item; ...@@ -643,7 +643,7 @@ LibEDA_BaseStruct * item;
break; break;
case COMPONENT_RECT_DRAW_TYPE: case COMPONENT_RECT_DRAW_TYPE:
SETMIRROR(((LibDrawSquare*)item)->m_Start.x); SETMIRROR(((LibDrawSquare*)item)->m_Pos.x);
SETMIRROR(((LibDrawSquare*)item)->m_End.x); SETMIRROR(((LibDrawSquare*)item)->m_End.x);
break; break;
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "protos.h"
/***********************************************************/ /***********************************************************/
...@@ -97,6 +98,7 @@ DrawSheetLabelStruct * Slabel = NULL, * label = m_Label; ...@@ -97,6 +98,7 @@ DrawSheetLabelStruct * Slabel = NULL, * label = m_Label;
newitem->m_DrawOrg = m_DrawOrg; newitem->m_DrawOrg = m_DrawOrg;
newitem->m_Curseur = m_Curseur; newitem->m_Curseur = m_Curseur;
newitem->m_MousePosition = m_MousePosition; newitem->m_MousePosition = m_MousePosition;
newitem->m_MousePositionInPixels = m_MousePositionInPixels;
newitem->m_O_Curseur = m_O_Curseur; newitem->m_O_Curseur = m_O_Curseur;
newitem->m_ScrollbarPos = m_ScrollbarPos; newitem->m_ScrollbarPos = m_ScrollbarPos;
newitem->m_ScrollbarNumber = m_ScrollbarNumber; newitem->m_ScrollbarNumber = m_ScrollbarNumber;
...@@ -140,7 +142,58 @@ void DrawSheetStruct::SwapData(DrawSheetStruct * copyitem) ...@@ -140,7 +142,58 @@ void DrawSheetStruct::SwapData(DrawSheetStruct * copyitem)
EXCHG(m_NbLabel, copyitem->m_NbLabel); EXCHG(m_NbLabel, copyitem->m_NbLabel);
} }
/************************/ /**************************************************************************************/
void DrawSheetStruct::Draw(WinEDA_DrawPanel * panel,wxDC * DC, const wxPoint & offset,
int DrawMode, int Color)
/**************************************************************************************/
/* Draw the hierarchical sheet shape */
{
DrawSheetLabelStruct * SheetLabelStruct;
int txtcolor;
wxString Text;
int color;
wxPoint pos = m_Pos + offset;
int LineWidth = g_DrawMinimunLineWidth;
if( Color >= 0 ) color = Color;
else color = ReturnLayerColor(m_Layer);
GRSetDrawMode(DC, DrawMode);
GRRect(&panel->m_ClipBox, DC, pos.x, pos.y,
pos.x + m_Size.x, pos.y + m_Size.y, LineWidth, color);
/* Trace des textes : SheetName */
if( Color > 0 ) txtcolor = Color;
else txtcolor = ReturnLayerColor(LAYER_SHEETNAME);
Text = wxT("Sheet: ") + m_SheetName;
DrawGraphicText(panel, DC,
wxPoint(pos.x, pos.y - 8), txtcolor,
Text, TEXT_ORIENT_HORIZ, wxSize(m_SheetNameSize,m_SheetNameSize),
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_BOTTOM, LineWidth);
/* Trace des textes : FileName */
if( Color >= 0 ) txtcolor = Color;
else txtcolor = ReturnLayerColor(LAYER_SHEETFILENAME);
Text = wxT("File: ") + m_FileName;
DrawGraphicText(panel, DC,
wxPoint(pos.x, pos.y + m_Size.y + 4),
txtcolor,
Text, TEXT_ORIENT_HORIZ, wxSize(m_FileNameSize,m_FileNameSize),
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_TOP, LineWidth);
/* Trace des textes : SheetLabel */
SheetLabelStruct = m_Label;
while( SheetLabelStruct != NULL )
{
SheetLabelStruct->Draw(panel, DC, offset,DrawMode, Color);
SheetLabelStruct = (DrawSheetLabelStruct*)(SheetLabelStruct->Pnext);
}
}
/************************/
/* DrawSheetLabelStruct */ /* DrawSheetLabelStruct */
/************************/ /************************/
...@@ -170,4 +223,94 @@ DrawSheetLabelStruct * newitem = ...@@ -170,4 +223,94 @@ DrawSheetLabelStruct * newitem =
newitem->m_Shape = m_Shape; newitem->m_Shape = m_Shape;
return newitem; return newitem;
} }
/********************************************************************************************/
void DrawSheetLabelStruct::Draw(WinEDA_DrawPanel * panel,wxDC * DC, const wxPoint & offset,
int DrawMode, int Color)
/********************************************************************************************/
/* Routine de dessin des Labels type hierarchie */
{
int side, txtcolor;
int posx , tposx, posy, size2;
wxSize size;
int NbSegm, coord[12];
int LineWidth = g_DrawMinimunLineWidth;
if( Color >= 0 ) txtcolor = Color;
else txtcolor = ReturnLayerColor(m_Layer);
GRSetDrawMode(DC, DrawMode);
posx = m_Pos.x + offset.x; posy = m_Pos.y + offset.y; size = m_Size;
if( !m_Text.IsEmpty() )
{
if( m_Edge )
{
tposx = posx - size.x;
side = GR_TEXT_HJUSTIFY_RIGHT;
}
else
{
tposx = posx + size.x + (size.x /8) ;
side = GR_TEXT_HJUSTIFY_LEFT;
}
DrawGraphicText(panel, DC, wxPoint(tposx, posy), txtcolor,
m_Text, TEXT_ORIENT_HORIZ,size ,
side, GR_TEXT_VJUSTIFY_CENTER, LineWidth);
}
/* dessin du symbole de connexion */
if(m_Edge)
{
size.x = -size.x;
size.y = -size.y;
}
coord[0] = posx; coord[1] = posy; size2 = size.x /2;
NbSegm = 0;
switch(m_Shape)
{
case 0: /* input |> */
coord[2] = posx ; coord[3] = posy - size2;
coord[4] = posx + size2; coord[5] = posy - size2;
coord[6] = posx + size.x; coord[7] = posy;
coord[8] = posx + size2; coord[9] = posy + size2;
coord[10] = posx ; coord[11] = posy + size2;
coord[12] = coord[0] ; coord[13] = coord[1];
NbSegm = 7;
break;
case 1: /* output <| */
coord[2] = posx + size2; coord[3] = posy - size2;
coord[4] = posx + size.x; coord[5] = posy - size2;
coord[6] = posx + size.x; coord[7] = posy + size2;
coord[8] = posx + size2; coord[9] = posy + size2;
coord[10] = coord[0] ; coord[11] = coord[1];
NbSegm = 6;
break;
case 2: /* bidi <> */
case 3: /* TriSt <> */
coord[2] = posx + size2; coord[3] = posy - size2;
coord[4] = posx + size.x; coord[5] = posy;
coord[6] = posx + size2; coord[7] = posy +size2;
coord[8] = coord[0]; coord[9] = coord[1];
NbSegm = 5;
break;
default: /* unsp []*/
coord[2] = posx ; coord[3] = posy - size2;
coord[4] = posx + size.x; coord[5] = posy - size2;
coord[6] = posx + size.x; coord[7] = posy + size2;
coord[8] = posx ; coord[9] = posy + size2;
coord[10] = coord[0] ; coord[11] = coord[1];
NbSegm = 6;
break;
}
int FillShape = FALSE;
GRPoly(&panel->m_ClipBox, DC, NbSegm, coord, FillShape, LineWidth, txtcolor, txtcolor); /* Poly Non rempli */
}
...@@ -43,6 +43,7 @@ DrawTextStruct * newitem = new DrawTextStruct(m_Pos, m_Text); ...@@ -43,6 +43,7 @@ DrawTextStruct * newitem = new DrawTextStruct(m_Pos, m_Text);
newitem->m_Shape = m_Shape; newitem->m_Shape = m_Shape;
newitem->m_Orient = m_Orient; newitem->m_Orient = m_Orient;
newitem->m_Size = m_Size; newitem->m_Size = m_Size;
newitem->m_Width = m_Width;
newitem->m_HJustify = m_HJustify; newitem->m_HJustify = m_HJustify;
newitem->m_VJustify = m_VJustify; newitem->m_VJustify = m_VJustify;
newitem->m_IsDangling = m_IsDangling ; newitem->m_IsDangling = m_IsDangling ;
...@@ -58,6 +59,7 @@ void DrawTextStruct::SwapData(DrawTextStruct * copyitem) ...@@ -58,6 +59,7 @@ void DrawTextStruct::SwapData(DrawTextStruct * copyitem)
EXCHG(m_Text, copyitem->m_Text); EXCHG(m_Text, copyitem->m_Text);
EXCHG(m_Pos, copyitem->m_Pos); EXCHG(m_Pos, copyitem->m_Pos);
EXCHG(m_Size, copyitem->m_Size); EXCHG(m_Size, copyitem->m_Size);
EXCHG(m_Width, copyitem->m_Width);
EXCHG(m_Shape, copyitem->m_Shape); EXCHG(m_Shape, copyitem->m_Shape);
EXCHG(m_Orient, copyitem->m_Orient); EXCHG(m_Orient, copyitem->m_Orient);
EXCHG(m_StructType, copyitem->m_StructType); EXCHG(m_StructType, copyitem->m_StructType);
...@@ -134,16 +136,16 @@ void DrawTextStruct::Draw(WinEDA_DrawPanel * panel,wxDC * DC, const wxPoint & of ...@@ -134,16 +136,16 @@ void DrawTextStruct::Draw(WinEDA_DrawPanel * panel,wxDC * DC, const wxPoint & of
} }
} }
/***************************************************************/ /*******************************************************************************************/
void DrawTextStruct::DrawAsText(WinEDA_DrawPanel * panel,wxDC * DC, const wxPoint & offset, void DrawTextStruct::DrawAsText(WinEDA_DrawPanel * panel,wxDC * DC, const wxPoint & offset,
int DrawMode, int Color) int DrawMode, int Color)
/***************************************************************/ /*******************************************************************************************/
/* Les textes type label ou notes peuvent avoir 4 directions, mais /* Texts type Label or Comment (text on layer "NOTE") have 4 directions, and the Text origin is the first letter
sont tj cadres par rapport a la 1ere lettre du texte
*/ */
{ {
int color; int color;
int width = MAX(m_Width, g_DrawMinimunLineWidth);
if( Color >= 0 ) color = Color; if( Color >= 0 ) color = Color;
else color = ReturnLayerColor(m_Layer); else color = ReturnLayerColor(m_Layer);
GRSetDrawMode(DC, DrawMode); GRSetDrawMode(DC, DrawMode);
...@@ -155,28 +157,28 @@ int color; ...@@ -155,28 +157,28 @@ int color;
wxPoint(m_Pos.x + offset.x, m_Pos.y - TXTMARGE + offset.y), wxPoint(m_Pos.x + offset.x, m_Pos.y - TXTMARGE + offset.y),
color, color,
m_Text, m_Orient*900, m_Size, m_Text, m_Orient*900, m_Size,
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_BOTTOM); GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_BOTTOM, width);
break; break;
case 1: /* Orientation vert UP */ case 1: /* Orientation vert UP */
DrawGraphicText(panel, DC, DrawGraphicText(panel, DC,
wxPoint(m_Pos.x - TXTMARGE + offset.x, m_Pos.y + offset.y), color, wxPoint(m_Pos.x - TXTMARGE + offset.x, m_Pos.y + offset.y), color,
m_Text, m_Orient*900, m_Size, m_Text, m_Orient*900, m_Size,
GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_BOTTOM); GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_BOTTOM, width);
break; break;
case 2: /* Orientation horiz inverse */ case 2: /* Orientation horiz inverse */
DrawGraphicText(panel, DC, DrawGraphicText(panel, DC,
wxPoint(m_Pos.x + offset.x, m_Pos.y + TXTMARGE + offset.y), color, wxPoint(m_Pos.x + offset.x, m_Pos.y + TXTMARGE + offset.y), color,
m_Text, m_Orient*900, m_Size, m_Text, m_Orient*900, m_Size,
GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_TOP); GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_TOP, width);
break; break;
case 3: /* Orientation vert BOTTOM */ case 3: /* Orientation vert BOTTOM */
DrawGraphicText(panel, DC, DrawGraphicText(panel, DC,
wxPoint(m_Pos.x + TXTMARGE + offset.y, m_Pos.y + offset.y), color, wxPoint(m_Pos.x + TXTMARGE + offset.y, m_Pos.y + offset.y), color,
m_Text, m_Orient*900, m_Size, m_Text, m_Orient*900, m_Size,
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_TOP); GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_TOP, width);
break; break;
} }
if ( m_IsDangling ) if ( m_IsDangling )
...@@ -195,14 +197,14 @@ void DrawTextStruct::DrawAsLabel(WinEDA_DrawPanel * panel,wxDC * DC, const wxPoi ...@@ -195,14 +197,14 @@ void DrawTextStruct::DrawAsLabel(WinEDA_DrawPanel * panel,wxDC * DC, const wxPoi
void DrawTextStruct::DrawAsGlobalLabel(WinEDA_DrawPanel * panel, wxDC * DC, const wxPoint& offset, void DrawTextStruct::DrawAsGlobalLabel(WinEDA_DrawPanel * panel, wxDC * DC, const wxPoint& offset,
int DrawMode, int Color) int DrawMode, int Color)
/*****************************************************************************/ /*****************************************************************************/
/* Les textes type Global label peuvent avoir 4 directions, mais /* Texts type Global Label have 4 directions, and the Text origin is the graphic icon
sont tj cadres par rapport au symbole graphique (icone)
*/ */
{ {
int * Template; int * Template;
int Poly[12]; int Poly[12];
int ii, jj, imax, color, HalfSize; int ii, jj, imax, color, HalfSize;
wxSize Size = m_Size; wxSize Size = m_Size;
int width = MAX(m_Width, g_DrawMinimunLineWidth);
if( Color >= 0 ) color = Color; if( Color >= 0 ) color = Color;
else color = ReturnLayerColor(m_Layer); else color = ReturnLayerColor(m_Layer);
...@@ -217,28 +219,28 @@ wxSize Size = m_Size; ...@@ -217,28 +219,28 @@ wxSize Size = m_Size;
DrawGraphicText(panel, DC, DrawGraphicText(panel, DC,
wxPoint(m_Pos.x - ii + offset.x, m_Pos.y + offset.y), color, wxPoint(m_Pos.x - ii + offset.x, m_Pos.y + offset.y), color,
m_Text, TEXT_ORIENT_HORIZ, Size, m_Text, TEXT_ORIENT_HORIZ, Size,
GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_CENTER); GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_CENTER, width);
break; break;
case 1: /* Orientation vert UP */ case 1: /* Orientation vert UP */
DrawGraphicText(panel, DC, DrawGraphicText(panel, DC,
wxPoint(m_Pos.x + offset.x, m_Pos.y + ii + offset.y), color, wxPoint(m_Pos.x + offset.x, m_Pos.y + ii + offset.y), color,
m_Text, TEXT_ORIENT_VERT, Size, m_Text, TEXT_ORIENT_VERT, Size,
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_TOP); GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_TOP, width);
break; break;
case 2: /* Orientation horiz inverse */ case 2: /* Orientation horiz inverse */
DrawGraphicText(panel, DC, DrawGraphicText(panel, DC,
wxPoint(m_Pos.x + ii + offset.x, m_Pos.y + offset.y), color, wxPoint(m_Pos.x + ii + offset.x, m_Pos.y + offset.y), color,
m_Text, TEXT_ORIENT_HORIZ, Size, m_Text, TEXT_ORIENT_HORIZ, Size,
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER); GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width);
break; break;
case 3: /* Orientation vert BOTTOM */ case 3: /* Orientation vert BOTTOM */
DrawGraphicText(panel, DC, DrawGraphicText(panel, DC,
wxPoint(m_Pos.x + offset.x, m_Pos.y - ii + offset.y), color, wxPoint(m_Pos.x + offset.x, m_Pos.y - ii + offset.y), color,
m_Text, TEXT_ORIENT_VERT, Size, m_Text, TEXT_ORIENT_VERT, Size,
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_BOTTOM); GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_BOTTOM, width);
break; break;
} }
...@@ -254,8 +256,8 @@ wxSize Size = m_Size; ...@@ -254,8 +256,8 @@ wxSize Size = m_Size;
jj++; Template++; jj++; Template++;
} }
// GRPoly(&panel->m_ClipBox, DC, imax,Poly,1, color, color ); /* Polygne Rempli */ // GRPoly(&panel->m_ClipBox, DC, imax,Poly,1, width, color, color ); /* Polygne Rempli */
GRPoly(&panel->m_ClipBox, DC, imax,Poly,0, color, color ); /* Polygne Non Rempli */ GRPoly(&panel->m_ClipBox, DC, imax,Poly,0, width, color, color ); /* Polygne Non Rempli */
if ( m_IsDangling ) if ( m_IsDangling )
DrawDanglingSymbol(panel, DC, m_Pos + offset, color); DrawDanglingSymbol(panel, DC, m_Pos + offset, color);
......
...@@ -81,7 +81,7 @@ public: ...@@ -81,7 +81,7 @@ public:
int m_FlagControlMulti; int m_FlagControlMulti;
int m_Convert; /* Gestion des mutiples representations (ex: conversion De Morgan) */ int m_Convert; /* Gestion des mutiples representations (ex: conversion De Morgan) */
int m_Transform[2][2]; /* The rotation/mirror transformation matrix. */ int m_Transform[2][2]; /* The rotation/mirror transformation matrix. */
bool * m_PinIsDangling; // liste des indicateurs de pin non connectee bool * m_PinIsDangling; // liste des indicateurs de pin non connectee
public: public:
EDA_SchComponentStruct(const wxPoint & pos = wxPoint(0,0)); EDA_SchComponentStruct(const wxPoint & pos = wxPoint(0,0));
......
...@@ -30,7 +30,7 @@ EDA_BaseStruct * WinEDA_SchematicFrame:: ...@@ -30,7 +30,7 @@ EDA_BaseStruct * WinEDA_SchematicFrame::
/**************************************************************/ /**************************************************************/
/* Routine de localisation et d'affichage des caract (si utile ) /* Routine de localisation et d'affichage des caract (si utile )
de l'element pointe par la souris de l'element pointe par la souris ou par le curseur pcb
- marqueur - marqueur
- noconnect - noconnect
- jonction - jonction
...@@ -44,16 +44,103 @@ EDA_BaseStruct * WinEDA_SchematicFrame:: ...@@ -44,16 +44,103 @@ EDA_BaseStruct * WinEDA_SchematicFrame::
*/ */
{ {
EDA_BaseStruct *DrawStruct; EDA_BaseStruct *DrawStruct;
wxString msg;
wxPoint mouse_position = GetScreen()->m_MousePosition;
LibDrawPin * Pin = NULL;
EDA_SchComponentStruct * LibItem = NULL;
char Line[1024];
DrawStruct = SchematicGeneralLocateAndDisplay(mouse_position, IncludePin);
if(! DrawStruct && ( mouse_position != GetScreen()->m_Curseur) )
{
DrawStruct = SchematicGeneralLocateAndDisplay(GetScreen()->m_Curseur, IncludePin);
}
if ( ! DrawStruct ) return NULL;
/* Cross probing to pcbnew if a pin or a component is found */
switch (DrawStruct->m_StructType )
{
case COMPONENT_FIELD_DRAW_TYPE:
{
PartTextStruct * Field = (PartTextStruct *) DrawStruct;
LibItem = (EDA_SchComponentStruct * )Field->m_Parent;
sprintf(Line,"$PART: %s", CONV_TO_UTF8(LibItem->m_Field[REFERENCE].m_Text));
SendCommand(MSG_TO_PCB, Line);
}
break;
case DRAW_LIB_ITEM_STRUCT_TYPE:
Pin = LocateAnyPin(m_CurrentScreen->EEDrawList, GetScreen()->m_Curseur, &LibItem);
if ( Pin ) break; // Priority is probing a pin first
LibItem = (EDA_SchComponentStruct *) DrawStruct;
sprintf(Line,"$PART: %s", CONV_TO_UTF8(LibItem->m_Field[REFERENCE].m_Text) );
SendCommand(MSG_TO_PCB, Line);
break;
default:
Pin = LocateAnyPin(m_CurrentScreen->EEDrawList, GetScreen()->m_Curseur, &LibItem);
break;
case COMPONENT_PIN_DRAW_TYPE:
Pin = (LibDrawPin*) DrawStruct;
break;
}
if ( Pin )
{
/* Force display pin infos (the previous display could be a component info) */
Pin->Display_Infos(this);
if ( LibItem )
Affiche_1_Parametre( this, 1,
LibItem->m_Field[REFERENCE].m_Text,
LibItem->m_Field[VALUE].m_Text,
CYAN);
// Cross probing:2 - pin found, and send a locate pin command to pcbnew (hightlight net)
if(Pin->m_PinNum)
{
wxString pinnum;
Pin->ReturnPinStringNum(pinnum);
sprintf(Line,"$PIN: %s $PART: %s", CONV_TO_UTF8(pinnum),
CONV_TO_UTF8(LibItem->m_Field[REFERENCE].m_Text));
SendCommand(MSG_TO_PCB, Line);
}
}
return DrawStruct;
}
/************************************************************************************/
EDA_BaseStruct * WinEDA_SchematicFrame::
SchematicGeneralLocateAndDisplay(const wxPoint & refpoint, bool IncludePin)
/************************************************************************************/
/* Find the schematic item at position "refpoint"
the priority order is:
- marker
- noconnect
- junction
- wire/bus/entry
- label
- pin
- component
return:
an EDA_BaseStruct pointer on the item
a Null pointer if no item found
For some items, caracteristics are displayed on the screen.
*/
{
EDA_BaseStruct *DrawStruct;
LibDrawPin * Pin; LibDrawPin * Pin;
EDA_SchComponentStruct * LibItem; EDA_SchComponentStruct * LibItem;
wxString Text; wxString Text;
char Line[1024];
wxString msg; wxString msg;
int ii; int ii;
DrawStruct = PickStruct(GetScreen()->m_Curseur, GetScreen()->EEDrawList, MARKERITEM); DrawStruct = PickStruct(refpoint, GetScreen()->EEDrawList, MARKERITEM);
if( DrawStruct ) if( DrawStruct )
{ {
DrawMarkerStruct * Marker = (DrawMarkerStruct *) DrawStruct; DrawMarkerStruct * Marker = (DrawMarkerStruct *) DrawStruct;
ii = Marker->m_Type; ii = Marker->m_Type;
Text = Marker->GetComment(); Text = Marker->GetComment();
...@@ -61,29 +148,29 @@ int ii; ...@@ -61,29 +148,29 @@ int ii;
msg = NameMarqueurType[ii]; msg << wxT(" << ") << Text; msg = NameMarqueurType[ii]; msg << wxT(" << ") << Text;
Affiche_Message(msg); Affiche_Message(msg);
return(DrawStruct); return(DrawStruct);
} }
DrawStruct = PickStruct(GetScreen()->m_Curseur, GetScreen()->EEDrawList, DrawStruct = PickStruct(refpoint, GetScreen()->EEDrawList,
NOCONNECTITEM); NOCONNECTITEM);
if( DrawStruct ) if( DrawStruct )
{ {
Affiche_Message(wxEmptyString); MsgPanel->EraseMsgBox();
return(DrawStruct); return(DrawStruct);
} }
DrawStruct = PickStruct(GetScreen()->m_Curseur, GetScreen()->EEDrawList, DrawStruct = PickStruct(refpoint, GetScreen()->EEDrawList,
JUNCTIONITEM); JUNCTIONITEM);
if( DrawStruct ) if( DrawStruct )
{ {
Affiche_Message(wxEmptyString); MsgPanel->EraseMsgBox();
return(DrawStruct); return(DrawStruct);
} }
DrawStruct = PickStruct(GetScreen()->m_Curseur, GetScreen()->EEDrawList, DrawStruct = PickStruct(refpoint, GetScreen()->EEDrawList,
WIREITEM|BUSITEM|RACCORDITEM); WIREITEM|BUSITEM|RACCORDITEM);
if( DrawStruct ) // Recherche d'une pin eventelle if( DrawStruct ) // Search for a pin
{ {
Pin = LocateAnyPin(m_CurrentScreen->EEDrawList,m_CurrentScreen->m_Curseur, &LibItem); Pin = LocateAnyPin(m_CurrentScreen->EEDrawList,refpoint, &LibItem);
if( Pin ) if( Pin )
{ {
Pin->Display_Infos(this); Pin->Display_Infos(this);
...@@ -93,42 +180,23 @@ int ii; ...@@ -93,42 +180,23 @@ int ii;
LibItem->m_Field[VALUE].m_Text, LibItem->m_Field[VALUE].m_Text,
CYAN); CYAN);
/* envoi id pin a pcbnew */
if(Pin->m_PinNum)
{
char pinnum[20];
pinnum[0] = Pin->m_PinNum & 255;
pinnum[1] = (Pin->m_PinNum >> 8 ) & 255;
pinnum[2] = (Pin->m_PinNum >> 16 ) & 255;
pinnum[3] = (Pin->m_PinNum >> 24 ) & 255;
pinnum[4] = 0;
sprintf(Line,"$PIN: %s $PART: %s", pinnum,
CONV_TO_UTF8(LibItem->m_Field[REFERENCE].m_Text));
SendCommand(MSG_TO_PCB, Line);
}
} }
else Affiche_Message(wxEmptyString); else MsgPanel->EraseMsgBox();
return(DrawStruct); return(DrawStruct);
} }
// Cross probing: Send a command to pcbnew via a socket link, service 4242 DrawStruct = PickStruct(refpoint, GetScreen()->EEDrawList, FIELDCMPITEM);
// Cross probing:1- look for a component, and send a locate footprint command to pcbnew
DrawStruct = PickStruct(GetScreen()->m_Curseur, GetScreen()->EEDrawList,
FIELDCMPITEM);
if( DrawStruct ) if( DrawStruct )
{ {
PartTextStruct * Field = (PartTextStruct *) DrawStruct; PartTextStruct * Field = (PartTextStruct *) DrawStruct;
LibItem = (EDA_SchComponentStruct * )Field->m_Parent; LibItem = (EDA_SchComponentStruct * )Field->m_Parent;
LibItem->Display_Infos(this); LibItem->Display_Infos(this);
sprintf(Line,"$PART: %s", CONV_TO_UTF8(LibItem->m_Field[REFERENCE].m_Text) );
SendCommand(MSG_TO_PCB, Line);
return(DrawStruct); return(DrawStruct);
} }
/* search for a pin */ /* search for a pin */
Pin = LocateAnyPin(m_CurrentScreen->EEDrawList,m_CurrentScreen->m_Curseur, &LibItem); Pin = LocateAnyPin(m_CurrentScreen->EEDrawList, refpoint, &LibItem);
if( Pin ) if( Pin )
{ {
Pin->Display_Infos(this); Pin->Display_Infos(this);
...@@ -137,36 +205,19 @@ int ii; ...@@ -137,36 +205,19 @@ int ii;
LibItem->m_Field[REFERENCE].m_Text, LibItem->m_Field[REFERENCE].m_Text,
LibItem->m_Field[VALUE].m_Text, LibItem->m_Field[VALUE].m_Text,
CYAN); CYAN);
// Cross probing:2 - pin found, and send a locate pin command to pcbnew (hightlight net)
if(Pin->m_PinNum)
{
wxString pinnum;
Pin->ReturnPinStringNum(pinnum);
sprintf(Line,"$PIN: %s $PART: %s", CONV_TO_UTF8(pinnum),
CONV_TO_UTF8(LibItem->m_Field[REFERENCE].m_Text));
SendCommand(MSG_TO_PCB, Line);
}
if ( IncludePin == TRUE ) return(LibItem); if ( IncludePin == TRUE ) return(LibItem);
} }
DrawStruct = PickStruct(GetScreen()->m_Curseur, GetScreen()->EEDrawList, DrawStruct = PickStruct(refpoint, GetScreen()->EEDrawList, LIBITEM);
LIBITEM);
if( DrawStruct ) if( DrawStruct )
{ {
DrawStruct = LocateSmallestComponent( GetScreen() ); DrawStruct = LocateSmallestComponent( GetScreen() );
LibItem = (EDA_SchComponentStruct *) DrawStruct; LibItem = (EDA_SchComponentStruct *) DrawStruct;
LibItem->Display_Infos(this); LibItem->Display_Infos(this);
sprintf(Line,"$PART: %s",
CONV_TO_UTF8(LibItem->m_Field[REFERENCE].m_Text));
SendCommand(MSG_TO_PCB, Line);
return(DrawStruct); return(DrawStruct);
} }
DrawStruct = PickStruct(GetScreen()->m_Curseur, GetScreen()->EEDrawList, DrawStruct = PickStruct(refpoint, GetScreen()->EEDrawList,
SHEETITEM); SHEETITEM);
if( DrawStruct ) if( DrawStruct )
{ {
...@@ -175,7 +226,7 @@ int ii; ...@@ -175,7 +226,7 @@ int ii;
} }
// Recherche des autres elements // Recherche des autres elements
DrawStruct = PickStruct(GetScreen()->m_Curseur, GetScreen()->EEDrawList, DrawStruct = PickStruct(refpoint, GetScreen()->EEDrawList,
SEARCHALL); SEARCHALL);
if( DrawStruct ) if( DrawStruct )
{ {
...@@ -188,9 +239,9 @@ int ii; ...@@ -188,9 +239,9 @@ int ii;
/**************************************************************/ /***********************************************************************/
void WinEDA_DrawFrame::GeneralControle(wxDC *DC, wxPoint Mouse) void WinEDA_DrawFrame::GeneralControle(wxDC *DC, wxPoint MousePositionInPixels)
/**************************************************************/ /***********************************************************************/
{ {
wxSize delta; wxSize delta;
int zoom = m_CurrentScreen->GetZoom(); int zoom = m_CurrentScreen->GetZoom();
...@@ -199,7 +250,7 @@ int hotkey = 0; ...@@ -199,7 +250,7 @@ int hotkey = 0;
ActiveScreen = (SCH_SCREEN *) m_CurrentScreen; ActiveScreen = (SCH_SCREEN *) m_CurrentScreen;
curpos = DrawPanel->CursorRealPosition(Mouse); curpos = m_CurrentScreen->m_MousePosition;
oldpos = m_CurrentScreen->m_Curseur; oldpos = m_CurrentScreen->m_Curseur;
delta.x = m_CurrentScreen->GetGrid().x / zoom; delta.x = m_CurrentScreen->GetGrid().x / zoom;
...@@ -252,26 +303,26 @@ int hotkey = 0; ...@@ -252,26 +303,26 @@ int hotkey = 0;
case WXK_NUMPAD8 : /* Deplacement curseur vers le haut */ case WXK_NUMPAD8 : /* Deplacement curseur vers le haut */
case WXK_UP : case WXK_UP :
Mouse.y -= delta.y; MousePositionInPixels.y -= delta.y;
DrawPanel->MouseTo(Mouse); DrawPanel->MouseTo(MousePositionInPixels);
break ; break ;
case WXK_NUMPAD2: /* Deplacement curseur vers le bas */ case WXK_NUMPAD2: /* Deplacement curseur vers le bas */
case WXK_DOWN: case WXK_DOWN:
Mouse.y += delta.y; MousePositionInPixels.y += delta.y;
DrawPanel->MouseTo(Mouse); DrawPanel->MouseTo(MousePositionInPixels);
break ; break ;
case WXK_NUMPAD4: /* Deplacement curseur vers la gauche */ case WXK_NUMPAD4: /* Deplacement curseur vers la gauche */
case WXK_LEFT : case WXK_LEFT :
Mouse.x -= delta.x; MousePositionInPixels.x -= delta.x;
DrawPanel->MouseTo(Mouse); DrawPanel->MouseTo(MousePositionInPixels);
break ; break ;
case WXK_NUMPAD6: /* Deplacement curseur vers la droite */ case WXK_NUMPAD6: /* Deplacement curseur vers la droite */
case WXK_RIGHT: case WXK_RIGHT:
Mouse.x += delta.x; MousePositionInPixels.x += delta.x;
DrawPanel->MouseTo(Mouse); DrawPanel->MouseTo(MousePositionInPixels);
break; break;
case WXK_INSERT: case WXK_INSERT:
......
...@@ -254,11 +254,10 @@ DrawPickedStruct * PickedItem, *PickedList = NULL; ...@@ -254,11 +254,10 @@ DrawPickedStruct * PickedItem, *PickedList = NULL;
/*****************************************************************/ /*****************************************************************/
void LocateAndDeleteItem(WinEDA_SchematicFrame * frame, wxDC * DC) bool LocateAndDeleteItem(WinEDA_SchematicFrame * frame, wxDC * DC)
/*****************************************************************/ /*****************************************************************/
/* Locate and delete the item found under the mouse cousor
/* Routine d'effacement d'un element de schema ( et placement en "undelete" ) If more than one item found: the priority order is:
si plusieurs elements sont superposes: ordre de priorite:
1 : MARQUEUR 1 : MARQUEUR
2 : JUNCTION 2 : JUNCTION
2 : NOCONNECT 2 : NOCONNECT
...@@ -267,11 +266,13 @@ void LocateAndDeleteItem(WinEDA_SchematicFrame * frame, wxDC * DC) ...@@ -267,11 +266,13 @@ void LocateAndDeleteItem(WinEDA_SchematicFrame * frame, wxDC * DC)
5 : TEXT 5 : TEXT
6 : COMPOSANT 6 : COMPOSANT
7 : SHEET 7 : SHEET
*/
return TRUE if an item was deleted
*/
{ {
EDA_BaseStruct * DelStruct; EDA_BaseStruct * DelStruct;
SCH_SCREEN * screen = frame->GetScreen(); SCH_SCREEN * screen = frame->GetScreen();
bool item_deleted = FALSE;
DelStruct = PickStruct(screen->m_Curseur, DelStruct = PickStruct(screen->m_Curseur,
screen->EEDrawList, MARKERITEM); screen->EEDrawList, MARKERITEM);
...@@ -298,7 +299,10 @@ SCH_SCREEN * screen = frame->GetScreen(); ...@@ -298,7 +299,10 @@ SCH_SCREEN * screen = frame->GetScreen();
DeleteStruct(frame->DrawPanel, DC, DelStruct); DeleteStruct(frame->DrawPanel, DC, DelStruct);
frame->TestDanglingEnds(frame->m_CurrentScreen->EEDrawList, DC); frame->TestDanglingEnds(frame->m_CurrentScreen->EEDrawList, DC);
frame->GetScreen()->SetModify(); frame->GetScreen()->SetModify();
item_deleted = TRUE;
} }
return item_deleted;
} }
......
This diff is collapsed.
...@@ -39,16 +39,12 @@ ...@@ -39,16 +39,12 @@
////@begin control identifiers ////@begin control identifiers
#define ID_DIALOG 10000 #define ID_DIALOG 10000
#define SYMBOL_WINEDA_BUILD_BOM_FRAME_STYLE wxDEFAULT_DIALOG_STYLE|wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxSTAY_ON_TOP|wxCLOSE_BOX
#define SYMBOL_WINEDA_BUILD_BOM_FRAME_TITLE _("List of Material")
#define SYMBOL_WINEDA_BUILD_BOM_FRAME_IDNAME ID_DIALOG
#define SYMBOL_WINEDA_BUILD_BOM_FRAME_SIZE wxSize(400, 300)
#define SYMBOL_WINEDA_BUILD_BOM_FRAME_POSITION wxDefaultPosition
#define ID_CHECKBOX 10001 #define ID_CHECKBOX 10001
#define ID_CHECKBOX2 10004 #define ID_CHECKBOX2 10004
#define ID_CHECKBOX1 10003 #define ID_CHECKBOX1 10003
#define ID_CHECKBOX3 10005 #define ID_CHECKBOX3 10005
#define ID_CHECKBOX4 10006 #define ID_CHECKBOX4 10006
#define ID_RADIOBOX1 10009
#define ID_CHECKBOX_FIELD1 10007 #define ID_CHECKBOX_FIELD1 10007
#define ID_CHECKBOX_FIELD2 10008 #define ID_CHECKBOX_FIELD2 10008
#define ID_CHECKBOX_FIELD4 10010 #define ID_CHECKBOX_FIELD4 10010
...@@ -57,6 +53,11 @@ ...@@ -57,6 +53,11 @@
#define ID_CHECKBOX_FIELD7 10013 #define ID_CHECKBOX_FIELD7 10013
#define ID_CHECKBOX_FIELD8 10014 #define ID_CHECKBOX_FIELD8 10014
#define ID_CHECKBOX5 10002 #define ID_CHECKBOX5 10002
#define SYMBOL_WINEDA_BUILD_BOM_FRAME_STYLE wxDEFAULT_DIALOG_STYLE|wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxSTAY_ON_TOP|wxCLOSE_BOX
#define SYMBOL_WINEDA_BUILD_BOM_FRAME_TITLE _("List of Material")
#define SYMBOL_WINEDA_BUILD_BOM_FRAME_IDNAME ID_DIALOG
#define SYMBOL_WINEDA_BUILD_BOM_FRAME_SIZE wxSize(400, 300)
#define SYMBOL_WINEDA_BUILD_BOM_FRAME_POSITION wxDefaultPosition
////@end control identifiers ////@end control identifiers
/*! /*!
...@@ -119,9 +120,10 @@ public: ...@@ -119,9 +120,10 @@ public:
wxIcon GetIconResource( const wxString& name ); wxIcon GetIconResource( const wxString& name );
////@end WinEDA_Build_BOM_Frame member function declarations ////@end WinEDA_Build_BOM_Frame member function declarations
void GenereListeOfItems(const wxString & FullFileName); void GenereListeOfItems(const wxString & FullFileName);
int PrintListeCmpByRef( FILE * f, EDA_BaseStruct ** List, int NbItems ); void CreateExportList(const wxString & FullFileName);
int PrintListeCmpByRef( FILE * f, EDA_BaseStruct ** List, int NbItems, bool CompactForm = FALSE );
int PrintListeCmpByVal( FILE *f, EDA_BaseStruct **List, int NbItems); int PrintListeCmpByVal( FILE *f, EDA_BaseStruct **List, int NbItems);
void PrintFieldData(FILE * f, EDA_SchComponentStruct * DrawLibItem); void PrintFieldData(FILE * f, EDA_SchComponentStruct * DrawLibItem, bool CompactForm = FALSE);
/// Should we show tooltips? /// Should we show tooltips?
...@@ -133,6 +135,7 @@ public: ...@@ -133,6 +135,7 @@ public:
wxCheckBox* m_ListCmpbyValItems; wxCheckBox* m_ListCmpbyValItems;
wxCheckBox* m_GenListLabelsbyVal; wxCheckBox* m_GenListLabelsbyVal;
wxCheckBox* m_GenListLabelsbySheet; wxCheckBox* m_GenListLabelsbySheet;
wxRadioBox* m_OutputFormCtrl;
wxStaticBoxSizer* m_FieldsToAppendListSizer; wxStaticBoxSizer* m_FieldsToAppendListSizer;
wxCheckBox* m_AddField1; wxCheckBox* m_AddField1;
wxCheckBox* m_AddField2; wxCheckBox* m_AddField2;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<string name="title">""</string> <string name="title">""</string>
<string name="author">""</string> <string name="author">""</string>
<string name="description">""</string> <string name="description">""</string>
<long name="doc_count">16</long> <long name="doc_count">17</long>
<string name="xrc_filename">""</string> <string name="xrc_filename">""</string>
<bool name="convert_images_to_xpm">0</bool> <bool name="convert_images_to_xpm">0</bool>
<bool name="inline_images">0</bool> <bool name="inline_images">0</bool>
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
<string name="copyright_string">"License GNU"</string> <string name="copyright_string">"License GNU"</string>
<string name="resource_prefix">""</string> <string name="resource_prefix">""</string>
<bool name="use_two_step_construction">0</bool> <bool name="use_two_step_construction">0</bool>
<bool name="use_enums">0</bool>
<string name="current_platform">"&lt;All platforms&gt;"</string> <string name="current_platform">"&lt;All platforms&gt;"</string>
<string name="target_wx_version">"&lt;Any&gt;"</string> <string name="target_wx_version">"&lt;Any&gt;"</string>
<string name="cpp_header_comment">"///////////////////////////////////////////////////////////////////////////// <string name="cpp_header_comment">"/////////////////////////////////////////////////////////////////////////////
...@@ -95,9 +96,17 @@ ...@@ -95,9 +96,17 @@
<string name="source_encoding">"&lt;System&gt;"</string> <string name="source_encoding">"&lt;System&gt;"</string>
<string name="project_encoding">"&lt;System&gt;"</string> <string name="project_encoding">"&lt;System&gt;"</string>
<string name="resource_archive">""</string> <string name="resource_archive">""</string>
<long name="text_file_type">0</long>
<bool name="use_tabs">0</bool>
<long name="indent_size">4</long>
<string name="whitespace_after_return_type">" "</string>
<string name="resource_xrc_cpp">""</string>
<bool name="use_resource_archive">0</bool> <bool name="use_resource_archive">0</bool>
<bool name="use_generated_xrc_cpp">0</bool>
<bool name="always_generate_xrc">1</bool>
<bool name="archive_xrc_files">1</bool> <bool name="archive_xrc_files">1</bool>
<bool name="archive_image_files">1</bool> <bool name="archive_image_files">1</bool>
<bool name="xrc_retain_relative_paths">1</bool>
</header> </header>
<data> <data>
<document> <document>
...@@ -237,7 +246,9 @@ ...@@ -237,7 +246,9 @@
<bool name="proxy-wxRAISED_BORDER">0</bool> <bool name="proxy-wxRAISED_BORDER">0</bool>
<bool name="proxy-wxSTATIC_BORDER">0</bool> <bool name="proxy-wxSTATIC_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxCLIP_CHILDREN ">0</bool> <bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxCLIP_CHILDREN">0</bool>
<bool name="proxy-wxTAB_TRAVERSAL">0</bool> <bool name="proxy-wxTAB_TRAVERSAL">0</bool>
<bool name="proxy-wxWS_EX_VALIDATE_RECURSIVELY">0</bool> <bool name="proxy-wxWS_EX_VALIDATE_RECURSIVELY">0</bool>
<bool name="proxy-wxWS_EX_BLOCK_EVENTS">1</bool> <bool name="proxy-wxWS_EX_BLOCK_EVENTS">1</bool>
...@@ -331,6 +342,8 @@ ...@@ -331,6 +342,8 @@
<bool name="proxy-wxCHK_3STATE">0</bool> <bool name="proxy-wxCHK_3STATE">0</bool>
<bool name="proxy-wxCHK_ALLOW_3RD_STATE_FOR_USER">0</bool> <bool name="proxy-wxCHK_ALLOW_3RD_STATE_FOR_USER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string> <string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long> <long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long> <long name="proxy-Y">-1</long>
...@@ -382,6 +395,8 @@ ...@@ -382,6 +395,8 @@
<bool name="proxy-wxCHK_3STATE">0</bool> <bool name="proxy-wxCHK_3STATE">0</bool>
<bool name="proxy-wxCHK_ALLOW_3RD_STATE_FOR_USER">0</bool> <bool name="proxy-wxCHK_ALLOW_3RD_STATE_FOR_USER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string> <string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long> <long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long> <long name="proxy-Y">-1</long>
...@@ -401,6 +416,32 @@ ...@@ -401,6 +416,32 @@
<string name="proxy-Custom arguments">""</string> <string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string> <string name="proxy-Custom ctor arguments">""</string>
</document> </document>
<document>
<string name="title">"wxBoxSizer V"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"sizer"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"21/1/2007"</string>
<string name="proxy-type">"wbBoxSizerProxy"</string>
<string name="proxy-Orientation">"Vertical"</string>
<string name="proxy-Member variable name">"m_ShapeWidthBoxSizer"</string>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">0</bool>
<bool name="proxy-wxRIGHT">0</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
</document>
<document> <document>
<string name="title">"wxRadioBox: ID_RADIOBOX"</string> <string name="title">"wxRadioBox: ID_RADIOBOX"</string>
<string name="type">"dialog-control-document"</string> <string name="type">"dialog-control-document"</string>
...@@ -418,6 +459,8 @@ ...@@ -418,6 +459,8 @@
<string name="proxy-Member variable name">"m_Filled"</string> <string name="proxy-Member variable name">"m_Filled"</string>
<string name="proxy-Label">"Fill:"</string> <string name="proxy-Label">"Fill:"</string>
<long name="proxy-Major dimension count">1</long> <long name="proxy-Major dimension count">1</long>
<string name="proxy-Items">"Void|Filled|BgFilled"</string>
<long name="proxy-Initial value">0</long>
<string name="proxy-Help text">""</string> <string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">""</string>
<string name="proxy-Background colour">""</string> <string name="proxy-Background colour">""</string>
...@@ -430,8 +473,9 @@ ...@@ -430,8 +473,9 @@
<string name="proxy-Data validator">""</string> <string name="proxy-Data validator">""</string>
<bool name="proxy-wxRA_SPECIFY_ROWS">0</bool> <bool name="proxy-wxRA_SPECIFY_ROWS">0</bool>
<bool name="proxy-wxRA_SPECIFY_COLS">1</bool> <bool name="proxy-wxRA_SPECIFY_COLS">1</bool>
<string name="proxy-Items">"Void|Filled|BgFilled"</string>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string> <string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long> <long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long> <long name="proxy-Y">-1</long>
...@@ -510,6 +554,8 @@ ...@@ -510,6 +554,8 @@
<bool name="proxy-wxBU_EXACTFIT">0</bool> <bool name="proxy-wxBU_EXACTFIT">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool> <bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string> <string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long> <long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long> <long name="proxy-Y">-1</long>
...@@ -562,6 +608,8 @@ ...@@ -562,6 +608,8 @@
<bool name="proxy-wxBU_EXACTFIT">0</bool> <bool name="proxy-wxBU_EXACTFIT">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool> <bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string> <string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long> <long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long> <long name="proxy-Y">-1</long>
......
This diff is collapsed.
...@@ -38,11 +38,6 @@ ...@@ -38,11 +38,6 @@
////@begin control identifiers ////@begin control identifiers
#define ID_DIALOG 10000 #define ID_DIALOG 10000
#define SYMBOL_KICONFIGEESCHEMAFRAME_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX
#define SYMBOL_KICONFIGEESCHEMAFRAME_TITLE _("Dialog")
#define SYMBOL_KICONFIGEESCHEMAFRAME_IDNAME ID_DIALOG
#define SYMBOL_KICONFIGEESCHEMAFRAME_SIZE wxSize(400, 300)
#define SYMBOL_KICONFIGEESCHEMAFRAME_POSITION wxDefaultPosition
#define SAVE_CFG 10001 #define SAVE_CFG 10001
#define FORMAT_NETLIST 10006 #define FORMAT_NETLIST 10006
#define DEL_LIB 10002 #define DEL_LIB 10002
...@@ -50,6 +45,12 @@ ...@@ -50,6 +45,12 @@
#define INSERT_LIB 10004 #define INSERT_LIB 10004
#define ID_LIST_LIBS 10005 #define ID_LIST_LIBS 10005
#define ID_TEXTCTRL 10007 #define ID_TEXTCTRL 10007
#define ID_LIB_PATH_SEL 10008
#define SYMBOL_KICONFIGEESCHEMAFRAME_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX
#define SYMBOL_KICONFIGEESCHEMAFRAME_TITLE _("Dialog")
#define SYMBOL_KICONFIGEESCHEMAFRAME_IDNAME ID_DIALOG
#define SYMBOL_KICONFIGEESCHEMAFRAME_SIZE wxSize(400, 300)
#define SYMBOL_KICONFIGEESCHEMAFRAME_POSITION wxDefaultPosition
////@end control identifiers ////@end control identifiers
/*! /*!
...@@ -100,6 +101,9 @@ public: ...@@ -100,6 +101,9 @@ public:
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for INSERT_LIB /// wxEVT_COMMAND_BUTTON_CLICKED event handler for INSERT_LIB
void OnInsertLibClick( wxCommandEvent& event ); void OnInsertLibClick( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_LIB_PATH_SEL
void OnLibPathSelClick( wxCommandEvent& event );
////@end KiConfigEeschemaFrame event handler declarations ////@end KiConfigEeschemaFrame event handler declarations
////@begin KiConfigEeschemaFrame member function declarations ////@begin KiConfigEeschemaFrame member function declarations
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -86,7 +86,7 @@ int ii; ...@@ -86,7 +86,7 @@ int ii;
m_FieldSize[ii] = m_Cmp->m_Field[ii].m_Size.x; m_FieldSize[ii] = m_Cmp->m_Field[ii].m_Size.x;
m_FieldFlags[ii] = m_FieldFlags[ii] =
(m_Cmp->m_Field[ii].m_Attributs & TEXT_NO_VISIBLE) ? 0 : 1; (m_Cmp->m_Field[ii].m_Attributs & TEXT_NO_VISIBLE) ? 0 : 1;
m_FieldOrient[ii] = m_Cmp->m_Field[ii].m_Orient; m_FieldOrient[ii] = m_Cmp->m_Field[ii].m_Orient == TEXT_ORIENT_VERT ? 1 : 0;
if ( m_Cmp->m_Field[ii].m_Text.IsEmpty() ) continue; if ( m_Cmp->m_Field[ii].m_Text.IsEmpty() ) continue;
// These values have meaning only if this field is not void: // These values have meaning only if this field is not void:
...@@ -372,7 +372,7 @@ wxString newname; ...@@ -372,7 +372,7 @@ wxString newname;
m_Cmp->m_Field[ii].m_Attributs &= ~TEXT_NO_VISIBLE; m_Cmp->m_Field[ii].m_Attributs &= ~TEXT_NO_VISIBLE;
else else
m_Cmp->m_Field[ii].m_Attributs |= TEXT_NO_VISIBLE; m_Cmp->m_Field[ii].m_Attributs |= TEXT_NO_VISIBLE;
m_Cmp->m_Field[ii].m_Orient = m_FieldOrient[ii] ? 1 : 0; m_Cmp->m_Field[ii].m_Orient = m_FieldOrient[ii] ? TEXT_ORIENT_VERT : TEXT_ORIENT_HORIZ;
m_Cmp->m_Field[ii].m_Pos = m_FieldPosition[ii]; m_Cmp->m_Field[ii].m_Pos = m_FieldPosition[ii];
m_Cmp->m_Field[ii].m_Pos.x += cmp_pos.x; m_Cmp->m_Field[ii].m_Pos.x += cmp_pos.x;
m_Cmp->m_Field[ii].m_Pos.y += cmp_pos.y; m_Cmp->m_Field[ii].m_Pos.y += cmp_pos.y;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -19,12 +19,13 @@ static void LoadSubHierarchy(WinEDA_SchematicFrame * frame, EDA_BaseStruct *Draw ...@@ -19,12 +19,13 @@ static void LoadSubHierarchy(WinEDA_SchematicFrame * frame, EDA_BaseStruct *Draw
/* Variables locales */ /* Variables locales */
/************************************************************************************/ /************************************************************************************/
int WinEDA_SchematicFrame::LoadOneEEProject(const wxString & FileName, bool IsNew) int WinEDA_SchematicFrame::LoadOneEEProject(const wxString & FileName, bool IsNew)
/************************************************************************************/ /************************************************************************************/
/* /*
Routine de chargement d'un projet ( schema principal "Root" et ses Load an entire project ( shcematic root file and its subhierarchies, the configuration and the libs
sous schemas ( hierarchie ) which are not already loaded)
*/ */
{ {
SCH_SCREEN *screen; SCH_SCREEN *screen;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment