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 *** 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. 2) final solution: get rid of requirement for tracks buried within a zone. Reivew the GEDA source code and other sources to gather ideas before doing 2). *** 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-4 Assigned To: dick, but probably not til January. ================================================================================ Enhance DRC dialog box to: 1) retain lines of error text, so as user re-enters dialog, the previously found errors persist. 2) support double or single clicking a text line, and have the pcbnew cursor go to the offending marker. 3) use color in the text line display. 4) use tooltip on a per line basis, which would show a generic, but error type specific message about the error for that line. 5) Use sizers properly so that as the dialog box is resized, the text area gets all the additional space, both horizontally and vertically. 6) The initial size of the dialog needs to be big enough to show the text lines in a clear way. 7) Add a delete button so user can remove a single line of text after he fixes that track. The delete button should also delete that single marker. -------------- Implementation Ideas: retain all drc wxStrings in a vector so they can be re-displayed again on another popup of the dialog. Switch from wxTextControl to wxHtmlListBox for the errors. Add parsing and formatting functions to allow grabbing of the coordinate of the marker out of text, and to parse a generic error message such that it can be embellished into html for use in the html line, such that we can get color. There may be a requirement to rework the generation of the drc error strings to facillitate easy parsing. Although maybe we use structures instead of strings for error reporting so the parsing does not need to happen. http://www.wxwidgets.org/manuals/2.6/wx_wxlistbox.html#wxlistbox The events given to wxHtmlListBox are the same as wxListBox, so the double click handling should be easy, plus there is the added benefit that the wxHtmlListBox does not own the strings, it asks for them one by one, so this makes it possible to keep the errors in struct form and generate html strings or normal strings when needed, on the fly. 2007-Nov-4 Assigned To: nobody asked by: jp Charras ================================================================================ Use the collector classes in eeschema.