
Change Log for Kicad
Started 2007-June-11

Please add newer entries at the top, list the date and your name with
email address.

2009-Feb-25 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
++EESchema
  * Fixed hot key bug that caused undo and redo events in the library editor
    to be passed to the schematic frame.  Fixes bug #1896790.
  * Fixed hot key bug that allowed new wire to be placed during block move
    causing a manage cursor message box to pop up.
  * Fixed hot key bug that allows an object in block to be deleted during
    a move or drag operation.


2009-Feb-25 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++pcbnew
  * Markers were not shown when on top of a high-lighted pad.  Moved highlight
    drawing function into class BOARD and out of Frame.  Call BOARD::DrawHighLight() from
    within BOARD::Draw() to fix.
  * Gerbers were not generated if you had EDGE_MODULEs on a copper layer, such as in
    a MuWaveBasicShape.  The line thickness was not being put into the gerber via a DCODE.
    These gerber files were bad, and geda gerbv would also complain.
  * A few window titles were not conformant with UIpolicies.txt.
  * You could not load a *.pro file from another project into PCBNEW if your current
    project had none.  Changed wildcard mask.
  * Deleted gen_self.h and moved that code into muonde.cpp


2009-Feb-24 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++pcbnew
  * dialog boxes calling OnInitDialog are flashing because these functions
    change the size of controls that are already on screen.  This leads to
    an annoying resize operation.  So I renamed OnInitDialog(event) to
    void init() and call it from the constructors.  Did this for
    dialog_general_options.cpp and dialog_display_options.
  * dialog_general_options was not setting g_MagneticPadOption and g_MagneticTrackOption


2009-Feb-24 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++pcbnew:
    bug fix:
        2628615 	  Error message after right click into zone
        2625434  	  Crash after trying to edit a line/drawing
++cvpcb
    fix: 2625090  CVpcb - language selection


2009-Feb-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++gr_basic.cpp
    Added: Function ClipAndDrawFilledPoly()
        Used to clip a polygon and display it as Filled Polygon
        uses the Sutherland and Hodgman algo to clip the given poly against a rectangle.
        This rectangle is the drawing area
        this is useful under Linux (2009) because filled polygons are incorrectly drawn
        if they have too large coordinates (seems due to integer overflows in calculations)
        Could be removed in some years, if become unnecessary.


2009-Feb-17 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++pcbnew
    Loading a module into the module editor was changing the layer count
    of a loaded board.  This is because void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
    calls bool WinEDA_BasePcbFrame::Clear_Pcb( bool query )
    which then sets the global g_DesignSettings.m_CopperLayerCount = 2;
    This is terrible.
    We need a layer count in each board, not as a global.  For now, comment out the assignment in initpcb.cpp.


2009-Feb-17 Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++pcbnew:
    Dialog track options redesigned with wxFormBuilder
    Alt via drill renamed Specific via drill in dialog and popup menu.
    Added tips in dialog.


2009-Feb-09 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++eeschema
    Changed dialog_edit_label so that it is UIpolicies.txt compliant.  Proper case
    on window titles, resizeable dialog border, minimum text width handling.


2009-Feb-7 Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++All:
    change grid size type from integer to double (using wxRealPoint insteed of wxSize)
    This is mandatory in Pcbnew to handle metric user grids without error
    (was unusable before, using integer grid size).
    A lot of footprints uses not metric grid.
    refinements for user grid (mainly in read/write config).


2009-Feb-06 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++pcbnew
    added "cutout" from a ZONE_CONTAINER capability to the SPECCTRA export.
    added "netless zone" support to SPECCTRA export.


2009-Feb-6 Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
    Added  a forgotten contributor (Tim Hanson) to kicad contributor list.

++pcbnew:
    Zoom factors in 1.5 progression, and limited to 18 values
    (near to to Wayne Stambaugh's changes: 15 values are not enought for pcbnew)
    removed minor problems in zoom box selection (removed blank line).
    Added user grid selection in modedit and refinements when user grid is selected.


++eeschema:
    Zoom factors in 1.5 progression, and limited to 15 values according to Wayne Stambaugh's changes.

2009-Feb-05 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
++All
  * Change CMakeList.txt so that all PCB object classes that do not need built
    separately for pcbnew, gerbview, and cvpcb only get built once and added
    to the common library.
  * Override all classes derived from WinEDA_BasePcbFrame so that the source
    code file basepcbframe.cpp only gets compiled once and added to the common
    library.
  * Prevent cursor movement keys from moving outside of client area by
    automatically scrolling the drawing.


2009-Feb-4 UPDATE Vesa Solonen <vesa.solonen@hut.fi>
================================================================================
++pcbnew:
++eeschema:
    Zoom factors in 3th root series of 2. So two intermediates between half/double scale.

2009-Feb-04 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
++All
  * Refactor header files to reduce the number of files that need recompiled
    when making changes to base classes.
  * Move sine and cosine look up tables from trigo.h to trigo.cpp to avoid
    multiple recompiles.


2009-feb-01 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++All:
    change filename drawpanel_wxstruct.h to class_drawpanel.h
    and move class BASE_SCREEN description from drawpanel_wxstruct.h to a new file: class_base_screen.h
    minor enhancement for window zoom command.
    refinements in 3D zones drawing.

2009-jan-31 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++All:
    Print functions and display zoom level modified to use the new zoom implementation
    Comments added in some functions.
    Code cleaning
    some bugs fixed.
    Added contributors to list in about Kicad.

2009-Jan-29 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
++All
  * Replace zoom implementation with a more flexible ( and hopefully useful )
    design.
  * Removed gr_basic.h from fctsys.h so that the entire project doesn't get
    rebuilt unnecessarily.


2009-Jan-29 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++all
    common.c added EnsureTextCtrlWidth()
++eeschema
  * dialog edit component in schematic: make sure chipname text control is wide
    enough to handle unusually long chip names.
  * Retain and re-use user's desired dialog edit component window size.
    Did not have time to look at dialog edit component in library.


2009-Jan-27 UPDATE Vesa Solonen <vesa.solonen@hut.fi>
================================================================================
++pcbnew:
    Zone arc approximation starts with half increment offset from v/h for pads and vias
    to get more fill space between rows.

2009-Jan-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++pcbnew:
    Found why remove unused thermal stubs fails sometimes:
    Only the first filled area in a zone was tested.
    Solved.

2009-Jan-18 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
++All
  * Replace Kicad file history implementation with wxFileHistory.
  * Laid groundwork for search paths using wxPathList in EDA_Appl.
  * Made ReCreateMenuBar actually recreate the menu bar.  Now language updates
    to menus can be changed without restarting program.
  * Lots of general housekeeping, simplification, and code beautifying.
++EESchema
  * Fix zoom and pan bug in library viewer panel due to incorrect DrawPanel
    rectangle.
  * Add zoom accelerator keys to library viewer (works in GTK, not Windows).
  * Add Postscript header to new print dialog so Linux build works.
++PcbNew
  * Add Postscript header to new print dialog so Linux build works.


2009-Jan-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++All:
    Cleaned code in print dialogs.
    They are now specific to eeschema and pcbnew.
    Gerbview uses pcbnew dialog.
    The code is now a lot more easy to understand.


2009-Jan-15 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++Pcbnew:
    Added: patch from Rok Markovic (rok@kanardia.eu) to remove unused stubs in thermal pads
    Modified: print boards when printing in color mode layers on one sheet:
        now printed in OR mode like drawings on screen
        Also in SVG mode, but OR mode seems not work very well in SVG mode (tested with inkscape).



2009-Jan-11 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++Pcbnew:
    Added: print SVG format.
    SVG print/plot function uses WRITE modeinsteed of OR mode as graphic mode.
    todo ? uses OR graphic mode with black background color (wait and see)
++eeschema:
    Code cleanup for Print SVG format, and used wxFormBuilder in SVG print dialog


2009-Jan-10 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++Pcbnew:
    Calculations to create filled areas in a zone modified and uses 2 pass:
    1 - filled areas are calculated with pads in zone.
    2 - If thermal shapes are wanted, they are added (i.e. copper removed after ).
    Seen comments in zones_convert_brd_items_to_polygons.cpp
    The initial method was calculate filled areas in one pass.
    With the 2 pass calculation, the calculation time is more expensive but:
     - Kbool seems now works correctly in cases where the one pass way does not work
     - Thermal reliefs can have a better shape (todo..) because when calculating them, the filled
       areas are known (this was not the case in one pass way)


2009-Jan-08 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++Eeschema:
    Print and plot functions now properly prints all sheets in a complex hierarchy
    plot files created have now a new filename in order to be compatible with complex hierarchies


2009-Jan-07 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++Eeschema:
    Print function now properly prints all sheets in a complex hierarchy
    Note: plot functions are not updated and do not plot all sheets.


2009-Jan-07 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
++all
  * Don't pan or zoom on mouse wheel events when the cursor is not in the
    drawing area.
  * Reduce all zoom code to a single zoom command handler.
  * Eliminate redundant zoom command identifiers.
  * Move pop up zoom command handler from DrawPanel to DrawFrame.
  * Change hot key zoom handlers to use command events.
  * Added DrawFrame event table to replace COMMON_EVENTS_DRAWFRAME macro.
  * Added locale path relative to binary path for development purposes.
  * Minor code clean ups and duplicate header removal in files that were
    updated.


2009-Jan-04 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++all
    wxPcbStruct.h: made m_Pcb private, added GetBoard().   Am considering
    putting each gerber layer into its own BOARD.


2009-Jan-02 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++Eeschema:
    Code cleaning.
    LibDrawPolyline uses now std::vector<wxPoint> to handle corners.
    DrawPolylineStruct uses now std::vector<wxPoint> to handle corners.


2008-Dec-31 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++Eeschema:
    Note: this is a work in progress!
    Files modification.
    More about italic and bold fields in libraries
    Use DLIST to handle fields in lib entries
    Bugs and problems solved in fields edition (some are windows only).


2008-Dec-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++Eeschema:
    Note: this is a work in progress!
    Change dialog to edit fields in libedit.
    Most of code created by Dick to edit fields in shematic is reused (this was the goal).
    Component dialog properties -in libedit) is not modified, and fields can be also edited with it.
    New dialog box is similar to the component dialog box used in schematic.
    But all features do not work (work in progress!)
    TODO (by me):
    use vector to handle fields in libraries, like schematic.
    Finish work, and test it.

2008-Dec-29 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++all
  * gr_basic.h DOXYGEN comments.  made a couple functions static and removed
    those from gr_basic.h since they are private to gr_basic.c.  changed the
    polygon code to use wxPoints since that is what the underlying wxWidgets
    API uses.
++gerbview
  * More work on drawing polygons, erasure of polygons completed.
  * Added full support for aperture macro 6, MOIRE.
  * Example 2 in RS274xrevd_e.pdf almost draws properly now.  Need ARC support
    in polygons, and need polygon aperture type support to complete.


2008-Dec-28 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++Eeschema:
    More about italic and bold texts options in fields and graphic texts


2008-Dec-22 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++Pcbnew:
    Added dialog box to edit graphic items (graphic segments, circles, arcs)
    properties


2008-Dec-22 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++All
    Cleaning code to draw/plot texts:
    Now only one function is used to draw and plot texts in pcbnew in all formats
    Italics texts are allowed in pcbnew (work in progress)

2008-Dec-14 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++All
    Cleaning code to draw/plot texts (work in progress):
    Now only one function is used to draw and plot texts (not for pcbnew)
    (easier to maintain and ensure texts have the same size in ploting and drawing)
    In eeschema, italic and bold texts allowed (in pcbenew, texts thickness is already adjustable)


2008-Dec-18 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
++all
  * Virtualize DrawFrame class methods required to eliminate compiling
    drawframe.cpp multiple times depending on the application being built.
  * Move zoom.cpp and drawframe.cpp to common library and update CMake files.
  * drawpanel.cpp - Extracted mouse wheel events out of mouse event handler,
    generate commands for mouse wheel events, and moved panning from DrawFrame
    class into DrawPanel class.
  * Initial ground work for new zoom implementation.


2008-Dec-15 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++gerbview
    Implemented most of the "thermal" aperture macro, at least so that it
    displays as concentric circles OK.  Still need to do the cross hairs.
    Fixed a bug loading aperture macros from disk, could crash gerbview.
    Switched TRACKs to after polygons in tracepcb.cpp, temporary solution until
    I have more time.


2008-Dec-14 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++pcbnew
    Display a short net name on vias and pads (if zoom level allows it).
    Short net names are net names without hierarchy path
    Add m_ShortNetname and change m_Netname to private in classes D_PAD and EQUIPOT


2008-Dec-08 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
++all
  * Remove all instances of application pointers both global and embedded
    member variables.  Use wxGetApp() for improved readability and type
    safety.


2008-Dec-6 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++pcbnew & gerbview
  * As a final migration step, made BOARD_ITEM::SetNext() and
    BOARD_ITEM::SetBack() _private_, starting at BOARD_ITEM in the class
    hierarchy so that the compiler will tell us where they are used illegally.
    Classes derived from BOARD_ITEM then also cannot expose SetNext() and
    SetPrev(), and this forces everthing related to BOARD_ITEM through DLIST for
    list manipulation.  The compiler turned up a couple I had missed, two of which
    were the back pointers of  MODULE::m_Reference->Back(), m_Value->Back(), which I
    do not think are needed since the MODULE owns these texts, not the other way around.
    This should be the final nail in the coffin for undisciplined list manipulation
    within pcbnew and gerbview.
  * Converted BOARD::Delete() into BOARD::Remove() and then added an inline for
    BOARD::Delete() which deletes what Remove() returns.
  * Removed BOARD::DeleteMARKER( int ) since BOARD::Delete() works.
  * Removed gerbview's undelete.cpp and made gerbview use pcbnew's,
    by moving the two supporting functions into the common base class
    of WinEDA_BasePcbFrame, had to add some "#if !defined(GERBVIEW)"s.


2008-Dec-5 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++pcbnew & gerbview
  * Renamed Struct3D_Master to S3D_MASTER.
  * MODULE::m_3D_Drawings is now a DLIST<>
  * Removed AddToChain(), DeleteStructList() and replaced with calls to DLIST<>
    members so that list item counting stays accurate.


