Parsing and input processing: - unify alignment, direction - find libraries (e.g., from .pro) - parse .kicad_wks - on parse error, politely complain, don't terminate; convert abort / assert(0) to proper error indications Data model: - implement destructors - check for memory leaks - sheets appearing multiple times are parsed anew each time. Should we try to combine them ? Visualization (dwg.c and such): - glabel: build for "right" style, then rotate poly (like hlabel) - show open pins / wires - check remaining alignment / direction / rotation cases in switch statements - support mirroring (and detect-complain if unexpected) [should be done now] - pin shapes (inverted, clock, etc.) - optionally display pin type - record.c (bb_rot): implement bounding boxes for text - nesting gfx in diff is a huge kludge, caused by global vars in gfx.c Rendering: - better text size guessing also for FIG - consider switching to Hershey fonts (that's what eeschema uses, right ?) (goal: prevent font geometry from changing when scaling) - support fonts attributes ? - support line thickness ? - ~ as overline (grep for ~ in out.fig) - PDF TOC - let user set PNG size [we have zoom level] - return indication of whether diff found any differences - in diff, pass only options understood by cairo_png - find out why in Cairo PDF non-dashed lines disappear if CAIRO_LINE_CAP_ROUND GUI: - fonts grow beyond their bounding boxes when zooming in - dragging can be slow. maybe reusing old content and only redrawing new will help ? On-going: - use Pango to support markup in overlay boxes: https://developer.gnome.org/pango/unstable/PangoMarkupFormat.html