Change Log for Kicad
Started 2007-June-11

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


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 <dickelbeck@yahoo.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 <dickelbeck@yahoo.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 <dickelbeck@yahoo.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