2008-Dec-05 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
++all
  * Simplified and improved grid implementation.  User grid will no longer
    be displayed if it is the same as any of the default grid sizes.
  * Removed unused grid code in BASE_SCREEN class.
  * Source file share/drawpanel.cpp now compiled into common library.
  * Declare WinEDA_Appl so you can use wxGetApp() instead of passing app
    pointers all over the place.
  * Fixed assertion in debug build of 3D viewer.
  * Some general code beautification and redundant header file removal in files
    changed by the grid implementation.


2008-Dec-3 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++pcbnew & gerbview
  * added g_CurrentTrackList, and made g_CurrentTrackSegment and g_FirstTrackSegment
    be #defines into this DLIST<TRACK>, see pcbnew.h.
  * Changed to DLIST<> for almost all the list heads in BOARD.
    Switched datatype of BOARD::m_Track, BOARD::m_Zone, etc to DLIST<>.
    This simplifies BOARD::~BOARD() somewhat, and adds automatic counting of list elements and encapsulation
    of all list operations into DHEAD member functions, see common/dlist.cpp.
  * Removed TRACK::Insert() since it no long fits with the new BOARD::m_Track and BOARD::m_Zone datatypes.
  * Removed the g_UnDeleteStack support from <any>::UnLink(), this may leave a deficiency, but this code needs
    to be external to UnLink() anyway.
  * Made TRACK::SetNext() and TRACK::SetBack() private so they may not be used,
    the only way to put a TRACK on a list is through DLIST<TRACK>::PushFront()
    and other member functions of DLIST<TRACK>.
  * Switched to std::vector<TRACK*> in track.cpp to hold the temporary static list.
  * Renamed some KICAD_Ts to more closely match the corresponding classname.
++gerbview
  * Switched to GR_COPY mode for drawing so we can see the erasures.  debugged
    erasures in rs274d.cpp.
  * Now using order specific TRACK loading, so erasures come after objects they
    are intended to erase.  Still need layer ordering and polygon ordering support, my todo.

    I do not like DeleteStructList() and plan to migrate away from it, DLIST<>:DeletAll()
    does something like it.


=======
2008-Dec-03 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++pcbnew
    Switch to polygons in zones (old way no more supported)
    areas can be now filled using solid polygons, or using segments to fill areas inside polygons.
    results are same, but using segments can be better (faster redraw time) for polygons having a lot
    of segments (more than 10000)

2008-Dec-02 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
++build fixes
  * Changed wxWidgets library find order so monolithic build is no longer
    required (at least on MinGW).
  * Changed CreateSVNVersionHeader.cmake to fall back to "build_version.h"
    when 'svn info' command fails.  The default macro that ships with CMake
    will not create build files when 'svn info' fails.


2008-Nov-25 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+eeschema
    edit component in schematic editor.  works pretty well, I'm done.


2008-Nov-24 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+eeschema
    edit component in schematic editor.  It is not complete but further.
    Keep your old eeschema binary, this one does not fully work yet, another day or so.
    Switched away from wxGrid to wxListCtrl, and that class is poorly documented
    so much time pioneering how to use it. Should go faster now.


2008-Nov-23 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+all
  + Made _protected_ EDA_BaseStruct's:
    EDA_BaseStruct* Pnext;              /* Linked list: Link (next struct) */
    EDA_BaseStruct* Pback;              /* Linked list: Link (previous struct) */
    EDA_BaseStruct* m_Parent;           /* Linked list: Link (parent struct) */
    EDA_BaseStruct* m_Son;              /* Linked list: Link (son struct) */
  + Split TRACK::Draw() out for SEGVIA
  + Added dlist.h & dlist.cpp for DLIST<> template.  All the _inline_ list manipulation
    code throughout the package is rediculous.  I don't mind list traversal, only
    list manipulation.  DLIST<> templates can be used to consolidate reliable
    list manipulation operations and get this code out of the mainline.
    These functions are shared/inherited for any derivation, so only one copy exists
    in the final program image.  To use, simply declare e.g. DLIST<D_PAD> or similar.
    See dlist.h, template class DLIST for function comments.
  + added EDA_BaseStruct::m_List to assist in debugging list manipulation functions.
+eeschema
    Started on the edit component in schematic editor.  It is not complete and
    breaks the usefulness of the editor at this moment.  Do not build this version
    if you want to fully use eeschema.


2008-Nov-22 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++pcbnew
    Some cleanup in dialog pad edition.
    Added:
    Zones now have a min thickness filled area parameter
    that ensure a minimun width for filled copper areas
    (areas below this min thickness are removed)
    Shapes also are better


2008-Nov-19 UPDATE Jerry Jacobs <jerkejacobs@gmail.com>
================================================================================
++kicad-library
    Moved {number}DIP packages to DIP-{number}__{WIDTH} seperated library dip_sockets.mod
    Created DIP Packages board
++kicad.pro template
    Added dip_sockets library to pcbnew libraries in template file


2008-Nov-18 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++pcbnew
    First version of pcbnew using polygonal filled areas in zones in rats nets calculations.
    Needs more tests.


2008-Nov-14 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
kbool:
    Using the last version (1.9) of kbool, downloaded from the wxArt2D project site
    (see www.wxart2d.org)
    But the version 1.8 bug still is here.
    So using the workaround remains mandatory.
    (this is not a problem because thermal shapes are better...)



2008-Nov-14 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+gerbiew
  + Added support for displaying most aperture macros embedded in a RS274X compatible file.
    Cleanup of rs274d.cpp and added the beginning of the isDark support, which we
    need to discuss. GERBER::m_ImageNegative can toggle during the course of reading
    a rs274x file and sometimes this means erasing things.
  + Tested pcbnew's gerber plotting, still working.  Done
    with aperture macros for now, but we need to handle the isDark support to
    top it off after discussion.


2008-Nov-8 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++pcbnew
    Thermal shapes modification for round and oblong pads.
    This is a workaround for a bug (i believe) of kbool.
    New thermal shapes have NO angle < 90 degrees between 2 adjacent segments.
    For shapes that have angle < 90 degrees between 2 adjacent segments,
    under certains circumstances kbool drops some holes and creates a bad filled area.
    (see zones_convert_brd_items_to_polygons.cpp)


2008-Nov-8 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+gerview
    Added support for reading in aperture macros embedded in a RS274X compatible file.
    Cannot display them yet.
    General cleanup of gerbview.  GERBER_Descr replaced with class GERBER.
    ReturnToolDescr() replaced with GERBER::GetDCODE().
    D_CODEs are created lazily now.  pcbnew's gerber plotting needs testing, might
    have broke something there, accidentally.


2008-nov-5 UPDATE Andrey Fedorushkov <andrf@mail.ru>
================================================================================
+all:
   Add cyrillic font support.
   Add russian GOST worksheet support.

2008-nov-2 CLEANUP Jerry Jacobs <jerkejacobs@gmail.com>
================================================================================
++kicad:
   Cleanup comment/codestyle to make things more clear for newbie codeviewer
   and developers.
    + buildmnu.cpp
    + commandframe.cpp
    + kicad.cpp
    + treeprj_frame.cpp


2008-oct-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++All
    Use double instead float when possible, ande code cleaning.
    Some changes for a better code compatibility with others compliers (MSVC)
    (__MSVC__ must be defined when using MSVC)
    (double round(double) and typeof unkown in MSVC)
    Note: I cannot test kicad under MSVC.


2008-Oct-19 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+eeschema
    Fixed SCH_COMPONENT() copy constructor with Jean-Pierre's bug catch.
    Developed a non-functional fbp file using wxFormBuilder for the new
    dialog_edit_component_in_schematic dialog which I plan on coding in the
    next couple of weeks as time permits.

2008-oct-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    Solved a bug when creating a new zone outline that could crash pcbnew
    More about copper zones filled without grid (by polygons)
    Currently for tests only (work in progress).
    now working: Thermal reliefs parameters can be set.

2008-oct-11 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    More about copper zones filled without grid (by polygons)
    Currently for tests only (work in progress).
    now working
        thermal reliefs.
        texts on copper zones.
        Removing insulated copper islands.
    currently : not implemented:
        trapezoidal pads

2008-oct-07 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    More about copper zones filled without grid (by polygons)
    Currently for eyes and tests only (work in progress).
    now working
        thermal reliefs.
        texts on copper zones.
    To select this feature choose No Grid in zone grid filling.
    Work in progress:
    currently : not implemented:
        Removing insulated copper islands.
        trapezoidal pads


2008-Oct-6 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+eeschema
    First work on arbitrary number of user fields, i.e. name/value pairs,
    per schematic component.  Use std::vector to hold fields, added GetField()
    function to SCH_COMPONENT.


2008-oct-02 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    First tests about copper zones filled without grid (by polygons)
    Currently for eyes and tests only.
    To select this feature choose No Grid in zone grid filling.
    Work in progress:
    currently : not implemented:
        thermal reliefs (pads are always covered by copper zones).
        texts on copper zones.
        Removing insulated copper islands.

2008-Oct-1 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
    gen_modules_placefile.cpp: backed out of the "Cu & Cmp" centric terminology
    and moved towards using layer names which are BOARD specific.


2008-Sep-26 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    more about use polygons in zone fill algos on technicals layers:
    plot Ok. holes are handled

2008-Sep-26 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    Starting work to use polygons in zone fill algos.
    Currently, use this to add zone on non copper layers (technical layers)
    Only for eyes.
    Plot outputs do not handle this.
    Problems with holes in zones.
    Also: first used of wxFormBuilder


2008-Sep-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    Fixed a bug in modedit which crashes pcbnew when closing the properties module dialog
    Both in trunk and tagged versions


2008-Sep-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema:
    code cleaning
    PartTextStruct class name changed to a name : SCH_CMP_FIELD

2008-Sep-14 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    Fixed a problem in zone filling algo: due tu differents ways to truncate coordinates
    between 2 functions (one round coordinates, and others truncate coordinates),
    some start points used to fill zones can be inside the zone outlines,
    but placed outside when init matrix parameters when rounding them instead of truncate.
    So zone was filled inside and outside when happens.


2008-Sep-9 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+eeschema
    Fixed a bug plotting pins with circles in them from eeschema.
    Added type FILL_T.


2008-Aug-26 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+all:
    subtle bug solved: no response to the first left click command after opening a dialog box
    (after an item edition, for instance)

2008-Aug-22 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema:
    bug solved: netlist calculations could crash eeschema under very rare circumstances.
    recent bug solved: background filled shapes (filled but not solid: texts are readables inside shapes)
        were drawn (and plotted) as filled (solid) shapes

2008-Aug-18 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    bug solved: Horizontal Oblong pads holes have a bad T Code size in the drill file.


2008-Aug-15 UPDATE   Jerry Jacobs <jerkejacobs@gmail.com>
================================================================================
+About dialog
modified: (common.cpp) GetAboutBuildVersion() is a custom build version for the about dialog
          (config.h.cmake)
          (CreateSVNVersionHeader.cmake) KICAD_ABOUT_VERSION macro added

added:  (about_dialog.cpp) InitKiCadAbout() initalise the about dialog

removed: (common/infospgm.cpp) is no longer needed


2008-Aug-11 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema:
    libedit:
        solved : a bug which can crash eeschema on a double click.
        modified : pin lenght edit in pin edit dialog. The value (handle by spin control) was not editable with recent wxWidgets versions

2008-Aug-09 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    bug solved: pads holes not printed.
    enforced controls against malformed libraries

2008-Aug-06 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    Removed an obsolete option in the plot menu, in gerber format.
    Cleanup code.
    Solved a minor bug: rastnest was not displayed after a move module
    and if the command was aborted

2008-Juil-31 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema:
    Added component sheet X,Y location in BOM.
    Netlist generation: now spaces in names are replaced by '_' for pcbnew (which does not accept spaces)
    Bug: print all pages did not work.
    Please note in complex hierarchy, the current "Print All" function needs to be enhanced,
    because it does not draw all sheets but only all different sheets

2008-Jule-08 UPDATE   Andrey Fedorushkov <andrf@mail.ru>
================================================================================
+pcbnew:
    Added displayed length highlighted net to pcbnew/affiche.cpp


2008-June-22 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+all:
    Default path kicad/share added when searching kicad data (like library, internat ...)
    Kicad data Default paths are now (windows version and linux server install)
    1 - kicad/share
    2 - kicad


2008-June-15 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema:
    Bug solved: Eeschema crashed when creating a new subsheet with the same
    filename as an existing filename, if loading this existing file.


2008-June-11 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+all:
    Online doc format changed to PDF format.
    This is **very** easier to handle, because :
    - Openoffice has a very good pdf export function.
    - Only one file for application
    - Is standart (The old html format used a zipped archive, not standart)
    - the doc tree is less complex (see doc/help/fr or doc/help/en for the new tree).

    If a localized doc file is not found, the english version is automatically loaded instead.
    No need to copy the same pdf file in subdirectory.


2008-June-06 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+all:
    minor changes
    added void SetLocaleTo_C_standard(void) and void SetLocaleTo_Default(void)
    This is wrapper to the C setlocale( LC_NUMERIC, "C" )
    and setlocale( LC_NUMERIC, "" )function,
    but could make more easier an optional use of locale in kicad in floating point notations


2008-May-30 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew
    removed GPC library due to its unacceptable (and stupid) license
    using the powerfull kbool library insteed (see polygon/kbool)
+all:
    minor changes


2008-May-22 UPDATE Martin Kajdas <kajdas@cox.com>
================================================================================
+all
    Moved all XPM files to <kicad>/bitmaps directory and fixed all related files
+PCBnew
    Changed File/Export shortcut from 'x' to 'e'


2008-May-21 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema:
    Solved: problem in manual part selection for multiple parts per package components


2008-May-17 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+all
    Removed bitmaps.cpp.  Made a static library target named "bitmaps" which
    gets linked into any app needing bitmaps.  Changed bitmaps.h to simply
    include an alphabetized listing of the bitmap arrays.
    We can now continue to migrate all remaining bitmaps into:
        > the <base>/bitmaps directory
        > the <base>/bitmaps/CMakeLists.txt file there
        > the include/bitmaps.h file.


2008-May-16 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema:
    Solved: bad update of toolbars (eeschema and libedit):
        undo/redo buttons were not always updated after a change.

+kicad
    the project tree now (as earlier) reads subdirs list files when starting
    kicad. This feature can be disabled (see treeprj_frame.cpp)

