Code

Now users can design a font within inkscape, save it and then open the
authorJucaBlues <JucaBlues@users.sourceforge.net>
Sun, 28 Dec 2008 18:35:14 +0000 (18:35 +0000)
committerJucaBlues <JucaBlues@users.sourceforge.net>
Sun, 28 Dec 2008 18:35:14 +0000 (18:35 +0000)
commit280e31bdf7f5ffd28f8b14565c1d93de4070bd0c
tree1a9d0a2de159bd94fab214717136e1474d4db08c
parentb8346b59f65f93ecaece3be77f5faae8c642810b
Now users can design a font within inkscape, save it and then open the
SVG file in Fontforge in order to export a truetype font (or other
system font formarts fontforge supports).
This improves previous workflow of font design using Inkscape which
involved creating one SVG for each glyph. Now user only needs to create
a single SVG file containing an SVGFont.

Glyph kerning settings for the font can also be defined withing Inkscape
itself with live preview. The kerning management still needs some
improvements but is currently functional at least.

Improvements in the SVGFonts dialog:

* In Global Settings tab you can define the font family name. Other
attributes should be added to this tab in the future.
* Glyphs tab allows the user to:
** see a list (combobox) of glyphs available in the currently selected
font.
** add/remove glyphs
** edit glyph name and unicode
** set the glyph curves based on a given path (selected from canvas).
Same feature for the missing glyph.
* Kerning tab allows user to:
** add new kerning pairs
** adjust kerning values of selected kerning pair
** live preview while adjusting the kerning values

Code refactoring:

* Inner classes DocumentProperties::SignalObserver and
FilterEffectsDialog::SignalObserver were duplicated code and another
instance would be needed in SVGFonts dialog. So, I moved it to
Inkscape::XML::SignalObserver (in helper-observer.{cpp,h})
* changed SPGlyph->glyph_name and SPGlyph->unicode from char* to
Glib::ustring
* added sp_remove_resource to the release method in sp-font.cpp
* glyph curves used to be stored (in d attribute) and rendered
upside-down. Now that bug is fixed.

Sorry about this huge commit. I got one week away from the Internet
during a xmas travel. The lack of 'net connection made me work more
intensely in Inkscape :-D

Felipe Sanches
19 files changed:
src/display/nr-svgfonts.cpp
src/display/nr-svgfonts.h
src/sp-font-face.cpp
src/sp-font.cpp
src/sp-glyph-kerning.cpp
src/sp-glyph-kerning.h
src/sp-glyph.cpp
src/sp-glyph.h
src/ui/dialog/document-properties.cpp
src/ui/dialog/document-properties.h
src/ui/dialog/filter-effects-dialog.cpp
src/ui/dialog/filter-effects-dialog.h
src/ui/dialog/svg-fonts-dialog.cpp
src/ui/dialog/svg-fonts-dialog.h
src/unicoderange.cpp
src/unicoderange.h
src/xml/Makefile_insert
src/xml/helper-observer.cpp [new file with mode: 0644]
src/xml/helper-observer.h [new file with mode: 0644]