Vero board layout planner.
This is a vero board (aka. stripe board, &c.) planner tool for electronics hobbyists.
Current status is pre-alpha: i.e. don't expect it to do anything useful.
install the dependancies:
-make (GNU version used)
-mini xml library ( http://www.minixml.org/ )
copy a ttf-font file as "aFont.ttf" into the toplevel build directory. (this is likely to change at some point. For now, just run "find /usr -name *ttf" to find a font for you)
run './sdlvero' from the same directory
The SDL version is not really intended for end users. For development purposes, the key bindings are:
'a' - add a component to the board. Specify component name on stdin.
'd' - delete a selected (mouse button depressed) component
'esc' - quit
's' - save the design into file 'vbld.save'
'l' - load a design from fille 'vbld.save'
'w' - toggle "wire mode"
'r' - rotate a selected (mouse button pressed) component
'n' - zoom out
'm' - zoom in
When in "wire mode", mouse clicks add or remove "metal connections" between the two holes closest to the cursor.
You can drag components when LMB is pressed, or pan the board when RMB is pressed.
Vero consists of two parts: the models (generic board, component, holes, pins...) and the drawing library adaptation. First implementation of the drawing part is done with SDL (www.libsdl.org). For each generic component (e.g. class board) there is a derived, drawing library specific equivalent (e.g. class sdl_board : public board, public sdl_drawable). sdl_drawable here is a interface for the main program to be able to draw any component without knowing what it represents.
The idea behind this is that the code becomes clearer when UI & functionality is separated. Also porting to some more elaborate UI lib is easier. Qt was first option instead of SDL, but the graphics drawing on Qt is quite hairy... Also, developing on SDL is quicker, but at the cost of usability.
The generic core library is documented with doxygen (javadoc) style comments. To get started, look at that, and the event handling file in the sdl directory for reference.
Thanks to eveyone who has made the software needed by vbld. Special thanks (i.e. code copied from) authors of libSDL, libSDL_svg and mxml.