2008-May-15 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema:
    Solved netlist problems for multiple parts per package components
    in complex hierarchies.



2008-May-5 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+common.c
    wrote wxString& operator << ( wxString&, const wxPoint& ) by moving code
    from DRC_ITEM::ShowCoord()
+pcbnew
  * embellished DRAWSEGMENT::MenuText() and DRAWSEGMENT::Display_Infos()
  * wrote wxString BOARD_ITEM::ShowShape( Track_Shapes aShape )
  * wrote wxPoint DRAWSEGMENT::GetEnd() which calculates the end point of an arc
  * wrote DRAWSEGMENT::GetLength()
  * Added S_ARC support to the specctra_export.cpp for EDGES_PCB with DRAWSEGMENTS
    of arcs.   Arc and lines can be intermixed, its just that they must be
    contiguous.  The user can now use the improved DRAWSEGMENT::Display_Infos() to
    find any bad or non-contiguous DRAWSEGMENTS, since that function now shows
    the two endpoints of any segment.


2008-May-2 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
+cmake
  * Use Subversion to automatically generate build date and revision level
    when building with CMake.  Header file build_version.h will still need
    manual updates when using the hand written make files.


2008-May-4 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
  * Added DRAWSEGMENT::GetStart(), GetEnd() and support S_ARC and S_SEGMENT
    with it for now.
  * Added arc support to pcb perimeter of the specctra export.


2008-May-2 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
  * Added ZONE_CONTAINER::GetBoundingBox() and used it to clean up
    ZONE_CONTAINER deletion.
  * For end of edge dragging activity: used full DrawPanel->Refresh()
    to clean up all XOR artifacts.


2008-May-1 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
  * Fixed bugs in layer name handling within the BOARD


2008-Apr-30 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema:
    made in some dialogs the ESC key working (linux version, already working under windows)
    screen number and screen count now are set


2008-Apr-29 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
  * Added WinEDA_PcbFrame::UpdateToolbarLayerInfo() by factoring it out of
    ReCreateLayerBox().
  * Changed call in void WinEDA_PcbFrame::SetToolbars() from ReCreateLayerBox()
    to UpdateToolbarLayerInfo().
  * Removed calls to SetToolbars() from:
      > share/drawpanel.cpp's void WinEDA_DrawPanel::OnMouseEvent( wxMouseEvent& event )
      > void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )


2008-Apr-28 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
  * Layer names were not being set into the htoolbar listbox properly if the
    BOARD was loaded via the command line as happens when kicad chain loads
    pcbnew. Also, layer names were not being set if a second board was loaded
    that had the same number of layers as the previous board. The solution was
    to comment out the listbox rebuild test in WinEDAChoiceBox*
    WinEDA_PcbFrame::ReCreateLayerBox( WinEDA_Toolbar* parent )
  * files.cpp:  added Clear_Pcb( false ) to LoadOnePcbFile() and call it if
    not appending.  This way a user can get into the file selection dialog and
    still abort (change his mind) without losing the current board.  Removed calls to
    Clear_Pcb() where LoadOnePcbFile() would now do that.
  * edtxtmod.cpp: fixed the drawing relics when moving and rotating module texts.


2008-Apr-21 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew
    PS output: now shows oblong holes with the true shape.


2008-Apr-22 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+eeschema
  * Spent a 1/2 day tracking down two linked list bugs in deleting a
    DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE.   I cannot believe in the year
    2008 we should have to debug a linked list function.  This is stuff I expected
    to do 20 years ago, not today.  The function
    void WinEDA_SchematicFrame::DeleteSheetLabel( wxDC* DC,
              Hierarchical_PIN_Sheet_Struct* SheetLabelToDel ) never worked as
    far as I can tell.
    Should switch to boost::ptr_vector ASAP everywhere, and leave linked lists in the 1980's.
  * Hierarchical_PIN_Sheet_Struct::Hierarchical_PIN_Sheet_Struct() was not
    setting the m_Parent.


2008-Apr-21 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema
  * Added WinEDA_LibeditFrame::GeneralControle( wxDC* DC, wxPoint Mouse );
  * Added WinEDA_ViewlibFrame::GeneralControle( wxDC* DC, wxPoint Mouse );
  Needed: Move redundant code to WinEDA_DrawFrame::GeneralControle

  ** Current sheet only Annotation and clear annotation now works for complex hierarchies


2008-Apr-17 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+all
  * Made a little more sense out of the GetScreen() problem by making it
    non-virtual, and having the two types of frame classes (eeschema's and pcbnew's)
    each return their respective types of screens {SCH,PCB}_SCREEN*.
  * Added GetBaseScreen() as the virtual function which always returns BASE_SCREEN*.
  * Made WinEDA_DrawFrame::GeneralControle( wxDC* DC, wxPoint Mouse ){ dummy }
  * Added WinEDA_SchematicFrame::GeneralControle( wxDC* DC, wxPoint Mouse );
  * Moved to void <class>::Place( WinEDA_SchematicFrame* frame, wxDC* DC ) from
    void <class>::Place( WinEDA_DrawFrame* frame, wxDC* DC ) so that these
    functions can use the new SCH_SCREEN* WinEDA_SchematicFrame::GetScreen()
    function (the non-virtual one that returns SCH_SCREEN* not BASE_SCREEN*).
  * Made some menus conformant to UIpolicies.txt regarding uppercase.
  * Beautified 5-10 files.


2008-Apr-17 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema
    very small bug in display component info removed
+pcbnew
+cvpcb
    removed bug: forgotten paths when adding lib files when not in the default lib path
    (same problem as in eeschema, solved in 2008-Apr-09 Update)


2008-Apr-16 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema
    In complex hierarchies, multiples parts per packages now should work,
    without restrictions
    Update and use annotate_dialog.pjd to create annotate dialog


2008-Apr-15 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema
    More code cleaning and Files cleaning and reorganization.
    change DrawSheetLabelStruct class name to a better name: Hierarchical_PIN_Sheet_Struct
    For simple Hierarchies, files are now compatables with old eescheam versions
    In complex hierarchies, multiples parts per packages have still problems,
    but i hope to solve that soon
    (in fact all the last changes were made for that)


2008-Apr-14 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema
    code cleaning. SCH_ITEM class used for all schematic items in eeschema.
    Files reorganization.


2008-Apr-09 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema
    code cleaning.


2008-Apr-09 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema
    removed bug: forgotten paths when adding lib files when not in the default lib path
    Also: adding SCH_COMPONENT.m_PartPerPackageSelections to handle multiple parts per package selection
        in a complex hierarchy, but yet, no other code to do that.


2008-Mar-30 UPDATE  Jonas Diemer <diemer-at-gmx.de>
================================================================================
+eeschema
+pcbnew
    Display a warning on a file format version mismatch.

2008-Mar-31 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+all
    Tweaked class MsgPanel so that the screen drawing only happens from
    its OnPaint() function.
+pcbnew
    Added virtual BOARD_ITEM::Draw() and forced all BOARD_ITEM derived classes
    to implement it so that all these functions are also virtual.
    Made the offset argument default to the new wxPoint BOARD_ITEM::ZeroOffset.
    Coded DRAWSEGMENT::Draw() from Trace_DrawSegmentPcb() and removed the latter.
    Coded EQUIPOT::Draw(), and BOARD::Draw().  Both are dummies for now, but
    both can be reasonably implemented in the future.


2008-Mar-30 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema
    Solved: eeschema crashes when create a new sheet, using the default filename and enter it.
    Solved: eeschema crashes when delete a sheet label (pin sheet), undo this and move the label.
    (bad value (not updated) for the DrawSheetLabelStruct.m_Parent member after redo command in sheet edit).

+all:
    Added comments in gestfich.cpp to explain the default paths used by kicad to find help files and lib files


2008-Mar-30 UPDATE  Jonas Diemer <diemer-at-gmx.de>
================================================================================
+eeschema
    Removed artifacts resulting from redraws in XOR-Mode.

2008-Mar-24 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew
    Ensure graphic and footprint texts have a sufficient size to be seen on screen.
    (bug 1909165, due to text on edge layer with a 0 value for X size)

2008-Mar-22 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew
    Netlist dialog redesigned, netlist.cpp code modified
    and added an option to remove not locked footprints
    when not found in netlist


2008-Mar-21 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
    pcbplot.cpp now saves the selected layers as wxConfig options,
    i.e. retentitively.  The ESC key now works in that dialog.
    Make upper/lower case conformat to UIpolicies.txt
    Put buttons at bottom, "Close" as bottom button.


2008-Mar-21 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema
    Removed an very old bug in onrightclick.cpp which crashes eeschema when
    right clicking in a field inside a component.
    Old code should never works,    but ...


2008-Mar-20 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew
    refined the dialog_freeroute_exchange
    If possible (i.e. if freeroute.jnlp is found in kicad binary directory) javaws is called insteed of the default browser)
    So @todo removed

2008-Mar-19 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+eeschema
    Renamed some classes and their corresponding KICAD_T types so they are both
    simpler, shorter and more closely match each other: the type and the classname.
    Wedged a class SCH_ITEM underneath most eeschema drawable items, and this
    class came from DrawPartStruct which was largely disfunctional.  Eeschema
    now more closely matches what we have in pcbnew with the BOARD_ITEM base class.
    The corresponding class in eeschema is now SCH_ITEM.  Put in some of Jonas'
    patch for the dragging of a block.  Needs testing, especially dragging
    text since there is no GetBoundingBox() for that yet.  As an interrim solution
    we could make SCH_ITEM::GetBoundingBox() return a HUGE rectangle so that any class
    not implementing GetBoundingBox() in eeschema will get properly re-drawn,
    in theory.

    We are currently using XORing for dragging a single object and using full
    redraws for dragging a block.  I suppose this can be an experiment for a
    week or so.  I would not expect that dragging a block of labels with no
    other object to work currently (i.e. *visually* correctly).


2008-Mar-19 UPDATE Igor Plyatov <plyatov@mail.ru>
================================================================================
  * Support for Gnome/KDE menu added.
  * install.txt rewritten and must be used as main source of information for
    KiCad installation.
  * how-to-build-kicad.txt deprecated.
  * how-to-build-for-windows.txt deprecated.


2008-Mar-18 UPDATE  Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
    refined the dialog_freeroute_exchange.pjd file, adding tooltips, wording
    changes, wxID_CANCEL so ESC key closes, and added this comment also:
    // @todo:
    // 1) add freeroute.jnlp to the Kicad project
    // 2) change this next C++ line simply run $ "javaws freeroute.jnlp" as a system
    //    command, bypassing the browser altogether.  Merely need a PATH to javaws.


2008-Mar-18 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew
    MODULE::GetBoundingBox() takes in account the clearence around the pads
    (the clearence limit shape around pads (when shown) was not always erased )


2008-Mar-17 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
  * Fixed a crashing bug which occured when you run the module editor, select
    "Update module in current board" and then run the DRC checker after that.
  * Changed to void CreateSortedPadListByXCoord( BOARD* aBoard, std::vector<D_PAD*>* aVector )
    So caller can safely forget to delete the array of pad pointers and the vector's
    destructor handles this automatically.
  * Delete pad from within PCBNEW, not module editor, now uses PostDirtyRect()


2008-Mar-14 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+eeschema
  * cleaned up some xor artifacts, see eeschema/getpart.cpp's comment:
    // switch from normal mode to xor mode for the duration of the move, first
    // by erasing fully any "normal drawing mode" primitives with the PostDirtyRect(),
    // then by drawing the first time in xor mode so that subsequent xor
    // drawing will fully erase this first copy and then the previous copy.
  * redraw the entire screen at end of a component move.
  * added many calls to Refresh() to eeschema/onleftclick.cpp and in such cases
    I now pass a NULL DC to TestDanglingEnds()


2008-Mar-14 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
    some code cleaning and comment translations.
    added:
    /** EDA_Rect::Merge( EDA_Rect & aRect )
     * Modify Position and Size of this in order to contain the given rect
     * mainly used to calculate bounding boxes
     * @param aRect = given rect to merge with this
     */


2008-Mar-14 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew
    Added a tool to the upper toolbar which gives and easy access to freeroute
    Solved a bug in plot postscript format when drawing oblong pads:
        Bad oblong pad size after drawing a round pad


2008-Mar-13 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew
    Dirty rect used in footprint rotation, flip and delete.
    Better calculation of the footprint dirty rect.


2008-Mar-13 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+all
    Added bool EDA_Rect::Intersects().
+eeschema
    Added provisionary calls to eeschema/eeredraw.cpp for
    if( panel->m_ClipBox.Intersects( item->GetBoundingBox() ) )


2008-Mar-11 UPDATE   Per Uddén <p.udden@telia.com>
================================================================================
+3d-viewer
  * Fix TODO: Add S_ARC and S_CIRCLE shape render to board edge and module edge.
    Ex. Now is a board with arcs at corners showing correctly.


2008-Mar-10 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
  * Improved some comments on new functions dirty area functions
  * Changed
    void    ConvertPcbUnitsToPixelsUnits( EDA_Rect& aRect ); to
    void    ConvertPcbUnitsToPixelsUnits( EDA_Rect* aRect );
    which I prefer because it is clearer to the human reader of the calling
    context that the passed argument is to be modified.  References as function
    arguments are fine, but if they are to be modified, passing by pointer
    gives human reader a clearer picture when looking at the calling context.
  * TRACK::GetBoundingBox() now (1) rounds up the radius, and (2) returns a bounding
    box which is [pos,dim) in nature, [inclusive, exclusive).
  * Changed from "new wxDCClip()" to use an automatic wxDCClip() variable in
    drawpanel.cpp
  * Removed a printf() from "release" build of drawpanel.cpp
  * Added WinEDA_DrawPanel::PostDirtyRect()
  * Renamed Supprime_Une_Piste() to Remove_One_Track() and it now uses
    PostDirtyRect().
  * void WinEDA_PcbFrame::Delete_net( wxDC* DC, TRACK* Track ) now redraws
    the screen after a net deletion.
  * eeschema/dialog_find.cpp: set the initial keyboard focus to the text control


