I've been learning the code base and testing out new ideas, and it looks like I'll have to change the base HID code to support layer groups. So there's some more design work to run by you guys before I can do any "real" work:
My vision is this: the current drawing area will become a tabbed drawing area, with each tab a different Group. Each Group is a logically connected subset of the PCB - so for example, you might have a power supply Group, a USB port Group, an amplifier Group, etc. Each Group can span multiple physical layers. The first Group is the "All" Group, that encompasses the entire PCB. It cannot be deleted. This simplifies the design and also means that if you don't use the Grouping feature at all, your workflow will be exactly the same as it always was. I hope to use Cairo to draw the viewport, and make the non-current Groups' components display as semi-transparent. Also, you will be able to open individual elements in their own Group, as well as open/save/edit them as such. This eliminates the awkward buffer manipulations that are currently needed to work on elements. Ignoring the "All" Group, the following things should be set on a per-Group basis: o Group Name o Group-specific routing styles o Visible physical layers o Active physical layer/routing style o DRC rules (?) o Undo/Redo buffer (?) The following should be set globally: o PCB name, board size, etc. o Physical layers (numbers, names, colors) o Global routing styles That's what I've got now. What you you guys think? Andrew _______________________________________________ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user