
Here are some source code maintenance tasks that need to be done, and maybe some
folks will see these items and volunteer to do them.




*** improved xpm handling
We should:
1) make a library out of ALL the xpm files, and
2) develop a simple header file which declares ALL of them using conventional C/C++:
  extern char * somename2_xpm[];
  extern char * somename3_xpm[];
  :
  :
This way the linker can bundle in the xpms that it has seen referenced.  I don't
think seeing the extern declaration is cause to do this, it must actually be
referenced.   I think this would be an easier way to manage xpms.


*** @todo: grep for @todo and finish off those tasks, scattered throughout the source.


*** use BOARD_ITEM::MenuIcon() in the onrightclick.cpp


*** Use DOXYGEN compatible comments on member functions.  As configured,
Doxygen gives priority to comments in header files over *.cpp files.
Review the generated docs and start to go through the source and make the
generated doxygen docs readable and clear using the JavaDoc style comments,
mostly in the header files.  The error and warning output of the doxygen
compiler can help with this too.


*** Translate comments that are in French to English so there can be a broader
understanding by new developers.


*** Add tooltip text to all non-obvious controls in every dialog window.
Need to do this using DialogBlocks.

2007-Nov-30 Assigned To: nobody
asked by: Dick Hollenbeck
================================================================================
wxString DateAndTime()
It seems the above function should be using a more user friendly "local time",
not gmtime.


2007-Nov-4 Assigned To: nobody
asked by: jp Charras
================================================================================
Use the collector classes in eeschema.


2008-Feb-8 Assigned To: dick
asked by: dick
================================================================================
specctra:
prompt for board boundary control, copper areas, tracks and vias, via per net, fixed vs. normal.
do write up.

2008-Feb-8 Assigned To: Jean-Pierre, per his email
asked by: Dick Hollenbeck
================================================================================
1) Remove the requirement to route tracks for situations where a zone is.
2) Support connections from zones to vias, and zones to tracks, and zones to pads.

rework zones so they are modifiable and so that the user does not
need to enter tracks for thru hole pads or vias which connect to a zone.
I propose a two step solution:
1) interim enhancement: make zone edges retained in BRD file and make the
edges editable. (DONE)
2) final solution: get rid of requirement for tracks buried within a zone.
Review the GEDA source code and other sources to gather ideas before doing 2).

2008-Apr-29 Assigned To:
asked by: Dick Hollenbeck
================================================================================
+pcbnew
    When picking new board from the menu, when an existing board is already
    in memory, the number of layers in the new board is not set to the default
    but rather to the number of layers in the previously loaded board, and with
    the default layer names, rather than the layer names of the previously
    loaded board.   I think the number of layers should be reduced to the
    default and the default layer names should be used.

2008-Apr-30 Assigned To:
asked by: Dick Hollenbeck
================================================================================
+eeschema
    This line in eeschema/save_schemas.cpp is using m_ScreenNumber == 1
    regardless.
    fprintf( aFile, "Sheet %d %d\n", m_ScreenNumber, m_NumberOfScreen );
    The field m_ScreenNumber needs to be updated based on where
    the sheet is in the hierarchy.  Until this is fixed, the code which checks
    for "Sheet 1 " in kicad/treeprj_frame.cpp is broken and the project manager
    is showing all *.sch files, not just the top most *.sch files.