2008-Mar-10 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew
    Pcbnew can import footprints in gpcb format in Nelib format only
    Pcbnew automatically recognizes pcbnew or gpcb format when importing a footprint.
        Due to differences between pcbnew and gpcb,
        only gpcb newlib files containing only one footprint (one element) are useables.
    Dirty rectangle calculation debugged.
    WinEDA_DrawPanel::ConvertPcbUnitsToPixelsUnits( EDA_Rect& aRect ) can be used to convert a bouding box to a clip box
    (see example in deltrack.cpp)
+eeschema:
    restored: missing lines in schedit.cpp (problems in a lot of commands)


2008-Mar-06 UPDATE Igor Plyatov <plyatov@mail.ru>
================================================================================
+help
    Eliminated bug "help files not found!".


2008-Mar-5 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew
    Solved problem in fill zone calculations when using buried or blind vias (like micro vias)


2008-Feb-18 UPDATE Igor Plyatov <plyatov@mail.ru>
================================================================================
+common
    Path for the help files changed to doc/help.
+help
    help moved to the doc/help.
+doc
    Separated from KiCad source code to the trunk/kicad-doc.
+library
+modules
    Separated from KiCad source code to the trunk/kicad-library.


2008-Mar-3 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
  * Completed transision to BOARD::GetLayerName() and away from ReturnPcbLayerName().
    LayerNames and LAYER_T are saved in the *.brd file and may be edited
    there with a text editor until the UI is in place to edit them in PCBNEW.
    To understand the strategy, see BOARD::GetLayerName() in class_board.cpp
    and see WinEDA_BasePcbFrame::ReadSetup().  I will be adding "Board" menu
    item to Preferences, but there is more to come before the UI gets done:
    net classes.
  * Clear_Pcb() now deletes the existing BOARD() and new's a new BOARD() so that
    the default BOARD::m_Layer[] values can be set in the new BOARD's constructor.


2008-mars-03 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
3d display:
    Added Jonas Diemer's patch (enhanced movings from mouse and tools)


2008-Mar-1 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
    Changed ioascii.cpp to save and load board specific layer names, for DEBUG
    build only. I want to add class LAYER, see below. Added
    BOARD::SetLayerName(), BOARD::SetLayerType(), and BOARD::GetLayerType().
    Will add a UI for editing those soon as soon class LAYER is stable. The
    BOARD::SetLayerXXXX( int layerNdx, VALUE ) functions would simply route to
    LAYER::SetXXXX( VALUE ). Then layer specific global variables would migrate
    to the BOARD::LAYER[]s.

    Jean-Pierre please have a look at pcbstruct.h's class LAYER which is just a
    prototype for now.  EDA_BoardDesignSettings::m_LayerColor would go away,
    and then I would add LAYER[] to EDA_BoardDesignSettings or BOARD.
    Whether EDA_BoardDesignSettings or BOARD I don't have a strong preference.
    I understand this is a bunch of work, and there are tricks needed to handle
    adding and deleting the number of layers....


2008-Feb-29 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
    controle.cpp: fixed the magnetic track if tracks are parallel.


2008-Feb-29 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema
    Renaming the sheet filename now works in simple and complex hierarchies.
    Use carefully because this can change the whole schematic structure.
    Gen Bom List now works in unicode build version
    (label list generation crashed eeschema in unicode build version)
+all
    Display filename and full sheet name ("sheet path") in sheet reference
    the full sheet name has no meanning in pcbnew.


2008-Feb-28 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema
    Fixed: problem which could crash eeschema when a sub schematic file in a hierarchy was not found.


2008-Feb-27 UPDATE  Wayne Stambaugh <stambaughw{at}verizon{dot}net>
================================================================================
+ eeschema
  * fixed escape key handling and add accelerate keys in annotate dialog.
  * factored out eeschema frame class to prevent rebuild of entire project
    when making changes to eeschema frames.
  * refactor main eeschema event loop by factoring out most of the non-drawing
    events.
+ cmake
  * small fix to root CMakeList file to prevent GCC flags being used with
    other compilers.


2008-Feb-26 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema
    changed in class DrawSheetStruct m_s member name to m_AssociatedScreen
    some others minor problems solved.
    some files "uncrustified"
    Major problem in undo/redo when a sheet is deleted not yet solved
    Only for a complex hierarchy, could lost data.
    When a sheet is deleted by block delete. it is put in undo list.
    It is really deleted after 10 changes (when the undo list is full).
    At this time, the associated data is also deleted.
    If an other (not deleted) sheet shares the same data, this data is lost.
    Need work to solve this problem and keep the undo/redo feature.


2008-Feb-25 UPDATE   Wayne Stambaugh <stambaughw{at}verizon{dot}net>
================================================================================
+eeschema
  * converted annotate_dialog layout to Gnome HIG per UIPolicy.txt factor
    out dialog code from annotate.cpp.
  * refactor and uncrustify schframe.cpp and schedit.cpp
  * modify eeschema CMakeList.txt to reflect code changes.


2008-Feb-22 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
  * specctra_export.cpp: added DSN 'outline' support from EDGE_MODULEs.
    lines and circles, not arcs.
  * factored out EDGE_MODULE::ShowShape() from EDGE_MODULE::Show().
  * drc.cpp changed AsSecondItem to HasSecondItem and test it in generating
    the file report and when making the popup menu in the dialog_drc and
    when generating the html list item.


2008-Feb-21 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema
    added : full text conversion between text, label, global label and hierarchical label
    some problems fixed:
    - annotation incorrectly cleared.
    - reference not copied in component copy.
    - incorrect redo when changing the chip name in component edition

    bugs not fixed:
    - incorrect annotation in complex hierarchy with multi parts per package (duplicates created).


2008-Feb-20 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema
    Fixed bug in getpart.cpp:
    eeschema crashed when aborting a new component place command
    Global Symbols now have their shapes
    Bad global label shape fixed when reading a schematic file


2008-Feb-20 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
    specctra_export.cpp fixed the offset problem with freerouter.net.
    http://tech.groups.yahoo.com/group/kicad-devel/message/1076


2008-Feb-19 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
    Add ZONE_CONTAINER support to the ID_PCB_HIGHLIGHT_BUTT tool and
    WinEDA_PcbFrame::DrawHightLight().  Added TYPEZONE_CONTAINER to
    GENERAL_COLLECTOR::AllButZones[] so that containers are editable even
    when the "Show Zones" toggle is off.  This came from using the software
    and realizing that if something is visible (zone containers remain visible
    even when Show Zones is off) then it should be selectable.  Otherwise it is
    confusing and frustrating.


2008-Feb-18 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
  * Start to use BOARD::GetLayerName() in anticipation of configurable layer
    names per board.
  * Comment out a printf() which will lock up pcbnew when
    it is run under kicad project manager and the interprocess fifo gets filled.
  * Cross probe was not showing the not found message properly.  wxString was
    being used for two purposes, input and Printf() destination.
+gerbview
    Now loads all gerber files given on the command line, not just one.  The
    first file is loaded into layer 1 (index 0), the second one is loaded
    into layer 2 (index 1) etc.


2008-Feb-18 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema
    Fixed bug in gen bill of material (dialog_build_BOM.cpp):
    eeschema crashed when created a B.O.M. (i think: unicode version only)


2008-Feb-18 UPDATE Igor Plyatov <plyatov@mail.ru>
================================================================================
+eeschema
    Added menu View with all possible elements from the top toolbar.
    Find item added in to the Edit menu.
+all
    Translated part of IDs to english.


2008-Feb-15 UPDATE Igor Plyatov <plyatov@mail.ru>
================================================================================
+eeschema
    Added item "Delete" in "Edit" menu.
    Added menu "Place" with all possible elements from the right toolbar.


2008-Feb-13 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
    specctra export: now generate unique pin names from module padnames in the
    case where there are non-unique pad names within a module.  Tested with
    Electra demo, and *.dsn files load OK in there as well as in freerouter.
    Stopped using reserved layer name "signal" and instead output a full
    padstack consisting of all pertinent layers for via, pads, and keepouts.


2008-Feb-12 UPDATE   Tim Hanson sideskate@gmail.com
================================================================================
+eeschema
    * commiting my changes to allow multiple instances of a given schematic file within a hierarchy:
    ** internally, m_currentScreen has been replaced with m_currentSheet,
        which is a list or 'path' of screens.  The path of screens is used to generate
        a series of timestamps, which is converted to flat component reference via a look-up
        table in the schematic files.
    ** this means that m_currentScreen is no longer used -- use GetScreen().
    ** GetScreen is virtual, as some of the dialogs keep around a WinEDA_BaseScreen pointer.
    ** all sub-sheets in a given schematic must have different names to generate a meaningful netlist.


2008-Feb-12 UPDATE Igor Plyatov <plyatov@mail.ru>
================================================================================
+eeschema
    Added item "New" in "File" menu
+all
    Russian translation update.


2008-Feb-11 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
  * Added case TYPETRACK, TYPEVIA, and TYPEMODULE support to Board::Add() so
    that we can over time hide more of the storage architecture of a BOARD and
    isolate those dependencies in fewer places.
  * Fixed some pad orientation issues in specctra_export.
  * Added VIA_MICROVIA & VIA_BLIND_BURIED support to SPECCTRA::makeVIA().
  * Commented out the specctra design import menu choice for now, don't have
    time or need for this import.
  * Specctra export adds 1/2 mil to clearance rules for freerouter so that
    the routed board clears our DRC checker OK.
  * Session import seems done now.


2008-Feb-7 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
    added "const" to SEGVIA::GetDrillValue() const;
    added GetDrillValue() to DRC instead of accessing SEGVIA::m_Drill directly.
    changed specctra_export so it aborts if all reference designators are not
    unique.  Unless they are unique we cannot import the routed session.  A
    good example is the xylinx board which now fails to export.
    first rough work on SEGVIA::makeVIA() but needs much more work.  Simple
    session files with vias at least import.  Now encode drill diameter in
    padstack name for later session import.
    updated todo.txt file.


2008-Feb-7 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
    specctra import of *.ses, did tracks and components.
    renamed copy_track.cpp to copy_track.cpp.notused
    removed copy_track.cpp from pcbnew/CMakeLists.txt
    added setlocale() around import and export for float text style.


2008-Feb-6 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
    started specctra imports of *.ses and *.dsn, by adding menus to File | Import.


2008-Feb-4 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
    specctra_export.cpp now supports blind/buried/microvias. Fixed how modules
    are displayed on back of board. Added a circle keepout for each copper-less
    through hole.


2008-Feb-3 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
  * specctra_export.cpp was not exporting the nets correctly, now fixed.
  * Had a problem with an isolated pad modification on a single module instance
    in the context of several unmodified instances of same module, now fixed.
  * Fixed oval pads to make freerouting.net happy.
    See: http://www.freerouting.net/usren/viewtopic.php?f=3&t=317#p408
    Done with specctra export for now, will think about adding controls (by dialog)
    on the export later.
  * Beautification of a few modules.


2008-Jan-31 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    remove the old EDGEZONE class.
    A ZONE_CONTAINER class is used instead to handle the creation of a new zone outline


2008-Jan-29 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew:
    SPECCTRA export does most items now, except existing tracks.  Soon will
    need testing.


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>
================================================================================
+all:
    I got a patch from Mr. Wayne Stambaugh which makes it possible to compile
    infospgm.cpp once and link the same *.o file multiple times.
    Jean-Pierre, if you not yet using CMake, you should edit your make.include
    so that infospgm.cpp is only compiled once for everything, not once per
    program.  Wayne is a competent developer who contacted me about contributing.
    I consider him a welcome addition to the developers, Dick.


2008-Jan-25 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew:
  * SPECCTRA export does padstacks ok, except that oval pad's arcs need to be split
    into quarter circle arcs, and no consideration is given to "layer types".
    See page bottom of page 74 of the SECCTRA Design Language Reference, May 2000.
  * HISTORY_NUMBER was spelt with a zero.
  * Width was spelt as Widht


2008-Jan-25 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    - void Change_Side_Module( MODULE* Module, wxDC* DC ) is now member of class BOARD.

    - Better support for micro vias and buried vias (drill files now are useable for board manufacturers)
    But not yet tested by a board manufacturer. Be carefull.
    Todo: tools to conversion  between via through and buried via and buried viad optimisation.
    But must works for micro vias (needed for my next board)
    (in pcbnew micro vias are blind vias between 2 adjacent layers: micro vias must be enabled
    in Dimensions/track and via menu, and placed by ctrl v.
    They are intended to connect small pitch BGA pins to the inner layer, and can be drilled by laser
    if the hole diameter is small < 0.2mm. A laser can only drill a hole between 2 adjacent layers ).

    ** Currently use buried via for tests only, not for production **.


2008-Jan-24 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew:
  * Export a specctra *.dsn file includes some padstacks, not ovals yet.
  * Many many refinements to specctra.cpp and specctra.h.
  * added COLLECTOR::BasePtr(), which is used in qsort.  Could have used
  * std::sort() instead.
  * Wrote D_PAD::Compare()
  * updated todo.txt


2008-Jan-24 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    Bugs about fill zones removed (not all, of course).
    Fixed an old bug in block delete (could crashes pcbnew after deleting footprints).

2008-Jan-23 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew:
  * Export a *.dsn file includes ZONE_CONTAINERs, was actually able to load
    a board with zones into the freerouter.net package!  No components, traces yet,
    just zones and layers.  Fixed parsers and Format()ers.
  * Rewrote SPECCTRA_DB::readTIME() to dodge a missing strptime() on windows.


2008-Jan-23 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    Plot option in GERBER format Plot (Exclude Edge Pcb layer) modification:
    - the default is OFF (like odl pcbnew versions)
    - this setup is now save in config (is persistant)

    In Zone creation, now delete last created corner works.

2008-Jan-22 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew:
  * Actually able now to export a *.dsn file, but the contents of the file
    is incomplete, not a complete input BOARD.
  * Added DRAWSEGMENT::Show() for debugging.
  * Changed specctra.h's POINT to use double for coordinates.  Changed format
    string for Format()ing a double.
  * Changed specctra_export.cpp to actually output an incomplete file.
  * Added BOARD::GetCopperLayerCount() and BOARD::GetLayerName().


