some enhancements. See changelog
This commit is contained in:
parent
2f1b4cd1d9
commit
44c0105709
|
@ -1,35 +1,41 @@
|
|||
/* XPM */
|
||||
static const char * add_tracks_xpm[] = {
|
||||
"16 16 16 1",
|
||||
" c None",
|
||||
". c #007D00",
|
||||
"+ c #006100",
|
||||
"@ c #004400",
|
||||
"# c #007800",
|
||||
"$ c #007B00",
|
||||
"% c #004000",
|
||||
"& c #007C00",
|
||||
"* c #006500",
|
||||
"= c #007A00",
|
||||
"- c #004600",
|
||||
"; c #D72E2E",
|
||||
"> c #A32222",
|
||||
", c #C22929",
|
||||
"' c #D22D2D",
|
||||
") c #6D1717",
|
||||
" ",
|
||||
"........ ",
|
||||
"........+ ",
|
||||
" @.# ",
|
||||
" $.% ",
|
||||
" &.* ",
|
||||
" .= ",
|
||||
" $.- ",
|
||||
" ;;; ........",
|
||||
" ;;;;; .......",
|
||||
";;> >;, ",
|
||||
";; ;' ",
|
||||
";;> ;;, ",
|
||||
" ;;;;;) ",
|
||||
" ,',) ",
|
||||
" "};
|
||||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern const char *add_tracks_xpm[];
|
||||
|
||||
#else
|
||||
const char * add_tracks_xpm[] = {
|
||||
"16 16 16 1",
|
||||
" c None",
|
||||
". c #007D00",
|
||||
"+ c #006100",
|
||||
"@ c #004400",
|
||||
"# c #007800",
|
||||
"$ c #007B00",
|
||||
"% c #004000",
|
||||
"& c #007C00",
|
||||
"* c #006500",
|
||||
"= c #007A00",
|
||||
"- c #004600",
|
||||
"; c #D72E2E",
|
||||
"> c #A32222",
|
||||
", c #C22929",
|
||||
"' c #D22D2D",
|
||||
") c #6D1717",
|
||||
" ",
|
||||
"........ ",
|
||||
"........+ ",
|
||||
" @.# ",
|
||||
" $.% ",
|
||||
" &.* ",
|
||||
" .= ",
|
||||
" $.- ",
|
||||
" ;;; ........",
|
||||
" ;;;;; .......",
|
||||
";;> >;, ",
|
||||
";; ;' ",
|
||||
";;> ;;, ",
|
||||
" ;;;;;) ",
|
||||
" ,',) ",
|
||||
" "};
|
||||
|
||||
#endif
|
|
@ -0,0 +1,39 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern const char *auto_track_width_xpm[];
|
||||
|
||||
#else
|
||||
const char * auto_track_width_xpm[] = {
|
||||
"16 16 14 1",
|
||||
" c None",
|
||||
", c #008080",
|
||||
". c #00E000",
|
||||
"+ c #006100",
|
||||
"@ c #004400",
|
||||
"# c #007800",
|
||||
"$ c #007B00",
|
||||
"% c #004000",
|
||||
"& c #007C00",
|
||||
"* c #006500",
|
||||
"= c #007A00",
|
||||
"- c #004600",
|
||||
"x c #FF2D2D",
|
||||
"o c #0000FF",
|
||||
" ",
|
||||
"........+ ",
|
||||
".........+ ",
|
||||
" @..# ",
|
||||
" $.% o o ",
|
||||
" &..* o ",
|
||||
" xxxx..= o ",
|
||||
" x xxx..- o ",
|
||||
" x x ........",
|
||||
" x x .......",
|
||||
"x x , o ",
|
||||
"x x ,, o ",
|
||||
"x x,,,,,,,,,,o ",
|
||||
"x x ,, o ",
|
||||
"x x , o o ",
|
||||
"x x "};
|
||||
|
||||
#endif
|
|
@ -1,5 +1,9 @@
|
|||
/* XPM */
|
||||
static const char * width_segment_xpm[] = {
|
||||
#ifndef XPMMAIN
|
||||
extern const char *width_segment_xpm[];
|
||||
|
||||
#else
|
||||
const char * width_segment_xpm[] = {
|
||||
"16 16 3 1",
|
||||
" c None",
|
||||
"! c black",
|
||||
|
@ -20,3 +24,4 @@ static const char * width_segment_xpm[] = {
|
|||
" ! ",
|
||||
" ! ",
|
||||
" "};
|
||||
#endif
|
|
@ -1,60 +1,3 @@
|
|||
Can somebody please come to my rescue on this one:
|
||||
|
||||
This was posted to the developer's list. It would be nice to get an
|
||||
apology or at least a link to the posting from which he launches such an attack:
|
||||
|
||||
|
||||
|
||||
|
||||
Dick, enough of this whining. The article on gnu.org is more than an opinion
|
||||
piece - unless
|
||||
you really don't know what/who gnu.org is. While I and others here do appreciate
|
||||
contributions made by all involved, your contributions do not entitle you to the
|
||||
rest of the
|
||||
code base. The GPL license is not revocable. You can take your lines of the
|
||||
code (and only
|
||||
just what you wrote) and do what you want, but you can't take Jean Pierre's
|
||||
code, even if
|
||||
you have modified it, without violating the GPL.
|
||||
|
||||
I'm hereby asking Jean Pierre if he could please make it clear to this list if
|
||||
he has ANY
|
||||
intent of turning this package away from GPL for Dick or anyone else. I think
|
||||
all involved
|
||||
should know here and now if this is going to remain an open GPL project or not.
|
||||
I don't
|
||||
think anyone else here is interested in seeing kicad become a proprietary
|
||||
package.
|
||||
|
||||
If Dick thinks he can just take the entire code base as his, I'm sure that FSF
|
||||
would help
|
||||
with the legal costs of stopping him. (To donate to FSF see
|
||||
http://www.fsf.org/associate/support_freedom/donate )
|
||||
|
||||
FSF has stepped up to the plate before and stopped people from appropriating GPL
|
||||
software
|
||||
for their own ends. The cost of IP litigation is not cheap, so I would recommend
|
||||
Dick to
|
||||
talk to an IP attorney before doing something stupid.
|
||||
|
||||
|
||||
----------------------------------------------------------------
|
||||
Karl Schmidt EMail Karl@...
|
||||
Transtronics, Inc. WEB http://xtronics.com
|
||||
3209 West 9th Street Ph (785) 841-3089
|
||||
Lawrence, KS 66049 FAX (785) 841-0434
|
||||
|
||||
A clear conscience is usually the sign of a bad memory.
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Change Log for Kicad
|
||||
|
@ -63,6 +6,16 @@ Started 2007-June-11
|
|||
Please add newer entries at the top, list the date and your name with
|
||||
email address.
|
||||
|
||||
2008-Jan-28 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
|
||||
================================================================================
|
||||
+pcbnew:
|
||||
- Better criteria to find starting poind in zone filling: the filling alg. uses
|
||||
pads, vias and track ends to find where start the filling.
|
||||
- Added a tool + option in popup menu in track mode (select track width):
|
||||
when creating a track, if activated: if we starts on an existing track,
|
||||
the new track takes the width of the existing track
|
||||
|
||||
|
||||
|
||||
2008-Jan-27 UPDATE Dick Hollenbeck <dick@softplc.com>
|
||||
================================================================================
|
||||
|
|
|
@ -1,309 +0,0 @@
|
|||
libs.dynamic
|
||||
|
||||
CC = `wx-config --cc`
|
||||
# Note: at least on Debian using gcc gives a smaller binary than using:
|
||||
# `wx-config --ld`
|
||||
LD = gcc
|
||||
|
||||
SRCSUFF = .cpp
|
||||
OBJSUFF = .o
|
||||
FINAL = 1
|
||||
|
||||
WXPATH = `wx-config --prefix`/lib
|
||||
PREFIX_WX_LIBS = `wx-config --basename`
|
||||
SUFFIX_WX_LIBGL = _gl-$(LIBVERSION)
|
||||
|
||||
LIBSTDC = -lstdc++
|
||||
LIBVERSION=`wx-config --release`
|
||||
WXSYSLIB= `wx-config --libs`
|
||||
|
||||
# attention à l'ordre des libairies
|
||||
LIBS = -L/usr/local/lib -L/usr/X11R6/lib\
|
||||
$(EXTRALIBS) $(WXSYSLIB)\
|
||||
$(LIBSTDC)
|
||||
|
||||
LIBS3D = -l$(PREFIX_WX_LIBS)$(SUFFIX_WX_LIBGL) -lGL -lGLU
|
||||
|
||||
# Sub-projects
|
||||
KICAD_SUBDIRS = common 3d-viewer eeschema pcbnew cvpcb kicad gerbview wxhtml
|
||||
# How to invoke make
|
||||
MAKE := $(MAKE) -f makefile.gtk
|
||||
# File with the libraries definitions
|
||||
LIBSDEF = libs.dynamic
|
||||
# Prefix, can be from command line
|
||||
ifneq ($(strip $(prefix)),)
|
||||
IPREFIX=$(prefix)
|
||||
else
|
||||
IPREFIX=/usr/local/kicad/linux
|
||||
endif
|
||||
# Install tool, can be from command line
|
||||
ifeq ($(INSTALL),)
|
||||
INSTALL=install
|
||||
endif
|
||||
# C Flags, can be from command line
|
||||
ifeq ($(CFLAGS),)
|
||||
CFLAGS=-Wall -O2
|
||||
#CFLAGS=-Wall -Werror -g3
|
||||
endif
|
||||
CFLAGS:=$(CFLAGS) `wx-config --cxxflags`
|
||||
# Linker flags (strip)
|
||||
LDFLAGS = -s
|
||||
export
|
||||
|
||||
.PHONY: $(KICAD_SUBDIRS)
|
||||
|
||||
all: $(KICAD_SUBDIRS)
|
||||
|
||||
common:
|
||||
cd $@ ; $(MAKE)
|
||||
|
||||
3d-viewer:
|
||||
cd $@ ; $(MAKE)
|
||||
|
||||
eeschema:
|
||||
cd $@ ; $(MAKE)
|
||||
|
||||
pcbnew:
|
||||
cd $@ ; $(MAKE)
|
||||
|
||||
cvpcb:
|
||||
cd $@ ; $(MAKE)
|
||||
|
||||
kicad:
|
||||
cd $@ ; $(MAKE)
|
||||
|
||||
gerbview:
|
||||
cd $@ ; $(MAKE)
|
||||
|
||||
wxhtml:
|
||||
cd $@ ; $(MAKE)
|
||||
|
||||
install:
|
||||
@for d in $(KICAD_SUBDIRS); do (cd $$d && $(MAKE) install); done
|
||||
|
||||
clean:
|
||||
@for d in $(KICAD_SUBDIRS); do (cd $$d && $(MAKE) clean); done
|
||||
|
||||
3d-viewer/makefile.gtk
|
||||
## Makefile for 3d-viewer.a ( wxGTK - LINUX )
|
||||
|
||||
# Compiler flags.
|
||||
CPPFLAGS = $(CFLAGS) -DPCBNEW -I../pcbnew -I ../include -I../common
|
||||
|
||||
include ../$(LIBSDEF)
|
||||
|
||||
TARGET = 3d-viewer
|
||||
|
||||
all: $(TARGET).a
|
||||
|
||||
include makefile.include
|
||||
|
||||
$(TARGET).a: $(OBJECTS3D) makefile.gtk makefile.include
|
||||
rm -f $@
|
||||
ar -rv $@ $(OBJECTS3D)
|
||||
ranlib $@
|
||||
|
||||
clean:
|
||||
-rm *.o *.a *~ .*~ core *.bak *.exe *.obj 2> /dev/null
|
||||
|
||||
# No install target
|
||||
|
||||
## Makefile for common.a
|
||||
|
||||
# Compiler flags.
|
||||
CPPFLAGS = $(CFLAGS) -I./ -I../include
|
||||
EDACPPFLAGS = $(CPPFLAGS)
|
||||
|
||||
all: common.a
|
||||
|
||||
include makefile.include
|
||||
|
||||
CPPFLAGS += $(EXTRACPPFLAGS)
|
||||
EDACPPFLAGS = $(CPPFLAGS)
|
||||
|
||||
|
||||
common.a: $(OBJECTS) makefile.gtk makefile.include
|
||||
rm -f $@
|
||||
ar -rv $@ $(OBJECTS)
|
||||
ranlib $@
|
||||
|
||||
|
||||
clean:
|
||||
-rm *.o *.a *~ .*~ core *.bak *.exe *.obj 2> /dev/null
|
||||
|
||||
# No install target
|
||||
|
||||
# File: makefile
|
||||
|
||||
# Compiler flags.
|
||||
CPPFLAGS = $(CFLAGS)
|
||||
EDACPPFLAGS = $(CPPFLAGS)
|
||||
|
||||
include ../$(LIBSDEF)
|
||||
|
||||
|
||||
TARGET = cvpcb
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
include makefile.include
|
||||
|
||||
CPPFLAGS += $(EXTRACPPFLAGS)
|
||||
EDACPPFLAGS = $(CPPFLAGS)
|
||||
|
||||
|
||||
$(TARGET): $(OBJECTS) makefile.gtk makefile.include $(EXTRALIBS) ../$(LIBSDEF) $(LIBVIEWER3D)
|
||||
$(LD) $(OBJECTS) $(LDFLAGS) $(LIBS) $(LIBVIEWER3D) $(LIBS3D) -o $(TARGET)
|
||||
|
||||
install:
|
||||
$(INSTALL) -d -m 0755 $(IPREFIX)
|
||||
$(INSTALL) -m 0755 $(TARGET) $(IPREFIX)
|
||||
|
||||
clean:
|
||||
-rm *.o *.a *~ .*~ core *.bak *.exe *.obj $(TARGET) 2> /dev/null
|
||||
|
||||
## Makefile for eeschema
|
||||
|
||||
include ../$(LIBSDEF)
|
||||
|
||||
TARGET = eeschema
|
||||
|
||||
CPPFLAGS = $(CFLAGS)
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
include makefile.include
|
||||
|
||||
CPPFLAGS += $(EXTRACPPFLAGS)
|
||||
EDACPPFLAGS = $(CPPFLAGS)
|
||||
|
||||
$(TARGET): $(OBJECTS) makefile.gtk makefile.include $(EXTRALIBS) ../$(LIBSDEF)
|
||||
$(LD) $(OBJECTS) $(LDFLAGS) $(LIBS) -o $(TARGET)
|
||||
|
||||
install:
|
||||
$(INSTALL) -d -m 0755 $(IPREFIX)
|
||||
$(INSTALL) -m 0755 $(TARGET) $(IPREFIX)
|
||||
|
||||
clean:
|
||||
-rm *.o *.a *~ .*~ core *.bak *.exe *.obj $(TARGET) 2> /dev/null
|
||||
|
||||
|
||||
## Makefile for GERBVIEW et wxGTK
|
||||
|
||||
# Compiler flags.
|
||||
CPPFLAGS = $(CFLAGS)
|
||||
|
||||
EXTRALIBS = ../common/common.a
|
||||
include ../$(LIBSDEF)
|
||||
|
||||
|
||||
TARGET = gerbview
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
include makefile.include
|
||||
|
||||
CPPFLAGS += $(EXTRACPPFLAGS)
|
||||
EDACPPFLAGS = $(CPPFLAGS)
|
||||
|
||||
|
||||
$(TARGET): $(OBJECTS) makefile.gtk makefile.include $(EXTRALIBS) ../$(LIBSDEF)
|
||||
$(LD) $(LDFLAGS) $(OBJECTS) $(LIBS) -o $(TARGET)
|
||||
|
||||
install:
|
||||
$(INSTALL) -d -m 0755 $(IPREFIX)
|
||||
$(INSTALL) -m 0755 $(TARGET) $(IPREFIX)
|
||||
|
||||
clean:
|
||||
-rm *.o *.a *~ .*~ core *.bak *.exe *.obj $(TARGET) 2> /dev/null
|
||||
|
||||
# File: makefile for kicad, wxGTK
|
||||
|
||||
# Compiler flags.
|
||||
CPPFLAGS = $(CFLAGS)
|
||||
|
||||
include ../$(LIBSDEF)
|
||||
|
||||
TARGET = kicad
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
include makefile.include
|
||||
|
||||
CPPFLAGS += $(EXTRACPPFLAGS)
|
||||
EDACPPFLAGS = $(CPPFLAGS)
|
||||
|
||||
|
||||
$(TARGET): $(OBJECTS) makefile.gtk $(EXTRALIBS) ../$(LIBSDEF)
|
||||
$(LD) $(OBJECTS) $(LDFLAGS) $(LIBS) -o $(TARGET)
|
||||
|
||||
install:
|
||||
$(INSTALL) -d -m 0755 $(IPREFIX)
|
||||
$(INSTALL) -m 0755 $(TARGET) $(IPREFIX)
|
||||
|
||||
clean:
|
||||
-rm *.o *.a *~ .*~ core *.bak *.exe *.obj $(TARGET) 2> /dev/null
|
||||
|
||||
## Makefile for PCBNEW et wxGTK
|
||||
|
||||
# Compiler flags.
|
||||
CPPFLAGS = $(CFLAGS)
|
||||
|
||||
include ../$(LIBSDEF)
|
||||
|
||||
TARGET = pcbnew
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
include makefile.include
|
||||
|
||||
CPPFLAGS += $(EXTRACPPFLAGS)
|
||||
EDACPPFLAGS = $(CPPFLAGS)
|
||||
|
||||
$(TARGET): $(OBJECTS) makefile.gtk makefile.include $(LIBVIEWER3D) $(EXTRALIBS) ../$(LIBSDEF)
|
||||
$(LD) $(LDFLAGS) $(OBJECTS) $(LIBS) $(LIBVIEWER3D) $(LIBS3D)\
|
||||
-o $(TARGET)
|
||||
|
||||
install:
|
||||
$(INSTALL) -d -m 0755 $(IPREFIX)
|
||||
$(INSTALL) -m 0755 $(TARGET) $(IPREFIX)
|
||||
|
||||
clean:
|
||||
-rm *.o *.a *~ .*~ core *.bak *.exe *.obj $(TARGET) 2> /dev/null
|
||||
|
||||
########################################################################
|
||||
########################################################################
|
||||
|
||||
# Compiler flags.
|
||||
CPPFLAGS = $(CFLAGS) -I./ -I../include -I../common
|
||||
|
||||
EXTRALIBS =
|
||||
|
||||
include ../$(LIBSDEF)
|
||||
|
||||
TARGET = wxhtml
|
||||
|
||||
OBJDIR =
|
||||
OBJSUFF = o
|
||||
|
||||
.SUFFIXES: .cpp .h .o .cc
|
||||
.cpp.o :
|
||||
$(CC) -c $< -o $(<:.cpp=.o) $(CPPFLAGS)
|
||||
|
||||
|
||||
DEPEND =
|
||||
|
||||
|
||||
OBJECTS = $(TARGET).o helpfrm.o
|
||||
|
||||
|
||||
$(TARGET): $(OBJECTS) makefile.gtk ../common/common.a ../$(LIBSDEF)
|
||||
$(LD) $(OBJECTS) $(LDFLAGS) $(LIBS) -o $(TARGET)
|
||||
|
||||
install:
|
||||
$(INSTALL) -d -m 0755 $(IPREFIX)
|
||||
$(INSTALL) -m 0755 $(TARGET) $(IPREFIX)
|
||||
|
||||
clean:
|
||||
-rm *.o *.a *~ .*~ core *.bak *.exe *.obj $(TARGET) 2> /dev/null
|
||||
|
|
@ -60,7 +60,7 @@ IF(WIN32)
|
|||
IF(MINGW)
|
||||
# resource compilation for mingw (http://www.cmake.org/Bug/view.php?id=4068)
|
||||
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cvpcb_rc.o
|
||||
COMMAND windres.exe -I ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMAND windres.exe -I ${CMAKE_CURRENT_SOURCE_DIR}} -I ${wxWidgets_ROOT_DIR}/include
|
||||
-i ${CMAKE_CURRENT_SOURCE_DIR}/cvpcb.rc
|
||||
-o ${CMAKE_CURRENT_BINARY_DIR}/cvpcb_rc.o)
|
||||
SET(CVPCB_RESOURCES ${CMAKE_CURRENT_BINARY_DIR}/cvpcb_rc.o)
|
||||
|
|
|
@ -106,7 +106,7 @@ IF(WIN32)
|
|||
IF(MINGW)
|
||||
# resource compilation for mingw (http://www.cmake.org/Bug/view.php?id=4068)
|
||||
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/eeschema_rc.o
|
||||
COMMAND windres.exe -I ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMAND windres.exe -I ${CMAKE_CURRENT_SOURCE_DIR}} -I ${wxWidgets_ROOT_DIR}/include
|
||||
-i ${CMAKE_CURRENT_SOURCE_DIR}/eeschema.rc
|
||||
-o ${CMAKE_CURRENT_BINARY_DIR}/eeschema_rc.o)
|
||||
SET(EESCHEMA_RESOURCES ${CMAKE_CURRENT_BINARY_DIR}/eeschema_rc.o)
|
||||
|
|
|
@ -62,7 +62,7 @@ IF(WIN32)
|
|||
IF(MINGW)
|
||||
# resource compilation for mingw (http://www.cmake.org/Bug/view.php?id=4068)
|
||||
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/gerbview_rc.o
|
||||
COMMAND windres.exe -I ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMAND windres.exe -I ${CMAKE_CURRENT_SOURCE_DIR} -I ${wxWidgets_ROOT_DIR}/include
|
||||
-i ${CMAKE_CURRENT_SOURCE_DIR}/gerbview.rc
|
||||
-o ${CMAKE_CURRENT_BINARY_DIR}/gerbview_rc.o)
|
||||
SET(GERBVIEW_RESOURCES ${CMAKE_CURRENT_BINARY_DIR}/gerbview_rc.o)
|
||||
|
|
|
@ -186,7 +186,10 @@
|
|||
#include "../bitmaps/transistor.xpm"
|
||||
#include "../bitmaps/kicad_icon_small.xpm"
|
||||
#include "../bitmaps/general_ratsnet.xpm"
|
||||
#include "../bitmaps/Add_Tracks.xpm"
|
||||
#include "../bitmaps/Auto_track_width.xpm"
|
||||
#include "../bitmaps/fill_zone.xpm"
|
||||
#include "../bitmaps/Width_Segment.xpm"
|
||||
|
||||
// Largeur du toolbar vertical
|
||||
#define VTOOLBAR_WIDTH 26
|
||||
|
|
11
include/id.h
11
include/id.h
|
@ -548,17 +548,17 @@ enum main_id {
|
|||
ID_POPUP_PCB_DELETE_TRACKNET,
|
||||
ID_POPUP_PCB_DELETE_TRACK_MNU,
|
||||
|
||||
ID_POPUP_PCB_EDIT_ZONE_PARAMS,
|
||||
ID_POPUP_PCB_DELETE_ZONE,
|
||||
ID_POPUP_PCB_MOVE_ZONE_CORNER,
|
||||
ID_POPUP_PCB_ADD_ZONE_CORNER,
|
||||
ID_POPUP_PCB_DELETE_ZONE_CORNER,
|
||||
ID_POPUP_PCB_STOP_CURRENT_EDGE_ZONE,
|
||||
ID_POPUP_PCB_PLACE_ZONE_CORNER,
|
||||
ID_POPUP_PCB_DELETE_ZONE_LAST_CREATED_CORNER,
|
||||
ID_POPUP_PCB_EDIT_ZONE_PARAMS,
|
||||
ID_POPUP_PCB_DELETE_ZONE,
|
||||
ID_POPUP_PCB_STOP_CURRENT_EDGE_ZONE,
|
||||
ID_POPUP_PCB_FILL_ALL_ZONES,
|
||||
ID_POPUP_PCB_FILL_ZONE,
|
||||
ID_POPUP_PCB_DELETE_ZONE_CONTAINER,
|
||||
ID_POPUP_PCB_PLACE_ZONE_CORNER,
|
||||
ID_POPUP_PCB_ZONE_ADD_SIMILAR_ZONE,
|
||||
ID_POPUP_PCB_ZONE_ADD_CUTOUT_ZONE,
|
||||
ID_POPUP_PCB_DELETE_ZONE_CUTOUT,
|
||||
|
@ -587,6 +587,7 @@ enum main_id {
|
|||
ID_POPUP_PCB_EXPORT_PAD_SETTINGS,
|
||||
|
||||
ID_POPUP_PCB_SELECT_WIDTH,
|
||||
ID_POPUP_PCB_SELECT_AUTO_WIDTH,
|
||||
ID_POPUP_PCB_SELECT_WIDTH1,
|
||||
ID_POPUP_PCB_SELECT_WIDTH2,
|
||||
ID_POPUP_PCB_SELECT_WIDTH3,
|
||||
|
@ -731,7 +732,7 @@ enum main_id {
|
|||
ID_AUX_TOOLBAR_PCB_VIA_SIZE,
|
||||
ID_AUX_TOOLBAR_PCB_TRACK_WIDTH,
|
||||
ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR,
|
||||
ID_AUX_TOOLBAR_PCB_UNUSED2,
|
||||
ID_AUX_TOOLBAR_PCB_SELECT_AUTO_WIDTH,
|
||||
ID_AUX_TOOLBAR_PCB_UNUSED3,
|
||||
ID_AUX_TOOLBAR_PCB_UNUSED4,
|
||||
ID_AUX_TOOLBAR_PCB_UNUSED5,
|
||||
|
|
|
@ -79,35 +79,36 @@
|
|||
/*************************************/
|
||||
/* constantes de gestion des couches */
|
||||
/*************************************/
|
||||
#define CUIVRE_LAYER (1<<COPPER_LAYER_N) ///< bit mask for copper layer
|
||||
#define LAYER_2 (1<<LAYER_N_2) ///< bit mask for layer 2
|
||||
#define LAYER_3 (1<<LAYER_N_3) ///< bit mask for layer 3
|
||||
#define LAYER_4 (1<<LAYER_N_4) ///< bit mask for layer 4
|
||||
#define LAYER_5 (1<<LAYER_N_5) ///< bit mask for layer 5
|
||||
#define LAYER_6 (1<<LAYER_N_6) ///< bit mask for layer 6
|
||||
#define LAYER_7 (1<<LAYER_N_7) ///< bit mask for layer 7
|
||||
#define LAYER_8 (1<<LAYER_N_8) ///< bit mask for layer 8
|
||||
#define LAYER_9 (1<<LAYER_N_9) ///< bit mask for layer 9
|
||||
#define LAYER_10 (1<<LAYER_N_10) ///< bit mask for layer 10
|
||||
#define LAYER_11 (1<<LAYER_N_11) ///< bit mask for layer 11
|
||||
#define LAYER_12 (1<<LAYER_N_12) ///< bit mask for layer 12
|
||||
#define LAYER_13 (1<<LAYER_N_13) ///< bit mask for layer 13
|
||||
#define LAYER_14 (1<<LAYER_N_14) ///< bit mask for layer 14
|
||||
#define LAYER_15 (1<<LAYER_N_15) ///< bit mask for layer 15
|
||||
#define CMP_LAYER (1<<LAYER_CMP_N) ///< bit mask for component layer
|
||||
#define ADHESIVE_LAYER_CU (1<<ADHESIVE_N_CU)
|
||||
#define ADHESIVE_LAYER_CMP (1<<ADHESIVE_N_CMP)
|
||||
#define SOLDERPASTE_LAYER_CU (1<<SOLDERPASTE_N_CU)
|
||||
#define SOLDERPASTE_LAYER_CMP (1<<SOLDERPASTE_N_CMP)
|
||||
#define SILKSCREEN_LAYER_CU (1<<SILKSCREEN_N_CU)
|
||||
#define SILKSCREEN_LAYER_CMP (1<<SILKSCREEN_N_CMP)
|
||||
#define SOLDERMASK_LAYER_CU (1<<SOLDERMASK_N_CU)
|
||||
#define SOLDERMASK_LAYER_CMP (1<<SOLDERMASK_N_CMP)
|
||||
#define DRAW_LAYER (1<<DRAW_N)
|
||||
#define COMMENT_LAYER (1<<COMMENT_N)
|
||||
#define ECO1_LAYER (1<<ECO1_N)
|
||||
#define ECO2_LAYER (1<<ECO2_N)
|
||||
#define EDGE_LAYER (1<<EDGE_N)
|
||||
#define CUIVRE_LAYER (1 << COPPER_LAYER_N) ///< bit mask for copper layer
|
||||
#define LAYER_2 (1 << LAYER_N_2) ///< bit mask for layer 2
|
||||
#define LAYER_3 (1 << LAYER_N_3) ///< bit mask for layer 3
|
||||
#define LAYER_4 (1 << LAYER_N_4) ///< bit mask for layer 4
|
||||
#define LAYER_5 (1 << LAYER_N_5) ///< bit mask for layer 5
|
||||
#define LAYER_6 (1 << LAYER_N_6) ///< bit mask for layer 6
|
||||
#define LAYER_7 (1 << LAYER_N_7) ///< bit mask for layer 7
|
||||
#define LAYER_8 (1 << LAYER_N_8) ///< bit mask for layer 8
|
||||
#define LAYER_9 (1 << LAYER_N_9) ///< bit mask for layer 9
|
||||
#define LAYER_10 (1 << LAYER_N_10) ///< bit mask for layer 10
|
||||
#define LAYER_11 (1 << LAYER_N_11) ///< bit mask for layer 11
|
||||
#define LAYER_12 (1 << LAYER_N_12) ///< bit mask for layer 12
|
||||
#define LAYER_13 (1 << LAYER_N_13) ///< bit mask for layer 13
|
||||
#define LAYER_14 (1 << LAYER_N_14) ///< bit mask for layer 14
|
||||
#define LAYER_15 (1 << LAYER_N_15) ///< bit mask for layer 15
|
||||
#define CMP_LAYER (1 << LAYER_CMP_N) ///< bit mask for component layer
|
||||
#define ADHESIVE_LAYER_CU (1 << ADHESIVE_N_CU)
|
||||
#define ADHESIVE_LAYER_CMP (1 << ADHESIVE_N_CMP)
|
||||
#define SOLDERPASTE_LAYER_CU (1 << SOLDERPASTE_N_CU)
|
||||
#define SOLDERPASTE_LAYER_CMP (1 << SOLDERPASTE_N_CMP)
|
||||
#define SILKSCREEN_LAYER_CU (1 << SILKSCREEN_N_CU)
|
||||
#define SILKSCREEN_LAYER_CMP (1 << SILKSCREEN_N_CMP)
|
||||
#define SOLDERMASK_LAYER_CU (1 << SOLDERMASK_N_CU)
|
||||
#define SOLDERMASK_LAYER_CMP (1 << SOLDERMASK_N_CMP)
|
||||
#define DRAW_LAYER (1 << DRAW_N)
|
||||
#define COMMENT_LAYER (1 << COMMENT_N)
|
||||
#define ECO1_LAYER (1 << ECO1_N)
|
||||
#define ECO2_LAYER (1 << ECO2_N)
|
||||
#define EDGE_LAYER (1 << EDGE_N)
|
||||
|
||||
// extra bits 0xE0000000
|
||||
/* masques generaux : */
|
||||
#define ALL_LAYERS 0x1FFFFFFF
|
||||
|
@ -133,6 +134,7 @@ enum Track_Shapes {
|
|||
class EQUIPOT;
|
||||
class MARKER;
|
||||
struct CHEVELU;
|
||||
|
||||
//class Ki_PageDescr;
|
||||
//class DrawBlockStruct;
|
||||
|
||||
|
@ -150,13 +152,15 @@ class EDA_BoardDesignSettings
|
|||
public:
|
||||
int m_CopperLayerCount; // Number of copper layers for this design
|
||||
int m_ViaDrill; // via drill (for the entire board)
|
||||
int m_ViaDrillCustomValue; // via drill for vias which must have a defined drill value
|
||||
int m_MicroViaDrill; // micro via drill (for the entire board)
|
||||
int m_CurrentViaSize; // Current via size
|
||||
int m_CurrentMicroViaSize; // Current micro via size
|
||||
bool m_MicroViasAllowed; // true to allow micro vias
|
||||
int m_ViaSizeHistory[HISTORY_NUMBER]; // Last HISTORY_NUMBER used via sizes
|
||||
int m_CurrentViaType; // via type (BLIND, TROUGHT ...), bits 1 and 2 (not 0 and 1)
|
||||
int m_CurrentViaType; // via type (VIA_BLIND_BURIED, VIA_TROUGHT VIA_MICROVIA)
|
||||
int m_CurrentTrackWidth; // current track width
|
||||
bool m_UseConnectedTrackWidth; // if true, when creating a new track starting on an existing track, use this track width
|
||||
int m_TrackWidthHistory[HISTORY_NUMBER]; // Last HISTORY_NUMBER used track widths
|
||||
int m_DrawSegmentWidth; // current graphic line width (not EDGE layer)
|
||||
int m_EdgeSegmentWidth; // current graphic line width (EDGE layer only)
|
||||
|
@ -165,7 +169,7 @@ public:
|
|||
int m_TrackClearence; // track to track and track to pads clearance
|
||||
int m_ZoneClearence; // zone to track and zone to pads clearance
|
||||
int m_MaskMargin; // Solder mask margin
|
||||
|
||||
|
||||
// Color options for screen display of the Printed Board:
|
||||
int m_PcbGridColor; // Grid color
|
||||
int m_LayerColor[32]; // Layer colors (tracks and graphic items)
|
||||
|
@ -174,16 +178,16 @@ public:
|
|||
int m_ModuleTextCUColor; // Text module color for modules on the COPPER layer
|
||||
int m_ModuleTextNOVColor; // Text module color for "invisible" texts (must be BLACK if really not displayed)
|
||||
int m_AnchorColor; // Anchor color for modules and texts
|
||||
|
||||
|
||||
int m_PadCUColor; // Pad color for the COPPER side of the pad
|
||||
int m_PadCMPColor; // Pad color for the COMPONENT side of the pad
|
||||
// Pad color for the pads of both sides is m_PadCUColor OR m_PadCMPColor (in terms of colors)
|
||||
|
||||
|
||||
int m_RatsnestColor; // Ratsnest color
|
||||
|
||||
public:
|
||||
EDA_BoardDesignSettings();
|
||||
|
||||
|
||||
/**
|
||||
* Function GetVisibleLayers
|
||||
* returns a bit-map of all the layers that are visible.
|
||||
|
@ -212,13 +216,13 @@ public:
|
|||
public:
|
||||
PCB_SCREEN( int idscreen );
|
||||
~PCB_SCREEN();
|
||||
|
||||
|
||||
PCB_SCREEN* Next() { return (PCB_SCREEN*) Pnext; }
|
||||
void Init();
|
||||
void SetNextZoom();
|
||||
void SetPreviousZoom();
|
||||
void SetLastZoom();
|
||||
|
||||
|
||||
/**
|
||||
* Function GetCurItem
|
||||
* returns the currently selected BOARD_ITEM, overriding BASE_SCREEN::GetCurItem().
|
||||
|
@ -232,17 +236,17 @@ public:
|
|||
* It is mainly used to connect BGA to the first inner layer
|
||||
* And it is allowed from an external layer to the first inner layer
|
||||
*/
|
||||
bool IsMicroViaAcceptable(void);
|
||||
bool IsMicroViaAcceptable( void );
|
||||
};
|
||||
|
||||
/**********************************/
|
||||
/* Module (Footprint) description */
|
||||
/**********************************/
|
||||
|
||||
#include "class_pad.h" // class for pads
|
||||
#include "class_edge_mod.h" // Class for footprint graphic elements
|
||||
#include "class_text_mod.h" // Class for footprint fields
|
||||
#include "class_module.h" // Class for the footprint
|
||||
#include "class_pad.h" // class for pads
|
||||
#include "class_edge_mod.h" // Class for footprint graphic elements
|
||||
#include "class_text_mod.h" // Class for footprint fields
|
||||
#include "class_module.h" // Class for the footprint
|
||||
#include "class_equipot.h"
|
||||
|
||||
|
||||
|
@ -271,7 +275,7 @@ public:
|
|||
int DisplayModText;
|
||||
bool DisplayPcbTrackFill; /* FALSE = sketch , TRUE = filled */
|
||||
bool DisplayTrackIsol;
|
||||
|
||||
|
||||
int m_DisplayViaMode; /* 0 do not show via hole,
|
||||
* 1 show via hole for non default value
|
||||
* 2 show all via hole */
|
||||
|
|
Binary file not shown.
2104
internat/fr/kicad.po
2104
internat/fr/kicad.po
File diff suppressed because it is too large
Load Diff
|
@ -17,7 +17,7 @@ IF(WIN32)
|
|||
IF(MINGW)
|
||||
# resource compilation for mingw (http://www.cmake.org/Bug/view.php?id=4068)
|
||||
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/kicad_rc.o
|
||||
COMMAND windres.exe -I ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMAND windres.exe -I ${CMAKE_CURRENT_SOURCE_DIR}} -I ${wxWidgets_ROOT_DIR}/include
|
||||
-i ${CMAKE_CURRENT_SOURCE_DIR}/kicad.rc
|
||||
-o ${CMAKE_CURRENT_BINARY_DIR}/kicad_rc.o)
|
||||
SET(KICAD_RESOURCES ${CMAKE_CURRENT_BINARY_DIR}/kicad_rc.o)
|
||||
|
|
|
@ -17,8 +17,8 @@
|
|||
|
||||
; General Product Description Definitions
|
||||
!define PRODUCT_NAME "KiCad"
|
||||
!define PRODUCT_VERSION "2007.07.09"
|
||||
!define PRODUCT_WEB_SITE "http://www.lis.inpg.fr/realise_au_lis/kicad/"
|
||||
!define PRODUCT_VERSION "2008.01.25"
|
||||
!define PRODUCT_WEB_SITE "http://iut-tice.ujf-grenoble.fr/kicad/"
|
||||
!define COMPANY_NAME ""
|
||||
!define TRADE_MARKS ""
|
||||
!define COPYRIGHT "Jean-Pierre Charras"
|
||||
|
@ -272,4 +272,4 @@ Function CheckAlreadyInstalled
|
|||
StrCmp $R0 "" +3
|
||||
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION $(ALREADY_INSTALLED) /SD IDOK IDOK +2
|
||||
Abort
|
||||
FunctionEnd
|
||||
FunctionEnd
|
||||
|
|
|
@ -153,7 +153,7 @@ IF(WIN32)
|
|||
IF(MINGW)
|
||||
# resource compilation for mingw (http://www.cmake.org/Bug/view.php?id=4068)
|
||||
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/pcbnew_rc.o
|
||||
COMMAND windres.exe -I ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMAND windres.exe -I ${CMAKE_CURRENT_SOURCE_DIR}} -I ${wxWidgets_ROOT_DIR}/include
|
||||
-i ${CMAKE_CURRENT_SOURCE_DIR}/pcbnew.rc
|
||||
-o ${CMAKE_CURRENT_BINARY_DIR}/pcbnew_rc.o)
|
||||
SET(PCBNEW_RESOURCES ${CMAKE_CURRENT_BINARY_DIR}/pcbnew_rc.o)
|
||||
|
|
|
@ -11,9 +11,9 @@ class Pcb3D_GLCanvas;
|
|||
class D_PAD : public BOARD_ITEM
|
||||
{
|
||||
private:
|
||||
int m_NetCode; // Net number for fast comparisons
|
||||
int m_NetCode; // Net number for fast comparisons
|
||||
|
||||
|
||||
|
||||
public:
|
||||
wxPoint m_Pos; // pad Position on board
|
||||
|
||||
|
@ -27,7 +27,7 @@ public:
|
|||
|
||||
wxString m_Netname; /* Net Name */
|
||||
|
||||
int m_Masque_Layer; // Bitwise layer :1= copper layer, 15= cmp,
|
||||
int m_Masque_Layer; // Bitwise layer :1= copper layer, 15= cmp,
|
||||
// 2..14 = internal layers
|
||||
// 16 .. 31 = technical layers
|
||||
|
||||
|
@ -37,7 +37,19 @@ public:
|
|||
wxSize m_Drill; // Drill diam (drill shape = PAD_CIRCLE) or drill size(shape = OVAL)
|
||||
// for drill shape = PAD_CIRCLE, drill diam = m_Drill.x
|
||||
|
||||
wxSize m_Offset; // Offset de la forme (pastilles excentrees)
|
||||
wxSize m_Offset; /*This parameter is usefull only for oblong pads (it can be used for other
|
||||
* shapes, but without any interest).
|
||||
* this is the offset between the pad hole and the pad shape (you must
|
||||
* understand here pad shape = copper area around the hole)
|
||||
* Most of cases, the hole is the centre of the shape (m_Offset = 0).
|
||||
* But some board designers use oblong pads with a hole moved to one of the
|
||||
* oblong pad shape ends.
|
||||
* In all cases the pad position is the pad hole.
|
||||
* The physical shape position (used to draw it for instance) is pad
|
||||
* position (m_Pos) + m_Offset.
|
||||
* D_PAD::ReturnShapePos() returns the physical shape position according to
|
||||
* the offset and the pad rotation.*/
|
||||
|
||||
wxSize m_Size; // X and Y size ( relative to orient 0)
|
||||
|
||||
wxSize m_DeltaSize; // delta sur formes rectangle -> trapezes
|
||||
|
@ -54,6 +66,9 @@ public:
|
|||
int m_physical_connexion; // variable used in rastnest computations
|
||||
// handle block number in track connection
|
||||
|
||||
int m_zone_connexion; // variable used in rastnest computations
|
||||
// handle block number in zone connection
|
||||
|
||||
public:
|
||||
D_PAD( MODULE* parent );
|
||||
D_PAD( D_PAD* pad );
|
||||
|
@ -72,58 +87,59 @@ public:
|
|||
{
|
||||
return m_Pos;
|
||||
}
|
||||
|
||||
|
||||
void SetPosition( const wxPoint& aPos )
|
||||
{
|
||||
m_Pos = aPos;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* remove from linked list */
|
||||
void UnLink();
|
||||
|
||||
/* Reading and writing data on files */
|
||||
int ReadDescr( FILE* File, int* LineNum = NULL );
|
||||
|
||||
|
||||
/**
|
||||
* Function Save
|
||||
* writes the data structures for this object out to a FILE in "*.brd" format.
|
||||
* @param aFile The FILE to write to.
|
||||
* @return bool - true if success writing else false.
|
||||
*/
|
||||
bool Save( FILE* aFile ) const;
|
||||
|
||||
*/
|
||||
bool Save( FILE* aFile ) const;
|
||||
|
||||
|
||||
|
||||
/* drawing functions */
|
||||
void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode );
|
||||
void Draw3D( Pcb3D_GLCanvas* glcanvas );
|
||||
|
||||
// others
|
||||
void SetPadName( const wxString& name ); // Change pad name
|
||||
wxString ReturnStringPadName(); // Return pad name as string in a wxString
|
||||
wxString ReturnStringPadName(); // Return pad name as string in a wxString
|
||||
void ReturnStringPadName( wxString& text ); // Return pad name as string in a buffer
|
||||
void ComputeRayon(); // compute m_Rayon, rayon du cercle exinscrit
|
||||
const wxPoint ReturnShapePos(); // retourne la position
|
||||
void ComputeRayon(); // compute m_Rayon, rayon du cercle exinscrit
|
||||
const wxPoint ReturnShapePos(); // retourne la position
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Function GetNet
|
||||
* @return int - the netcode
|
||||
*/
|
||||
int GetNet() const { return m_NetCode; }
|
||||
void SetNet( int aNetCode ) { m_NetCode = aNetCode; }
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Function Display_Infos
|
||||
* has knowledge about the frame and how and where to put status information
|
||||
* about this object into the frame's message panel.
|
||||
* Is virtual from EDA_BaseStruct.
|
||||
* @param frame A WinEDA_DrawFrame in which to print status information.
|
||||
*/
|
||||
*/
|
||||
void Display_Infos( WinEDA_DrawFrame* frame );
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Function IsOnLayer
|
||||
* tests to see if this object is on the given layer. Is virtual so
|
||||
|
@ -132,9 +148,9 @@ public:
|
|||
* @param aLayer The layer to test for.
|
||||
* @return bool - true if on given layer, else false.
|
||||
*/
|
||||
bool IsOnLayer( int aLayer ) const;
|
||||
bool IsOnLayer( int aLayer ) const;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Function HitTest
|
||||
* tests if the given wxPoint is within the bounds of this object.
|
||||
|
@ -152,17 +168,18 @@ public:
|
|||
{
|
||||
return wxT( "PAD" );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Function Compare
|
||||
* compares two pads and return 0 if they are equal.
|
||||
* @return int - <0 if left less than right, 0 if equal, >0 if left greater than right.
|
||||
*/
|
||||
static int Compare( const D_PAD* padref, const D_PAD* padcmp );
|
||||
static int Compare( const D_PAD* padref, const D_PAD* padcmp );
|
||||
|
||||
|
||||
#if defined (DEBUG)
|
||||
|
||||
/**
|
||||
* Function Show
|
||||
* is used to output the object tree, currently for debugging only.
|
||||
|
|
|
@ -127,7 +127,7 @@ EDA_BoardDesignSettings::EDA_BoardDesignSettings()
|
|||
// Default values for designing boards
|
||||
{
|
||||
int ii;
|
||||
|
||||
|
||||
static const int default_layer_color[32] = {
|
||||
GREEN, LIGHTGRAY, LIGHTGRAY, LIGHTGRAY,
|
||||
LIGHTGRAY, LIGHTGRAY, LIGHTGRAY, LIGHTGRAY,
|
||||
|
@ -146,11 +146,16 @@ EDA_BoardDesignSettings::EDA_BoardDesignSettings()
|
|||
LIGHTGRAY
|
||||
};
|
||||
|
||||
m_CopperLayerCount = 2; // Default design is a double sided board
|
||||
m_ViaDrill = 250; // via drill (for the entire board)
|
||||
m_CurrentViaSize = 450; // Current via size
|
||||
m_CurrentViaType = VIA_THROUGH; /* via type (BLIND, TROUGHT ...), bits 1 and 2 (not 0 and 1)*/
|
||||
m_CurrentTrackWidth = 170; // current track width
|
||||
m_CopperLayerCount = 2; // Default design is a double sided board
|
||||
m_ViaDrill = 250; // defualt via drill (for the entire board)
|
||||
m_ViaDrillCustomValue = 250; // via drill for vias which must have a defined drill value
|
||||
m_CurrentViaSize = 450; // Current via size
|
||||
m_CurrentViaType = VIA_THROUGH; // via type (VIA_BLIND_BURIED, VIA_TROUGHT VIA_MICROVIA)
|
||||
m_CurrentTrackWidth = 170; // current track width
|
||||
m_UseConnectedTrackWidth = false; // if true, when creating a new track starting on an existing track, use this track width
|
||||
m_MicroViaDrill = 50; // micro via drill (for the entire board)
|
||||
m_CurrentMicroViaSize = 150; // Current micro via size
|
||||
m_MicroViasAllowed = false; // true to allow micro vias
|
||||
for( ii = 0; ii < HISTORY_NUMBER; ii++ )
|
||||
{
|
||||
m_TrackWidthHistory[ii] = 0; // Last HISTORY_NUMBER used track widths
|
||||
|
|
|
@ -399,7 +399,7 @@ void WinEDA_PcbTracksDialog::SetDisplayValue()
|
|||
Internal_Unit );
|
||||
PutValueInLocalUnits( *m_OptViaDrill, g_DesignSettings.m_ViaDrill, Internal_Unit );
|
||||
PutValueInLocalUnits( *m_MicroViaDrillCtrl, g_DesignSettings.m_MicroViaDrill, Internal_Unit );
|
||||
PutValueInLocalUnits( *m_OptCustomViaDrill, g_ViaHoleLastValue, Internal_Unit );
|
||||
PutValueInLocalUnits( *m_OptCustomViaDrill, g_DesignSettings.m_ViaDrillCustomValue, Internal_Unit );
|
||||
PutValueInLocalUnits( *m_OptTrackWidth, g_DesignSettings.m_CurrentTrackWidth, Internal_Unit );
|
||||
PutValueInLocalUnits( *m_OptTrackClearance, g_DesignSettings.m_TrackClearence, Internal_Unit );
|
||||
PutValueInLocalUnits( *m_OptMaskMargin, g_DesignSettings.m_MaskMargin, Internal_Unit );
|
||||
|
@ -431,7 +431,7 @@ void WinEDA_PcbTracksDialog::AcceptPcbOptions( wxCommandEvent& event )
|
|||
ReturnValueFromTextCtrl( *m_MicroViaDrillCtrl, m_Parent->m_InternalUnits );
|
||||
g_DesignSettings.m_ViaDrill =
|
||||
ReturnValueFromTextCtrl( *m_OptViaDrill, m_Parent->m_InternalUnits );
|
||||
g_ViaHoleLastValue =
|
||||
g_DesignSettings.m_ViaDrillCustomValue =
|
||||
ReturnValueFromTextCtrl( *m_OptCustomViaDrill, m_Parent->m_InternalUnits );
|
||||
g_DesignSettings.m_MicroViasAllowed = m_AllowMicroViaCtrl->IsChecked();
|
||||
|
||||
|
|
|
@ -84,6 +84,8 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
case ID_POPUP_PCB_SELECT_LAYER_PAIR:
|
||||
case ID_POPUP_PCB_SELECT_NO_CU_LAYER:
|
||||
case ID_POPUP_PCB_SELECT_WIDTH:
|
||||
case ID_POPUP_PCB_SELECT_AUTO_WIDTH:
|
||||
case ID_AUX_TOOLBAR_PCB_SELECT_AUTO_WIDTH:
|
||||
case ID_POPUP_PCB_SELECT_WIDTH1:
|
||||
case ID_POPUP_PCB_SELECT_WIDTH2:
|
||||
case ID_POPUP_PCB_SELECT_WIDTH3:
|
||||
|
@ -339,7 +341,7 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
GetScreen()->SetModify();
|
||||
break;
|
||||
|
||||
case ID_POPUP_PCB_EDIT_NET:
|
||||
case ID_POPUP_PCB_EDIT_NET:
|
||||
if( GetCurItem() == NULL )
|
||||
break;
|
||||
Edit_Net_Width( &dc, ( (TRACK*) GetCurItem() )->GetNet() );
|
||||
|
@ -833,7 +835,8 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
DisplayTrackSettings();
|
||||
m_SelTrackWidthBox_Changed = FALSE;
|
||||
m_SelViaSizeBox_Changed = FALSE;
|
||||
}
|
||||
g_DesignSettings.m_UseConnectedTrackWidth = false;
|
||||
}
|
||||
break;
|
||||
|
||||
case ID_POPUP_PCB_SELECT_WIDTH1:
|
||||
|
@ -845,6 +848,7 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
case ID_POPUP_PCB_SELECT_WIDTH7:
|
||||
case ID_POPUP_PCB_SELECT_WIDTH8:
|
||||
DrawPanel->MouseToCursorSchema();
|
||||
g_DesignSettings.m_UseConnectedTrackWidth = false;
|
||||
{
|
||||
int ii = id - ID_POPUP_PCB_SELECT_WIDTH1;
|
||||
g_DesignSettings.m_CurrentTrackWidth = g_DesignSettings.m_TrackWidthHistory[ii];
|
||||
|
@ -852,6 +856,15 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
}
|
||||
break;
|
||||
|
||||
case ID_AUX_TOOLBAR_PCB_SELECT_AUTO_WIDTH:
|
||||
g_DesignSettings.m_UseConnectedTrackWidth = not g_DesignSettings.m_UseConnectedTrackWidth;
|
||||
break;
|
||||
|
||||
case ID_POPUP_PCB_SELECT_AUTO_WIDTH:
|
||||
DrawPanel->MouseToCursorSchema();
|
||||
g_DesignSettings.m_UseConnectedTrackWidth = true;
|
||||
break;
|
||||
|
||||
case ID_POPUP_PCB_SELECT_VIASIZE:
|
||||
break;
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ static void Exit_Editrack( WinEDA_DrawPanel* Panel, wxDC* DC )
|
|||
ShowNewTrackWhenMovingCursor( Panel, DC, FALSE );
|
||||
if( g_HightLigt_Status )
|
||||
frame->Hight_Light( DC );
|
||||
|
||||
|
||||
g_HightLigth_NetCode = OldNetCodeSurbrillance;
|
||||
if( OldEtatSurbrillance )
|
||||
frame->Hight_Light( DC );
|
||||
|
@ -59,7 +59,7 @@ static void Exit_Editrack( WinEDA_DrawPanel* Panel, wxDC* DC )
|
|||
delete track;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Panel->ManageCurseur = NULL;
|
||||
Panel->ForceCloseManageCurseur = NULL;
|
||||
frame->SetCurItem( NULL );
|
||||
|
@ -73,7 +73,7 @@ TRACK* WinEDA_PcbFrame::Begin_Route( TRACK* track, wxDC* DC )
|
|||
/*
|
||||
* Routine d'initialisation d'un trace de piste et/ou de mise en place d'un
|
||||
* nouveau point piste
|
||||
*
|
||||
*
|
||||
* Si pas de piste en cours de trace:
|
||||
* - Recherche de netname de la nouvelle piste ( pad de depart out netname
|
||||
* de la piste si depart sur une ancienne piste
|
||||
|
@ -84,58 +84,69 @@ TRACK* WinEDA_PcbFrame::Begin_Route( TRACK* track, wxDC* DC )
|
|||
* - si DRC OK : addition d'un nouveau point piste
|
||||
*/
|
||||
{
|
||||
D_PAD* pt_pad = NULL;
|
||||
TRACK* adr_buf = NULL, * Track;
|
||||
D_PAD* pt_pad = NULL;
|
||||
TRACK* TrackOnStartPoint = NULL, * Track;
|
||||
int masquelayer = g_TabOneLayerMask[GetScreen()->m_Active_Layer];
|
||||
EDA_BaseStruct* LockPoint;
|
||||
wxPoint pos = GetScreen()->m_Curseur;
|
||||
static int InitialTrackWidthValue; /* first track segment width.
|
||||
* used when we are in the auto tack width mode */
|
||||
|
||||
DrawPanel->ManageCurseur = ShowNewTrackWhenMovingCursor;
|
||||
DrawPanel->ForceCloseManageCurseur = Exit_Editrack;
|
||||
|
||||
if( track == NULL ) /* debut reel du trace */
|
||||
if( track == NULL ) /* Starting a new track */
|
||||
{
|
||||
/* effacement surbrillance ancienne */
|
||||
/* undrw old hightlight */
|
||||
OldNetCodeSurbrillance = g_HightLigth_NetCode;
|
||||
OldEtatSurbrillance = g_HightLigt_Status;
|
||||
|
||||
if( g_HightLigt_Status )
|
||||
Hight_Light( DC );
|
||||
|
||||
g_FirstTrackSegment = g_CurrentTrackSegment = new TRACK( m_Pcb );
|
||||
InitialTrackWidthValue = -1; // Set to "no value"
|
||||
g_FirstTrackSegment = g_CurrentTrackSegment = new TRACK( m_Pcb );
|
||||
g_CurrentTrackSegment->m_Flags = IS_NEW;
|
||||
g_TrackSegmentCount = 1;
|
||||
g_HightLigth_NetCode = 0;
|
||||
|
||||
/* Localisation de la pastille de reference de la piste: */
|
||||
/* Search for a pad at starting point of the new track: */
|
||||
LockPoint = LocateLockPoint( m_Pcb, pos, masquelayer );
|
||||
|
||||
if( LockPoint )
|
||||
if( LockPoint ) // An item (pad or track) is found
|
||||
{
|
||||
if( LockPoint->Type() == TYPEPAD )
|
||||
{
|
||||
pt_pad = (D_PAD*) LockPoint;
|
||||
|
||||
/* le debut de la piste est remis sur le centre du pad */
|
||||
|
||||
/* A pad is found: put the starting point on pad centre */
|
||||
pos = pt_pad->m_Pos;
|
||||
g_HightLigth_NetCode = pt_pad->GetNet();
|
||||
}
|
||||
else /* le point d'accrochage est un segment */
|
||||
else /* A track segment is found */
|
||||
{
|
||||
adr_buf = (TRACK*) LockPoint;
|
||||
g_HightLigth_NetCode = adr_buf->GetNet();
|
||||
CreateLockPoint( &pos.x, &pos.y, adr_buf, NULL );
|
||||
TrackOnStartPoint = (TRACK*) LockPoint;
|
||||
g_HightLigth_NetCode = TrackOnStartPoint->GetNet();
|
||||
CreateLockPoint( &pos.x, &pos.y, TrackOnStartPoint, NULL );
|
||||
}
|
||||
}
|
||||
|
||||
build_ratsnest_pad( LockPoint, wxPoint( 0, 0 ), TRUE );
|
||||
Hight_Light( DC );
|
||||
|
||||
g_CurrentTrackSegment->m_Flags = IS_NEW;
|
||||
g_CurrentTrackSegment->m_Flags = IS_NEW;
|
||||
g_CurrentTrackSegment->SetLayer( GetScreen()->m_Active_Layer );
|
||||
g_CurrentTrackSegment->m_Width = g_DesignSettings.m_CurrentTrackWidth;
|
||||
g_CurrentTrackSegment->m_Start = pos;
|
||||
g_CurrentTrackSegment->m_End = g_CurrentTrackSegment->m_Start;
|
||||
g_CurrentTrackSegment->m_Width = g_DesignSettings.m_CurrentTrackWidth;
|
||||
if( g_DesignSettings.m_UseConnectedTrackWidth )
|
||||
{
|
||||
if( TrackOnStartPoint && TrackOnStartPoint->Type() == TYPETRACK )
|
||||
{
|
||||
InitialTrackWidthValue = TrackOnStartPoint->m_Width;
|
||||
g_CurrentTrackSegment->m_Width = InitialTrackWidthValue;
|
||||
}
|
||||
}
|
||||
g_CurrentTrackSegment->m_Start = pos;
|
||||
g_CurrentTrackSegment->m_End = g_CurrentTrackSegment->m_Start;
|
||||
g_CurrentTrackSegment->SetNet( g_HightLigth_NetCode );
|
||||
if( pt_pad )
|
||||
{
|
||||
|
@ -143,10 +154,10 @@ TRACK* WinEDA_PcbFrame::Begin_Route( TRACK* track, wxDC* DC )
|
|||
g_CurrentTrackSegment->SetState( BEGIN_ONPAD, ON );
|
||||
}
|
||||
else
|
||||
g_CurrentTrackSegment->start = adr_buf;
|
||||
g_CurrentTrackSegment->start = TrackOnStartPoint;
|
||||
|
||||
if( g_TwoSegmentTrackBuild )
|
||||
{
|
||||
{
|
||||
// Create 2 segments
|
||||
g_CurrentTrackSegment = g_CurrentTrackSegment->Copy();
|
||||
g_TrackSegmentCount++;
|
||||
|
@ -159,7 +170,7 @@ TRACK* WinEDA_PcbFrame::Begin_Route( TRACK* track, wxDC* DC )
|
|||
g_CurrentTrackSegment->Display_Infos( this );
|
||||
SetCurItem( g_CurrentTrackSegment );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
|
||||
|
||||
if( Drc_On )
|
||||
{
|
||||
if( BAD_DRC == m_drc->Drc( g_CurrentTrackSegment, m_Pcb->m_Track ) )
|
||||
|
@ -175,7 +186,7 @@ TRACK* WinEDA_PcbFrame::Begin_Route( TRACK* track, wxDC* DC )
|
|||
{
|
||||
if( BAD_DRC == m_drc->Drc( g_CurrentTrackSegment, m_Pcb->m_Track ) )
|
||||
return NULL;
|
||||
|
||||
|
||||
if( g_TwoSegmentTrackBuild // We must handle 2 segments
|
||||
&& g_CurrentTrackSegment->Back() )
|
||||
{
|
||||
|
@ -220,7 +231,10 @@ TRACK* WinEDA_PcbFrame::Begin_Route( TRACK* track, wxDC* DC )
|
|||
g_TrackSegmentCount++;
|
||||
g_CurrentTrackSegment->m_Start = g_CurrentTrackSegment->m_End;
|
||||
g_CurrentTrackSegment->SetLayer( GetScreen()->m_Active_Layer );
|
||||
g_CurrentTrackSegment->m_Width = g_DesignSettings.m_CurrentTrackWidth;
|
||||
if( !g_DesignSettings.m_UseConnectedTrackWidth )
|
||||
{
|
||||
g_CurrentTrackSegment->m_Width = g_DesignSettings.m_CurrentTrackWidth;
|
||||
}
|
||||
/* Show the new position */
|
||||
ShowNewTrackWhenMovingCursor( DrawPanel, DC, FALSE );
|
||||
}
|
||||
|
@ -238,7 +252,7 @@ int WinEDA_PcbFrame::Add_45_degrees_Segment( wxDC* DC, TRACK* pt_segm )
|
|||
|
||||
/* rectifie un virage a 90 et le modifie par 2 coudes a 45
|
||||
* n'opere que sur des segments horizontaux ou verticaux.
|
||||
*
|
||||
*
|
||||
* entree : pointeur sur le segment qui vient d'etre trace
|
||||
* On suppose que le segment precedent est celui qui a ete
|
||||
* precedement trace
|
||||
|
@ -279,7 +293,7 @@ int WinEDA_PcbFrame::Add_45_degrees_Segment( wxDC* DC, TRACK* pt_segm )
|
|||
// les segments doivent etre de longueur suffisante:
|
||||
if( MAX( abs( dx0 ), abs( dy0 ) ) < (pas_45 * 2) )
|
||||
return 0;
|
||||
|
||||
|
||||
if( MAX( abs( dx1 ), abs( dy1 ) ) < (pas_45 * 2) )
|
||||
return 0;
|
||||
|
||||
|
@ -382,7 +396,7 @@ void WinEDA_PcbFrame::End_Route( TRACK* track, wxDC* DC )
|
|||
if( track == NULL )
|
||||
return;
|
||||
|
||||
if( Drc_On && BAD_DRC==m_drc->Drc( g_CurrentTrackSegment, m_Pcb->m_Track) )
|
||||
if( Drc_On && BAD_DRC==m_drc->Drc( g_CurrentTrackSegment, m_Pcb->m_Track ) )
|
||||
return;
|
||||
|
||||
/* Sauvegarde des coord du point terminal de la piste */
|
||||
|
@ -512,15 +526,17 @@ void ShowNewTrackWhenMovingCursor( WinEDA_DrawPanel* panel, wxDC* DC, bool erase
|
|||
|
||||
/* dessin de la nouvelle piste : mise a jour du point d'arrivee */
|
||||
g_CurrentTrackSegment->SetLayer( screen->m_Active_Layer );
|
||||
g_CurrentTrackSegment->m_Width = g_DesignSettings.m_CurrentTrackWidth;
|
||||
if( ! g_DesignSettings.m_UseConnectedTrackWidth )
|
||||
g_CurrentTrackSegment->m_Width = g_DesignSettings.m_CurrentTrackWidth;
|
||||
if( g_TwoSegmentTrackBuild )
|
||||
{
|
||||
TRACK* previous_track = (TRACK*) g_CurrentTrackSegment->Pback;
|
||||
if( previous_track && (previous_track->Type() == TYPETRACK) )
|
||||
{
|
||||
previous_track->SetLayer( screen->m_Active_Layer );
|
||||
previous_track->m_Width = g_DesignSettings.m_CurrentTrackWidth;
|
||||
}
|
||||
if( ! g_DesignSettings.m_UseConnectedTrackWidth )
|
||||
previous_track->m_Width = g_DesignSettings.m_CurrentTrackWidth;
|
||||
}
|
||||
}
|
||||
|
||||
if( Track_45_Only )
|
||||
|
@ -713,10 +729,10 @@ TRACK* DeleteNullTrackSegments( BOARD* pcb, TRACK* track, int* segmcount )
|
|||
* return a pointer on the first segment (start of track list)
|
||||
*/
|
||||
{
|
||||
TRACK* firsttrack = track;
|
||||
TRACK* oldtrack;
|
||||
int nn = 0;
|
||||
BOARD_ITEM* LockPoint;
|
||||
TRACK* firsttrack = track;
|
||||
TRACK* oldtrack;
|
||||
int nn = 0;
|
||||
BOARD_ITEM* LockPoint;
|
||||
|
||||
if( track == 0 )
|
||||
return NULL;
|
||||
|
@ -742,7 +758,7 @@ TRACK* DeleteNullTrackSegments( BOARD* pcb, TRACK* track, int* segmcount )
|
|||
*segmcount = nn;
|
||||
|
||||
if( nn == 0 )
|
||||
return NULL; // all the new track segments have been deleted
|
||||
return NULL; // all the new track segments have been deleted
|
||||
|
||||
|
||||
// we must set the pointers on connected items and the connection status
|
||||
|
@ -802,7 +818,7 @@ void EnsureEndTrackOnPad( D_PAD* Pad )
|
|||
|
||||
TRACK* lasttrack = g_CurrentTrackSegment;
|
||||
if( !g_CurrentTrackSegment->IsNull() )
|
||||
{
|
||||
{
|
||||
/* Must create a new segment, from track end to pad center */
|
||||
g_CurrentTrackSegment = lasttrack->Copy();
|
||||
g_TrackSegmentCount++;
|
||||
|
@ -810,7 +826,7 @@ void EnsureEndTrackOnPad( D_PAD* Pad )
|
|||
g_CurrentTrackSegment->Pback = lasttrack;
|
||||
lasttrack->end = g_CurrentTrackSegment;
|
||||
}
|
||||
|
||||
|
||||
g_CurrentTrackSegment->m_End = Pad->m_Pos;
|
||||
g_CurrentTrackSegment->SetState( END_ONPAD, OFF );
|
||||
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include "Global_Options_Pad.xpm"
|
||||
#include "Delete_Pad.xpm"
|
||||
#include "Export_Options_Pad.xpm"
|
||||
#include "Width_Segment.xpm"
|
||||
#include "Select_Layer_Pair.xpm"
|
||||
|
||||
/*************************************************************************/
|
||||
|
|
|
@ -47,7 +47,6 @@
|
|||
#include "Select_W_Layer.xpm"
|
||||
#include "Width_Track.xpm"
|
||||
#include "Width_Vias.xpm"
|
||||
#include "Width_Segment.xpm"
|
||||
#include "Width_Net.xpm"
|
||||
#include "Width_Track_Via.xpm"
|
||||
#include "Select_Layer_Pair.xpm"
|
||||
|
@ -71,6 +70,16 @@ static wxMenu* Append_Track_Width_List()
|
|||
double value;
|
||||
|
||||
trackwidth_menu = new wxMenu;
|
||||
|
||||
trackwidth_menu->Append( ID_POPUP_PCB_SELECT_AUTO_WIDTH,
|
||||
_( "Auto Width" ),
|
||||
_(
|
||||
"Use the track width when starting on a track, otherwise the current track width" ),
|
||||
TRUE );
|
||||
|
||||
if( g_DesignSettings.m_UseConnectedTrackWidth )
|
||||
trackwidth_menu->Check( ID_POPUP_PCB_SELECT_AUTO_WIDTH, TRUE );
|
||||
|
||||
for( ii = 0; (ii < HISTORY_NUMBER) && (ii < TRACK_HISTORY_NUMBER_MAX); ii++ )
|
||||
{
|
||||
if( g_DesignSettings.m_TrackWidthHistory[ii] == 0 )
|
||||
|
@ -84,7 +93,9 @@ static wxMenu* Append_Track_Width_List()
|
|||
msg.Printf( _( "Track %.3f" ), value );
|
||||
|
||||
trackwidth_menu->Append( ID_POPUP_PCB_SELECT_WIDTH1 + ii, msg, wxEmptyString, TRUE );
|
||||
if( g_DesignSettings.m_TrackWidthHistory[ii] == g_DesignSettings.m_CurrentTrackWidth )
|
||||
|
||||
if( (g_DesignSettings.m_TrackWidthHistory[ii] == g_DesignSettings.m_CurrentTrackWidth)
|
||||
&& ! g_DesignSettings.m_UseConnectedTrackWidth )
|
||||
trackwidth_menu->Check( ID_POPUP_PCB_SELECT_WIDTH1 + ii, TRUE );
|
||||
}
|
||||
|
||||
|
@ -172,12 +183,12 @@ bool WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
|
|||
// printf( "cursor=(%d, %d) select=(%d,%d)\n", cursorPos.x, cursorPos.y, selectPos.x, selectPos.y );
|
||||
|
||||
/* We can reselect another item only if there are no item being edited
|
||||
* because ALL moving functions use GetCurItem(), therefore GetCurItem()
|
||||
* must return the same item during moving. We know an item is moving
|
||||
* if( item && (item->m_Flags != 0)) is true and after calling
|
||||
* PcbGeneralLocateAndDisplay(), GetCurItem() is any arbitrary BOARD_ITEM,
|
||||
* not the current item being edited. In such case we cannot call
|
||||
* PcbGeneralLocateAndDisplay().
|
||||
* because ALL moving functions use GetCurItem(), therefore GetCurItem()
|
||||
* must return the same item during moving. We know an item is moving
|
||||
* if( item && (item->m_Flags != 0)) is true and after calling
|
||||
* PcbGeneralLocateAndDisplay(), GetCurItem() is any arbitrary BOARD_ITEM,
|
||||
* not the current item being edited. In such case we cannot call
|
||||
* PcbGeneralLocateAndDisplay().
|
||||
*/
|
||||
if( !item || (item->m_Flags == 0) )
|
||||
{
|
||||
|
@ -329,7 +340,7 @@ bool WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
|
|||
wxT( "WinEDA_PcbFrame::OnRightClick() Error: illegal DrawType %d" ),
|
||||
item->Type() );
|
||||
DisplayError( this, msg );
|
||||
SetCurItem(NULL);
|
||||
SetCurItem( NULL );
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -337,9 +348,10 @@ bool WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
|
|||
wxT( "WinEDA_PcbFrame::OnRightClick() Error: unknown DrawType %d" ),
|
||||
item->Type() );
|
||||
DisplayError( this, msg );
|
||||
// Attempt to clear error (but should no occurs )
|
||||
if ( item->Type() >= MAX_STRUCT_TYPE_ID )
|
||||
SetCurItem(NULL);
|
||||
|
||||
// Attempt to clear error (but should no occurs )
|
||||
if( item->Type() >= MAX_STRUCT_TYPE_ID )
|
||||
SetCurItem( NULL );
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -509,21 +521,26 @@ void WinEDA_PcbFrame::createPopupMenuForTracks( TRACK* Track, wxMenu* PopMenu )
|
|||
ID_POPUP_PCB_VIA_EDITING, _( "Edit Via" ), edit_xpm );
|
||||
ADD_MENUITEM( via_mnu, ID_POPUP_PCB_VIA_HOLE_TO_DEFAULT,
|
||||
_( "Set via hole to Default" ), apply_xpm );
|
||||
ADD_MENUITEM( via_mnu, ID_POPUP_PCB_VIA_HOLE_TO_VALUE, _(
|
||||
"Set via hole to alt value" ), options_new_pad_xpm );
|
||||
ADD_MENUITEM( via_mnu, ID_POPUP_PCB_VIA_HOLE_ENTER_VALUE,
|
||||
_( "Set the via hole alt value" ), edit_xpm );
|
||||
msg = _( "Set via hole to a specific value. This specfic value is currently" );
|
||||
msg << wxT(" ") << ReturnStringFromValue( g_UnitMetric, g_DesignSettings.m_ViaDrillCustomValue, m_InternalUnits );
|
||||
ADD_MENUITEM_WITH_HELP( via_mnu, ID_POPUP_PCB_VIA_HOLE_TO_VALUE,
|
||||
_( "Set via hole to alt value" ), msg,
|
||||
options_new_pad_xpm );
|
||||
msg = _( "Set alt via hole value. This value is currently" );
|
||||
msg << wxT(" ") << ReturnStringFromValue( g_UnitMetric, g_DesignSettings.m_ViaDrillCustomValue, m_InternalUnits );
|
||||
ADD_MENUITEM_WITH_HELP( via_mnu, ID_POPUP_PCB_VIA_HOLE_ENTER_VALUE,
|
||||
_( "Set the via hole alt value" ), msg, edit_xpm );
|
||||
ADD_MENUITEM( via_mnu, ID_POPUP_PCB_VIA_HOLE_EXPORT, _(
|
||||
"Export Via hole to alt value" ), Export_Options_Pad_xpm );
|
||||
ADD_MENUITEM( via_mnu, ID_POPUP_PCB_VIA_HOLE_EXPORT_TO_OTHERS,
|
||||
_( "Export via hole to others id vias" ), global_options_pad_xpm );
|
||||
ADD_MENUITEM( via_mnu, ID_POPUP_PCB_VIA_HOLE_RESET_TO_DEFAULT,
|
||||
_( "Set ALL via holes to default" ), apply_xpm );
|
||||
if( ! Track->IsDrillDefault() )
|
||||
if( !Track->IsDrillDefault() )
|
||||
{
|
||||
via_mnu->Enable( ID_POPUP_PCB_VIA_HOLE_EXPORT, FALSE );
|
||||
}
|
||||
if( g_ViaHoleLastValue <= 0 )
|
||||
if( g_DesignSettings.m_ViaDrillCustomValue <= 0 )
|
||||
via_mnu->Enable( ID_POPUP_PCB_VIA_HOLE_TO_VALUE, FALSE );
|
||||
}
|
||||
else
|
||||
|
@ -563,24 +580,27 @@ void WinEDA_PcbFrame::createPopupMenuForTracks( TRACK* Track, wxMenu* PopMenu )
|
|||
}
|
||||
msg = AddHotkeyName( _( "Place Via" ), s_Board_Editor_Hokeys_Descr, HK_ADD_VIA );
|
||||
PopMenu->Append( ID_POPUP_PCB_PLACE_VIA, msg );
|
||||
// See if we can place a Micro Via (4 or more layers, and start from an external layer):
|
||||
if ( GetScreen()->IsMicroViaAcceptable() )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Place Micro Via" ), s_Board_Editor_Hokeys_Descr, HK_ADD_MICROVIA );
|
||||
PopMenu->Append( ID_POPUP_PCB_PLACE_MICROVIA, msg );
|
||||
}
|
||||
|
||||
// See if we can place a Micro Via (4 or more layers, and start from an external layer):
|
||||
if( GetScreen()->IsMicroViaAcceptable() )
|
||||
{
|
||||
msg = AddHotkeyName( _(
|
||||
"Place Micro Via" ), s_Board_Editor_Hokeys_Descr,
|
||||
HK_ADD_MICROVIA );
|
||||
PopMenu->Append( ID_POPUP_PCB_PLACE_MICROVIA, msg );
|
||||
}
|
||||
}
|
||||
|
||||
// track Width control :
|
||||
wxMenu* track_mnu = new wxMenu;
|
||||
ADD_MENUITEM_WITH_SUBMENU( PopMenu, track_mnu,
|
||||
ID_POPUP_PCB_EDIT_TRACK_MNU, _( "Change Width" ), width_track_xpm );
|
||||
ADD_MENUITEM( track_mnu, ID_POPUP_PCB_EDIT_TRACKSEG,
|
||||
Track->Type()==TYPEVIA ? _( "Edit Via" ) : _(
|
||||
"Edit Segment" ), width_segment_xpm );
|
||||
|
||||
if( !flags )
|
||||
wxMenu* track_mnu;
|
||||
if( !flags ) // track Width control :
|
||||
{
|
||||
track_mnu = new wxMenu;
|
||||
ADD_MENUITEM_WITH_SUBMENU( PopMenu, track_mnu,
|
||||
ID_POPUP_PCB_EDIT_TRACK_MNU, _( "Change Width" ), width_track_xpm );
|
||||
ADD_MENUITEM( track_mnu, ID_POPUP_PCB_EDIT_TRACKSEG,
|
||||
Track->Type()==TYPEVIA ? _( "Edit Via" ) : _( "Edit Segment" ), width_segment_xpm );
|
||||
|
||||
ADD_MENUITEM( track_mnu, ID_POPUP_PCB_EDIT_TRACK,
|
||||
_( "Edit Track" ), width_track_xpm );
|
||||
ADD_MENUITEM( track_mnu, ID_POPUP_PCB_EDIT_NET,
|
||||
|
@ -644,19 +664,19 @@ void WinEDA_PcbFrame::createPopUpMenuForZones( ZONE_CONTAINER* edge_zone, wxMenu
|
|||
{
|
||||
if( edge_zone->m_Flags )
|
||||
{
|
||||
if( (edge_zone->m_Flags & IN_EDIT ) )
|
||||
ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_PLACE_ZONE_CORNER,
|
||||
_( "Place Corner" ), apply_xpm );
|
||||
else
|
||||
ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_PLACE_ZONE_OUTLINES,
|
||||
_( "Place Zone" ), apply_xpm );
|
||||
if( (edge_zone->m_Flags & IN_EDIT ) )
|
||||
ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_PLACE_ZONE_CORNER,
|
||||
_( "Place Corner" ), apply_xpm );
|
||||
else
|
||||
ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_PLACE_ZONE_OUTLINES,
|
||||
_( "Place Zone" ), apply_xpm );
|
||||
}
|
||||
else
|
||||
{
|
||||
wxMenu * zones_menu = new wxMenu();
|
||||
ADD_MENUITEM_WITH_SUBMENU( aPopMenu, zones_menu,
|
||||
-1, _( "Zones" ), add_zone_xpm );
|
||||
int index;
|
||||
wxMenu* zones_menu = new wxMenu();
|
||||
ADD_MENUITEM_WITH_SUBMENU( aPopMenu, zones_menu,
|
||||
-1, _( "Zones" ), add_zone_xpm );
|
||||
int index;
|
||||
if( ( index = edge_zone->HitTestForCorner( GetScreen()->RefPos( true ) ) ) >= 0 )
|
||||
{
|
||||
ADD_MENUITEM( zones_menu, ID_POPUP_PCB_MOVE_ZONE_CORNER,
|
||||
|
@ -688,10 +708,10 @@ void WinEDA_PcbFrame::createPopUpMenuForZones( ZONE_CONTAINER* edge_zone, wxMenu
|
|||
_( "Edit Zone Params" ), edit_xpm );
|
||||
|
||||
zones_menu->AppendSeparator();
|
||||
if ( index >= 0 && edge_zone->m_Poly->IsCutoutContour( edge_zone->m_CornerSelection ) )
|
||||
ADD_MENUITEM( zones_menu, ID_POPUP_PCB_DELETE_ZONE_CUTOUT,
|
||||
_( "Delete Cutout" ), delete_xpm );
|
||||
|
||||
if( index >= 0 && edge_zone->m_Poly->IsCutoutContour( edge_zone->m_CornerSelection ) )
|
||||
ADD_MENUITEM( zones_menu, ID_POPUP_PCB_DELETE_ZONE_CUTOUT,
|
||||
_( "Delete Cutout" ), delete_xpm );
|
||||
|
||||
ADD_MENUITEM( zones_menu, ID_POPUP_PCB_DELETE_ZONE_CONTAINER,
|
||||
_( "Delete Zone Outline" ), delete_xpm );
|
||||
}
|
||||
|
|
|
@ -114,6 +114,7 @@ BEGIN_EVENT_TABLE( WinEDA_PcbFrame, WinEDA_BasePcbFrame )
|
|||
EVT_TOOL( ID_GET_NETLIST, WinEDA_PcbFrame::Process_Special_Functions )
|
||||
EVT_TOOL( ID_DRC_CONTROL, WinEDA_PcbFrame::Process_Special_Functions )
|
||||
EVT_TOOL( ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR, WinEDA_PcbFrame::Process_Special_Functions )
|
||||
EVT_TOOL( ID_AUX_TOOLBAR_PCB_SELECT_AUTO_WIDTH, WinEDA_PcbFrame::Process_Special_Functions )
|
||||
EVT_KICAD_CHOICEBOX( ID_TOOLBARH_PCB_SELECT_LAYER,
|
||||
WinEDA_PcbFrame::Process_Special_Functions )
|
||||
EVT_KICAD_CHOICEBOX( ID_AUX_TOOLBAR_PCB_TRACK_WIDTH,
|
||||
|
@ -442,6 +443,8 @@ void WinEDA_PcbFrame::SetToolbars()
|
|||
if( m_AuxiliaryToolBar )
|
||||
{
|
||||
wxString msg;
|
||||
m_AuxiliaryToolBar->ToggleTool( ID_AUX_TOOLBAR_PCB_SELECT_AUTO_WIDTH,
|
||||
g_DesignSettings.m_UseConnectedTrackWidth );
|
||||
if( m_SelTrackWidthBox && m_SelTrackWidthBox_Changed )
|
||||
{
|
||||
m_SelTrackWidthBox_Changed = FALSE;
|
||||
|
|
|
@ -294,8 +294,6 @@ eda_global wxString g_ViaType_Name[4]
|
|||
|
||||
#endif
|
||||
;
|
||||
eda_global int g_ViaHoleLastValue; // Last value for non default value via hole
|
||||
|
||||
/* couleurs des autres items des empreintes */
|
||||
#if defined MAIN
|
||||
int g_PadCMPColor = RED;
|
||||
|
|
|
@ -35,7 +35,6 @@
|
|||
#include "mw_Add_Line.xpm"
|
||||
#include "mw_Add_Gap.xpm"
|
||||
#include "mw_toolbar.xpm"
|
||||
#include "Add_Tracks.xpm"
|
||||
#include "Show_Zone.xpm"
|
||||
#include "net_hightlight.xpm"
|
||||
#include "PcbOffset.xpm"
|
||||
|
@ -282,7 +281,9 @@ void WinEDA_PcbFrame::ReCreateHToolbar()
|
|||
_( "auto zoom" ) );
|
||||
|
||||
m_HToolBar->AddSeparator();
|
||||
msg = AddHotkeyName( _( "Find components and texts" ), s_Board_Editor_Hokeys_Descr, HK_FIND_ITEM );
|
||||
msg = AddHotkeyName( _(
|
||||
"Find components and texts" ), s_Board_Editor_Hokeys_Descr,
|
||||
HK_FIND_ITEM );
|
||||
m_HToolBar->AddTool( ID_FIND_ITEMS, wxEmptyString, BITMAP( find_xpm ),
|
||||
msg );
|
||||
|
||||
|
@ -526,6 +527,12 @@ void WinEDA_PcbFrame::ReCreateAuxiliaryToolbar()
|
|||
/****************************************************/
|
||||
|
||||
/* Create auxiliary horizontal toolbar
|
||||
* displays:
|
||||
* existing track width choice
|
||||
* selection for auto track width
|
||||
* existing via size choice
|
||||
* grid size choice
|
||||
* zoom level choice
|
||||
*/
|
||||
{
|
||||
int ii;
|
||||
|
@ -544,6 +551,13 @@ void WinEDA_PcbFrame::ReCreateAuxiliaryToolbar()
|
|||
m_AuxiliaryToolBar->AddControl( m_SelTrackWidthBox );
|
||||
m_SelTrackWidthBox_Changed = TRUE;
|
||||
|
||||
m_AuxiliaryToolBar->AddTool( ID_AUX_TOOLBAR_PCB_SELECT_AUTO_WIDTH,
|
||||
wxEmptyString,
|
||||
BITMAP( auto_track_width_xpm ),
|
||||
_(
|
||||
"Auto track width: when starting on an existing track use its width\notherwise, use current width setting" ),
|
||||
wxITEM_CHECK );
|
||||
|
||||
m_AuxiliaryToolBar->AddSeparator();
|
||||
m_SelViaSizeBox = new WinEDAChoiceBox( m_AuxiliaryToolBar,
|
||||
ID_AUX_TOOLBAR_PCB_VIA_SIZE,
|
||||
|
@ -610,28 +624,29 @@ void WinEDA_PcbFrame::ReCreateAuxiliaryToolbar()
|
|||
WinEDAChoiceBox* WinEDA_PcbFrame::ReCreateLayerBox( WinEDA_Toolbar* parent )
|
||||
/**************************************************************************/
|
||||
{
|
||||
int ii, jj, ll;
|
||||
unsigned lenght = 0;
|
||||
bool rebuild = FALSE;
|
||||
long current_mask_layer;
|
||||
int ii, jj, ll;
|
||||
unsigned lenght = 0;
|
||||
bool rebuild = FALSE;
|
||||
long current_mask_layer;
|
||||
|
||||
if( m_SelLayerBox == NULL )
|
||||
{
|
||||
if( parent == NULL )
|
||||
return NULL;
|
||||
|
||||
|
||||
m_SelLayerBox = new WinEDAChoiceBox( parent, ID_TOOLBARH_PCB_SELECT_LAYER,
|
||||
|
||||
wxPoint( -1, -1 ),
|
||||
#if defined(__UNIX__)
|
||||
// Width enough for the longest string: "Component (Page Down)"
|
||||
// Maybe that string is too long?
|
||||
wxSize( 230, -1 )
|
||||
|
||||
wxPoint( -1, -1 ),
|
||||
#if defined (__UNIX__)
|
||||
|
||||
// Width enough for the longest string: "Component (Page Down)"
|
||||
// Maybe that string is too long?
|
||||
wxSize( 230, -1 )
|
||||
#else
|
||||
wxSize( LISTBOX_WIDTH+40, -1 )
|
||||
wxSize( LISTBOX_WIDTH + 40, -1 )
|
||||
#endif
|
||||
);
|
||||
|
||||
);
|
||||
|
||||
parent->AddControl( m_SelLayerBox );
|
||||
}
|
||||
|
||||
|
@ -654,8 +669,8 @@ WinEDAChoiceBox* WinEDA_PcbFrame::ReCreateLayerBox( WinEDA_Toolbar* parent )
|
|||
m_SelLayerBox->Clear();
|
||||
for( ii = 0, jj = 0; ii <= EDGE_N; ii++ )
|
||||
{
|
||||
// List to append hotkeys in layer box selection
|
||||
static int HK_SwitchLayer[EDGE_N+1] = {
|
||||
// List to append hotkeys in layer box selection
|
||||
static int HK_SwitchLayer[EDGE_N + 1] = {
|
||||
HK_SWITCH_LAYER_TO_COPPER,
|
||||
HK_SWITCH_LAYER_TO_INNER1,
|
||||
HK_SWITCH_LAYER_TO_INNER2,
|
||||
|
@ -672,7 +687,7 @@ WinEDAChoiceBox* WinEDA_PcbFrame::ReCreateLayerBox( WinEDA_Toolbar* parent )
|
|||
HK_SWITCH_LAYER_TO_INNER13,
|
||||
HK_SWITCH_LAYER_TO_INNER14,
|
||||
HK_SWITCH_LAYER_TO_COMPONENT
|
||||
};
|
||||
};
|
||||
|
||||
if( (g_TabOneLayerMask[ii] & Masque_Layer) )
|
||||
{
|
||||
|
@ -680,10 +695,11 @@ WinEDAChoiceBox* WinEDA_PcbFrame::ReCreateLayerBox( WinEDA_Toolbar* parent )
|
|||
msg = AddHotkeyName( msg, s_Board_Editor_Hokeys_Descr, HK_SwitchLayer[ii] );
|
||||
m_SelLayerBox->Append( msg );
|
||||
m_SelLayerBox->SetClientData( jj, (void*) ii );
|
||||
lenght = max(lenght, msg.Len() );
|
||||
lenght = max( lenght, msg.Len() );
|
||||
jj++;
|
||||
}
|
||||
}
|
||||
|
||||
// Test me:
|
||||
// int lchar = m_SelLayerBox->GetFont().GetPointSize();
|
||||
// m_SelLayerBox->SetSize(wxSize(lenght * lchar,-1));
|
||||
|
|
|
@ -43,10 +43,10 @@ void WinEDA_PcbFrame::Via_Edit_Control( wxDC* DC, int command_type, SEGVIA* via
|
|||
DrawPanel->MouseToCursorSchema();
|
||||
|
||||
case ID_POPUP_PCB_VIA_HOLE_TO_VALUE: // Set the drill via to custom
|
||||
if( (g_ViaHoleLastValue > 0) && (g_ViaHoleLastValue < via->m_Width) )
|
||||
if( (g_DesignSettings.m_ViaDrillCustomValue > 0) && (g_DesignSettings.m_ViaDrillCustomValue < via->m_Width) )
|
||||
{
|
||||
via->Draw( DrawPanel, DC, GR_XOR );
|
||||
via->SetDrillValue( g_ViaHoleLastValue );
|
||||
via->SetDrillValue( g_DesignSettings.m_ViaDrillCustomValue );
|
||||
via->Draw( DrawPanel, DC, GR_OR );
|
||||
GetScreen()->SetModify();
|
||||
}
|
||||
|
@ -57,12 +57,12 @@ void WinEDA_PcbFrame::Via_Edit_Control( wxDC* DC, int command_type, SEGVIA* via
|
|||
|
||||
case ID_POPUP_PCB_VIA_HOLE_EXPORT: // Export the current drill value as the new custom value
|
||||
if( via->GetDrillValue() > 0 )
|
||||
g_ViaHoleLastValue = via->GetDrillValue();
|
||||
g_DesignSettings.m_ViaDrillCustomValue = via->GetDrillValue();
|
||||
break;
|
||||
|
||||
case ID_POPUP_PCB_VIA_HOLE_EXPORT_TO_OTHERS: // Export the current drill value to via which héave the same size
|
||||
if( via->GetDrillValue() > 0 )
|
||||
g_ViaHoleLastValue = via->GetDrillValue();
|
||||
g_DesignSettings.m_ViaDrillCustomValue = via->GetDrillValue();
|
||||
via_struct = m_Pcb->m_Track;
|
||||
for( ; via_struct != NULL; via_struct = (TRACK*) via_struct->Pnext )
|
||||
{
|
||||
|
|
|
@ -134,7 +134,7 @@ int ZONE_CONTAINER::Fill_Zone( WinEDA_PcbFrame* frame, wxDC* DC, bool verbose )
|
|||
TraceLignePcb( xi, yi, xf, yf, -1, HOLE | CELL_is_EDGE, WRITE_CELL );
|
||||
}
|
||||
|
||||
/* Create a starting point to create the zone filling */
|
||||
/* Create a starting point to create the zone filling, from pads */
|
||||
LISTE_PAD* pad;
|
||||
int cells_count = 0;
|
||||
for( ii = 0, pad = frame->m_Pcb->m_Pads; ii < frame->m_Pcb->m_NbPads; ii++, pad++ )
|
||||
|
@ -157,6 +157,42 @@ int ZONE_CONTAINER::Fill_Zone( WinEDA_PcbFrame* frame, wxDC* DC, bool verbose )
|
|||
}
|
||||
}
|
||||
|
||||
/* Create a starting point to create the zone filling, from vias and tracks */
|
||||
TRACK* track;
|
||||
for( track = frame->m_Pcb->m_Track; track != NULL; track = track->Next() )
|
||||
{
|
||||
if ( ! track->IsOnLayer( GetLayer() ) ) continue;
|
||||
if ( track->GetNet() != GetNet() ) continue;
|
||||
wxPoint pos = track->m_Start;
|
||||
if( m_Poly->TestPointInside( pos.x, pos.y ) )
|
||||
{
|
||||
pos -= Pcb->m_BoundaryBox.m_Pos;
|
||||
ZoneStartFill.x = ( pos.x + (g_GridRoutingSize / 2) ) / g_GridRoutingSize;
|
||||
|
||||
ZoneStartFill.y = ( pos.y + (g_GridRoutingSize / 2) ) / g_GridRoutingSize;
|
||||
BoardCell cell = GetCell( ZoneStartFill.y, ZoneStartFill.x, BOTTOM );
|
||||
if ( (cell & CELL_is_EDGE) == 0 )
|
||||
{
|
||||
OrCell( ZoneStartFill.y, ZoneStartFill.x, BOTTOM, CELL_is_ZONE );
|
||||
cells_count++;
|
||||
}
|
||||
}
|
||||
pos = track->m_End;
|
||||
if( m_Poly->TestPointInside( pos.x, pos.y ) )
|
||||
{
|
||||
pos -= Pcb->m_BoundaryBox.m_Pos;
|
||||
ZoneStartFill.x = ( pos.x + (g_GridRoutingSize / 2) ) / g_GridRoutingSize;
|
||||
|
||||
ZoneStartFill.y = ( pos.y + (g_GridRoutingSize / 2) ) / g_GridRoutingSize;
|
||||
BoardCell cell = GetCell( ZoneStartFill.y, ZoneStartFill.x, BOTTOM );
|
||||
if ( (cell & CELL_is_EDGE) == 0 )
|
||||
{
|
||||
OrCell( ZoneStartFill.y, ZoneStartFill.x, BOTTOM, CELL_is_ZONE );
|
||||
cells_count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( cells_count == 0 )
|
||||
{
|
||||
if( verbose )
|
||||
|
|
878
pcbnew/zones.cpp
878
pcbnew/zones.cpp
|
@ -1,878 +0,0 @@
|
|||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Name: zones.cpp
|
||||
// Purpose:
|
||||
// Author: jean-pierre Charras
|
||||
// Modified by:
|
||||
// Created: 25/01/2006 11:35:19
|
||||
// RCS-ID:
|
||||
// Copyright: GNU License
|
||||
// Licence: GNU License
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Generated by DialogBlocks (unregistered), 25/01/2006 11:35:19
|
||||
|
||||
#if defined (__GNUG__) && !defined (NO_GCC_PRAGMA)
|
||||
#pragma implementation "zones.h"
|
||||
#endif
|
||||
|
||||
// For compilers that support precompilation, includes "wx/wx.h".
|
||||
#include "wx/wxprec.h"
|
||||
|
||||
#ifdef __BORLANDC__
|
||||
#pragma hdrstop
|
||||
#endif
|
||||
|
||||
#ifndef WX_PRECOMP
|
||||
#include "wx/wx.h"
|
||||
#endif
|
||||
|
||||
////@begin includes
|
||||
////@end includes
|
||||
|
||||
#include "zones.h"
|
||||
|
||||
////@begin XPM images
|
||||
////@end XPM images
|
||||
|
||||
/* Imported functions */
|
||||
void Build_Zone( WinEDA_PcbFrame* frame, wxDC* DC, int net_code,
|
||||
bool Zone_Exclude_Pads, bool Zone_Create_Thermal_Relief );
|
||||
|
||||
|
||||
/* Local functions */
|
||||
static void Display_Zone_Netname( WinEDA_PcbFrame* frame );
|
||||
static void Exit_Zones( WinEDA_DrawPanel* Panel, wxDC* DC );
|
||||
static void Show_Zone_Edge_While_MoveMouse( WinEDA_DrawPanel* panel, wxDC* DC, bool erase );
|
||||
|
||||
/* Local variables */
|
||||
static bool Zone_45_Only = FALSE;
|
||||
static bool Zone_Exclude_Pads = TRUE;
|
||||
static bool s_Zone_Create_Thermal_Relief = TRUE;
|
||||
|
||||
/* Time stamp common to all segments relative to the new created zone */
|
||||
static unsigned long s_TimeStamp;
|
||||
|
||||
/*!
|
||||
* WinEDA_ZoneFrame type definition
|
||||
*/
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS( WinEDA_ZoneFrame, wxDialog )
|
||||
|
||||
/*!
|
||||
* WinEDA_ZoneFrame event table definition
|
||||
*/
|
||||
|
||||
BEGIN_EVENT_TABLE( WinEDA_ZoneFrame, wxDialog )
|
||||
|
||||
////@begin WinEDA_ZoneFrame event table entries
|
||||
EVT_BUTTON( ID_FILL_ZONE, WinEDA_ZoneFrame::ExecFillZone )
|
||||
|
||||
EVT_BUTTON( wxID_CANCEL, WinEDA_ZoneFrame::OnCancelClick )
|
||||
|
||||
EVT_BUTTON( ID_SET_OPTIONS_ZONE, WinEDA_ZoneFrame::ExecFillZone )
|
||||
|
||||
////@end WinEDA_ZoneFrame event table entries
|
||||
|
||||
END_EVENT_TABLE()
|
||||
|
||||
/*!
|
||||
* WinEDA_ZoneFrame constructors
|
||||
*/
|
||||
|
||||
WinEDA_ZoneFrame::WinEDA_ZoneFrame()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
WinEDA_ZoneFrame::WinEDA_ZoneFrame( WinEDA_PcbFrame* parent,
|
||||
wxWindowID id,
|
||||
const wxString& caption,
|
||||
const wxPoint& pos,
|
||||
const wxSize& size,
|
||||
long style )
|
||||
{
|
||||
m_Parent = parent;
|
||||
Create( parent, id, caption, pos, size, style );
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* WinEDA_ZoneFrame creator
|
||||
*/
|
||||
|
||||
bool WinEDA_ZoneFrame::Create( wxWindow* parent,
|
||||
wxWindowID id,
|
||||
const wxString& caption,
|
||||
const wxPoint& pos,
|
||||
const wxSize& size,
|
||||
long style )
|
||||
{
|
||||
////@begin WinEDA_ZoneFrame member initialisation
|
||||
m_GridCtrl = NULL;
|
||||
m_ClearanceValueTitle = NULL;
|
||||
m_ZoneClearanceCtrl = NULL;
|
||||
m_FillOpt = NULL;
|
||||
m_OrientEdgesOpt = NULL;
|
||||
|
||||
////@end WinEDA_ZoneFrame member initialisation
|
||||
|
||||
////@begin WinEDA_ZoneFrame creation
|
||||
SetExtraStyle( GetExtraStyle() | wxWS_EX_BLOCK_EVENTS );
|
||||
wxDialog::Create( parent, id, caption, pos, size, style );
|
||||
|
||||
CreateControls();
|
||||
GetSizer()->Fit( this );
|
||||
GetSizer()->SetSizeHints( this );
|
||||
Centre();
|
||||
|
||||
////@end WinEDA_ZoneFrame creation
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* Control creation for WinEDA_ZoneFrame
|
||||
*/
|
||||
|
||||
void WinEDA_ZoneFrame::CreateControls()
|
||||
{
|
||||
SetFont( *g_DialogFont );
|
||||
|
||||
////@begin WinEDA_ZoneFrame content construction
|
||||
// Generated by DialogBlocks, 03/03/2006 13:36:21 (unregistered)
|
||||
|
||||
WinEDA_ZoneFrame* itemDialog1 = this;
|
||||
|
||||
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer( wxHORIZONTAL );
|
||||
itemDialog1->SetSizer( itemBoxSizer2 );
|
||||
|
||||
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer( wxVERTICAL );
|
||||
itemBoxSizer2->Add( itemBoxSizer3, 0, wxGROW | wxALL, 5 );
|
||||
|
||||
static const wxString m_GridCtrlStrings[] = {
|
||||
_( "0.00000" ),
|
||||
_( "0.00000" ),
|
||||
_( "0.00000" ),
|
||||
_( "0.00000" )
|
||||
};
|
||||
|
||||
m_GridCtrl = new wxRadioBox( itemDialog1, ID_RADIOBOX, _(
|
||||
"Grid size:" ), wxDefaultPosition, wxDefaultSize, 4,
|
||||
m_GridCtrlStrings, 1, wxRA_SPECIFY_COLS );
|
||||
itemBoxSizer3->Add( m_GridCtrl, 0, wxALIGN_LEFT | wxALL, 5 );
|
||||
|
||||
m_ClearanceValueTitle = new wxStaticText( itemDialog1, wxID_STATIC,
|
||||
_( "Zone clearance value (mm):" ),
|
||||
wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemBoxSizer3->Add( m_ClearanceValueTitle,
|
||||
0,
|
||||
wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE,
|
||||
5 );
|
||||
|
||||
m_ZoneClearanceCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T(
|
||||
"" ), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemBoxSizer3->Add( m_ZoneClearanceCtrl, 0, wxALIGN_LEFT | wxLEFT | wxRIGHT | wxBOTTOM, 5 );
|
||||
|
||||
itemBoxSizer2->Add( 5, 5, 0, wxGROW | wxALL, 5 );
|
||||
|
||||
wxBoxSizer* itemBoxSizer8 = new wxBoxSizer( wxVERTICAL );
|
||||
itemBoxSizer2->Add( itemBoxSizer8, 0, wxGROW | wxALL, 5 );
|
||||
|
||||
static const wxString m_FillOptStrings[] = {
|
||||
_( "Include Pads" ),
|
||||
_( "Thermal" ),
|
||||
_( "Exclude Pads" )
|
||||
};
|
||||
|
||||
m_FillOpt = new wxRadioBox( itemDialog1, ID_RADIOBOX1, _(
|
||||
"Pad options:" ), wxDefaultPosition, wxDefaultSize, 3,
|
||||
m_FillOptStrings, 1, wxRA_SPECIFY_COLS );
|
||||
itemBoxSizer8->Add( m_FillOpt, 0, wxALIGN_LEFT | wxALL, 5 );
|
||||
|
||||
static const wxString m_OrientEdgesOptStrings[] = {
|
||||
_( "Any" ),
|
||||
_( "H , V and 45 deg" )
|
||||
};
|
||||
|
||||
m_OrientEdgesOpt = new wxRadioBox( itemDialog1, ID_RADIOBOX2,
|
||||
_( "Zone edges orient:" ), wxDefaultPosition,
|
||||
wxDefaultSize, 2, m_OrientEdgesOptStrings, 1,
|
||||
wxRA_SPECIFY_COLS );
|
||||
|
||||
itemBoxSizer8->Add( m_OrientEdgesOpt, 0, wxALIGN_RIGHT | wxALL, 5 );
|
||||
|
||||
itemBoxSizer2->Add( 5, 5, 0, wxGROW | wxALL, 5 );
|
||||
|
||||
wxBoxSizer* itemBoxSizer12 = new wxBoxSizer( wxVERTICAL );
|
||||
itemBoxSizer2->Add( itemBoxSizer12, 0, wxALIGN_TOP | wxALL, 5 );
|
||||
|
||||
wxButton* itemButton13 = new wxButton( itemDialog1, ID_FILL_ZONE,
|
||||
_( "Fill" ), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
|
||||
itemButton13->SetDefault();
|
||||
itemButton13->SetForegroundColour( wxColour( 204, 0, 0 ) );
|
||||
itemBoxSizer12->Add( itemButton13, 0, wxGROW | wxALL, 5 );
|
||||
|
||||
wxButton* itemButton14 = new wxButton( itemDialog1, wxID_CANCEL,
|
||||
_( "&Cancel" ), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
|
||||
itemButton14->SetForegroundColour( wxColour( 0, 0, 255 ) );
|
||||
itemBoxSizer12->Add( itemButton14, 0, wxGROW | wxALL, 5 );
|
||||
|
||||
wxButton* itemButton15 = new wxButton( itemDialog1, ID_SET_OPTIONS_ZONE,
|
||||
_(
|
||||
"Update Options" ), wxDefaultPosition,
|
||||
wxDefaultSize, 0 );
|
||||
|
||||
itemButton15->SetForegroundColour( wxColour( 0, 100, 0 ) );
|
||||
itemBoxSizer12->Add( itemButton15, 0, wxGROW | wxALL, 5 );
|
||||
|
||||
itemBoxSizer2->Add( 5, 5, 0, wxGROW | wxALL, 5 );
|
||||
|
||||
////@end WinEDA_ZoneFrame content construction
|
||||
wxString title = _( "Zone clearance value:" ) + ReturnUnitSymbol( g_UnitMetric );
|
||||
m_ClearanceValueTitle->SetLabel( title );
|
||||
|
||||
title = _( "Grid :" ) + ReturnUnitSymbol( g_UnitMetric );;
|
||||
m_GridCtrl->SetLabel( title );
|
||||
|
||||
if( g_DesignSettings.m_ZoneClearence == 0 )
|
||||
g_DesignSettings.m_ZoneClearence = g_DesignSettings.m_TrackClearence;
|
||||
title = ReturnStringFromValue( g_UnitMetric,
|
||||
g_DesignSettings.m_ZoneClearence,
|
||||
m_Parent->m_InternalUnits );
|
||||
m_ZoneClearanceCtrl->SetValue( title );
|
||||
|
||||
if( Zone_45_Only )
|
||||
m_OrientEdgesOpt->SetSelection( 1 );
|
||||
|
||||
static const int GridList[4] = { 50, 100, 250, 500 };
|
||||
int selection = 0;
|
||||
|
||||
for( unsigned ii = 0; ii < (unsigned)m_GridCtrl->GetCount(); ii++ )
|
||||
{
|
||||
wxString msg = ReturnStringFromValue( g_UnitMetric,
|
||||
GridList[ii],
|
||||
m_Parent->m_InternalUnits );
|
||||
m_GridCtrl->SetString( ii, msg );
|
||||
if( g_GridRoutingSize == GridList[ii] )
|
||||
selection = ii;
|
||||
}
|
||||
|
||||
m_GridCtrl->SetSelection( selection );
|
||||
|
||||
if( Zone_Exclude_Pads )
|
||||
{
|
||||
if( s_Zone_Create_Thermal_Relief )
|
||||
m_FillOpt->SetSelection( 1 );
|
||||
else
|
||||
m_FillOpt->SetSelection( 2 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* Should we show tooltips?
|
||||
*/
|
||||
|
||||
bool WinEDA_ZoneFrame::ShowToolTips()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* Get bitmap resources
|
||||
*/
|
||||
|
||||
wxBitmap WinEDA_ZoneFrame::GetBitmapResource( const wxString& name )
|
||||
{
|
||||
// Bitmap retrieval
|
||||
////@begin WinEDA_ZoneFrame bitmap retrieval
|
||||
wxUnusedVar( name );
|
||||
return wxNullBitmap;
|
||||
|
||||
////@end WinEDA_ZoneFrame bitmap retrieval
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* Get icon resources
|
||||
*/
|
||||
|
||||
wxIcon WinEDA_ZoneFrame::GetIconResource( const wxString& name )
|
||||
{
|
||||
// Icon retrieval
|
||||
////@begin WinEDA_ZoneFrame icon retrieval
|
||||
wxUnusedVar( name );
|
||||
return wxNullIcon;
|
||||
|
||||
////@end WinEDA_ZoneFrame icon retrieval
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
|
||||
*/
|
||||
|
||||
void WinEDA_ZoneFrame::OnCancelClick( wxCommandEvent& event )
|
||||
{
|
||||
////@begin wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL in WinEDA_ZoneFrame.
|
||||
// Before editing this code, remove the block markers.
|
||||
event.Skip();
|
||||
|
||||
////@end wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL in WinEDA_ZoneFrame.
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON2
|
||||
*/
|
||||
/***********************************************************/
|
||||
void WinEDA_ZoneFrame::ExecFillZone( wxCommandEvent& event )
|
||||
/***********************************************************/
|
||||
{
|
||||
switch( m_FillOpt->GetSelection() )
|
||||
{
|
||||
case 0:
|
||||
Zone_Exclude_Pads = FALSE;
|
||||
s_Zone_Create_Thermal_Relief = FALSE;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
Zone_Exclude_Pads = TRUE;
|
||||
s_Zone_Create_Thermal_Relief = TRUE;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
Zone_Exclude_Pads = TRUE;
|
||||
s_Zone_Create_Thermal_Relief = FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
switch( m_GridCtrl->GetSelection() )
|
||||
{
|
||||
case 0:
|
||||
g_GridRoutingSize = 50;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
g_GridRoutingSize = 100;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
g_GridRoutingSize = 250;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
g_GridRoutingSize = 500;
|
||||
break;
|
||||
}
|
||||
|
||||
wxString txtvalue = m_ZoneClearanceCtrl->GetValue();
|
||||
g_DesignSettings.m_ZoneClearence =
|
||||
ReturnValueFromString( g_UnitMetric, txtvalue, m_Parent->m_InternalUnits );
|
||||
if( m_OrientEdgesOpt->GetSelection() == 0 )
|
||||
Zone_45_Only = FALSE;
|
||||
else
|
||||
Zone_45_Only = TRUE;
|
||||
|
||||
if( event.GetId() == ID_SET_OPTIONS_ZONE )
|
||||
EndModal( 1 );
|
||||
else
|
||||
EndModal( 0 );
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************/
|
||||
void WinEDA_PcbFrame::Edit_Zone_Width( wxDC* DC, SEGZONE* aZone )
|
||||
/**************************************************************/
|
||||
|
||||
/* Edite (change la largeur des segments) la zone Zone.
|
||||
* La zone est constituee des segments zones de meme TimeStamp
|
||||
*/
|
||||
{
|
||||
bool modify = FALSE;
|
||||
double f_new_width;
|
||||
int w_tmp;
|
||||
wxString Line;
|
||||
wxString Msg( _( "New zone segment width: " ) );
|
||||
|
||||
if( aZone == NULL )
|
||||
return;
|
||||
|
||||
f_new_width = To_User_Unit( g_UnitMetric, aZone->m_Width, GetScreen()->GetInternalUnits() );
|
||||
|
||||
Line.Printf( wxT( "%.4f" ), f_new_width );
|
||||
|
||||
Msg += g_UnitMetric ? wxT( "(mm)" ) : wxT( "(\")" );
|
||||
if( Get_Message( Msg, Line, this ) != 0 )
|
||||
return;
|
||||
|
||||
w_tmp = g_DesignSettings.m_CurrentTrackWidth;
|
||||
Line.ToDouble( &f_new_width );
|
||||
|
||||
g_DesignSettings.m_CurrentTrackWidth = From_User_Unit( g_UnitMetric,
|
||||
f_new_width, GetScreen()->GetInternalUnits() );
|
||||
|
||||
for( SEGZONE* zone = m_Pcb->m_Zone; zone; zone = zone->Next() )
|
||||
{
|
||||
if( zone->m_TimeStamp == aZone->m_TimeStamp )
|
||||
{
|
||||
modify = TRUE;
|
||||
Edit_TrackSegm_Width( DC, zone );
|
||||
}
|
||||
}
|
||||
|
||||
g_DesignSettings.m_CurrentTrackWidth = w_tmp;
|
||||
if( modify )
|
||||
{
|
||||
GetScreen()->SetModify();
|
||||
DrawPanel->Refresh();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************/
|
||||
void WinEDA_PcbFrame::Delete_Zone( wxDC* DC, SEGZONE* aZone )
|
||||
/**********************************************************/
|
||||
|
||||
/* Remove the zone which include the segment aZone.
|
||||
* A zone is a group of segments which have the same TimeStamp
|
||||
*/
|
||||
{
|
||||
if ( aZone == NULL ) return;
|
||||
|
||||
int nb_segm = 0;
|
||||
bool modify = FALSE;
|
||||
unsigned long TimeStamp = aZone->m_TimeStamp; // Save reference time stamp (aZone will be deleted)
|
||||
|
||||
SEGZONE* next;
|
||||
for( SEGZONE* zone = m_Pcb->m_Zone; zone != NULL; zone = next )
|
||||
{
|
||||
next = zone->Next();
|
||||
if( zone->m_TimeStamp == TimeStamp )
|
||||
{
|
||||
modify = TRUE;
|
||||
|
||||
/* Erase segment from screen */
|
||||
Trace_Une_Piste( DrawPanel, DC, zone, nb_segm, GR_XOR );
|
||||
/* remove item from linked list and free memory */
|
||||
zone->DeleteStructure();
|
||||
}
|
||||
}
|
||||
|
||||
if( modify )
|
||||
{
|
||||
GetScreen()->SetModify();
|
||||
GetScreen()->SetRefreshReq();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
EDGE_ZONE* WinEDA_PcbFrame::Del_SegmEdgeZone( wxDC* DC, EDGE_ZONE* edge_zone )
|
||||
/*****************************************************************************/
|
||||
/* Routine d'effacement du segment de limite zone en cours de trace */
|
||||
{
|
||||
EDGE_ZONE* segm;
|
||||
|
||||
if( m_Pcb->m_CurrentLimitZone )
|
||||
segm = m_Pcb->m_CurrentLimitZone;
|
||||
else
|
||||
segm = edge_zone;
|
||||
|
||||
if( segm == NULL )
|
||||
return NULL;
|
||||
|
||||
Trace_DrawSegmentPcb( DrawPanel, DC, segm, GR_XOR );
|
||||
|
||||
m_Pcb->m_CurrentLimitZone = segm->Next();
|
||||
delete segm;
|
||||
|
||||
segm = m_Pcb->m_CurrentLimitZone;
|
||||
SetCurItem( segm );
|
||||
|
||||
if( segm )
|
||||
{
|
||||
segm->Pback = NULL;
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, TRUE );
|
||||
}
|
||||
else
|
||||
{
|
||||
DrawPanel->ManageCurseur = NULL;
|
||||
DrawPanel->ForceCloseManageCurseur = NULL;
|
||||
SetCurItem( NULL );
|
||||
}
|
||||
return segm;
|
||||
}
|
||||
|
||||
|
||||
/*********************************************/
|
||||
void WinEDA_PcbFrame::CaptureNetName( wxDC* DC )
|
||||
/*********************************************/
|
||||
|
||||
/* routine permettant de capturer le nom net net (netcode) d'un pad
|
||||
* ou d'une piste pour l'utiliser comme netcode de zone
|
||||
*/
|
||||
{
|
||||
D_PAD* pt_pad = 0;
|
||||
TRACK* adrpiste;
|
||||
MODULE* Module;
|
||||
int masquelayer = g_TabOneLayerMask[GetScreen()->m_Active_Layer];
|
||||
int netcode;
|
||||
|
||||
netcode = -1;
|
||||
MsgPanel->EraseMsgBox();
|
||||
adrpiste = Locate_Pistes( m_Pcb->m_Track, masquelayer, CURSEUR_OFF_GRILLE );
|
||||
if( adrpiste == NULL )
|
||||
{
|
||||
pt_pad = Locate_Any_Pad( m_Pcb, CURSEUR_OFF_GRILLE );
|
||||
|
||||
if( pt_pad ) /* Verif qu'il est bien sur la couche active */
|
||||
{
|
||||
Module = (MODULE*) pt_pad->m_Parent;
|
||||
pt_pad = Locate_Pads( Module, g_TabOneLayerMask[GetScreen()->m_Active_Layer],
|
||||
CURSEUR_OFF_GRILLE );
|
||||
}
|
||||
if( pt_pad )
|
||||
{
|
||||
pt_pad->Display_Infos( this );
|
||||
netcode = pt_pad->GetNet();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
adrpiste->Display_Infos( this );
|
||||
netcode = adrpiste->GetNet();
|
||||
}
|
||||
|
||||
// Mise en surbrillance du net
|
||||
if( g_HightLigt_Status )
|
||||
Hight_Light( DC );
|
||||
|
||||
g_HightLigth_NetCode = netcode;
|
||||
if( g_HightLigth_NetCode >= 0 )
|
||||
{
|
||||
Hight_Light( DC );
|
||||
}
|
||||
|
||||
/* Affichage du net selectionne pour la zone a tracer */
|
||||
Display_Zone_Netname( this );
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************/
|
||||
static void Display_Zone_Netname( WinEDA_PcbFrame* frame )
|
||||
/*******************************************************/
|
||||
|
||||
/*
|
||||
* Affiche le net_code et le nom de net couramment selectionne
|
||||
*/
|
||||
{
|
||||
EQUIPOT* pt_equipot;
|
||||
wxString line;
|
||||
|
||||
pt_equipot = frame->m_Pcb->m_Equipots;
|
||||
|
||||
if( g_HightLigth_NetCode > 0 )
|
||||
{
|
||||
for( ; pt_equipot != NULL; pt_equipot = (EQUIPOT*) pt_equipot->Pnext )
|
||||
{
|
||||
if( pt_equipot->GetNet() == g_HightLigth_NetCode )
|
||||
break;
|
||||
}
|
||||
|
||||
if( pt_equipot )
|
||||
{
|
||||
line.Printf( wxT( "Zone: Net[%d] <%s>" ), g_HightLigth_NetCode,
|
||||
pt_equipot->m_Netname.GetData() );
|
||||
}
|
||||
else
|
||||
line.Printf( wxT( "Zone: NetCode[%d], Equipot not found" ),
|
||||
g_HightLigth_NetCode );
|
||||
}
|
||||
|
||||
line = _( "Zone: No net selected" );
|
||||
|
||||
frame->Affiche_Message( line );
|
||||
}
|
||||
|
||||
|
||||
/********************************************************/
|
||||
static void Exit_Zones( WinEDA_DrawPanel* Panel, wxDC* DC )
|
||||
/********************************************************/
|
||||
|
||||
/**
|
||||
* Function Exit_Zones
|
||||
* cancels the Begin_Zone state if at least one EDGE_ZONE has been created.
|
||||
*/
|
||||
{
|
||||
WinEDA_PcbFrame* pcbframe = (WinEDA_PcbFrame*) Panel->m_Parent;
|
||||
|
||||
if( pcbframe->m_Pcb->m_CurrentLimitZone )
|
||||
{
|
||||
if( Panel->ManageCurseur ) // trace in progress
|
||||
{
|
||||
Panel->ManageCurseur( Panel, DC, 0 );
|
||||
}
|
||||
pcbframe->DelLimitesZone( DC, TRUE );
|
||||
}
|
||||
|
||||
Panel->ManageCurseur = NULL;
|
||||
Panel->ForceCloseManageCurseur = NULL;
|
||||
pcbframe->SetCurItem( NULL );
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************/
|
||||
void WinEDA_BasePcbFrame::DelLimitesZone( wxDC* DC, bool Redraw )
|
||||
/**************************************************************/
|
||||
{
|
||||
EDGE_ZONE* segment;
|
||||
EDGE_ZONE* next;
|
||||
|
||||
if( m_Pcb->m_CurrentLimitZone == NULL )
|
||||
return;
|
||||
|
||||
if( !IsOK( this, _( "Delete Current Zone Edges" ) ) )
|
||||
return;
|
||||
|
||||
// erase the old zone border, one segment at a time
|
||||
for( segment = m_Pcb->m_CurrentLimitZone; segment; segment = next )
|
||||
{
|
||||
next = segment->Next();
|
||||
|
||||
if( Redraw && DC )
|
||||
Trace_DrawSegmentPcb( DrawPanel, DC, segment, GR_XOR );
|
||||
|
||||
delete segment;
|
||||
}
|
||||
m_Pcb->m_CurrentLimitZone = NULL;
|
||||
|
||||
SetCurItem( NULL );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Function Begin_Zone
|
||||
* either initializes the first segment of a new zone, or adds an
|
||||
* intermediate segment.
|
||||
*/
|
||||
EDGE_ZONE* WinEDA_PcbFrame::Begin_Zone()
|
||||
{
|
||||
EDGE_ZONE* oldedge;
|
||||
EDGE_ZONE* newedge = NULL;
|
||||
|
||||
oldedge = m_Pcb->m_CurrentLimitZone;
|
||||
|
||||
// if first segment
|
||||
if( (m_Pcb->m_CurrentLimitZone == NULL ) /* debut reel du trace */
|
||||
|| (DrawPanel->ManageCurseur == NULL) ) /* reprise d'un trace complementaire */
|
||||
{
|
||||
newedge = new EDGE_ZONE( m_Pcb );
|
||||
newedge->m_Flags = IS_NEW | STARTPOINT | IS_MOVED;
|
||||
newedge->m_Start = newedge->m_End = GetScreen()->m_Curseur;
|
||||
newedge->SetLayer( GetScreen()->m_Active_Layer );
|
||||
|
||||
// link into list:
|
||||
newedge->Pnext = oldedge;
|
||||
|
||||
if( oldedge )
|
||||
oldedge->Pback = newedge;
|
||||
|
||||
m_Pcb->m_CurrentLimitZone = newedge;
|
||||
|
||||
DrawPanel->ManageCurseur = Show_Zone_Edge_While_MoveMouse;
|
||||
DrawPanel->ForceCloseManageCurseur = Exit_Zones;
|
||||
}
|
||||
|
||||
// edge in progress:
|
||||
else /* piste en cours : les coord du point d'arrivee ont ete mises
|
||||
* a jour par la routine Show_Zone_Edge_While_MoveMouse*/
|
||||
{
|
||||
if( oldedge->m_Start != oldedge->m_End )
|
||||
{
|
||||
oldedge->m_Flags &= ~(IS_NEW | IS_MOVED);
|
||||
|
||||
newedge = new EDGE_ZONE( oldedge );
|
||||
newedge->m_Flags = IS_NEW | IS_MOVED;
|
||||
newedge->m_Start = newedge->m_End = oldedge->m_End;
|
||||
newedge->SetLayer( GetScreen()->m_Active_Layer );
|
||||
|
||||
// link into list:
|
||||
newedge->Pnext = oldedge;
|
||||
oldedge->Pback = newedge;
|
||||
m_Pcb->m_CurrentLimitZone = newedge;
|
||||
}
|
||||
}
|
||||
|
||||
return newedge;
|
||||
}
|
||||
|
||||
|
||||
/*********************************************/
|
||||
void WinEDA_PcbFrame::End_Zone( wxDC* DC )
|
||||
/*********************************************/
|
||||
|
||||
/*
|
||||
* Routine de fin de trace d'une zone (succession de segments)
|
||||
*/
|
||||
{
|
||||
EDGE_ZONE* edge;
|
||||
|
||||
if( m_Pcb->m_CurrentLimitZone )
|
||||
{
|
||||
Begin_Zone();
|
||||
|
||||
/* le dernier point genere est de longueur tj nulle donc inutile. */
|
||||
/* il sera raccorde au point de depart */
|
||||
edge = m_Pcb->m_CurrentLimitZone;
|
||||
edge->m_Flags &= ~(IS_NEW | IS_MOVED);
|
||||
|
||||
while( edge && edge->Next() )
|
||||
{
|
||||
edge = edge->Next();
|
||||
if( edge->m_Flags & STARTPOINT )
|
||||
break;
|
||||
|
||||
edge->m_Flags &= ~(IS_NEW | IS_MOVED);
|
||||
}
|
||||
|
||||
if( edge )
|
||||
{
|
||||
edge->m_Flags &= ~(IS_NEW | IS_MOVED);
|
||||
m_Pcb->m_CurrentLimitZone->m_End = edge->m_Start;
|
||||
}
|
||||
Trace_DrawSegmentPcb( DrawPanel, DC, m_Pcb->m_CurrentLimitZone, GR_XOR );
|
||||
}
|
||||
|
||||
DrawPanel->ManageCurseur = NULL;
|
||||
DrawPanel->ForceCloseManageCurseur = NULL;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************************/
|
||||
static void Show_Zone_Edge_While_MoveMouse( WinEDA_DrawPanel* panel, wxDC* DC, bool erase )
|
||||
/******************************************************************************************/
|
||||
|
||||
/* redessin du contour de la piste lors des deplacements de la souris
|
||||
*/
|
||||
{
|
||||
EDGE_ZONE* edge;
|
||||
EDGE_ZONE* currentEdge;
|
||||
WinEDA_PcbFrame* pcbframe = (WinEDA_PcbFrame*) panel->m_Parent;
|
||||
|
||||
if( pcbframe->m_Pcb->m_CurrentLimitZone == NULL )
|
||||
return;
|
||||
|
||||
/* efface ancienne position si elle a ete deja dessinee */
|
||||
if( erase )
|
||||
{
|
||||
edge = pcbframe->m_Pcb->m_CurrentLimitZone;
|
||||
// for( ; edge; edge = edge->Next() )
|
||||
{
|
||||
Trace_DrawSegmentPcb( panel, DC, edge, GR_XOR );
|
||||
}
|
||||
}
|
||||
|
||||
/* mise a jour de la couche */
|
||||
for( edge = pcbframe->m_Pcb->m_CurrentLimitZone; edge; edge = edge->Next() )
|
||||
{
|
||||
edge->SetLayer( pcbframe->GetScreen()->m_Active_Layer );
|
||||
}
|
||||
|
||||
/* dessin de la nouvelle piste : mise a jour du point d'arrivee */
|
||||
currentEdge = pcbframe->m_Pcb->m_CurrentLimitZone;
|
||||
if( Zone_45_Only )
|
||||
{
|
||||
// Calcul de l'extremite de la piste pour orientations permises:
|
||||
// horiz,vertical ou 45 degre
|
||||
currentEdge->m_End = pcbframe->GetScreen()->m_Curseur;
|
||||
Calcule_Coord_Extremite_45( currentEdge->m_Start.x, currentEdge->m_Start.y,
|
||||
¤tEdge->m_End.x, ¤tEdge->m_End.y );
|
||||
}
|
||||
else /* ici l'angle d'inclinaison est quelconque */
|
||||
{
|
||||
currentEdge->m_End = pcbframe->GetScreen()->m_Curseur;
|
||||
}
|
||||
|
||||
// for( ; currentEdge; currentEdge = currentEdge->Next() )
|
||||
{
|
||||
Trace_DrawSegmentPcb( panel, DC, currentEdge, GR_XOR );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**********************************************/
|
||||
void WinEDA_PcbFrame::Fill_Zone( wxDC* DC )
|
||||
/**********************************************/
|
||||
|
||||
/** Function Fill_Zone()
|
||||
* Init the zone filling
|
||||
* If a zone edge is found, it is used.
|
||||
* Otherwise the whole board is filled by the zone
|
||||
* The zone edge is a frontier, and can be complex. So non filled zones can be achieved
|
||||
* The zone is put on the active layer
|
||||
* If a net is hightlighted, the zone will be attached to this net
|
||||
* The filling start from a starting point.
|
||||
* If a net is selected, all tracks attached to this net are also starting points
|
||||
*/
|
||||
{
|
||||
EQUIPOT* pt_equipot;
|
||||
wxPoint ZoneStartFill;
|
||||
wxString msg;
|
||||
|
||||
MsgPanel->EraseMsgBox();
|
||||
if( m_Pcb->ComputeBoundaryBox() == FALSE )
|
||||
{
|
||||
DisplayError( this, wxT( "Board is empty!" ), 10 );
|
||||
return;
|
||||
}
|
||||
|
||||
DrawPanel->m_IgnoreMouseEvents = TRUE;
|
||||
WinEDA_ZoneFrame* frame = new WinEDA_ZoneFrame( this );
|
||||
|
||||
int abrd = frame->ShowModal();
|
||||
frame->Destroy();
|
||||
DrawPanel->MouseToCursorSchema();
|
||||
DrawPanel->m_IgnoreMouseEvents = FALSE;
|
||||
|
||||
if( abrd )
|
||||
return;
|
||||
|
||||
|
||||
// set all the EDGE_ZONEs to the currently active layer and redraw them
|
||||
// on that layer.
|
||||
EDGE_ZONE* PtLim = m_Pcb->m_CurrentLimitZone;
|
||||
for( ; PtLim != NULL; PtLim = PtLim->Next() )
|
||||
{
|
||||
Trace_DrawSegmentPcb( DrawPanel, DC, PtLim, GR_XOR );
|
||||
PtLim->SetLayer( GetScreen()->m_Active_Layer );
|
||||
Trace_DrawSegmentPcb( DrawPanel, DC, PtLim, GR_XOR );
|
||||
}
|
||||
|
||||
/* Show the NetName */
|
||||
if( g_HightLigth_NetCode > 0 )
|
||||
{
|
||||
pt_equipot = m_Pcb->FindNet( g_HightLigth_NetCode );
|
||||
if( pt_equipot == NULL )
|
||||
{
|
||||
if( g_HightLigth_NetCode > 0 )
|
||||
DisplayError( this, wxT( "Unable to find Net name" ) );
|
||||
}
|
||||
else
|
||||
msg = pt_equipot->m_Netname;
|
||||
}
|
||||
else
|
||||
msg = _( "No Net" );
|
||||
|
||||
Affiche_1_Parametre( this, 22, _( "NetName" ), msg, RED );
|
||||
|
||||
Build_Zone( this, DC, g_HightLigth_NetCode, Zone_Exclude_Pads, s_Zone_Create_Thermal_Relief );
|
||||
|
||||
GetScreen()->SetModify();
|
||||
}
|
126
pcbnew/zones.h
126
pcbnew/zones.h
|
@ -1,126 +0,0 @@
|
|||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: zones.h
|
||||
// Purpose:
|
||||
// Author: jean-pierre Charras
|
||||
// Modified by:
|
||||
// Created: 25/01/2006 11:35:19
|
||||
// RCS-ID:
|
||||
// Copyright: GNU License
|
||||
// Licence:
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Generated by DialogBlocks (unregistered), 25/01/2006 11:35:19
|
||||
|
||||
#ifndef _ZONES_H_
|
||||
#define _ZONES_H_
|
||||
|
||||
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
||||
#pragma interface "zones.h"
|
||||
#endif
|
||||
|
||||
/*!
|
||||
* Includes
|
||||
*/
|
||||
#include "fctsys.h"
|
||||
#include "gr_basic.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "pcbnew.h"
|
||||
|
||||
#include "autorout.h"
|
||||
#include "cell.h"
|
||||
#include "trigo.h"
|
||||
|
||||
#include "protos.h"
|
||||
|
||||
////@begin includes
|
||||
////@end includes
|
||||
|
||||
/*!
|
||||
* Forward declarations
|
||||
*/
|
||||
|
||||
////@begin forward declarations
|
||||
////@end forward declarations
|
||||
|
||||
/*!
|
||||
* Control identifiers
|
||||
*/
|
||||
|
||||
////@begin control identifiers
|
||||
#define ID_DIALOG 10000
|
||||
#define ID_RADIOBOX 10001
|
||||
#define ID_TEXTCTRL 10006
|
||||
#define ID_RADIOBOX1 10004
|
||||
#define ID_RADIOBOX2 10005
|
||||
#define ID_FILL_ZONE 10002
|
||||
#define ID_SET_OPTIONS_ZONE 10003
|
||||
#define SYMBOL_WINEDA_ZONEFRAME_STYLE wxCAPTION|wxSYSTEM_MENU|wxCLOSE_BOX|MAYBE_RESIZE_BORDER
|
||||
#define SYMBOL_WINEDA_ZONEFRAME_TITLE _("Fill Zones Options")
|
||||
#define SYMBOL_WINEDA_ZONEFRAME_IDNAME ID_DIALOG
|
||||
#define SYMBOL_WINEDA_ZONEFRAME_SIZE wxSize(400, 300)
|
||||
#define SYMBOL_WINEDA_ZONEFRAME_POSITION wxDefaultPosition
|
||||
////@end control identifiers
|
||||
|
||||
/*!
|
||||
* Compatibility
|
||||
*/
|
||||
|
||||
#ifndef wxCLOSE_BOX
|
||||
#define wxCLOSE_BOX 0x1000
|
||||
#endif
|
||||
|
||||
/*!
|
||||
* WinEDA_ZoneFrame class declaration
|
||||
*/
|
||||
|
||||
class WinEDA_ZoneFrame: public wxDialog
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS( WinEDA_ZoneFrame )
|
||||
DECLARE_EVENT_TABLE()
|
||||
|
||||
public:
|
||||
/// Constructors
|
||||
WinEDA_ZoneFrame( );
|
||||
WinEDA_ZoneFrame( WinEDA_PcbFrame* parent, wxWindowID id = SYMBOL_WINEDA_ZONEFRAME_IDNAME, const wxString& caption = SYMBOL_WINEDA_ZONEFRAME_TITLE, const wxPoint& pos = SYMBOL_WINEDA_ZONEFRAME_POSITION, const wxSize& size = SYMBOL_WINEDA_ZONEFRAME_SIZE, long style = SYMBOL_WINEDA_ZONEFRAME_STYLE );
|
||||
|
||||
/// Creation
|
||||
bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WINEDA_ZONEFRAME_IDNAME, const wxString& caption = SYMBOL_WINEDA_ZONEFRAME_TITLE, const wxPoint& pos = SYMBOL_WINEDA_ZONEFRAME_POSITION, const wxSize& size = SYMBOL_WINEDA_ZONEFRAME_SIZE, long style = SYMBOL_WINEDA_ZONEFRAME_STYLE );
|
||||
|
||||
/// Creates the controls and sizers
|
||||
void CreateControls();
|
||||
|
||||
////@begin WinEDA_ZoneFrame event handler declarations
|
||||
|
||||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_FILL_ZONE
|
||||
void ExecFillZone( wxCommandEvent& event );
|
||||
|
||||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
|
||||
void OnCancelClick( wxCommandEvent& event );
|
||||
|
||||
////@end WinEDA_ZoneFrame event handler declarations
|
||||
|
||||
////@begin WinEDA_ZoneFrame member function declarations
|
||||
|
||||
/// Retrieves bitmap resources
|
||||
wxBitmap GetBitmapResource( const wxString& name );
|
||||
|
||||
/// Retrieves icon resources
|
||||
wxIcon GetIconResource( const wxString& name );
|
||||
////@end WinEDA_ZoneFrame member function declarations
|
||||
|
||||
/// Should we show tooltips?
|
||||
static bool ShowToolTips();
|
||||
|
||||
////@begin WinEDA_ZoneFrame member variables
|
||||
wxRadioBox* m_GridCtrl;
|
||||
wxStaticText* m_ClearanceValueTitle;
|
||||
wxTextCtrl* m_ZoneClearanceCtrl;
|
||||
wxRadioBox* m_FillOpt;
|
||||
wxRadioBox* m_OrientEdgesOpt;
|
||||
////@end WinEDA_ZoneFrame member variables
|
||||
WinEDA_PcbFrame * m_Parent;
|
||||
};
|
||||
|
||||
#endif // _ZONES_H_
|
||||
|
893
pcbnew/zones.pjd
893
pcbnew/zones.pjd
|
@ -1,893 +0,0 @@
|
|||
<?xml version="1.0" encoding="windows-1252"?>
|
||||
<anthemion-project version="1.0.0.0" xmlns="http://www.anthemion.co.uk">
|
||||
<header>
|
||||
<long name="name_counter">0</long>
|
||||
<string name="html_path">""</string>
|
||||
<string name="title">""</string>
|
||||
<string name="author">""</string>
|
||||
<string name="description">""</string>
|
||||
<long name="doc_count">23</long>
|
||||
<string name="xrc_filename">""</string>
|
||||
<bool name="convert_images_to_xpm">0</bool>
|
||||
<bool name="inline_images">0</bool>
|
||||
<bool name="generate_cpp_for_xrc">0</bool>
|
||||
<bool name="use_help_text_for_tooltips">1</bool>
|
||||
<bool name="translate_strings">1</bool>
|
||||
<bool name="extract_strings">0</bool>
|
||||
<string name="user_name">"jean-pierre Charras"</string>
|
||||
<string name="copyright_string">"GNU License"</string>
|
||||
<string name="resource_prefix">""</string>
|
||||
<bool name="use_two_step_construction">0</bool>
|
||||
<string name="current_platform">"<All platforms>"</string>
|
||||
<string name="target_wx_version">"<Any>"</string>
|
||||
<string name="cpp_header_comment">"/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: %HEADER-FILENAME%
|
||||
// Purpose:
|
||||
// Author: %AUTHOR%
|
||||
// Modified by:
|
||||
// Created: %DATE%
|
||||
// RCS-ID:
|
||||
// Copyright: %COPYRIGHT%
|
||||
// Licence:
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
"</string>
|
||||
<string name="cpp_implementation_comment">"/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: %SOURCE-FILENAME%
|
||||
// Purpose:
|
||||
// Author: %AUTHOR%
|
||||
// Modified by:
|
||||
// Created: %DATE%
|
||||
// RCS-ID:
|
||||
// Copyright: %COPYRIGHT%
|
||||
// Licence:
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
"</string>
|
||||
<string name="cpp_function_comment">"
|
||||
/*!
|
||||
* %BODY%
|
||||
*/
|
||||
|
||||
"</string>
|
||||
<string name="cpp_symbols_file_comment">"/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: %SYMBOLS-FILENAME%
|
||||
// Purpose: Symbols file
|
||||
// Author: %AUTHOR%
|
||||
// Modified by:
|
||||
// Created: %DATE%
|
||||
// RCS-ID:
|
||||
// Copyright: %COPYRIGHT%
|
||||
// Licence:
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
"</string>
|
||||
<string name="cpp_header_preamble">"#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
||||
#pragma interface "%HEADER-FILENAME%"
|
||||
#endif
|
||||
|
||||
"</string>
|
||||
<string name="cpp_implementation_preamble">"#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
||||
#pragma implementation "%HEADER-FILENAME%"
|
||||
#endif
|
||||
|
||||
// For compilers that support precompilation, includes "wx/wx.h".
|
||||
#include "wx/wxprec.h"
|
||||
|
||||
#ifdef __BORLANDC__
|
||||
#pragma hdrstop
|
||||
#endif
|
||||
|
||||
#ifndef WX_PRECOMP
|
||||
#include "wx/wx.h"
|
||||
#endif
|
||||
|
||||
"</string>
|
||||
<string name="resource_file_header">"app_resources.h"</string>
|
||||
<string name="resource_file_implementation">"app_resources.cpp"</string>
|
||||
<string name="resource_class_name">"AppResources"</string>
|
||||
<string name="app_file_header">"app.h"</string>
|
||||
<string name="app_file_implementation">"app.cpp"</string>
|
||||
<string name="app_class_name">"Application"</string>
|
||||
<bool name="generate_app_class">0</bool>
|
||||
<string name="external_symbol_filenames">""</string>
|
||||
<string name="configuration">"<None>"</string>
|
||||
<string name="source_encoding">"<System>"</string>
|
||||
<string name="project_encoding">"<System>"</string>
|
||||
<string name="resource_archive">""</string>
|
||||
<bool name="use_resource_archive">0</bool>
|
||||
<bool name="archive_xrc_files">1</bool>
|
||||
<bool name="archive_image_files">1</bool>
|
||||
</header>
|
||||
<data>
|
||||
<document>
|
||||
<string name="title">""</string>
|
||||
<string name="type">"data-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">""</string>
|
||||
<long name="is-transient">0</long>
|
||||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<document>
|
||||
<string name="title">"Configurations"</string>
|
||||
<string name="type">"config-data-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">""</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="template-name">""</string>
|
||||
<bool name="dirty">1</bool>
|
||||
<string name="Compiler name">""</string>
|
||||
<string name="Build mode">"Debug"</string>
|
||||
<string name="Unicode mode">"ANSI"</string>
|
||||
<string name="Shared mode">"Static"</string>
|
||||
<string name="Modularity">"Modular"</string>
|
||||
<string name="GUI mode">"GUI"</string>
|
||||
<string name="Toolkit">"wxMSW"</string>
|
||||
<string name="Runtime linking">"Dynamic"</string>
|
||||
<string name="Use exceptions">"Yes"</string>
|
||||
<string name="Use ODBC">"No"</string>
|
||||
<string name="Use OpenGL">"No"</string>
|
||||
<string name="wxWidgets version">"%WXVERSION%"</string>
|
||||
<string name="Executable name">"%EXECUTABLE%"</string>
|
||||
<string name="Program arguments">""</string>
|
||||
<string name="Working path">"%AUTO%"</string>
|
||||
<string name="Output path">"%AUTO%"</string>
|
||||
<string name="Objects path">"%AUTO%"</string>
|
||||
<string name="Compiler location">"%AUTO%"</string>
|
||||
<string name="wxWidgets location">"%AUTO%"</string>
|
||||
<string name="C++ command">"%AUTO%"</string>
|
||||
<string name="Resource compiler">"%AUTO%"</string>
|
||||
<string name="Make command">"%AUTO%"</string>
|
||||
<string name="Project makefile">"%AUTO%"</string>
|
||||
<string name="wxWidgets makefile">"%AUTO%"</string>
|
||||
<string name="Compiler bin path">"%AUTO%"</string>
|
||||
<string name="Compiler include path">"%AUTO%"</string>
|
||||
<string name="Compiler lib path">"%AUTO%"</string>
|
||||
<string name="Preprocessor flags">"%AUTO%"</string>
|
||||
<string name="Optimizations">"%AUTO%"</string>
|
||||
<string name="Warnings">"%AUTO%"</string>
|
||||
<string name="Debug flags">"%AUTO%"</string>
|
||||
<string name="Libraries">"%AUTO%"</string>
|
||||
<string name="Library path">"%AUTO%"</string>
|
||||
<string name="Linker flags">"%AUTO%"</string>
|
||||
<string name="Include path">"%AUTO%"</string>
|
||||
<string name="Resource flags">"%AUTO%"</string>
|
||||
<string name="Resource path">"%AUTO%"</string>
|
||||
<string name="wxWidgets build path">"%AUTO%"</string>
|
||||
<string name="wxWidgets build command">"%AUTO%"</string>
|
||||
<string name="wxWidgets clean command">"%AUTO%"</string>
|
||||
<string name="PATH variable">"%AUTO%"</string>
|
||||
</document>
|
||||
</document>
|
||||
</data>
|
||||
|
||||
<documents>
|
||||
<document>
|
||||
<string name="title">"Projects"</string>
|
||||
<string name="type">"root-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"project"</string>
|
||||
<long name="is-transient">1</long>
|
||||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<document>
|
||||
<string name="title">"Windows"</string>
|
||||
<string name="type">"html-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"dialogsfolder"</string>
|
||||
<long name="is-transient">1</long>
|
||||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">1</long>
|
||||
<document>
|
||||
<string name="title">"Fill Zones Options"</string>
|
||||
<string name="type">"dialog-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"dialog"</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">"25/4/2006"</string>
|
||||
<string name="proxy-type">"wbDialogProxy"</string>
|
||||
<long name="base-id">10000</long>
|
||||
<bool name="use-id-prefix">0</bool>
|
||||
<string name="id-prefix">""</string>
|
||||
<long name="use-xrc">0</long>
|
||||
<string name="proxy-Id name">"ID_DIALOG"</string>
|
||||
<long name="proxy-Id value">10000</long>
|
||||
<string name="proxy-Class">"WinEDA_ZoneFrame"</string>
|
||||
<string name="proxy-Base class">"wxDialog"</string>
|
||||
<string name="proxy-Window kind">"wxDialog"</string>
|
||||
<string name="proxy-Implementation filename">"zones.cpp"</string>
|
||||
<string name="proxy-Header filename">"zones.h"</string>
|
||||
<string name="proxy-XRC filename">""</string>
|
||||
<string name="proxy-Title">"Fill Zones Options"</string>
|
||||
<bool name="proxy-Centre">1</bool>
|
||||
<string name="proxy-Icon">""</string>
|
||||
<bool name="proxy-Dialog units">0</bool>
|
||||
<string name="proxy-Help text">""</string>
|
||||
<string name="proxy-Tooltip text">""</string>
|
||||
<string name="proxy-Background colour">""</string>
|
||||
<string name="proxy-Foreground colour">""</string>
|
||||
<string name="proxy-Font">""</string>
|
||||
<bool name="proxy-Hidden">0</bool>
|
||||
<bool name="proxy-Enabled">1</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<bool name="proxy-wxDEFAULT_DIALOG_STYLE">0</bool>
|
||||
<bool name="proxy-wxCAPTION">1</bool>
|
||||
<bool name="proxy-wxRESIZE_BORDER">0</bool>
|
||||
<bool name="proxy-wxTHICK_FRAME">0</bool>
|
||||
<bool name="proxy-wxSYSTEM_MENU">1</bool>
|
||||
<bool name="proxy-wxSTAY_ON_TOP">0</bool>
|
||||
<bool name="proxy-wxDIALOG_NO_PARENT">0</bool>
|
||||
<bool name="proxy-wxCLOSE_BOX">1</bool>
|
||||
<bool name="proxy-wxMAXIMIZE_BOX">0</bool>
|
||||
<bool name="proxy-wxMINIMIZE_BOX">0</bool>
|
||||
<bool name="proxy-wxDIALOG_MODAL">0</bool>
|
||||
<bool name="proxy-wxNO_BORDER">0</bool>
|
||||
<bool name="proxy-wxSIMPLE_BORDER">0</bool>
|
||||
<bool name="proxy-wxDOUBLE_BORDER">0</bool>
|
||||
<bool name="proxy-wxSUNKEN_BORDER">0</bool>
|
||||
<bool name="proxy-wxRAISED_BORDER">0</bool>
|
||||
<bool name="proxy-wxSTATIC_BORDER">0</bool>
|
||||
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||
<bool name="proxy-wxCLIP_CHILDREN ">0</bool>
|
||||
<bool name="proxy-wxTAB_TRAVERSAL">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_TRANSIENT">0</bool>
|
||||
<string name="proxy-Custom styles">"MAYBE_RESIZE_BORDER"</string>
|
||||
<bool name="proxy-wxDIALOG_EX_CONTEXTHELP">0</bool>
|
||||
<bool name="proxy-Fit to content">1</bool>
|
||||
<long name="proxy-X">-1</long>
|
||||
<long name="proxy-Y">-1</long>
|
||||
<long name="proxy-Width">400</long>
|
||||
<long name="proxy-Height">300</long>
|
||||
<string name="proxy-Event sources">""</string>
|
||||
<document>
|
||||
<string name="title">"wxBoxSizer H"</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="proxy-type">"wbBoxSizerProxy"</string>
|
||||
<string name="proxy-Orientation">"Horizontal"</string>
|
||||
<string name="proxy-Member variable name">""</string>
|
||||
<bool name="proxy-wxSHAPED">0</bool>
|
||||
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<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">"25/4/2006"</string>
|
||||
<string name="proxy-type">"wbBoxSizerProxy"</string>
|
||||
<string name="proxy-Orientation">"Vertical"</string>
|
||||
<string name="proxy-Member variable name">""</string>
|
||||
<string name="proxy-AlignH">"Centre"</string>
|
||||
<string name="proxy-AlignV">"Expand"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
<bool name="proxy-wxLEFT">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</bool>
|
||||
<bool name="proxy-wxTOP">1</bool>
|
||||
<bool name="proxy-wxBOTTOM">1</bool>
|
||||
<bool name="proxy-wxSHAPED">0</bool>
|
||||
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<document>
|
||||
<string name="title">"wxRadioBox: ID_RADIOBOX"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"radiobox"</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">"25/4/2006"</string>
|
||||
<string name="proxy-type">"wbRadioBoxProxy"</string>
|
||||
<string name="proxy-Id name">"ID_RADIOBOX"</string>
|
||||
<long name="proxy-Id value">10001</long>
|
||||
<string name="proxy-Class">"wxRadioBox"</string>
|
||||
<string name="proxy-Member variable name">"m_GridCtrl"</string>
|
||||
<string name="proxy-Label">"Grid size:"</string>
|
||||
<long name="proxy-Major dimension count">1</long>
|
||||
<string name="proxy-Help text">""</string>
|
||||
<string name="proxy-Tooltip text">""</string>
|
||||
<string name="proxy-Background colour">""</string>
|
||||
<string name="proxy-Foreground colour">""</string>
|
||||
<string name="proxy-Font">""</string>
|
||||
<bool name="proxy-Hidden">0</bool>
|
||||
<bool name="proxy-Enabled">1</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<string name="proxy-Data variable">""</string>
|
||||
<string name="proxy-Data validator">""</string>
|
||||
<bool name="proxy-wxRA_SPECIFY_ROWS">0</bool>
|
||||
<bool name="proxy-wxRA_SPECIFY_COLS">1</bool>
|
||||
<string name="proxy-Items">"0.00000|0.00000|0.00000|0.00000"</string>
|
||||
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||
<string name="proxy-Custom styles">""</string>
|
||||
<long name="proxy-X">-1</long>
|
||||
<long name="proxy-Y">-1</long>
|
||||
<long name="proxy-Width">-1</long>
|
||||
<long name="proxy-Height">-1</long>
|
||||
<string name="proxy-AlignH">"Left"</string>
|
||||
<string name="proxy-AlignV">"Centre"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
<bool name="proxy-wxLEFT">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</bool>
|
||||
<bool name="proxy-wxTOP">1</bool>
|
||||
<bool name="proxy-wxBOTTOM">1</bool>
|
||||
<bool name="proxy-wxSHAPED">0</bool>
|
||||
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Custom arguments">""</string>
|
||||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"wxStaticText: wxID_STATIC"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"statictext"</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">"25/12/2006"</string>
|
||||
<string name="proxy-type">"wbStaticTextProxy"</string>
|
||||
<string name="proxy-Id name">"wxID_STATIC"</string>
|
||||
<long name="proxy-Id value">5105</long>
|
||||
<string name="proxy-Class">"wxStaticText"</string>
|
||||
<string name="proxy-Member variable name">"m_ClearanceValueTitle"</string>
|
||||
<string name="proxy-Label">"Zone clearance value (mm):"</string>
|
||||
<string name="proxy-Help text">""</string>
|
||||
<string name="proxy-Tooltip text">""</string>
|
||||
<string name="proxy-Background colour">""</string>
|
||||
<string name="proxy-Foreground colour">""</string>
|
||||
<string name="proxy-Font">""</string>
|
||||
<bool name="proxy-Hidden">0</bool>
|
||||
<bool name="proxy-Enabled">1</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<string name="proxy-Data variable">""</string>
|
||||
<string name="proxy-Data validator">""</string>
|
||||
<bool name="proxy-wxALIGN_LEFT">0</bool>
|
||||
<bool name="proxy-wxALIGN_RIGHT">0</bool>
|
||||
<bool name="proxy-wxALIGN_CENTRE">0</bool>
|
||||
<bool name="proxy-wxST_NO_AUTORESIZE">0</bool>
|
||||
<bool name="proxy-wxNO_BORDER">0</bool>
|
||||
<bool name="proxy-wxSIMPLE_BORDER">0</bool>
|
||||
<bool name="proxy-wxDOUBLE_BORDER">0</bool>
|
||||
<bool name="proxy-wxSUNKEN_BORDER">0</bool>
|
||||
<bool name="proxy-wxRAISED_BORDER">0</bool>
|
||||
<bool name="proxy-wxSTATIC_BORDER">0</bool>
|
||||
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||
<string name="proxy-Custom styles">""</string>
|
||||
<long name="proxy-X">-1</long>
|
||||
<long name="proxy-Y">-1</long>
|
||||
<long name="proxy-Width">-1</long>
|
||||
<long name="proxy-Height">-1</long>
|
||||
<string name="proxy-AlignH">"Left"</string>
|
||||
<string name="proxy-AlignV">"Centre"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
<bool name="proxy-wxLEFT">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</bool>
|
||||
<bool name="proxy-wxTOP">1</bool>
|
||||
<bool name="proxy-wxBOTTOM">0</bool>
|
||||
<bool name="proxy-wxSHAPED">0</bool>
|
||||
<bool name="proxy-wxADJUST_MINSIZE">1</bool>
|
||||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Custom arguments">""</string>
|
||||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"wxTextCtrl: ID_TEXTCTRL"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"textctrl"</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">"25/12/2006"</string>
|
||||
<string name="proxy-type">"wbTextCtrlProxy"</string>
|
||||
<string name="proxy-Id name">"ID_TEXTCTRL"</string>
|
||||
<long name="proxy-Id value">10006</long>
|
||||
<string name="proxy-Class">"wxTextCtrl"</string>
|
||||
<string name="proxy-Member variable name">"m_ZoneClearanceCtrl"</string>
|
||||
<string name="proxy-Initial value">""</string>
|
||||
<long name="proxy-Max length">0</long>
|
||||
<string name="proxy-Help text">""</string>
|
||||
<string name="proxy-Tooltip text">""</string>
|
||||
<string name="proxy-Background colour">""</string>
|
||||
<string name="proxy-Foreground colour">""</string>
|
||||
<string name="proxy-Font">""</string>
|
||||
<bool name="proxy-Hidden">0</bool>
|
||||
<bool name="proxy-Enabled">1</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<string name="proxy-Data variable">""</string>
|
||||
<string name="proxy-Data validator">""</string>
|
||||
<bool name="proxy-wxTE_MULTILINE">0</bool>
|
||||
<bool name="proxy-wxTE_PROCESS_ENTER">0</bool>
|
||||
<bool name="proxy-wxTE_PROCESS_TAB">0</bool>
|
||||
<bool name="proxy-wxTE_PASSWORD">0</bool>
|
||||
<bool name="proxy-wxTE_READONLY">0</bool>
|
||||
<bool name="proxy-wxTE_RICH">0</bool>
|
||||
<bool name="proxy-wxTE_RICH2">0</bool>
|
||||
<bool name="proxy-wxTE_AUTO_URL">0</bool>
|
||||
<bool name="proxy-wxTE_NOHIDESEL">0</bool>
|
||||
<bool name="proxy-wxTE_LEFT">0</bool>
|
||||
<bool name="proxy-wxTE_CENTRE">0</bool>
|
||||
<bool name="proxy-wxTE_RIGHT">0</bool>
|
||||
<bool name="proxy-wxHSCROLL">0</bool>
|
||||
<bool name="proxy-wxTE_LINEWRAP">0</bool>
|
||||
<bool name="proxy-wxTE_WORDWRAP">0</bool>
|
||||
<bool name="proxy-wxNO_BORDER">0</bool>
|
||||
<bool name="proxy-wxSIMPLE_BORDER">0</bool>
|
||||
<bool name="proxy-wxDOUBLE_BORDER">0</bool>
|
||||
<bool name="proxy-wxSUNKEN_BORDER">0</bool>
|
||||
<bool name="proxy-wxRAISED_BORDER">0</bool>
|
||||
<bool name="proxy-wxSTATIC_BORDER">0</bool>
|
||||
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||
<string name="proxy-Custom styles">""</string>
|
||||
<long name="proxy-X">-1</long>
|
||||
<long name="proxy-Y">-1</long>
|
||||
<long name="proxy-Width">-1</long>
|
||||
<long name="proxy-Height">-1</long>
|
||||
<string name="proxy-AlignH">"Left"</string>
|
||||
<string name="proxy-AlignV">"Centre"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
<bool name="proxy-wxLEFT">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</bool>
|
||||
<bool name="proxy-wxTOP">0</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-Custom arguments">""</string>
|
||||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
</document>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"Spacer"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"spacer"</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">"25/4/2006"</string>
|
||||
<string name="proxy-type">"wbSpacerProxy"</string>
|
||||
<long name="proxy-Width">5</long>
|
||||
<long name="proxy-Height">5</long>
|
||||
<string name="proxy-AlignH">"Centre"</string>
|
||||
<string name="proxy-AlignV">"Expand"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
<bool name="proxy-wxLEFT">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</bool>
|
||||
<bool name="proxy-wxTOP">1</bool>
|
||||
<bool name="proxy-wxBOTTOM">1</bool>
|
||||
<bool name="proxy-wxSHAPED">0</bool>
|
||||
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
</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">"25/4/2006"</string>
|
||||
<string name="proxy-type">"wbBoxSizerProxy"</string>
|
||||
<string name="proxy-Orientation">"Vertical"</string>
|
||||
<string name="proxy-Member variable name">""</string>
|
||||
<string name="proxy-AlignH">"Centre"</string>
|
||||
<string name="proxy-AlignV">"Expand"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
<bool name="proxy-wxLEFT">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</bool>
|
||||
<bool name="proxy-wxTOP">1</bool>
|
||||
<bool name="proxy-wxBOTTOM">1</bool>
|
||||
<bool name="proxy-wxSHAPED">0</bool>
|
||||
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<document>
|
||||
<string name="title">"wxRadioBox: ID_RADIOBOX1"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"radiobox"</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">"25/4/2006"</string>
|
||||
<string name="proxy-type">"wbRadioBoxProxy"</string>
|
||||
<string name="proxy-Id name">"ID_RADIOBOX1"</string>
|
||||
<long name="proxy-Id value">10004</long>
|
||||
<string name="proxy-Class">"wxRadioBox"</string>
|
||||
<string name="proxy-Member variable name">"m_FillOpt"</string>
|
||||
<string name="proxy-Label">"Pad options:"</string>
|
||||
<long name="proxy-Major dimension count">1</long>
|
||||
<string name="proxy-Help text">""</string>
|
||||
<string name="proxy-Tooltip text">""</string>
|
||||
<string name="proxy-Background colour">""</string>
|
||||
<string name="proxy-Foreground colour">""</string>
|
||||
<string name="proxy-Font">""</string>
|
||||
<bool name="proxy-Hidden">0</bool>
|
||||
<bool name="proxy-Enabled">1</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<string name="proxy-Data variable">""</string>
|
||||
<string name="proxy-Data validator">""</string>
|
||||
<bool name="proxy-wxRA_SPECIFY_ROWS">0</bool>
|
||||
<bool name="proxy-wxRA_SPECIFY_COLS">1</bool>
|
||||
<string name="proxy-Items">"Include Pads|Thermal|Exclude Pads"</string>
|
||||
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||
<string name="proxy-Custom styles">""</string>
|
||||
<long name="proxy-X">-1</long>
|
||||
<long name="proxy-Y">-1</long>
|
||||
<long name="proxy-Width">-1</long>
|
||||
<long name="proxy-Height">-1</long>
|
||||
<string name="proxy-AlignH">"Left"</string>
|
||||
<string name="proxy-AlignV">"Centre"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
<bool name="proxy-wxLEFT">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</bool>
|
||||
<bool name="proxy-wxTOP">1</bool>
|
||||
<bool name="proxy-wxBOTTOM">1</bool>
|
||||
<bool name="proxy-wxSHAPED">0</bool>
|
||||
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Custom arguments">""</string>
|
||||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"wxRadioBox: ID_RADIOBOX2"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"radiobox"</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">"25/4/2006"</string>
|
||||
<string name="proxy-type">"wbRadioBoxProxy"</string>
|
||||
<string name="proxy-Id name">"ID_RADIOBOX2"</string>
|
||||
<long name="proxy-Id value">10005</long>
|
||||
<string name="proxy-Class">"wxRadioBox"</string>
|
||||
<string name="proxy-Member variable name">"m_OrientEdgesOpt"</string>
|
||||
<string name="proxy-Label">"Zone edges orient:"</string>
|
||||
<long name="proxy-Major dimension count">1</long>
|
||||
<string name="proxy-Help text">""</string>
|
||||
<string name="proxy-Tooltip text">""</string>
|
||||
<string name="proxy-Background colour">""</string>
|
||||
<string name="proxy-Foreground colour">""</string>
|
||||
<string name="proxy-Font">""</string>
|
||||
<bool name="proxy-Hidden">0</bool>
|
||||
<bool name="proxy-Enabled">1</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<string name="proxy-Data variable">""</string>
|
||||
<string name="proxy-Data validator">""</string>
|
||||
<bool name="proxy-wxRA_SPECIFY_ROWS">0</bool>
|
||||
<bool name="proxy-wxRA_SPECIFY_COLS">1</bool>
|
||||
<string name="proxy-Items">"Any|H , V and 45 deg"</string>
|
||||
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||
<string name="proxy-Custom styles">""</string>
|
||||
<long name="proxy-X">-1</long>
|
||||
<long name="proxy-Y">-1</long>
|
||||
<long name="proxy-Width">-1</long>
|
||||
<long name="proxy-Height">-1</long>
|
||||
<string name="proxy-AlignH">"Right"</string>
|
||||
<string name="proxy-AlignV">"Centre"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
<bool name="proxy-wxLEFT">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</bool>
|
||||
<bool name="proxy-wxTOP">1</bool>
|
||||
<bool name="proxy-wxBOTTOM">1</bool>
|
||||
<bool name="proxy-wxSHAPED">0</bool>
|
||||
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Custom arguments">""</string>
|
||||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
</document>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"Spacer"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"spacer"</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">"25/4/2006"</string>
|
||||
<string name="proxy-type">"wbSpacerProxy"</string>
|
||||
<long name="proxy-Width">5</long>
|
||||
<long name="proxy-Height">5</long>
|
||||
<string name="proxy-AlignH">"Centre"</string>
|
||||
<string name="proxy-AlignV">"Expand"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
<bool name="proxy-wxLEFT">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</bool>
|
||||
<bool name="proxy-wxTOP">1</bool>
|
||||
<bool name="proxy-wxBOTTOM">1</bool>
|
||||
<bool name="proxy-wxSHAPED">0</bool>
|
||||
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
</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">"25/4/2006"</string>
|
||||
<string name="proxy-type">"wbBoxSizerProxy"</string>
|
||||
<string name="proxy-Orientation">"Vertical"</string>
|
||||
<string name="proxy-Member variable name">""</string>
|
||||
<string name="proxy-AlignH">"Centre"</string>
|
||||
<string name="proxy-AlignV">"Top"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
<bool name="proxy-wxLEFT">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</bool>
|
||||
<bool name="proxy-wxTOP">1</bool>
|
||||
<bool name="proxy-wxBOTTOM">1</bool>
|
||||
<bool name="proxy-wxSHAPED">0</bool>
|
||||
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<document>
|
||||
<string name="title">"wxButton: ID_FILL_ZONE"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"dialogcontrol"</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">"25/4/2006"</string>
|
||||
<string name="proxy-type">"wbButtonProxy"</string>
|
||||
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|ExecFillZone"</string>
|
||||
<string name="proxy-Id name">"ID_FILL_ZONE"</string>
|
||||
<long name="proxy-Id value">10002</long>
|
||||
<string name="proxy-Class">"wxButton"</string>
|
||||
<string name="proxy-Member variable name">""</string>
|
||||
<string name="proxy-Label">"Fill"</string>
|
||||
<bool name="proxy-Default">1</bool>
|
||||
<string name="proxy-Help text">""</string>
|
||||
<string name="proxy-Tooltip text">""</string>
|
||||
<string name="proxy-Background colour">""</string>
|
||||
<string name="proxy-Foreground colour">"CC0000"</string>
|
||||
<string name="proxy-Font">""</string>
|
||||
<bool name="proxy-Hidden">0</bool>
|
||||
<bool name="proxy-Enabled">1</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<bool name="proxy-wxBU_LEFT">0</bool>
|
||||
<bool name="proxy-wxBU_RIGHT">0</bool>
|
||||
<bool name="proxy-wxBU_TOP">0</bool>
|
||||
<bool name="proxy-wxBU_BOTTOM">0</bool>
|
||||
<bool name="proxy-wxBU_EXACTFIT">0</bool>
|
||||
<bool name="proxy-wxNO_BORDER">0</bool>
|
||||
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||
<string name="proxy-Custom styles">""</string>
|
||||
<long name="proxy-X">-1</long>
|
||||
<long name="proxy-Y">-1</long>
|
||||
<long name="proxy-Width">-1</long>
|
||||
<long name="proxy-Height">-1</long>
|
||||
<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">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</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-Custom arguments">""</string>
|
||||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"wxButton: wxID_CANCEL"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"dialogcontrol"</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">"25/4/2006"</string>
|
||||
<string name="proxy-type">"wbButtonProxy"</string>
|
||||
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnCancelClick"</string>
|
||||
<string name="proxy-Id name">"wxID_CANCEL"</string>
|
||||
<long name="proxy-Id value">5101</long>
|
||||
<string name="proxy-Class">"wxButton"</string>
|
||||
<string name="proxy-Member variable name">""</string>
|
||||
<string name="proxy-Label">"&Cancel"</string>
|
||||
<bool name="proxy-Default">0</bool>
|
||||
<string name="proxy-Help text">""</string>
|
||||
<string name="proxy-Tooltip text">""</string>
|
||||
<string name="proxy-Background colour">""</string>
|
||||
<string name="proxy-Foreground colour">"0000FF"</string>
|
||||
<string name="proxy-Font">""</string>
|
||||
<bool name="proxy-Hidden">0</bool>
|
||||
<bool name="proxy-Enabled">1</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<bool name="proxy-wxBU_LEFT">0</bool>
|
||||
<bool name="proxy-wxBU_RIGHT">0</bool>
|
||||
<bool name="proxy-wxBU_TOP">0</bool>
|
||||
<bool name="proxy-wxBU_BOTTOM">0</bool>
|
||||
<bool name="proxy-wxBU_EXACTFIT">0</bool>
|
||||
<bool name="proxy-wxNO_BORDER">0</bool>
|
||||
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||
<string name="proxy-Custom styles">""</string>
|
||||
<long name="proxy-X">-1</long>
|
||||
<long name="proxy-Y">-1</long>
|
||||
<long name="proxy-Width">-1</long>
|
||||
<long name="proxy-Height">-1</long>
|
||||
<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">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</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-Custom arguments">""</string>
|
||||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"wxButton: ID_SET_OPTIONS_ZONE"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"dialogcontrol"</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">"25/4/2006"</string>
|
||||
<string name="proxy-type">"wbButtonProxy"</string>
|
||||
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|ExecFillZone"</string>
|
||||
<string name="proxy-Id name">"ID_SET_OPTIONS_ZONE"</string>
|
||||
<long name="proxy-Id value">10003</long>
|
||||
<string name="proxy-Class">"wxButton"</string>
|
||||
<string name="proxy-Member variable name">""</string>
|
||||
<string name="proxy-Label">"Update Options"</string>
|
||||
<bool name="proxy-Default">0</bool>
|
||||
<string name="proxy-Help text">""</string>
|
||||
<string name="proxy-Tooltip text">""</string>
|
||||
<string name="proxy-Background colour">""</string>
|
||||
<string name="proxy-Foreground colour">"006400"</string>
|
||||
<string name="proxy-Font">""</string>
|
||||
<bool name="proxy-Hidden">0</bool>
|
||||
<bool name="proxy-Enabled">1</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<bool name="proxy-wxBU_LEFT">0</bool>
|
||||
<bool name="proxy-wxBU_RIGHT">0</bool>
|
||||
<bool name="proxy-wxBU_TOP">0</bool>
|
||||
<bool name="proxy-wxBU_BOTTOM">0</bool>
|
||||
<bool name="proxy-wxBU_EXACTFIT">0</bool>
|
||||
<bool name="proxy-wxNO_BORDER">0</bool>
|
||||
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||
<string name="proxy-Custom styles">""</string>
|
||||
<long name="proxy-X">-1</long>
|
||||
<long name="proxy-Y">-1</long>
|
||||
<long name="proxy-Width">-1</long>
|
||||
<long name="proxy-Height">-1</long>
|
||||
<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">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</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-Custom arguments">""</string>
|
||||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
</document>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"Spacer"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"spacer"</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">"25/9/2006"</string>
|
||||
<string name="proxy-type">"wbSpacerProxy"</string>
|
||||
<long name="proxy-Width">5</long>
|
||||
<long name="proxy-Height">5</long>
|
||||
<string name="proxy-AlignH">"Centre"</string>
|
||||
<string name="proxy-AlignV">"Expand"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
<bool name="proxy-wxLEFT">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</bool>
|
||||
<bool name="proxy-wxTOP">1</bool>
|
||||
<bool name="proxy-wxBOTTOM">1</bool>
|
||||
<bool name="proxy-wxSHAPED">0</bool>
|
||||
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
</document>
|
||||
</document>
|
||||
</document>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"Sources"</string>
|
||||
<string name="type">"html-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"sourcesfolder"</string>
|
||||
<long name="is-transient">1</long>
|
||||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">1</long>
|
||||
<document>
|
||||
<string name="title">"zones.rc"</string>
|
||||
<string name="type">"source-editor-document"</string>
|
||||
<string name="filename">"zones.rc"</string>
|
||||
<string name="icon-name">"source-editor"</string>
|
||||
<long name="is-transient">0</long>
|
||||
<long name="owns-file">0</long>
|
||||
<long name="title-mode">1</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"25/4/2006"</string>
|
||||
<string name="language">""</string>
|
||||
</document>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"Images"</string>
|
||||
<string name="type">"html-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"bitmapsfolder"</string>
|
||||
<long name="is-transient">1</long>
|
||||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">1</long>
|
||||
</document>
|
||||
</document>
|
||||
</documents>
|
||||
|
||||
</anthemion-project>
|
|
@ -1 +0,0 @@
|
|||
#include "wx/msw/wx.rc"
|
Loading…
Reference in New Issue