2008-Jan-21 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew:
    Added specctra_export.cpp, specctra.cpp, specctra.h, dsn.cpp, and dsn.h to
    pcbnew's link requirements. Updated CMakeLists.txt to reflect this. This
    increased pcbnew's size by 175kb so far. Started the actual export (i.e.
    BOARD to DSN::PCB copying logic) which is going into specctra_export.cpp's
    void WinEDA_PcbFrame::ExportToSPECCTRA( wxCommandEvent& event ) so that the
    huge header file, specctra.h need only be included in one or two *.cpp
    files. The specctra export menu support was added to id.h, wxPcbStruct.h,
    menubarpcb.cpp, and pcbframe.cpp. After dsn export, I intend to add an
    import, and a session file feedback merge. See the revised
    how-to-build-kicad.txt for the new boost c++ libraries requirement.


2008-Jan-21 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema:
    labels and texts display changed when rotated 180 degres:
    horizontal text are now right justified insteed of 180 degree rotated, and are readable.

+pcbnew:
    bug 1874663 solved (edit a pad netname does not work very well)

2008-Jan-20 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    On line DRC when creating a zone outline.
    Needs more work to display errors DRC.


2008-Jan-18 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+all:
    filtering small mouse moves ( < 5 pixels) when clicking.
    Starting a wire or a track is now more easily because these small moves do not start a block commnad.

+pcbnew:
    rework of drill filles creation (excellon and reports)
    needed to have a clean implantation of buried vias and mainly microvia
    which involve a more complex drill files generation
    This is better to continue work on zones because :
    hight density boards = use of BGA = microvias + good zones handling
    When a board has buried or blind vias (microvia are blind vias),
    pcbnew creates a drill file per layer pair. for a 4 layer board:
    drill file for layer1 to layer 2
    drill file for layer2 to layer 3
    drill file for layer3 to layer 4


2008-Jan-18 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
    how-to-build-kicad.txt: added the Boost C++ Libraries installation info
    and requirement.


2008-Jan-16 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    Move Zone outlines added
    Zone outline DRC works (needs improvements)
    some bugs solved, but polyline.cpp still needs work.
    gendrill: code cleaning.

2008-Jan-14 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    code cleaning:
     DRAWSEGMENT class functions moved in the new files class_drawsegment.cpp et .h


2008-Jan-12 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema:
    missing footprints in export netlist (bug 1867321)
    Affected: PadsPcb converter did not list all footprints

+pcbnew:
    fixed: memory not freeed in block copy (minor bug)
    Support for micro vias (generation of drill files not finished)

2008-jan-06 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    Block commands now works with zones.
    Some code cleanning.


2008-Jan-5 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew:
  * Added pad_shapes.h and blended it into class_pad.h and PolyLine2Kicad.h.
    Renamed the pad shapes in there to avoid namespace conflicts.
    RECT became PAD_RECT, CIRCLE became PAD_CIRCLE, etc.
  * common.cpp's ReturnPcbLayerName( int layer_number, bool omitSpacePadding )
    has commented out code that I tested as part of a possible new scheme to support
    custom layer names per project.
  * More specctra dsn import export work.


2008-jan-05 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    Added: Delete cutout outline in zone popup menu
    the GUI about zones is now working.
    Some work is needed ( a zone in a zone of the same net is not merged )
    Currently No DRC for outlines


2008-jan-04 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    More about zones:
        Outlines can be edited. Outlines are merged if needeed.
        Currently No DRC for outlines


2008-jan-01 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+all
    wxstruct modified and wxPcbStuct.h added:
        classes relatives to pcbnew, cvpcb and gerbview are moved in wxPcbStuct.h


2007-Dec-29 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    First draft (and code..) about new zone handling, using polygons to define an outline.
    Now currently not useable because the fill function (and many other important functions) is not implemented.
    Many functions are not yet implemented: merging zones, cutout, DRC ...
    Nevertheless, one can create, modify edit and save zone outlines


2007-Dec-23 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+all
  * Because of the discussion 4 months ago about using Boost::Python, and
    because of an excellent boost::ptr_vector class, I want to make some of the
    boost libraries be necessary for building Kicad.  These would be:
    1) boost pointer container library (immediately)
        http://www.boost.org/libs/ptr_container/doc/ptr_container.html
        See the work in specctra.cpp to see where this is going:
        typedef boost::ptr_vector<ELEM> ELEM_ARRAY found within class PARENT.
        I found that gcc 4.2.1 was complaining about the standard ubuntu libboost-dev
        package and would not compile ptr_vector class.  But the svn of boost
        fixed this.
    2) boost::python when building python in.
  * Added FIND_PACKAGE(Boost) to CMakeLists.txt


2007-Dec-22 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+all
    added strlower() to common.h and string.cpp.
    fixed compiler warnings in common/gr_basic.cpp and pcbnew/clean.cpp
+pcbnew
    started the DSN file import/export for SPECCTRA routers, adding dsn.cpp and
    specctra.cpp, with "stand alone" compile support for it in pcbnew/CMakeLists.txt.


2007-Dec-17 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
    WinEDA_PcbFrame::Other_Layer_Route() was leaving in the bridging segment
    when the DRC denied the via insertion.


2007-Dec-17 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    some changes about zones: enhanced dialog, and files reorganisation


2007-Dec-14 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
    WinEDA_PcbFrame::Other_Layer_Route() now returns bool, so that if the DRC
    would not allow the new via placement, then it can be checked and the layer
    change can also then be aborted.  Previously the layer change would happen
    in mid track even if the via could not be placed.


2007-Dec-13 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
  * surbrill.cpp's int WinEDA_PcbFrame::Select_High_Light( wxDC* DC )
    was re-written to use the GENERAL_COLLECTOR, and the scanList is set to
    give pads a higher search priority than tracks, vias or zones.
    The objective was to use the pad if possible, rather than a track on a pad,
    so the pad can be sent to eeschema.  Finding the track only (even though
    on a pad) would not send anything to eeschema.


2007-Dec-12 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
  * Fized zone drawing bug in svn HEAD only.
    pcbnew/zones.cpp, see:
    http://tech.groups.yahoo.com/group/kicad-users/message/2993


2007-Dec-11 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+all
  * Fixed hotkey table for '+' and '-' bug.  The lookup table in
    common/hotkeys_basic.cpp had bad entries for + and -.  These hotkeys
    were not working on Linux.
  * Added polygon directory to Doxyfile.


2007-Dec-09 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+cvpcb:
    listboxes.cpp FootprintListBox::m_ActiveFootprint member was not initialized.
    Can crash cvpcb (WINDOWS only, i believe)


2007-Dec-09 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    changes in file organisation and classes to prepare zone redesign. No real new code.
    class zone functions and definitions moved in class_zone.h and .cpp


2007-Dec-07 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew
    Very minor bug in drill map : inaccurate via shapes (I believe EXCELLON drill file has no problems)


2007-Dec-06 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+all
    Solved zoom key command problems (under linux and windows)
    (seen http://sourceforge.net/tracker/index.php?func=detail&aid=1844960&group_id=145591&atid=762476)

+pcbnew
    solved bug when loading a footprint in modedit: invisible text attribute was lost (trunk and tag)


2007-Dec-4 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
    added the D() macro to fctsys.h to ease conditional debug printf()s.
    worked on http://sourceforge.net/tracker/index.php?func=detail&aid=1844960&group_id=145591&atid=762476
    but could not resolve it in 1/2 day.


2007-Dec-4 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
  * drc.cpp and dialog_drc.cpp update.
    Added double click support on a MARKER or unconnected DRC_ITEM in the listboxes.
    On Linux, it sometimes pops up the menu from PcbGeneralLocateAndDisplay()
    for some reason after repositioning the cursor.  That is not intended, but
    after several attempts to work around it, I realized it is not so bad to
    have this happen.
  * Added right click popup menus to the list boxes.  User must first select
    the item he wants to go to, as the right click does not change the selection.
  * Added WinEDA_BasePcbFrame::CursorGoto( const wxPoint& ) by factoring it
    out of pcbnew/find.cpp
    Done now, its ready for folks to start using it and testing it.


2007-Dec-02 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema:
    Solved an annotation problem: in multiple parts per package components,
    when sorted by position, parts were not grouped by package.


2007-Dec-2 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
    drc.cpp and dialog_drc.cpp intermediate update.


2007-Nov-30 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
  * added virtual GetPosition() to BOARD_ITEM and derivatives.
  * added classes DRC, REPORT_ISSUE, DRC_ITEM and rearranged drc.cpp entirely
    to comprize the DRC class.  The result has finer granularity of functions
    and each is fairly well documented in English, see drc_stuff.h.
    Keeping old stuff commented out at bottom of drc.cpp until some more usage
    and testing is done.
  * Made the DRC dialog modeless, so it can sit off to the side while the MARKER
    are inspected one by one.


2007-Nov-29 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    Removed a bug (function block() ) which crashes pcbnew when erasing a zone by block delete


2007-Nov-27 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
  * changed class MARQUEUR to class MARKER name only.
  * Moved BOARD's MARKERs from m_Drawings to vector<MARKER*> m_markers so
    they can be easily deleted and navigated to from the drc dialog.
  * deprecated the MARKER::Unlink() function.
  * Added
        BOARD::Add( BOARD_ITEM*, int )
        BOARD::GetMARKER(int)
        BOARD::Delete( BOARD_ITEM* )
        BOARD::DeleteMARKERs();
  * Changed BOARD::~BOARD() to use DeleteMARKERs().
  * Revised screen drawing routine to know about BOARD::m_markers.
  * Revised BOARD::Visit() to know about BOARD::m_markers.
  * Revised pcbnew/find.cpp to know about BOARD::m_markers.
  * removed wxYield() from drc.cpp


2007-Nov-26 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
    DRC code and dialog rework start.  This breaks DRC, until I get out the
    other end of the tunnel.


2007-Nov-24 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
  * dialog_track_options uses a portable technique for SetFocus(), namely the
    function OnInitDialog( wxInitDialogEvent& event ).
  * started work on dialog_drc, not checked in. basic wxHtmlListBox is working with dummied text.
+all
    makefile.include's now use CXX instead of CC for compiling.


2007-Nov-15 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    Removed a bug (function Delete_Zone() ) which crashes pcbnew when erasing a zone by popup menu


2007-Nov-13 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ eeschema & pcbnew
  * The "Page Settings" dialog box has been enhanced; it now includes a
    wxStdDialogButtonSizer, and is also now designed to be expandable.
+ pcbnew
  * The "DRC Control" and "Netlist:" dialog boxes have also been enhanced. Each
    of those dialogs now includes a wxStdDialogButtonSizer and a "Cancel" button,
    (so each of those dialogs can now (otherwise) be cancelled by pressing the
    "Esc" key), and is also now designed to be expandable.


2007-Nov-11 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
    Fixed modedit.cpp bug which occurred when selecting a non pad item (such
    as a text field) in the module editor, then selecting Dimensions -> Pad Settings
    in the module editor.


2007-Nov-11 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ eeschema & pcbnew & gerbview
  * The "Colors" dialog box has been enhanced; the distance between adjacent
    controls now increases (and in both horizontal and vertical directions)
    when that dialog is resized. And the "Cancel" button is no longer centre-
    justified; it is now right-justifed instead.
+ eeschema
  * A wxStdDialogButtonSizer is now used within the "EESchema Colors" dialog box,
    meaning that the sequence of the "OK", "Cancel", and "Apply" buttons within
    that dialog now depends upon which (OS) version of KiCad is being used (and
    thus matching the nature of the corresponding dialogs within Pcbnew and GerbView
    in that regard). (As of yet, the vertical distance between adjacent controls
    does not increase when this dialog is resized, but that aspect will also be
    implemented when time permits.)
+ gerbview
  * The "GerbView Layer Colors:" dialog box has been updated, and is now similar
    in nature to the corresponding dialogs within EESchema and Pcbnew. Tool tips
    have also been provided for the "Show All" and "Show None" buttons.


2007-Nov-10 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema:
    More comprehensive dialog in netlist plugin interface.
    Eeschema configuration now shows the plugin netlist list


2007-Nov-09 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ 3d-viewer
  * The 3d_canvas.cpp file has been updated to use a const parameter, as suggested
    within (Bug) Request ID 1828487.
+ pcbnew
  * Sizers have now been provided for the "Pcbnew Layer Colors:" dialog box (previously
    identified as the "Colors:" dialog box), and tool tips have been provided for the
    "Show All" and "Show None" buttons.
  * The reglage.cpp file (which is not currently used) has been removed, and replaced
    with reglage.cpp.notused.


2007-Nov-02 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ all
    removed not used files


2007-Nov-07 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ all
  * The common/svg_print.cpp, common/svg_print.h, and common/svg_print.pjd files (which
    are not currently used) have been removed, and replaced with svg_print.cpp.notused,
    svg_print.h.notused, and svg_print.pjd.notused. And common/makefile.include has
    also been updated so that none of those files are now listed at all.
+ eeschema
  * A "Cancel" button has now been provided within each of the "Component properties",
    "EESchema Annotation", "EESchema Erc", "Global Label properties", "Label properties",
    and "Text properties" dialog boxes, and each of those dialogs can now (otherwise) be
    cancelled by pressing the "Esc" key. (In due course, each of those dialogs will be
    refined yet further; this is just an incremental enhancement.)
  * The eestatus.cpp file (which is not currently used) has been removed, and replaced
    with eestatus.cpp.notused.


2007-Nov-05 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ eeschema
  * The previously provided "Close" button within the "Netlist" dialog box has
    now been replaced with a "Cancel" button, and this dialog can now (otherwise)
    be cancelled by pressing the "Esc" key. General cleanup and beautification of
    eeschema/netlist_control.cpp.
+ pcbnew
  * The color of each text string provided within the "Swap Layers:" dialog box is
    now set to blue for each string specifying that the associated layer is *not*
    being swapped with any other layer, or to fushia for each string specifying that
    the associated layer *is* being swapped with another layer. (This change was
    made after being suggested by Dick Hollenbeck.)
+ gerbview
  * The color of each text string provided within the "Layer selection" dialog box
    is similarly now set to blue for each string specifying that the associated
    Gerber layer is *not* being exported to any pcbnew layer, or to fushia for each
    string specifying that the associated Gerber layer *is* being exported to a
    pcbnew layer.


2007-Nov-2 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
    fixed a crashing bug which happened if you "dragged" a module with
    tracks.  Then deleted one of the pad connected tracks, then deleted the
    next track attached to the first one.  Memory was being corrupted because
    PcbGeneralLocate() and display was not being called on the 2nd track to
    be deleted because the m_Flags test:
        bool ItemFree = (GetCurItem()==0  || GetCurItem()->m_Flags==0);
    was returning false. Solution was to SetCurItem(NULL) after deleting a
    TRACK.  This makes sense, SetCurItem() is used for designating a "selected"
    item, and a deleted TRACK is not even in the BOARD anymore and should not
    be selected or selectable.  I think this bug may have been causing spurious
    crashes for the last couple of months.


2007-Nov-02 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+all:
    solved: eeschema, pcbnew and cvpcb did not find libraries when they were
    in the default library path, but in a subdirectory
    (this is because the default path was not added to the name if the name had
    already a path)


2007-Nov-02 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ pcbnew
  * Sizers have now been provided for the "Swap Layers:" dialog box, and the
    previously provided radiobuttons have been replaced with buttons and static
    text strings. (In the previous version of this dialog, radiobuttons were being
    used in an inappropriate manner. The most "orthodox" way of implementing the
    functionality within this dialog would be to provide a combobox for each layer,
    but as up to 30 strings would be needed within the dropdown list associated with
    each of those controls (one string for each of the layers, and another string to
    deselect the layer), such controls would be less than user-friendly. Hence a
    button is now provided for each layer instead (and which, like the previously
    provided radiobutton, invokes the "Select Layer:" dialog box after being clicked
    on). Two static text strings are also provided for each layer, with one of them
    being used to identify that layer, and the other being used to identify which
    layer that each layer is currently being swapped to.) The previously provided
    "Select" and "Deselect" buttons are no longer required, and are thus no longer
    provided.
+ gerbview
  * The "Layer selection" dialog box (invoked during the "Export to Pcbnew" command)
    has similarly been updated. (This dialog did use spacers before, but once again,
    the previously provided radiobuttons were being used in an inappropriate manner.)


2007-Nov-01 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ pcbnew
  * Provided new definitions of FIRST_COPPER_LAYER and LAST_COPPER_LAYER within
    include/pcbstruct.h, and used those definitions within various other files.
    Beautified and generally refined 3d-viewer/3d_draw.cpp and pcbnew/plotgerb.cpp.


2007-Oct-31 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+kicad:
    rename mdiframe.cpp to mainframe.cpp
    create commandframe.cpp to handle the command frame (which have the 4 "fast launch" buttons)


2007-Oct-31 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ all
  * Added Doxygen configuration file, whose standard name is Doxyfile.  Output
    is set to go to ./doxygen directory just off the project tree.
  * Added a note to todo.txt which asks folks to start using "Doxygen compatible"
    comments in member functions and classes.  Run Doxygen on the project, then
    look at the documentation for class INSPECTOR as an example.
+ pcbnew
  * zones.cpp, Trace_Pcb(), & EDGE_ZONE class:
    Reversed the usage of EDGE_ZONE::Pnext and Pback in the list management to be
    consistent with other classes and with BOARD_ITEM::IterateForward() and
    BOARD::~BOARD().
  * Fixed a display bug when high contrast mode is enabled and the track tool
    is selected.


2007-Oct-31 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+all:
    gcc 4.2.1 compatibility: change char * to const char * whenever it was necessary,
    mainly in .xpm files


2007-Oct-30 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
    added BOARD_ITEM::Save() and to all derived classes as well.  Made virtual
    and removed all UI code from these utility functions.
    removed WriteDesc() functions from all BOARD_ITEM derived classes, although
    Keeping old ones in commented out form for a while for reference.
    @todo: delete these from *.cpp files eventually.
    zones.cpp, clean up in prep for enhancements.
+ gerbview
    fixed bug which came about when BOARD::~BOARD() started deleting the objects
    that a BOARD owns.  export_to_pcbnew.cpp was not consistent with this
    design and was crashing.  Also, export_to_pcbnew.cpp now uses the simple
    BOARD::Save() function.  It was another place to maintain the PCB file format,
    rather than simply putting that knowledge into one place like BOARD::Save().
+ all
    beautified gr_basic.cpp and made CLIP_LINE macro a static inline function.


2007-Oct-30 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+cvpcb: listboxes.cpp problem solved: exists only under windows
    now apply to windows only, because this Workaround creates a problem undex linux
+others:
    some very minor problems solved
+eeschema:
    in B.O.M.: the footprint field can be added to the field list


2007-Oct-29 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+cvpcb: listboxes.cpp problem solved: Workaround for a curious bug in wxWidgets:
     if we switch from a long list of footprints to a short list (a filtered footprint list),
     and if the selected item is near the end of the long list,
     the new list is not displayed from the top of the list box
+eeschema:
    Implemented: graying in/out of "Edit/Undo", "Edit/Redo" menu items,
    when Undo/Redo stack is empty/filled.
+pcbnew:
    Implemented: action for ID_POPUP_PCB_DELETE_MARKER


2007-Oct-27 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ all:
    remove unused files.
    some translations
+cvpcb:
    set flag wxFRAME_FLOAT_ON_PARENT when create the footprint 3D frame and the
    display frame
    minor other changes
+ pcbnew:
    Use collector class to locate items in modedit.
    This is a big enhancement,
    but a small work for me because Dick made all the work.


2007-Oct-26 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ pcbnew:
    Add class_marker.cpp and class_marker.h and move MARQUEUR functions in class_marker.cpp
    Change MARQUEUR::HitTest to take in account the zoom level.
    change global var EDA_Appl to g_EDA_Appl


2007-Oct-25 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ cvpcb
  * Fine-tuned contents of dialog_display_options.cpp, dialog_display_options.h,
    and dialog_display_options.pjd, so that the controls within the associated
    ("Display Options") dialog box now also expand if that dialog is expanded.
+ all
  * The share/selcolor.cpp file (which is no longer used) has been removed, and
    replaced with share/selcolor.cpp.notused


2007-Oct-24 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ cvpcb:
    2 missing .prj files added (and updated)
    dialog_display_option.cpp is rebuild from its dialog_display_option.prj source


2007-Oct-23 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ eeschema
  * Sizers have now been provided for the "EESchema Preferences" dialog box,
    together with "OK", "Cancel", and "Apply" buttons. And an additional bitmap
    button and checkbox have also been provided for the purpose of editing the
    color and visibility of the grid.


2007-Oct-21 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ all
  * Provided an MAYBE_RESIZE_BORDER field within all of the .pjd files (used by
    DialogBlocks), and restored the MAYBE_RESIZE_BORDER field to cleaningoptions_dialog.h


2007-Oct-21 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ all
    added UIpolicies.txt


2007-Oct-21 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ pcbnew:
    rename dialog_clean_pcb.pjd to cleaningoptions_dialog.pjd,
    accordind to the corresponding cpp filename.
    enter the new tool tips in cleaningoptions_dialog.pjd.
+all:
    USE_RESIZE_BORDER is now defined (default) in fctsys.h.
    Therefore, under windows, dialogs are now resizable (like under unix)


2007-Oct-21 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ eeschema & pcbnew & gerbview
  * Sizers have now been provided within the "Colors" dialog box.


2007-Oct-19 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
  * "Clean tracks" changed to "Track operations".
  * Housekeeping on clean.cpp completed.
    Added static void ConnectDanglingEndToVia( BOARD* pcb ) in clean.cpp which
    extends tracks to via centers.  Call it from "extend to pads", works nice.
  * Added tooltip text to cleaningoptions_dialog.cpp's m_ConnectToPadsOpt
    but don't know if DialogBlocks will parse this backwards.
  * Made compilable, somebody broke #define VIA_???? s throughout.  Would not compile.
  * SEGVIA::SetPos() & GetPos() added.


2007-Oct-17 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ pcbnew:
    Removed enhancements in connectivity computation because
    rastnest computation does not work (errors) with short track segments
    (lenght < width) . This is not a bug, but an algorithm problem, so
    I must work on algos.


2007-Oct-17 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ pcbnew
  * Rolled back previous changes (made in revision 336) that edited the values of
    vias' Shape property (following feedback from Jean-Pierre Charras concerning
    the true significance of that property).


2007-Oct-13 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ pcbnew:
    remove a change for Read VIA because via attributes
    (TROUGH VIA, BLIND VIA or BURIED VIA) are autorisations for layer connection,
    and are not a real layer indicator.
    If a via connect layers from copper to component, it can have a BURIED VIA attribute.
    the meaning is for this via the layer pair can be changed for other layer pair
    if after editing this via connect 2 tracks which are only int internal layers,
    its layer pair can be changed.
    If a via has a TROUGH VIA attribute, it connects ALL layers, whenever tracks
    connected to it.
    Note: curenty: only TROUGH VIA are handled.
    Other types (BLIND VIA and BURIED VIA) are only experimental.
    A **lot** of code is needed for a full support.
    enhancements in connectivity computation


2007-Oct-15 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ pcbnew
  * Made some changes involving vias so that these would have the correct value
    of the Shape property assigned to them - while being created, and while files
    are being saved, and while files are being loaded.


2007-Oct-14 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew:
  * housekeeping and translation to English on bottom third of pcbnew/clean.cpp.
    No algorithm changes were intended, only improved readability.
  * my todo: figure out how to intercept double clicks on a wxWidgets text control
    so I can complete the work I started on MARQUEUR error tracking.


2007-Oct-13 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ pcbnew:
    ratsnest.cpp translated into english.
    Many infos on the LEE algorithm used here added.
    todo (by myself): connect.cpp translation.
    onrightclick() bug (created by last change) solved: one could reselect an item,
    while moving a previously selected item (pcbnew crashes).


2007-Oct-13 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ eeschema
  * The previously provided "Quit" button within the "List of Material" dialog box
    has been replaced with "OK", "Cancel", and "Apply" buttons. Greater consistency
    has also been achieved after clicking on the "Create List" button; none of the
    prevailing settings are subsequently saved (previously, some, but not all, of
    the settings were subsequently saved). (However, settings can still be saved by
    clicking on either of the "OK" or "Apply" buttons instead.) Assorted cleanup
    and beautification of associated source code.
  * The genliste.cpp file (which is no longer used) has been removed, and replaced
    with genliste.cpp.notused


2007-Oct-12 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ all
  * m_NetCode is now private or protected throughout.
    added SetNet() and GetNet() to all classes which have this member name.
    ditto for m_Sous_NetCode, for which there is now SetSubNet() and GetSubNet().
+ pcbnew
    added more disambiguating text to the PcbGeneralLocateAndDisplay() popup
    menu for tracks. We need all the info we can get there I found after using
    the software for many hours.


  Jean-Pierre:

  I never thought I would find a greater problem in using Kicad than having to
  lay down all the ground and power tracks, rather that just linking vias into
  pre-established zones or "tagged layers".

  But I have, hundreds of my tracks and vias are showing
  unconnected under my BGA, (where say the track or via is NetCode==0) and it
  should not be, because the damn track ties the BGA pad to a nearby via.
  How can the software be made to think these three items are on the same net,
  without re-entering all the damn tracks?

  This issue has been coming up for months on the user list, it must be dealt with now.
  There is always the same lame answer, "make sure your tracks go to the center of the pads".
  Nonsense, the software picked the track end points, not me, and grid was on when it did it.
  There are bugs here.

  Does Recalcule_all_net_connexion() work, and why is not called from anywhere?



2007-Oct-11 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
  * D_PAD::Draw() refinements.
  * WinEDA_DrawFrame::SetToolID() will redraw the DrawPanel if the track
    button is selected or de-selected and the high-contrast mode is in play.
  * If high-contrast mode is in play, the Select Layer Pair dialog completion
    will redraw the DisplayPanel, now that SMD pads' colors are so dependent
    on these variables.


2007-Oct-11 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
  * D_PAD::Draw() so that it shows SMD pads as greyed out when in high contrast
    mode and not on current layer.  Slight variation on this when laying down
    tracks: m_Route_Layer_BOTTOM or m_Route_Layer_TOP layers' SMD pads are
    not greyed out.
  * Changed English UI text for "Cotation" to "Dimension".


2007-Oct-11 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ pcbnew
  * The "Target Properties" and "Pads Global Edit" dialog boxes can now (otherwise)
    be cancelled by pressing the "Esc" key, and the caption of the "OK" button
    within the latter dialog box has been capitalised (so that an icon is now
    provided within that button within the Linux version of KiCad).
  * The pcbpiste.cpp file (which is no longer used) has been removed, and replaced
    with pcbpiste.cpp.notused
+ cvpcb
  * The affiche.cpp file (which is no longer used) has been removed, and replaced
    with affiche.cpp.notused


2007-Oct-11 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ pcbnew
  * The previously provided "Exit" button within the "Colors:" dialog box has been
    replaced with "OK", "Cancel", and "Apply" buttons, and the code for editing the
    visibility of the Grid layer from that dialog now is "cleaner" than before.
    Details associated with buttons within that dialog box moved from set_color.cpp
    to set_color.h (matching implementation for GerbView's corresponding dialog box).
  * Fixed bug which previously prevented the Copper layer from being selected as the
    current layer when only one copper layer is enabled (and made some modifications
    to the code for selecting the next copper layer and previous copper layer).
+ gerbview
  * The code for editing the visibility of the Grid layer from the "GerbView Layer
    Colors:" dialog box is "cleaner" than before, and assorted other beautification.
+ eeschema
  * The options.cpp file (which is no longer used) has been removed, and replaced
    with options.cpp.notused


2007-Oct-10 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
  * bug fix: prevent OnRightClick() from calling PcbGeneralLocateAndDisplay()
    when creating a new track.
  * bug fix: popup menu was not handling Mires, because the collector was not
    being asked to find them.
  * added TRACK::ShowWidth() and call it from BOARD_ITEM::MenuText().  There was
    not enough information in Selection Clarification at a busy junction to
    make a reasonable choice.
  * SEGVIA::MenuText() shows via width, rather than net_code.
  * Beautified ratsnets.cpp, I would like to understand it better.  It would help
    if the comments were in English.
+ all
  * Changed English UI text "Mire" to "Target" according to this post:
    http://tech.groups.yahoo.com/group/kicad-users/message/1380
  * rewrote msgpanel.cpp so it retains wxStrings and therefore can repaint its
    window when being uncovered, resized or whatever.


2007-Oct-9 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
    changed pcbnew/onrightclick.cpp so that a right click only shows the
    Selection Clarification menu if there is no selected object or if the
    click is in a position different from where the selection was previously
    made.


2007-Oct-09 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ eeschema:
    cross-probing minor bug solved ( due to last modification): pins/pads not probed


2007-Oct-08 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ gerbview
    Display on screen now updates properly (in Linux version) after clicking on
    the "OK" button provided within the "GerbView Layer Colors" dialog box.


2007-Oct-7 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ eeschema
    create new file cross-probing.cpp
    move RemoteCommand() to cross-probing.cpp and create SendMessageToPCBNEW()

+ pcbnew
    bug in move pad fixed (could crash pcbnew)
    Small change in selection clarification (side effect removed):
    - Escape or click on title does not show the next popup menu.
    - the title is displayed under linux
    - definition CUIVRE_N translated into COPPER_LAYER_N


2007-Oct-07 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ all
  * Various dialog boxes can now (otherwise) be cancelled by pressing the "Esc" key.
    (Some dialog boxes still require attention in that regard though, so that task
    is not yet complete.) And the captions of the "OK" button within various dialog
    boxes have been fully capitalised (meaning that an icon is now provided within
    each of those buttons within the Linux version of KiCad).
  * DIALOG_STYLE (defined within include/wxstruct.h) now includes MAYBE_RESIZE_BORDER
    field. (Refer to 2007-Oct-2 UPDATE notes for the relevance of this.)
  * Beautification and house keeping.
+ eeschema
  * The editpart.cpp and libedpart.cpp files (which are no longer used) have been
    removed, and replaced with editpart.cpp.notused and libedpart.cpp.notused
+ cvpcb
  * Additional "OK", "Cancel", and "Apply" buttons have now been provided for the
    "Options" dialog box which lists various display options for footprints.
+ pcbnew
  * Invoking the "Select Layer Pair:" dialog box is no longer possible whenever only
    one (copper) layer is currently enabled. And it is no longer possible to select
    the same layer to be both the Top Layer and Bottom Layer (for any Layer Pair).
  * Deselecting layers during the "Swap layers" command is now more user-friendly,
    due to the provision of an additional "(Deselect)" radiobutton within the (child)
    "Select Layer:" dialog box (which is always invoked whenever a different
    radiobutton within the "Swap Layers:" dialog box is clicked on). (It had
    previously been necessary to cancel the "Select Layer:" dialog box before being
    able to click on the "Deselect" button within the "Swap Layers:" dialog box.)
  * Definition for NB_LAYERS changed from (EDGE_N + 1) to (LAST_NO_COPPER_LAYER + 1)
    (Although EDGE_N is currently the "last" layer, that wouldn't necessarily still
    be true if any additional layers are ever defined in the future.) And comparisons
    to 29 (or 28) have been replaced with comparisons to NB_LAYERS (when appropriate).
+ gerbview
  * The previously provided "Exit" button within the "GerbView Layer Colors" dialog
    box has been replaced with "OK", "Cancel", and "Apply" buttons; and both the
    visibility and color of the Grid layer can now be edited from the same dialog.
  * Deselecting (Gerber) layers during the "Export to Pcbnew" command is now more
    user-friendly, due to the provision of an additional "(Deselect)" radiobutton
    within the (child) "Select Layer:" dialog box (which is always invoked whenever
    a different radiobutton within the "Layer selection:" dialog box is clicked on).
    (It had previously been necessary to cancel the "Select Layer:" dialog box before
    being able to click on the "Deselect" button within the "Layer selection:" dialog
    box.)
  * The "Export to Pcbnew" command now requires at least one Gerber file to have been
    already loaded. And Gerber files can now be loaded into any of the 32 (Gerber)
    layers provided. (It had previously been necessary to avoid having any gaps within
    the sequence of used Gerber layers.)


2007-Oct-6 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ pcbnew
    create new file cross-probing.cpp
    move RemoteCommand() and SendMessageToEESCHEMA() to cross-probing.cpp


2007-Oct-3 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
    made BOARD_ITEM::UnLink() virtual
    added BOARD_ITEM::DeleteStructure().
    added EDA_BaseStruct::DeleteStructList()
    deleted gerbview/struct.cpp, pcbnew/struct.cpp,
    BOARD::~BOARD() now deletes objects that it owns.
    Collectors now finds MARQUEURs also
    added MARQUEURS::Display_Infos()
    added MARQUEURS::HitTest()


2007-Oct-2 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ all
    The lack of border resizing in dialogs has been a problem.  In my world,
    dialog boxes are resizable.  I use large fonts, I like to see stuff.
    So now for __UNIX__ they are resizeable, for windows not.
    See fctsys.h and the #define for MAYBE_RESIZE_BORDER.  For windows it defaults
    to zero which means resizeable is not featured.  A compiler command line
    option of "USE_RESIZE_BORDER" can override this windows default.


2007-Oct-01 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ pcbnew/eeschema
    Cross-probing pcbnew to eeschema:
        A left click on a pad in pcbnew moves the eeschema cursor on the corresponding component pin
        A left click on a footprint ref or value in pcbnew moves the eeschema cursor on the corresponding component ref or value
        A left ckick on a footprint moves the eeschema cursor on the corresponding component anchor
+ pcbnew
    removed drc.cpp change line 584, and translate comments in english.
    nothing broken:
        -> a pad with its netcode = 0 means the pad ** must be left unconnected ** (not attached to *  a net).
        -> a track with its netcode = 0 means the track is not attached to a net (cannot be connected to any pad).


2007-Sep-30 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
    Added dedicated Show() function for SEGVIA.  Enhanced BOARD_ITEM::MenuText()
    for SEGVIA.


2007-Sep-29 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
  * drc.c made a change near line 584 to comment out pt_pad->m_NetCode test against
    zero.  This was preventing me from laying out my board.  It's possible that
    this broke something else, but it is also clear that something was broke before
    this change, because I could not put down some tracks.
  * beautification, house keeping.



2007-Sep-29 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ pcbnew
    create new file onleftclick.cpp
    move onleftcligk() and onleftDcligk() from edit.cpp to onleftclick.cpp


2007-Sep-27 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ all
    test case for OnLeftClick() handling enhancements.
    TAB key removed, because is not needed for block selection and double click.
    (SHIHT ou CTRL or ALT key is sufficient to suppress the popup menu
    if needed for a double click )
    Some work is still needed, of course
+ pcbnew
    Color grid setting now works


2007-Sep-26 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ all
    test case for OnLeftClick() handling from a release circumstance.
    a few simple changes to void WinEDA_DrawPanel::OnMouseEvent( wxMouseEvent& event ),
    but they affect all programs in a subtle way.
    TAB key allow double clicking, but is not needed for block selection.

+ pcbnew
    GENERAL_COLLECTOR::GetCount() returns int, not unsigned.  Was tired of the
    compiler complaining when using an int ndx.


2007-Sep-25 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
  * removed reference to global display options DisplayOpt.DisplayZones in
    collectors.cpp so collectors.cpp can continue to be used in multiple future
    (non-display related) general contexts.  I don't want unnecessary dependencies
    in there.  The way to completely ignore a type is to exclude it from scanList.
    The way to sometimes ignore a type is to add support for this in COLLECTORS_GUIDE.
  * Moved TYPEZONE to end of AllBoardItems, added GENERAL_COLLECTOR::AllButZones to
    provide support for DisplayOpt.DisplayZones.
  * Added aHotKeyCode to PcbGeneralLocateAndDisplay()
+ gerbview
  * viewer was getting stuck in a loop when loading a bad gerber file.  Fixed
    the bug, but line 223 through 225 of readgerb.cpp needs review.
  * beautified a few files with uncrustify, (any I had to look at).


2007-sept-25 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ pcbnew:
    * add class_board_item.cpp file and move BOARD_ITEM::MenuText() and BOARD_ITEM::MenuIcon() in it
    * Add zone detection, forgotten in PcbGeneralLocateAndDisplay()
+ class_collector.h:
    add  void COLLECTOR::Remove( unsigned int item_position ), needed by zone detection, see PcbGeneralLocateAndDisplay


2007-Sep-25 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ gerbview
    The "Exit" button previously provided within the dialog box invoked from the
    "Preferences -> File ext" menu entry has now been replaced by "OK" and "Cancel"
    buttons. Similarly, the "Accept" button previously provided within each of the
    dialog boxes invoked from the "Preferences -> Options" and "Preferences -> Display"
    menu entries has now been replaced by an "OK" button. And each of those three
    dialog boxes can now (otherwise) be cancelled by pressing the "Esc" key.


2007-sept-22 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ all
    * small change in hotkeys handling
        (Ki_HotkeyInfo: new member m_IdMenuEvent to call an existing event handler from a hotkey list)

+ eeschema:
    * added drag component in pop up menu and hotkeys
    * plot svg format: incorrect arc draw fixed


2007-Sep-22 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
    GENERAL_COLLECTOR::Collect() was skipping thru hole pads even though they
    were visible.
    Highlight tool now sends message to eeschema when a pad is selected.


2007-Sep-20 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ eeschema
  * beautify, add debug Show() functions, changed ReturnFieldName()
    to return "const wxString&" for speed, added GetFieldValue().
  * tracking down questionable behavior (a bug?) in erc regarding pwr_flag, still looking


2007-sept-20 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ all
    * hotkeys handling finished
+ pcbnew
    * bug fix: a subtle bug in place via : partial drc only was made.


2007-Sep-14 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
  * controle.cpp, added Function AllAreModulesAndReturnSmallestIfSo() which is
    called from PcbGeneralLocateAndDisplay()
  * onrightclick.cpp changed to calls to BOARD_ITEM::MenuText(), and switched
    to member functions for createPopupMenus() so we can get all the state
    information we need for the proper menus.
  * BOARD_ITEM::MenuText() got new argument BOARD*, and elaboration for
    TRACKs and VIAs and Pcb Graphics.
  * Fixed a problem in GENERAL_COLLECTOR::Inspect() so it now knows that MODULEs
    have their own visibility controls (same for pads and pcb texts).  This
    interpretation must always match the drawing code's interpretation.
  * Made TRACK::TRACK( const TRACK& ) protected to enforce use of TRACK::Copy()


2007-Sep-13 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ kicad
  * Inverted the logic associated with filters.  Filters now enable a file
    in the project manager.  The default is to ignore all files.
  * The filter for *.sch files is smarter, in that it looks to display only
    top level *.sch files, rather than all *.sch files.
+ Others
    More beautification


2007-sept-13 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ all
    * EDA_BaseStruct.SetType() removed.
    The m_StructType member of class EDA_BaseStruct is no more modified in kicad.
    Now Virtual functions can be widely used.
    * The old EDA_BaseStruct.ReturnClassName() was removed.
    the virtual EDA_BaseStruct.GetClass() is used instead.

+ gerbview: hotkeys Ok.


2007-Sep-13 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ eeschema & pcbnew & gerbview
    A Cancel button has now been provided for the "Colors" dialog box, which also
    permits it to (otherwise) be cancelled by pressing the "Esc" key; the button
    whose color matches that of the color currently selected (for the layer being
    edited) also has the initial focus set to it.


2007-Sep-11 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
  * Changed PcbLocateAndDisplay() to be tool specific in its search and to present
    a popup menu when there are multiple items under the mouse.  It is also
    a framework for future enhancements.
    @todo: grep for @todo and finish off those tasks.
  * Introduced a formal notion of "selected item".  This is done with the addition
    of the WinEDA_BasePcbFrame::SetCurItem() function.  So now you have to first
    select an item with the left mouse button before you attempt to use the
    right button popup menu.  Right button no longer has an effect on the
    currently selected item.  The currently selected item is shown in the MsgPanel.
    When none is selected, the m_Pcb is shown.
  * Tweaked the OnRightClick() popup menus so that the most likely choices are
    at the top.
  * Added wxString BOARD_ITEM::MenuText() const and BOARD_ITEM::MenuIcon() and
    both need more work, work which I will not have time to do.


2007-Sep-10 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
  * Searched and did not see any usage of TRACK::Copy(int), where int was other
    than '1', so renamed it to TRACK::CopyList(int) and commented it out because
    with int==1, this makes Copy(1) equivalent to the new Copy(void).
  * Made TRACK::Copy() capable of copying SEGZONE too.


2007-sept-10 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ gerbview
    Programmable hotkeys added. Fixed a compilation probleme in ansi mode (non unicode mode).


2007-Sep-8 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
  * Made good progress in onrightclick.cpp for multiple items under the mouse.
  * Fixed some macros in macros.h so they can be followed with a semicolon and
    used like simple expressions.
    All changes not yet committed.

2007-sept-6 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ eeschema & pcbnew
    Programmable hotkeys update.
    some features are still subject to change (mainly path for config files: see 2007-aug-30 UPDATE))
    The preference menu has a command to create and reread config hotkey files.
    the hotkey ? lists the current hotkeys.


2007-Sep-4 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
  * Made GENERAL_COLLECTORS_GUIDE and GENERAL_COLLECTOR useable.  They can now
    serve as a fully functional replacement for PcbGeneralLocateAndDisplay(),
    see DEBUG code in BOARD_ITEM* WinEDA_BasePcbFrame::PcbGeneralLocateAndDisplay().
  * Made GENERAL_COLLECTOR capable of Collect()ing from a MODULE as well as a BOARD.
  * pcbnew/onrightclick.cpp changed English from "Free Module" to "Unlock Module".
  Next I hope to add some UI to handle multiple items under the mouse in onrightclick.cpp


2007-sept-04 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ pcbnew
    better comments in editrack-part2 (the todo remark solved)
+ todo.txt: note about editrack-part2 modified (problem solved)


2007-Aug-31 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew & gerbview
  * Added TRACK::Copy() which can copy a SEGVIA or a TRACK.
  * Changed export_to_pcbnew.cpp so it created a SEGVIA properly, a significant change.
    Moved and changed a big block of code in export_to_pcbnew.cpp so we can
    properly construct the SEGVIA().  Not tested.
  * Make EDA_BaseStruct::m_StructType private so we can trap where it is being
    changed.  (It should never be changed after construction, see comment above
    EDA_BaseStruct::SetType().)


2007-Aug-30 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
  * Removed SEGVIA::IsViaOnLayer, and instead implemented an override to
    virtual BOARD_ITEM::IsOnLayer() called SEGVIA::IsOnLayer().
  * Tweaked TRACK::Visit() to not traverse the KICAD_T scan list and a
    corresponding change to BOARD::Vist() so we can now get VIA priority
    if desired.  (Have to traverse m_Tracks twice, wonder if we could use
    two lists: m_Tracks and a new m_Vias?)
  * Changed signature of MODULE::Display_Infos( WinEDA_DrawFrame* frame ) so
    it gets called virtually with any BOARD_ITEM* which is actually a MODULE*.
    This was a bug.
  * With virtual functions, it is now critical that the correct object type
    be instantiated.  This was not happening in ioascii.cpp when reading
    the vias.  Bug fixed.
  * GENERAL_COLLECTOR getting closer to useable.


2007-aug-30 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ eeschema & pcbnew
    more about programmable hotkeys.
    Most existing hotkeys are programmable and displayed in popup menus or tools
    Work still in progress but most features are ok.
    some features are not fixed (mainly the configuration files path, which is
    currently the home directory under unix systems and kicad/template under windows))


2007-Aug-29 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
    Started abstract class COLLECTORS_GUIDE.
    Renamed classtrc.cpp to classtrc.cpp.notused
    Changed some comments in class BOARD's header to english, clarifying
    linked list contents.


2007-aug-27 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ all
    Display grid size in mils or mm in popup menu according to the current unit choice


2007-Aug-24 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ eeschema & pcbnew
  * Removed class EDA_BaseLineStruct, which brought no behavioral advantage, only data.
    Classes which were based on it got its data members added and their initializers.
  * Changed type of EDA_BaseStruct::m_StructType from int to KICAD_T which is an
    enum.  This makes debugging easier since gdb will show the name of the
    KICAD_T rather than simply a number.  Added NOT_USED = -1 to KICAD_T enum for
    3d which was using -1.
  * More beautification using latest uncrustify and the committed uncrustify.cfg


2007-Aug-24 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ pcbnew
    A new option has now been provided which permits Gerber files to be generated
    in which the contents of the Edges Pcb layer are not also included with the
    contents of each other layer.


2007-Aug-23 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ eeschema & pcbnew
  * Fixed MODULE::Visit() and BOARD::Vist() so they traverse certain lists
    only once and they are working nicely now.
  * You can test the GENERALCOLLECTOR::Scan() code by compiling with DEBUG=1 on
    the command line and enabling the stuff near line 124 in
    pcbnew/controle.cpp, then watch Show( std::cout ) show the selected items in
    xml format on your console. (launch pcbnew from command line.)
    @todo:
    The layer selection mechanism used by the collector is still inadequate, so
    tomorrow I will add a new class COLLECTORS_GUIDE which can be used by a
    COLLECTOR to control its operation. It adds the concept of layer
    locking, even though PCBNEW does not support that in the UI yet.


2007-Aug-22 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ eeschema & pcbnew
  Things are still pretty transient, should be stable a day or two:
  * Fixed a filename case sensitivity problem that would show up on Linux
    but probably not on Windows: bitmap/Reload.xpm needed uppercase R.
  * Wedged a new class BOARD_ITEM underneath all PCB drawable classes. This is
    a big change and may introduce a bug or two, but it is worth it for the
    future, because we can add virtual functions there that do not impact
    the entire project (since everything is derived from EDA_BaseStruct).
    The corresponding class in EESCHEMA seems to be DrawPartStruct, so we had
    nothing in PCBNEW like that.
    BOARD_ITEM::GetLayer() and SetLayer() introduced, more functions to come.
    Much of this work is geared towards making collectors.cpp's ARROWCOLLECTOR::Inspect()
    very very simple, and that can be a model for future work.
  * Changed min() and max() macros to MIN() and MAX() because min() and max()
    are actually reserved according to the C++ standard! (and their usage prevented
    the use of #include <vector>).
  * Added files class_collector.h, collectors.h, and collectors.cpp.
    File collectors.cpp is still unfinished.
  * Started using a function and class comment style that will make sense to the
    Doxygen source code documenter program.
  * Beautified more un-beautified files.


2007-aug-21 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ eeschema & pcbnew
    First version of programmable hotkeys by editing hotkey configuration files.
    some hotkeys are not programmable (Zoom)(work in progress)


2007-Aug-21 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ administrative
    Added copyright.h as a proposed copyright header for Mr. Charras's review.
    Added uncrustify.cfg, the configuration file for the "uncrustify" C++ beautifier.


2007-Aug-20 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew & eeschema
  * Moved allowed m_Flags values from pcbnew.h, general.h, and eeschema/delete.cpp to base_struct.h
    near m_Flags itself.  Several of the flags values were changed.  I am only
    comfortable with this change if m_Flags is not written to disk anywhere,
    and we need to give that some thought.  If m_Flags is a memory only usage
    and not saved to disk, then this change should be safe.  I could not find
    any case where m_Flags was being saved to disk, but I could have missed one.
    The reason for the change was to consolidate into one place the allowed values
    so that as new flags are allocated there is no conflict.
  * Moved most all the pcbnew/affiche.cpp functions to virtual member functions of their
    respective classes with the name Display_Infos().
  * Moved GetEquipot() global function to BOARD::FindNet().
  These changes are working towards a concise locate.cpp module, on the way
  to implementing the multiple choice support.  Mass edits should be slowing down
  in a day or so.


2007-Aug-20 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ eeschema & pcbnew
    The comments provided within postscript files now fully comply with Adobe's
    Document Structuring Convention.


2007-aug-20 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ eeschema & pcbnew
    modify hotkeys.cpp code (large modifications).
    Added: common code in hotkeys_basic.cpp (in common) and hotkeys_basic.h (in include)
    In the future, i hope hotkeys will be programmed by a config file

+ pcbnew
    filename drc_dialog.prj changed to dialog_drc.prj
        (according to the fulename dialog_drc.cpp and dialog_drc.h created by dialogblock from the .prj)


2007-Aug-19 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ all
  * Made BASE_SCREEN::m_CurrentItem private so we can force usage of the new
    SetCurItem() function, and use it to put a breakpoint on the only place
    that m_CurrentItem is changed, namely in the new SetCurItem() function.
    ( Added new function GetCurItem() as well to class BASE_SCREEN in
    drawpanel_wxstruct.h.)  Using a stack trace at the breakpoint we can tell
    who called it.  There were in excess of 450 edits to get this done so I
    had to commit it asap so other folks could get on with edits without a
    merge conflict.
  * Started work on the COLLECTOR class which will assist in giving a choice
    in PCBNEW when there is more than one click candidate at the same mouse
    or cursor coordinates.  COLLECTOR not committed yet.
  * More beautification.
  * The mouse click and part synchronization from EESCHEMA to PCBNEW would
    track fine but would not always position the PCBNEW part on screen.  Now
    we center it unconditionally.  No change was made in the reverse direction
    since that code uses the long established Find support.


2007-Aug-14 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ eeschema & pcbnew
  * Added mouse click, TCP/IP socket based,  part synchronization in the reverse
    of how it was working, so a mouse click on a module in PCBNEW will take
    EESCHEMA to the part with the same reference.
  * More beautification, working with developer of uncrustify.  Almost ready
    to add the customized uncrustifiy configuration file to this project.
  * Fixed a bug in pcbnew/tracepcb.cpp's WinEDA_PcbFrame::Trace_Pcb( wxDC* DC, int mode )
    which was using a bool for the MaskLay variable, causing through hole pads
    on modules on copper layer not to be shown when the copper components were
    set to invisible.


2007-aug-11 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ eeschema
    modify hotkeys.cpp code.


2007-Aug-10 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew & common
    Improved MODULE::FindPadOrModule().
    Ran more source files through auto-beautifier.
    Renamed dupltrac.cpp to dupltrac.cpp.notused.


2007-aug-10 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ eeschema
    better hotkeys.cpp code.


2007-Aug-09 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew & common
    Released the new Visitor paradigm.   Wrote MODULE::FindPadOrModule() using
    it.


2007-aug-09 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ eeschema
    Some new hotkeys (see hotkeys.cpp).
    Now, the key ? display the current existing hotkeys


2007-Aug-08 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew & common
  * Renamed locate.cpp's distance() to DistanceTest() and moved it to trigo.cpp.
    Pass more parameters to DistanceTest and removed globals that were used by
    distance() in locate.cpp.
    Moved and renamed DistanceTest function proto from protos.h to trigo.h.
  * Implemented HitTest() for class_cotation, class_mire, and a few other classes
    by factoring out existing code from locate.cpp.  locate.cpp should operate
    exactly the same as before.
  * Improved or implemented the Show() function for several classes.
  * Detected that the suspected class_module hit-testing bug was not real,
    i.e. no bug found.


2007-aug-08 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ eeschema
    bug in class_hierarchy_sheet.cpp.

+ pcbnew
    small change in block commands:
        rastnest was updated for each footprint, while moving footprints.
        Now it is updated at the end of changes.
    enhancements in block.cpp and connect.cpp


2007-Aug-07 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew & common
  * More searching work.  Made HitTest() virtual.  Factored out a HitTest()
    function for both class_module and class_pad from existing code.
  * Embellished the Show() function for several of the classes.  Could be the
    basis of a possible future XML export, but with the native format being
    ascii already, this is of questionable value as an export.
  * Discovered a long time existing bug in class_module hit-testing.
    Still need to understand it. It could just be an improperly formatted module.


2007-Aug-06 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew & common
    Started sketching out a new search architecture.  To learn more:
    look for "INSPECTOR" text in base_struct.h.


2007-Aug-05 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew & common
  * Added some conditional DEBUG code for showing the pcb object tree in
    simple XML format.   See class EDA_BaseStruct's new Show() function.
  * Changed the function name of Locate( const wxPoint& ref_pos ) to bool HitTest(..)
    in both class_text_mod and base_struct.
  * More beautification and commenting.


2007-Aug-04 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
    Read-ability formatting, I am playing with a C++ beautifier called "uncrustify".
        I had to patch it and spent 2 days getting it configured.  Patch not
        sent upstream yet.
    Fixed a bug in "display local ratsnest pad or module": if you had a small
        module and the mouse clicked its reference text, the ratnest for
        the associated module would not show.  The work around was to add
        support to Show_1_Ratsnest() so it could take a TYPETEXTEMODULE as
        the result of the hit-testing.  But I think a longer term better
        solution will be to create a specific search function for this kind
        of hit-testing, one which could disregard text and look only for
        pads and modules.


2007-aug-02 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ pcbnew
    Drc test now generates a DRC file report.


2007-Jul-31 UPDATE   Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ pcbnew
    Drill Map and Drill Report files now list the diameters of each drill in
    the selected drill unit first, and then in the other drill unit.
    Drill report files also now list the tool assigned to each drill, and
    the correct hole count and oval count for each drill size; the
    file creation date and the selected drill unit are also listed.


2007-Jul-30 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ pcbnew
    Some file are added (missing .prj files)
    Better Drc test:
        Zones can be tested.
        better pad to pad test.


2007-Jul-25 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
    ** Some minor enhancements
+ pcbnew
    In Drc diags, better (more explicit) messages
    Change (and simplify) code in  'update' as well as 'insert' modules into main PCB from within the module editor,
    because it had a bug (crashes when there was no footprint in pcb)



2007-June-21 UPDATE Tim Hanson <tim@hardcarve.com>
================================================================================
+ pcbnew
    1. added button to 'update' as well as 'insert' modules into main PCB
        from within the module editor.  Made them functional, of course.
    2. added control-o, control-s & control-f to pcbnew,
        though I'm not perfectly happy with the implementation -- wxwidgets puts
        the control-characters in alphabetical order!


2007-June-25 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ pcbnew
    minor enhancement in Edit footprint dialog (more help tool tips).
    better hotkey.cpp (code cleaning and info messages)


2007-June-19 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
    After locking a module with 'L', update the status window with the locked
    status.  Side step some asserts from wxWidgets which were happening when
    running compiled for debug.


2007-June-16 UPDATE   Richard A Burton <richardaburton@gmail.com>
================================================================================
+ pcbnew
    fix debug assert starting pcbnew with wx2.6
+ build
    add install targets for resources and docs


2007-June-15 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
    **  only modules on the present layer are subject to individual module
        moves, rotations, or layer swaps, with the 'M', 'G', 'R' or 'S' hotkeys.
    **  only unlocked modules are subject to the individual module moves,
        rotations, or layer swaps, with the 'M', 'G', 'R' or 'S' hotkeys.
    **  implemented the 'L' hotkey to quickly lock or unlock a module,
        just by hovering over it and hitting the 'L' or 'l' key. The lock is
        toggled.
    **  Enhanced locate.cpp's Locate_Prefered_Module(BOARD * Pcb, int typeloc)
        significantly, it now has a widely ranging behavior based on the
        typeloc argument.


2007-June-14 UPDATE Igor Plyatov <plyatov@mail.ru>
================================================================================
+ eeschema
    Added sorting by value or position in to the annotation window
    (Thanks for patch to Andrey Fedorushkov).

2007-June-13 RELEASE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+All:
    merging my development with svn version

+ pcbnew:
    bug fix (problem in postscript generation due to the internationalization
    of floating point number notation )
    added tool to select layer pair and monitor active layer

+ eeschema
    bug fix:
        crash libedit when loading certain components (linux only)
        incomplete generation of erc file list


2007-June-13 UPDATE   Richard A Burton <richardaburton@gmail.com>
================================================================================
+ build:
    dynamic linking by default, use make -f makefile.gtk KICAD_STATIC_LINK=1
    or uncomment the bit in libs.linux for static


2007-June-11 UPDATE   Richard A Burton <richardaburton@gmail.com>
================================================================================
+ build:
    removed several 2 line scripts for configuring wx builds and put them in
    how-to-build-kicad.txt
    improved KICAD_STATIC_LINK handling so it can be overridden on the command
    line e.g. "make -f makefile.gtk KICAD_STATIC_LINK=0"


2007-June-11 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
+ Started this change log file.


2007-June-5 UPDATE    Richard A Burton <richardaburton@gmail.com>
================================================================================
+ pcbnew:
    fixed 3d-display image export (blank box in image)
+ build:
    fixed makefile clean targets so they don't fail if already clean
    fixed wx2.6 compatibility


2007-May-25 RELEASE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ pcbnew:
    bug: problem with 3D shapes.
+ Gerbview:
    Better (but crude...) support to export gerber files to pcbnew.

================================================================================
End Of File

